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

Jani Nikula jani.nikula at linux.intel.com
Fri Mar 2 09:37:17 UTC 2018


On Thu, 01 Mar 2018, Lyude Paul <lyude at redhat.com> wrote:
> Pushed with some small whitespace changes to make sparse happy, thanks!

Please do not push patches before they've passed CI. This patch gives [1]:

[  281.167033] i915 0000:00:02.0: DP-2: EDID is invalid:
...
[  282.806393] [drm:intel_enable_shared_dpll [i915]] *ERROR* DPLL 1 not locked

I don't know if this is caused by the patch, but since we get this in
the BAT round, the full IGT testing wasn't even run here.


BR,
Jani.


[1] https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_8102/fi-skl-6700k2/igt@kms_chamelium@common-hpd-after-suspend.html
>
> 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]");

-- 
Jani Nikula, Intel Open Source Technology Center


More information about the Intel-gfx mailing list