drm/bridge/sii902x: Fix EDID readback
authorFabrizio Castro <fabrizio.castro@bp.renesas.com>
Tue, 6 Nov 2018 11:52:36 +0000 (11:52 +0000)
committerBoris Brezillon <boris.brezillon@bootlin.com>
Thu, 15 Nov 2018 16:53:19 +0000 (17:53 +0100)
commit21d808405fe49028036932dd969920f4fee4f481
tree9a57421c3bc9f38412e7987215ed2822cfc026c4
parentfc381bb235a4ae1a2c7af1e55a90447553457a1a
drm/bridge/sii902x: Fix EDID readback

While adding SiI9022A support to the iwg23s board, it came
up that when the HDMI transmitter is in pass through mode the
device is not compliant with the I2C specification anymore,
as it requires a far bigger tbuf, due to a delay the HDMI
transmitter is adding when relaying the STOP condition on the
monitor i2c side of things.

When not providing an appropriate delay after the STOP condition
the i2c bus would get stuck. Also, any other traffic on the bus
while talking to the monitor may cause the transaction to fail
or even cause issues with the i2c bus as well.

I2c-gates seemed to reach consent as a possible way to address
these issues, and as such this patch is implementing a solution
based on that. Since others are clearly relying on the current
implementation of the driver, this patch won't require any DT
changes.

Since we don't want any interference during the DDC Bus
Request/Grant procedure and while talking to the monitor, we
have to use the adapter locking primitives rather than the
i2c-mux locking primitives.

Signed-off-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>
Reviewed-by: Peter Rosin <peda@axentia.se>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Tested-by: Yannick Fertré <yannick.fertre@st.com>
Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1541505156-8097-1-git-send-email-fabrizio.castro@bp.renesas.com
drivers/gpu/drm/bridge/sii902x.c