}
 
        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)
 }
 
 static struct zl10353_config au6610_zl10353_config = {
-       .demod_address = 0x1e,
+       .demod_address = 0x0f,
        .no_tuner = 1,
        .parallel_ts = 1,
 };
 }
 
 static struct qt1010_config au6610_qt1010_config = {
-       .i2c_address = 0xc4
+       .i2c_address = 0x62
 };
 
 static int au6610_qt1010_tuner_attach(struct dvb_usb_adapter *adap)
 
                         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;
 
 }
 
 static struct zl10353_config gl861_zl10353_config = {
-       .demod_address = 0x1e,
+       .demod_address = 0x0f,
        .no_tuner = 1,
        .parallel_ts = 1,
 };
 }
 
 static struct qt1010_config gl861_qt1010_config = {
-       .i2c_address = 0xc4
+       .i2c_address = 0x62
 };
 
 static int gl861_tuner_attach(struct dvb_usb_adapter *adap)