[Intel-gfx] [PATCH] drm/i915/display: refine eDP power off sequence

Lee, Shawn C shawn.c.lee at intel.com
Wed Aug 31 11:20:55 UTC 2022


On Wed, Aug 31, 2022 at 06:49, Ville Syrjälä wrote:
>On Wed, Aug 31, 2022 at 06:37:24PM +0800, Lee Shawn C wrote:
>> The current eDP disable sequence like this.
>> 
>> disable plane > disable backlight (include T9, the delay from 
>> backlight disable to end of valid video data) > disalbe 
>> transcoder/pipe > disable eDP power
>> 
>> Found abnormal pixel output after plane off sometimes.
>> It did not cause any issue but impact user experience.
>> So we modify the eDP disable flow to turn backlight off earlier to 
>> avoid abnormal display.
>
>NAK. Planes can be disable at any time by userspace.
>We need to find out what is causing the glitch.
>

Hi Ville, thanks for comment! I uploaded a patch earlier to fix the problem.
https://patchwork.freedesktop.org/patch/496067/

It pass the review by Uma. Unfortunately, the change is not able to pass CI.
With that change, FIFO underrun always be found during CI testing.

Best regards,
Shawn

>> 
>> disable backlight > disable plane > disalbe transcoder/pipe
>> > disable eDP power
>> 
>> Cc: Shankar Uma <uma.shankar at intel.com>
>> Cc: Jani Nikula <jani.nikula at linux.intel.com>
>> Signed-off-by: Lee Shawn C <shawn.c.lee at intel.com>
>> ---
>>  drivers/gpu/drm/i915/display/intel_display.c | 8 +++++---
>>  1 file changed, 5 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
>> b/drivers/gpu/drm/i915/display/intel_display.c
>> index 72e2091d9fcb..d08927036350 100644
>> --- a/drivers/gpu/drm/i915/display/intel_display.c
>> +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> @@ -2045,10 +2045,8 @@ static void hsw_crtc_disable(struct intel_atomic_state *state,
>>  	 * FIXME collapse everything to one hook.
>>  	 * Need care with mst->ddi interactions.
>>  	 */
>> -	if (!intel_crtc_is_bigjoiner_slave(old_crtc_state)) {
>> -		intel_encoders_disable(state, crtc);
>> +	if (!intel_crtc_is_bigjoiner_slave(old_crtc_state))
>>  		intel_encoders_post_disable(state, crtc);
>> -	}
>>  }
>>  
>>  static void i9xx_pfit_enable(const struct intel_crtc_state 
>> *crtc_state) @@ -7224,6 +7222,10 @@ static void intel_commit_modeset_disables(struct intel_atomic_state *state)
>>  			continue;
>>  
>>  		intel_pre_plane_update(state, crtc);
>> +
>> +		if (!intel_crtc_is_bigjoiner_slave(old_crtc_state))
>> +			intel_encoders_disable(state, crtc);
>> +
>>  		intel_crtc_disable_planes(state, crtc);
>>  	}
>>  
>> --
>> 2.31.1
>
>--
>Ville Syrjälä
>Intel


More information about the Intel-gfx mailing list