V4L/DVB (5424): Fix i2c implementation for gl861 and au6610
authorAapo Tahkola <aet@rasterburn.org>
Mon, 5 Mar 2007 21:25:36 +0000 (18:25 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Fri, 27 Apr 2007 18:44:36 +0000 (15:44 -0300)
- r/w bit is not part of the i2c address

Signed-off-by: Aapo Tahkola <aet@rasterburn.org>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/dvb/dvb-usb/au6610.c
drivers/media/dvb/dvb-usb/gl861.c

index 0dc66a8d2baff633d6a0c409b5066c82778c7fd9..18e0b16fb2a9ce012109809c0ae8bc15545f9e94 100644 (file)
@@ -40,7 +40,7 @@ static int au6610_usb_msg(struct dvb_usb_device *d, u8 operation, u8 addr,
        }
 
        ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), operation,
-                             USB_TYPE_VENDOR|USB_DIR_IN, addr, index, usb_buf,
+                             USB_TYPE_VENDOR|USB_DIR_IN, addr << 1, index, usb_buf,
                              sizeof(usb_buf), AU6610_USB_TIMEOUT);
 
        if (ret < 0)
@@ -124,7 +124,7 @@ static int au6610_identify_state(struct usb_device *udev,
 }
 
 static struct zl10353_config au6610_zl10353_config = {
-       .demod_address = 0x1e,
+       .demod_address = 0x0f,
        .no_tuner = 1,
        .parallel_ts = 1,
 };
@@ -140,7 +140,7 @@ static int au6610_zl10353_frontend_attach(struct dvb_usb_adapter *adap)
 }
 
 static struct qt1010_config au6610_qt1010_config = {
-       .i2c_address = 0xc4
+       .i2c_address = 0x62
 };
 
 static int au6610_qt1010_tuner_attach(struct dvb_usb_adapter *adap)
index d50f41feadec95dd91c4e0159ed1f370ff8d3dbf..e0587e6635913a85a00bc28169cce11fe90c96af 100644 (file)
@@ -20,7 +20,7 @@ static int gl861_i2c_msg(struct dvb_usb_device *d, u8 addr,
                         u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen)
 {
        u16 index;
-       u16 value = addr << 8;
+       u16 value = addr << (8 + 1);
        int wo = (rbuf == NULL || rlen == 0); /* write-only */
        u8 req, type;
 
@@ -101,7 +101,7 @@ static int gl861_identify_state(struct usb_device *udev,
 }
 
 static struct zl10353_config gl861_zl10353_config = {
-       .demod_address = 0x1e,
+       .demod_address = 0x0f,
        .no_tuner = 1,
        .parallel_ts = 1,
 };
@@ -117,7 +117,7 @@ static int gl861_frontend_attach(struct dvb_usb_adapter *adap)
 }
 
 static struct qt1010_config gl861_qt1010_config = {
-       .i2c_address = 0xc4
+       .i2c_address = 0x62
 };
 
 static int gl861_tuner_attach(struct dvb_usb_adapter *adap)