[PATCH] V4L: Fixed eeprom handling for cx88 and added Nova-T PCI model 90003
authorSteven Toth <stoth@hauppauge.com>
Thu, 1 Dec 2005 08:51:41 +0000 (00:51 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 1 Dec 2005 23:48:58 +0000 (15:48 -0800)
- 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>
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/tveeprom.c

index cf2d2c3..2465166 100644 (file)
@@ -1088,11 +1088,13 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
        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:
index d6afd91..f048fd4 100644 (file)
@@ -382,14 +382,15 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
        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;