[Intel-gfx] Broken DPMS with DisplayPort on CHV (also BYT?)

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Jan 26 13:58:55 UTC 2017


On Wed, Jan 25, 2017 at 01:56:35PM +0100, Takashi Iwai wrote:
> Hi,
> 
> we've got a bug report about the blank monitor on Cherry Trail
> machines.  And, Intel team (Cc'ed) spotted out that this seems
> triggered by DPMS transition.  A patch like below actually fixes the
> problem.
> 
> Of course it doesn't look like a right "fix".  Do you guys have any
> hint for further debugging?

Is it some kind of new fangled MST capable monitor? I've noticed that
those tend to be super easy to mess up.

> 
> Some more (not alt-) facts:
> 
> - The machine we've tested is a Cherry Trail based box with two
>   DisplayPorts.  Intel team mentioned that there are other machines
>   suffering from the same problem.

Is it really somehow tied to the machine? I would imagine it should
behave exactly the same way no matter what machine you have.

> 
> - With some monitors, the screen remains blank during boot and on X.
>   This can be cured after "xset dpms force off" and resume, or
>   reconfiguring via xrandr.
> 
> - The issue seems specific to DP connections.  When two (identical)
>   monitors are connected, only one monitor goes blank.

Hmm. Have you tried 9f2bdb006a7e ("drm/i915: Prevent PPS stealing
from a normal DP port on VLV/CHV") ?

> 
> - The issue happens only with some monitor models (Dell E-series).
>   Other Dell monitors (e.g. U-series) or other vendors seem working as
>   far as we've tested.
> 
> - Intel team mentioned that a similar issue was seen on a Baytrail
>   machine.
> 
> - The register value seems passed correctly.  The read back after the
>   register write showed the expected value.
>   Also, spinning more times in DPMS_ON loop didn't help, too.
> 
> - The issue is reproduced with the recent kernels (at least 4.9.x)
> 
> 
> Any comments / suggestions appreciated.
> 
> thanks,
> 
> Takashi
> 
> --- a/drivers/gpu/drm/i915/intel_dp.c
> +++ b/drivers/gpu/drm/i915/intel_dp.c
> @@ -2205,8 +2205,12 @@ void intel_dp_sink_dpms(struct intel_dp
>  		return;
>  
>  	if (mode != DRM_MODE_DPMS_ON) {
> +#if 0
>  		ret = drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
>  					 DP_SET_POWER_D3);
> +#else
> +		ret = 1;
> +#endif
>  	} else {
>  		/*
>  		 * When turning on, we need to retry for 1ms to give the sink
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list