aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/common/tuners/tda18271-common.c
diff options
context:
space:
mode:
authorMichael Krufky <mkrufky@kernellabs.com>2009-10-23 02:47:49 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 18:40:55 -0200
commit1724c8fa7eb33d68898e060a08a8e6a88348b62f (patch)
tree456e6ca8cd0c9e6b004f01391b13d28d1337f5bb /drivers/media/common/tuners/tda18271-common.c
parente29cd96715ab8b9315fb50096df4677a23d7d6a7 (diff)
downloadkernel_samsung_smdk4412-1724c8fa7eb33d68898e060a08a8e6a88348b62f.zip
kernel_samsung_smdk4412-1724c8fa7eb33d68898e060a08a8e6a88348b62f.tar.gz
kernel_samsung_smdk4412-1724c8fa7eb33d68898e060a08a8e6a88348b62f.tar.bz2
V4L/DVB (13214): tda18271: allow for i2c buses that cant send 16 bytes at once
There is already an option for sending 16 byte chunks rather that writing 39 bytes all at once during the tuner's initialization. Some i2c buses can't send 16 bytes at once, so create an option for sending 8 byte chunks. Signed-off-by: Michael Krufky <mkrufky@kernellabs.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/common/tuners/tda18271-common.c')
-rw-r--r--drivers/media/common/tuners/tda18271-common.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/media/common/tuners/tda18271-common.c b/drivers/media/common/tuners/tda18271-common.c
index 155c93e..e1f6782 100644
--- a/drivers/media/common/tuners/tda18271-common.c
+++ b/drivers/media/common/tuners/tda18271-common.c
@@ -326,12 +326,24 @@ int tda18271_init_regs(struct dvb_frontend *fe)
regs[R_EB22] = 0x48;
regs[R_EB23] = 0xb0;
- if (priv->small_i2c) {
+ switch (priv->small_i2c) {
+ case TDA18271_08_BYTE_CHUNK_INIT:
+ tda18271_write_regs(fe, 0x00, 0x08);
+ tda18271_write_regs(fe, 0x08, 0x08);
+ tda18271_write_regs(fe, 0x10, 0x08);
+ tda18271_write_regs(fe, 0x18, 0x08);
+ tda18271_write_regs(fe, 0x20, 0x07);
+ break;
+ case TDA18271_16_BYTE_CHUNK_INIT:
tda18271_write_regs(fe, 0x00, 0x10);
tda18271_write_regs(fe, 0x10, 0x10);
tda18271_write_regs(fe, 0x20, 0x07);
- } else
+ break;
+ case TDA18271_39_BYTE_CHUNK_INIT:
+ default:
tda18271_write_regs(fe, 0x00, TDA18271_NUM_REGS);
+ break;
+ }
/* setup agc1 gain */
regs[R_EB17] = 0x00;