Commit 26a154c3 authored by Aapo Tahkola's avatar Aapo Tahkola Committed by Mauro Carvalho Chehab

V4L/DVB (5424): Fix i2c implementation for gl861 and au6610

- r/w bit is not part of the i2c address
Signed-off-by: default avatarAapo Tahkola <aet@rasterburn.org>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 26247018
...@@ -40,7 +40,7 @@ static int au6610_usb_msg(struct dvb_usb_device *d, u8 operation, u8 addr, ...@@ -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, 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); sizeof(usb_buf), AU6610_USB_TIMEOUT);
if (ret < 0) if (ret < 0)
...@@ -124,7 +124,7 @@ static int au6610_identify_state(struct usb_device *udev, ...@@ -124,7 +124,7 @@ static int au6610_identify_state(struct usb_device *udev,
} }
static struct zl10353_config au6610_zl10353_config = { static struct zl10353_config au6610_zl10353_config = {
.demod_address = 0x1e, .demod_address = 0x0f,
.no_tuner = 1, .no_tuner = 1,
.parallel_ts = 1, .parallel_ts = 1,
}; };
...@@ -140,7 +140,7 @@ static int au6610_zl10353_frontend_attach(struct dvb_usb_adapter *adap) ...@@ -140,7 +140,7 @@ static int au6610_zl10353_frontend_attach(struct dvb_usb_adapter *adap)
} }
static struct qt1010_config au6610_qt1010_config = { static struct qt1010_config au6610_qt1010_config = {
.i2c_address = 0xc4 .i2c_address = 0x62
}; };
static int au6610_qt1010_tuner_attach(struct dvb_usb_adapter *adap) static int au6610_qt1010_tuner_attach(struct dvb_usb_adapter *adap)
......
...@@ -20,7 +20,7 @@ static int gl861_i2c_msg(struct dvb_usb_device *d, u8 addr, ...@@ -20,7 +20,7 @@ static int gl861_i2c_msg(struct dvb_usb_device *d, u8 addr,
u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen) u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen)
{ {
u16 index; u16 index;
u16 value = addr << 8; u16 value = addr << (8 + 1);
int wo = (rbuf == NULL || rlen == 0); /* write-only */ int wo = (rbuf == NULL || rlen == 0); /* write-only */
u8 req, type; u8 req, type;
...@@ -101,7 +101,7 @@ static int gl861_identify_state(struct usb_device *udev, ...@@ -101,7 +101,7 @@ static int gl861_identify_state(struct usb_device *udev,
} }
static struct zl10353_config gl861_zl10353_config = { static struct zl10353_config gl861_zl10353_config = {
.demod_address = 0x1e, .demod_address = 0x0f,
.no_tuner = 1, .no_tuner = 1,
.parallel_ts = 1, .parallel_ts = 1,
}; };
...@@ -117,7 +117,7 @@ static int gl861_frontend_attach(struct dvb_usb_adapter *adap) ...@@ -117,7 +117,7 @@ static int gl861_frontend_attach(struct dvb_usb_adapter *adap)
} }
static struct qt1010_config gl861_qt1010_config = { static struct qt1010_config gl861_qt1010_config = {
.i2c_address = 0xc4 .i2c_address = 0x62
}; };
static int gl861_tuner_attach(struct dvb_usb_adapter *adap) static int gl861_tuner_attach(struct dvb_usb_adapter *adap)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment