From 13dd38d0814f36fce3a7ec9cb29a5ce6b0fc2522 Mon Sep 17 00:00:00 2001
From: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Date: Tue, 8 Nov 2005 21:37:57 -0800
Subject: [PATCH] [PATCH] v4l: 819: added autodetection code to tda8290 to
 avoid conflicts

- 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    |  4 ++--
 drivers/media/video/tuner-core.c | 13 ++++++++++++-
 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 */
-- 
2.41.3