Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b538d28c authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab
Browse files

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: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 09fee5f8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;
	}


+2 −2
Original line number Diff line number Diff line
@@ -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;