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

Takashi Iwai tiwai at suse.de
Wed Jan 25 12:56:35 UTC 2017


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?

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.

- 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.

- 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


More information about the Intel-gfx mailing list