From: Steven Toth Date: Thu, 1 Dec 2005 08:51:41 +0000 (-0800) Subject: [PATCH] V4L: Fixed eeprom handling for cx88 and added Nova-T PCI model 90003 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=0fe22865ddee524017a1012528b0e15475acc942;p=sagit-ice-cold%2Fkernel_xiaomi_msm8998.git [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 Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index cf2d2c3a33a6..24651661630a 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c @@ -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: diff --git a/drivers/media/video/tveeprom.c b/drivers/media/video/tveeprom.c index d6afd918f324..f048fd44f0e2 100644 --- a/drivers/media/video/tveeprom.c +++ b/drivers/media/video/tveeprom.c @@ -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;