drm/i915: Read the response after issuing DDC bus switch command
authorZhao Yakui <yakui.zhao@intel.com>
Fri, 8 Jan 2010 02:58:19 +0000 (10:58 +0800)
committerEric Anholt <eric@anholt.net>
Tue, 12 Jan 2010 22:52:38 +0000 (14:52 -0800)
commit6a304caf0bf9c429fc261f260b86cabf5bde2cbb
tree94a64f0aa5313c77ab11741372f39aa364f77683
parent6207937d4feea000913e8ca23fe20c7744be7847
drm/i915: Read the response after issuing DDC bus switch command

For some SDVO cards based on conexant chip, we can't read the EDID if
we don't read the response after issuing SDVO DDC bus switch
command.

From the SDVO spec once when another I2C transaction is finished after
completing the I2C transaction of issuing the bus switch command, it
will be switched back to the SDVO internal state again. So we can't
initiate a new I2C transaction to read the response after issuing the
DDC bus switch command. Instead we should issue DDC bus switch command
and read the response in the same I2C transaction.

https://bugs.freedesktop.org/show_bug.cgi?id=23842
https://bugs.freedesktop.org/show_bug.cgi?id=24458
https://bugs.freedesktop.org/show_bug.cgi?id=24522
https://bugs.freedesktop.org/show_bug.cgi?id=24282

Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Tested-by: Sebastien Caty <sebastien.caty@mrnf.gouv.qc.ca>
Signed-off-by: Eric Anholt <eric@anholt.net>
drivers/gpu/drm/i915/intel_sdvo.c