aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/tda8290.c4
-rw-r--r--drivers/media/video/tuner-core.c13
2 files changed, 14 insertions, 3 deletions
diff --git a/drivers/media/video/tda8290.c b/drivers/media/video/tda8290.c
index fa9b4b898f6..abad3d5b04f 100644
--- a/drivers/media/video/tda8290.c
+++ b/drivers/media/video/tda8290.c
@@ -534,8 +534,8 @@ int tda8290_init(struct i2c_client *c)
}
if (tuner_addrs == 0) {
tuner_addrs = 0x61;
- tuner_info ("could not clearly identify tuner address, defaulting to %x\n",
- tuner_addrs);
+ tuner_info ("Could not clearly identify tda8290/8275 tuner address.\n");
+ return -1;
} else {
tuner_addrs = tuner_addrs & 0xff;
tuner_info ("setting tuner address to %x\n", tuner_addrs);
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c
index b9f1acf30ca..d4786b33146 100644
--- a/drivers/media/video/tuner-core.c
+++ b/drivers/media/video/tuner-core.c
@@ -364,7 +364,8 @@ static int tuner_attach(struct i2c_adapter *adap, int addr, int kind)
}
/* TEA5767 autodetection code - only for addr = 0xc0 */
if (!no_autodetect) {
- if (addr == 0x60) {
+ switch (addr) {
+ case 0x60:
if (tea5767_autodetection(&t->i2c) != EINVAL) {
t->type = TUNER_TEA5767;
t->mode_mask = T_RADIO;
@@ -376,7 +377,17 @@ static int tuner_attach(struct i2c_adapter *adap, int addr, int kind)
set_type(&t->i2c,t->type, t->mode_mask);
return 0;
}
+ case 0x42:
+ case 0x43:
+ case 0x4a:
+ case 0x44:
+ if (tda8290_init(&t->i2c)<0) {
+ kfree(t);
+ return 0;
+ }
+
}
+
}
/* Initializes only the first adapter found */