[PATCH] V4L: Fixed eeprom handling for cx88 and added Nova-T PCI model 90003

- Fixed code handling for eeprom on cx88 boards.

- Hauppauge released a new version of the Nova-T-PCI (9002) a few months ago
  with a different (compatible) tuner (but lacking RF passthru).  The official
  model# is 90003.  All features are working.

- Adding entry to the known model list after testing.

Signed-off-by: Steven Toth <stoth@hauppauge.com>
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>
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index cf2d2c3..2465166 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1088,11 +1088,13 @@
 	switch (tv.model)
 	{
 	case 90002: /* Nova-T-PCI (9002) */
+	case 92001: /* Nova-S-Plus (Video and IR) */
+	case 92002: /* Nova-S-Plus (Video and IR) */
+	case 90003: /* Nova-T-PCI (9002 No RF out) */
 	case 90500: /* Nova-T-PCI (oem) */
 	case 90501: /* Nova-T-PCI (oem/IR) */
 	case 92000: /* Nova-SE2 (OEM, No Video or IR) */
-	case 92001: /* Nova-S-Plus (Video and IR) */
-	case 92002: /* Nova-S-Plus (Video and IR) */
+
 		/* known */
 		break;
 	default:
diff --git a/drivers/media/video/tveeprom.c b/drivers/media/video/tveeprom.c
index d6afd91..f048fd4 100644
--- a/drivers/media/video/tveeprom.c
+++ b/drivers/media/video/tveeprom.c
@@ -382,14 +382,15 @@
 	memset(tvee, 0, sizeof(*tvee));
 	done = len = beenhere = 0;
 
-	/* Hack for processing eeprom for em28xx */
+	/* Hack for processing eeprom for em28xx and cx 2388x*/
 	if ((eeprom_data[0] == 0x1a) && (eeprom_data[1] == 0xeb) &&
-		(eeprom_data[2] == 0x67) && (eeprom_data[3] == 0x95))
-		start=0xa0;
-	else if ((eeprom_data[0] == 0x1f) && (eeprom_data[8] == 0x84))
-		start=8;
-	else if ((eeprom_data[0] == 0x17) && (eeprom_data[8] == 0x84))
-		start=8;
+			(eeprom_data[2] == 0x67) && (eeprom_data[3] == 0x95))
+		start=0xa0; /* Generic em28xx offset */
+	else if (((eeprom_data[0] & 0xf0) == 0x10) &&
+					(eeprom_data[1] == 0x00) &&
+					(eeprom_data[2] == 0x00) &&
+					(eeprom_data[8] == 0x84))
+		start=8; /* Generic cx2388x offset */
 	else
 		start=0;