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

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

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

parent a589b665
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -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))) {
		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))) {
		printk(KERN_WARNING "Manufacturer ID= 0x%02x, Chip ID = %02x%02x. It is not a TEA5761\n",buffer[13],buffer[14],buffer[15]);
		return EINVAL;
	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]);
		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;
}

+3 −3
Original line number Diff line number Diff line
@@ -1111,8 +1111,8 @@ static int tuner_probe(struct i2c_client *client)
	if (!no_autodetect) {
		switch (client->addr) {
		case 0x10:
			if (tea5761_autodetection(t->i2c->adapter, t->i2c->addr)
					!= EINVAL) {
			if (tea5761_autodetection(t->i2c->adapter,
						  t->i2c->addr) >= 0) {
				t->type = TUNER_TEA5761;
				t->mode_mask = T_RADIO;
				t->mode = T_STANDBY;
@@ -1124,7 +1124,7 @@ static int tuner_probe(struct i2c_client *client)

				goto register_client;
			}
			break;
			return -ENODEV;
		case 0x42:
		case 0x43:
		case 0x4a: