Browse Source

V4L/DVB (5525): Usbvision: fix confusion over 7-bit vs 8-bit TDDA9887 addresses

The code was testing an 8-bit address against a 7-bit address.  Will the
confusion of the two never cease?
Biggest flaw of the I2C protocol:  the R/W bit is the LSB instead of the
MSB.  No one can ever agree if addresses are 7-bits and the R/W bit
follows them, or if they are 8-bit and the R/W bit is OR-ed into the
address byte.  If the R/W bit was first, it wouldn't make any difference!

Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Trent Piepho 18 years ago
parent
commit
3153bd91bf
1 changed files with 4 additions and 3 deletions
  1. 4 3
      drivers/media/video/usbvision/usbvision-i2c.c

+ 4 - 3
drivers/media/video/usbvision/usbvision-i2c.c

@@ -278,9 +278,10 @@ static int attach_inform(struct i2c_client *client)
 
 	usbvision = i2c_get_adapdata(client->adapter);
 	switch (client->addr << 1) {
-		case 0x86:
-		case 0x43:
-		case 0x4b:
+		case 0x42 << 1:
+		case 0x43 << 1:
+		case 0x4a << 1:
+		case 0x4b << 1:
 		{
 			struct tuner_setup tun_setup;