[Intel-gfx] [PATCH] drm/i915: Check for I915_MODE_FLAG_INHERITED before drm_atomic_helper_check_modeset

Lyude Paul lyude at redhat.com
Wed Feb 21 23:12:51 UTC 2018


Nice, this is a no-brainer

Reviewed-by: Lyude Paul <lyude at redhat.com>

On Wed, 2018-02-21 at 10:28 +0100, Maarten Lankhorst wrote:
> Moving the check upwards will mean we we no longer have to add planes
> and connectors manually, because everything is handled correctly by
> drm_atomic_helper_check_modeset() as intended.
> 
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Lyude Paul <lyude at redhat.com>
> Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
> Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 20 +++++---------------
>  1 file changed, 5 insertions(+), 15 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c
> b/drivers/gpu/drm/i915/intel_display.c
> index 65be7af7f647..c5cc9022d545 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -11927,6 +11927,11 @@ static int intel_atomic_check(struct drm_device
> *dev,
>  	int ret, i;
>  	bool any_ms = false;
>  
> +	/* Catch I915_MODE_FLAG_INHERITED */
> +	for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state,
> crtc_state, i)
> +		if (crtc_state->mode.private_flags != old_crtc_state-
> >mode.private_flags)
> +			crtc_state->mode_changed = true;
> +
>  	ret = drm_atomic_helper_check_modeset(dev, state);
>  	if (ret)
>  		return ret;
> @@ -11935,10 +11940,6 @@ static int intel_atomic_check(struct drm_device
> *dev,
>  		struct intel_crtc_state *pipe_config =
>  			to_intel_crtc_state(crtc_state);
>  
> -		/* Catch I915_MODE_FLAG_INHERITED */
> -		if (crtc_state->mode.private_flags != old_crtc_state-
> >mode.private_flags)
> -			crtc_state->mode_changed = true;
> -
>  		if (!needs_modeset(crtc_state))
>  			continue;
>  
> @@ -11947,13 +11948,6 @@ static int intel_atomic_check(struct drm_device
> *dev,
>  			continue;
>  		}
>  
> -		/* FIXME: For only active_changed we shouldn't need to do
> any
> -		 * state recomputation at all. */
> -
> -		ret = drm_atomic_add_affected_connectors(state, crtc);
> -		if (ret)
> -			return ret;
> -
>  		ret = intel_modeset_pipe_config(crtc, pipe_config);
>  		if (ret) {
>  			intel_dump_pipe_config(to_intel_crtc(crtc),
> @@ -11972,10 +11966,6 @@ static int intel_atomic_check(struct drm_device
> *dev,
>  		if (needs_modeset(crtc_state))
>  			any_ms = true;
>  
> -		ret = drm_atomic_add_affected_planes(state, crtc);
> -		if (ret)
> -			return ret;
> -
>  		intel_dump_pipe_config(to_intel_crtc(crtc), pipe_config,
>  				       needs_modeset(crtc_state) ?
>  				       "[modeset]" : "[fastset]");
-- 
Cheers,
	Lyude Paul


More information about the Intel-gfx mailing list