V4L/DVB (6859): tveeprom: add support for Hauppauge models 74xxx

Thanks to Steve Toth from Hauppauge with providing me with the information
needed to add support for these models.

Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Hans Verkuil 2007-12-12 06:21:58 -03:00 committed by Mauro Carvalho Chehab
parent 3ac510e609
commit 5412c8204f
1 changed files with 19 additions and 12 deletions

View File

@ -405,9 +405,9 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
** # of inputs/outputs ??? ** # of inputs/outputs ???
*/ */
int i, j, len, done, beenhere, tag,start; int i, j, len, done, beenhere, tag, start;
int tuner1 = 0, t_format1 = 0, audioic=-1; int tuner1 = 0, t_format1 = 0, audioic = -1;
char *t_name1 = NULL; char *t_name1 = NULL;
const char *t_fmt_name1[8] = { " none", "", "", "", "", "", "", "" }; const char *t_fmt_name1[8] = { " none", "", "", "", "", "", "", "" };
@ -418,17 +418,24 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
memset(tvee, 0, sizeof(*tvee)); memset(tvee, 0, sizeof(*tvee));
done = len = beenhere = 0; done = len = beenhere = 0;
/* Hack for processing eeprom for em28xx and cx 2388x*/ /* Different eeprom start offsets for em28xx, cx2388x and cx23418 */
if ((eeprom_data[0] == 0x1a) && (eeprom_data[1] == 0xeb) && if (eeprom_data[0] == 0x1a &&
(eeprom_data[2] == 0x67) && (eeprom_data[3] == 0x95)) eeprom_data[1] == 0xeb &&
start=0xa0; /* Generic em28xx offset */ eeprom_data[2] == 0x67 &&
else if (((eeprom_data[0] & 0xe1) == 0x01) && eeprom_data[3] == 0x95)
(eeprom_data[1] == 0x00) && start = 0xa0; /* Generic em28xx offset */
(eeprom_data[2] == 0x00) && else if ((eeprom_data[0] & 0xe1) == 0x01 &&
(eeprom_data[8] == 0x84)) eeprom_data[1] == 0x00 &&
start=8; /* Generic cx2388x offset */ eeprom_data[2] == 0x00 &&
eeprom_data[8] == 0x84)
start = 8; /* Generic cx2388x offset */
else if (eeprom_data[1] == 0x70 &&
eeprom_data[2] == 0x00 &&
eeprom_data[4] == 0x74 &&
eeprom_data[8] == 0x84)
start = 8; /* Generic cx23418 offset (models 74xxx) */
else else
start=0; start = 0;
for (i = start; !done && i < 256; i += len) { for (i = start; !done && i < 256; i += len) {
if (eeprom_data[i] == 0x84) { if (eeprom_data[i] == 0x84) {