[media] au0828: prevent i2c gate from being kept open while in analog mode
authorDevin Heitmueller <dheitmueller@kernellabs.com>
Tue, 7 Aug 2012 01:47:02 +0000 (22:47 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Thu, 9 Aug 2012 23:37:56 +0000 (20:37 -0300)
commit4a03dafc7b0a347854bc0a8652ffa314150fd1e5
tree590e3ffbb5b9b42cacb3321e4a84066243510b14
parentfc7a74bad1ae1d68a1a9999634baeb4bae277a92
[media] au0828: prevent i2c gate from being kept open while in analog mode

The original implementation of the analog support would use an
i2c_gate_ctrl function when using the digital side of the au8522, but on
the analog side we would always just force the gate open and leave it
open all the time.

This can have adverse effects on the xc5000 given the tuner is receiving
all the spurious i2c traffic (a problem which can be exaggerated due to
bugs in the au0828 i2c hardware implementation).

Rework the existing hack to only open/close the gate when actually
talking to the tuner.

This logic might need to be reworked a bit if anybody ever tries to add
support for a board that has the au0828/au8522 but doesn't have digital
support implemented (because the i2c_gate_ctrl callback is being set in
the DVB attach).  However given how few different models are in
circulation, this can be deferred until such a situation arises (if
ever).

Signed-off-by: Devin Heitmueller <dheitmueller@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/frontends/au8522_common.c
drivers/media/dvb/frontends/au8522_decoder.c
drivers/media/dvb/frontends/au8522_dig.c
drivers/media/dvb/frontends/au8522_priv.h
drivers/media/video/au0828/au0828-video.c