[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