[PATCH] v4l: 819: added autodetection code to tda8290 to avoid conflicts
authorMauro Carvalho Chehab <mchehab@brturbo.com.br>
Wed, 9 Nov 2005 05:37:57 +0000 (21:37 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 9 Nov 2005 15:56:22 +0000 (07:56 -0800)
- Added autodetection code to tda8290, to avoid conflicts with tda9887.

Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/media/video/tda8290.c
drivers/media/video/tuner-core.c

index fa9b4b898f687f31d322599fdbd7c66fb7bec3dd..abad3d5b04f611510f2acb9595815bffd1fd179a 100644 (file)
@@ -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);
index b9f1acf30cafd1dc818a7992cbfa9ab9500ebad3..d4786b331467cfb9f24ac30f7dc71b284f8bc56d 100644 (file)
@@ -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 */