]> 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)
commit0f7cb06b0084766ed695381318b53e6ca379dc2d
tree88df30ed3cdb70891385db05728ca510a25fa8a4
parente607f8513dfb474edec07b4f7c838818253911df
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