[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