drm/nouveau/i2c/aux/g94-: retry transactions after hw reports an error
authorBen Skeggs <bskeggs@redhat.com>
Thu, 3 Nov 2016 06:37:33 +0000 (16:37 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Mon, 7 Nov 2016 04:04:30 +0000 (14:04 +1000)
commitf1963a47c0a986b6d13e11136a2a6f873786c5f2
tree012184b8f96db878058ba6b0983de137f1331c6b
parent768e847759d551c96e129e194588dbfb11a1d576
drm/nouveau/i2c/aux/g94-: retry transactions after hw reports an error

This fixes (works around?) link training failures seen on (at least)
the Lenovo P50's internal panel.

It's also an important fix on the same system for MST support on the
dock.  Sometimes, right after receiving an IRQ from the sink, there's
an error bit (SINKSTAT_ERR) set in the DPAUX registers before we've
even attempted a transaction.

v2. Fixed regression on passive DP->DVI adapters.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c