]> git.baikalelectronics.ru Git - kernel.git/commit
drm/i915/lspcon: Ensure AUX CH is awake while in DP Sleep state
authorImre Deak <imre.deak@intel.com>
Mon, 21 Nov 2016 19:15:04 +0000 (21:15 +0200)
committerImre Deak <imre.deak@intel.com>
Wed, 23 Nov 2016 11:27:29 +0000 (13:27 +0200)
commit456bdb1b8aded2951629c3fc2a15981f32bb7811
treef3d790136e22a12e70bfc71cc53dfe126a8354c6
parent38260787b961078e55640f62a37adbf4886bf558
drm/i915/lspcon: Ensure AUX CH is awake while in DP Sleep state

Some LSPCON adaptors won't properly wake up in response to an AUX
request after the adaptor was placed to a DP Sink Sleep state (via
writing 0x2 to DP_SET_POWER). Based on the DP 1.4 specification 5.2.5,
the sink may place the AUX CH into a low-power state while in Sleep
state, but should wake it up in response to an AUX request within 1-20ms
(answering with AUX defers while waking it up). As opposed to this at
least the ParadTech PS175 adaptor won't fully wake in response to the
first I2C-over-AUX access and will occasionally ignore the offset in I2C
messages. This can result in accessing the DDC register at offset 0
regardless of the specified offset and the LSPCON detection failing.

To fix this do an initial dummy read from the DPCD area. The PS175 will
defer this access until it's fully woken (taking ~150ms) making sure the
following I2C-over-AUX accesses will work correctly.

Cc: Shashank Sharma <shashank.sharma@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Reference: https://bugs.freedesktop.org/show_bug.cgi?id=98353
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Shashank Sharma <shashank.sharma@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1479755707-29596-2-git-send-email-imre.deak@intel.com
drivers/gpu/drm/i915/intel_lspcon.c