Commit 867e835f authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

V4L/DVB (7728): tea5761: bugzilla #10462: tea5761 autodetection code were broken

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent a589b665
...@@ -247,14 +247,19 @@ int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr) ...@@ -247,14 +247,19 @@ int tea5761_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr)
if (16 != (rc = tuner_i2c_xfer_recv(&i2c, buffer, 16))) { if (16 != (rc = tuner_i2c_xfer_recv(&i2c, buffer, 16))) {
printk(KERN_WARNING "it is not a TEA5761. Received %i chars.\n", rc); printk(KERN_WARNING "it is not a TEA5761. Received %i chars.\n", rc);
return EINVAL; return -EINVAL;
} }
if (!((buffer[13] != 0x2b) || (buffer[14] != 0x57) || (buffer[15] != 0x061))) { if ((buffer[13] != 0x2b) || (buffer[14] != 0x57) || (buffer[15] != 0x061)) {
printk(KERN_WARNING "Manufacturer ID= 0x%02x, Chip ID = %02x%02x. It is not a TEA5761\n",buffer[13],buffer[14],buffer[15]); printk(KERN_WARNING "Manufacturer ID= 0x%02x, Chip ID = %02x%02x."
return EINVAL; " It is not a TEA5761\n",
buffer[13], buffer[14], buffer[15]);
return -EINVAL;
} }
printk(KERN_WARNING "TEA5761 detected.\n"); printk(KERN_WARNING "tea5761: TEA%02x%02x detected. "
"Manufacturer ID= 0x%02x\n",
buffer[14], buffer[15], buffer[13]);
return 0; return 0;
} }
......
...@@ -1111,8 +1111,8 @@ static int tuner_probe(struct i2c_client *client) ...@@ -1111,8 +1111,8 @@ static int tuner_probe(struct i2c_client *client)
if (!no_autodetect) { if (!no_autodetect) {
switch (client->addr) { switch (client->addr) {
case 0x10: case 0x10:
if (tea5761_autodetection(t->i2c->adapter, t->i2c->addr) if (tea5761_autodetection(t->i2c->adapter,
!= EINVAL) { t->i2c->addr) >= 0) {
t->type = TUNER_TEA5761; t->type = TUNER_TEA5761;
t->mode_mask = T_RADIO; t->mode_mask = T_RADIO;
t->mode = T_STANDBY; t->mode = T_STANDBY;
...@@ -1124,7 +1124,7 @@ static int tuner_probe(struct i2c_client *client) ...@@ -1124,7 +1124,7 @@ static int tuner_probe(struct i2c_client *client)
goto register_client; goto register_client;
} }
break; return -ENODEV;
case 0x42: case 0x42:
case 0x43: case 0x43:
case 0x4a: case 0x4a:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment