mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
V4L/DVB (7804): tea5767: Fix error logic
As pointed by Andrew Morton, the error testing were wrong. After reviewing tea5767, it were returning a positive value for errors. So, the double errors were cancelling each other. This patch fix it properly. It also considers any positive value as ok, on tuner-core. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
09fee5f821
commit
b538d28c2e
@ -373,14 +373,14 @@ int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr)
|
||||
|
||||
if ((rc = tuner_i2c_xfer_recv(&i2c, buffer, 7))< 5) {
|
||||
printk(KERN_WARNING "It is not a TEA5767. Received %i bytes.\n", rc);
|
||||
return EINVAL;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* If all bytes are the same then it's a TV tuner and not a tea5767 */
|
||||
if (buffer[0] == buffer[1] && buffer[0] == buffer[2] &&
|
||||
buffer[0] == buffer[3] && buffer[0] == buffer[4]) {
|
||||
printk(KERN_WARNING "All bytes are equal. It is not a TEA5767\n");
|
||||
return EINVAL;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Status bytes:
|
||||
@ -390,7 +390,7 @@ int tea5767_autodetection(struct i2c_adapter* i2c_adap, u8 i2c_addr)
|
||||
*/
|
||||
if (((buffer[3] & 0x0f) != 0x00) || (buffer[4] != 0x00)) {
|
||||
printk(KERN_WARNING "Chip ID is not zero. It is not a TEA5767\n");
|
||||
return EINVAL;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1165,7 +1165,7 @@ static int tuner_probe(struct i2c_client *client,
|
||||
/* If chip is not tda8290, don't register.
|
||||
since it can be tda9887*/
|
||||
if (tuner_symbol_probe(tda829x_probe, t->i2c->adapter,
|
||||
t->i2c->addr) == 0) {
|
||||
t->i2c->addr) >= 0) {
|
||||
tuner_dbg("tda829x detected\n");
|
||||
} else {
|
||||
/* Default is being tda9887 */
|
||||
@ -1179,7 +1179,7 @@ static int tuner_probe(struct i2c_client *client,
|
||||
case 0x60:
|
||||
if (tuner_symbol_probe(tea5767_autodetection,
|
||||
t->i2c->adapter, t->i2c->addr)
|
||||
!= EINVAL) {
|
||||
>= 0) {
|
||||
t->type = TUNER_TEA5767;
|
||||
t->mode_mask = T_RADIO;
|
||||
t->mode = T_STANDBY;
|
||||
|
Loading…
Reference in New Issue
Block a user