aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/dvb/dvb-usb/au6610.c29
-rw-r--r--drivers/media/dvb/dvb-usb/gl861.c11
2 files changed, 23 insertions, 17 deletions
diff --git a/drivers/media/dvb/dvb-usb/au6610.c b/drivers/media/dvb/dvb-usb/au6610.c
index 1c0160dfc2af..456b89f4f761 100644
--- a/drivers/media/dvb/dvb-usb/au6610.c
+++ b/drivers/media/dvb/dvb-usb/au6610.c
@@ -24,8 +24,8 @@ static int au6610_usb_msg(struct dvb_usb_device *d, u8 operation, u8 addr,
24{ 24{
25 int ret; 25 int ret;
26 u16 index; 26 u16 index;
27 u8 usb_buf[6]; /* enough for all known requests, read returns 5 and write 6 bytes */ 27 u8 usb_buf[6]; /* enough for all known requests,
28 28 read returns 5 and write 6 bytes */
29 switch (wlen) { 29 switch (wlen) {
30 case 1: 30 case 1:
31 index = wbuf[0] << 8; 31 index = wbuf[0] << 8;
@@ -40,7 +40,7 @@ static int au6610_usb_msg(struct dvb_usb_device *d, u8 operation, u8 addr,
40 } 40 }
41 41
42 ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), operation, 42 ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), operation,
43 USB_TYPE_VENDOR | USB_DIR_IN, addr, index, usb_buf, 43 USB_TYPE_VENDOR|USB_DIR_IN, addr, index, usb_buf,
44 sizeof(usb_buf), AU6610_USB_TIMEOUT); 44 sizeof(usb_buf), AU6610_USB_TIMEOUT);
45 45
46 if (ret < 0) 46 if (ret < 0)
@@ -56,7 +56,8 @@ static int au6610_usb_msg(struct dvb_usb_device *d, u8 operation, u8 addr,
56 return ret; 56 return ret;
57} 57}
58 58
59static int au6610_i2c_msg(struct dvb_usb_device *d, u8 addr, u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen) 59static int au6610_i2c_msg(struct dvb_usb_device *d, u8 addr,
60 u8 *wbuf, u16 wlen, u8 *rbuf, u16 rlen)
60{ 61{
61 u8 request; 62 u8 request;
62 u8 wo = (rbuf == NULL || rlen == 0); /* write-only */ 63 u8 wo = (rbuf == NULL || rlen == 0); /* write-only */
@@ -72,7 +73,8 @@ static int au6610_i2c_msg(struct dvb_usb_device *d, u8 addr, u8 *wbuf, u16 wlen,
72 73
73 74
74/* I2C */ 75/* I2C */
75static int au6610_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int num) 76static int au6610_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
77 int num)
76{ 78{
77 struct dvb_usb_device *d = i2c_get_adapdata(adap); 79 struct dvb_usb_device *d = i2c_get_adapdata(adap);
78 int i; 80 int i;
@@ -87,7 +89,8 @@ static int au6610_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[], int n
87 /* write/read request */ 89 /* write/read request */
88 if (i+1 < num && (msg[i+1].flags & I2C_M_RD)) { 90 if (i+1 < num && (msg[i+1].flags & I2C_M_RD)) {
89 if (au6610_i2c_msg(d, msg[i].addr, msg[i].buf, 91 if (au6610_i2c_msg(d, msg[i].addr, msg[i].buf,
90 msg[i].len, msg[i+1].buf, msg[i+1].len) < 0) 92 msg[i].len, msg[i+1].buf,
93 msg[i+1].len) < 0)
91 break; 94 break;
92 i++; 95 i++;
93 } else if (au6610_i2c_msg(d, msg[i].addr, msg[i].buf, 96 } else if (au6610_i2c_msg(d, msg[i].addr, msg[i].buf,
@@ -143,13 +146,14 @@ static struct qt1010_config au6610_qt1010_config = {
143static int au6610_qt1010_tuner_attach(struct dvb_usb_adapter *adap) 146static int au6610_qt1010_tuner_attach(struct dvb_usb_adapter *adap)
144{ 147{
145 /* TODO FIXME; probably I2C gate. 148 /* TODO FIXME; probably I2C gate.
146 QT1010 tuner does not respond before we write 0x1a to ZL10353 demodulator 149 QT1010 tuner does not respond before we write 0x1a to ZL10353 demod
147 register 0x62. This ought to be done somewhere in demodulator initialization. 150 register 0x62. This ought to be done somewhere in demod initialization.
148 This solution is temporary hack. */ 151 This solution is temporary hack. */
152
149 u8 buf[2] = { 0x62, 0x1a }; 153 u8 buf[2] = { 0x62, 0x1a };
150 struct i2c_msg msg = { 154 struct i2c_msg msg = { .addr = au6610_zl10353_config.demod_address,
151 .addr = au6610_zl10353_config.demod_address, .flags = 0, .buf = buf, .len = 2 155 .flags = 0, .buf = buf, .len = 2 };
152 }; 156
153 if (i2c_transfer(&adap->dev->i2c_adap, &msg, 1) != 1) { 157 if (i2c_transfer(&adap->dev->i2c_adap, &msg, 1) != 1) {
154 printk(KERN_WARNING "au6610 tuner attach failed\n"); 158 printk(KERN_WARNING "au6610 tuner attach failed\n");
155 return -EREMOTEIO; 159 return -EREMOTEIO;
@@ -162,7 +166,8 @@ static int au6610_qt1010_tuner_attach(struct dvb_usb_adapter *adap)
162/* DVB USB Driver stuff */ 166/* DVB USB Driver stuff */
163static struct dvb_usb_device_properties au6610_properties; 167static struct dvb_usb_device_properties au6610_properties;
164 168
165static int au6610_probe(struct usb_interface *intf, const struct usb_device_id *id) 169static int au6610_probe(struct usb_interface *intf,
170 const struct usb_device_id *id)
166{ 171{
167 struct dvb_usb_device *d; 172 struct dvb_usb_device *d;
168 struct usb_host_interface *alt; 173 struct usb_host_interface *alt;
diff --git a/drivers/media/dvb/dvb-usb/gl861.c b/drivers/media/dvb/dvb-usb/gl861.c
index 200ba13d1d19..d62edb533d00 100644
--- a/drivers/media/dvb/dvb-usb/gl861.c
+++ b/drivers/media/dvb/dvb-usb/gl861.c
@@ -123,13 +123,14 @@ static struct qt1010_config gl861_qt1010_config = {
123static int gl861_tuner_attach(struct dvb_usb_adapter *adap) 123static int gl861_tuner_attach(struct dvb_usb_adapter *adap)
124{ 124{
125 /* TODO FIXME; probably I2C gate. 125 /* TODO FIXME; probably I2C gate.
126 QT1010 tuner does not respond before we write 0x1a to ZL10353 demodulator 126 QT1010 tuner does not respond before we write 0x1a to ZL10353 demod
127 register 0x62. This ought to be done somewhere in demodulator initialization. 127 register 0x62. This ought to be done somewhere in demod initialization.
128 This solution is temporary hack. */ 128 This solution is temporary hack. */
129
129 u8 buf[2] = { 0x62, 0x1a }; 130 u8 buf[2] = { 0x62, 0x1a };
130 struct i2c_msg msg = { 131 struct i2c_msg msg = { .addr = gl861_zl10353_config.demod_address,
131 .addr = gl861_zl10353_config.demod_address, .flags = 0, .buf = buf, .len = 2 132 .flags = 0, .buf = buf, .len = 2 };
132 }; 133
133 if (i2c_transfer(&adap->dev->i2c_adap, &msg, 1) != 1) { 134 if (i2c_transfer(&adap->dev->i2c_adap, &msg, 1) != 1) {
134 printk(KERN_WARNING "gl861 tuner attach failed\n"); 135 printk(KERN_WARNING "gl861 tuner attach failed\n");
135 return -EREMOTEIO; 136 return -EREMOTEIO;