]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state
authorImre Deak <imre.deak@intel.com>
Mon, 16 Apr 2018 15:53:09 +0000 (18:53 +0300)
committerJani Nikula <jani.nikula@intel.com>
Wed, 18 Apr 2018 13:33:14 +0000 (16:33 +0300)
commit18fc82f24e4bccfd27322bb2e4637225783ee9df
tree88df30ed3cdb70891385db05728ca510a25fa8a4
parent47bdaf6b477f6f63428b16842459cea5c1e710a7
drm/i915: Fix LSPCON TMDS output buffer enabling from low-power state

LSPCON adapters in low-power state may ignore the first I2C write during
TMDS output buffer enabling, resulting in a blank screen even with an
otherwise enabled pipe. Fix this by reading back and validating the
written value a few times.

The problem was noticed on GLK machines with an onboard LSPCON adapter
after entering/exiting DC5 power state. Doing an I2C read of the adapter
ID as the first transaction - instead of the I2C write to enable the
TMDS buffers - returns the correct value. Based on this we assume that
the transaction itself is sent properly, it's only the adapter that is
not ready for some reason to accept this first write after waking from
low-power state. In my case the second I2C write attempt always
succeeded.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105854
Cc: Clinton Taylor <clinton.a.taylor@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: stable@vger.kernel.org
Signed-off-by: Imre Deak <imre.deak@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180416155309.11100-1-imre.deak@intel.com
drivers/gpu/drm/drm_dp_dual_mode_helper.c