diff options
author | Hans-Frieder Vogt <hfvogt@gmx.net> | 2012-04-01 13:11:29 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2012-04-09 13:45:16 -0400 |
commit | 812fe6d9426a23ad78055f1fa955acef9bea9a93 (patch) | |
tree | 31d9ee0f04c1393a322c9fa936fb92532803318b | |
parent | 8e8a5ac763d057fae50f2f7cc4fc830c5f815d26 (diff) |
[media] af9035: i2c read fix
Enable i2c read requests.
I2C read fix (necessary e.g. for mxl5007t tuner, because it
sends a 2 bytes for a read request, thus msg[0].len != msg[1].len).
Signed-off-by: Hans-Frieder Vogt <hfvogt@gmx.net>
Signed-off-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/dvb/dvb-usb/af9035.c | 11 |
1 files changed, 1 insertions, 10 deletions
diff --git a/drivers/media/dvb/dvb-usb/af9035.c b/drivers/media/dvb/dvb-usb/af9035.c index dc0a49ac664a..6a83120afcd6 100644 --- a/drivers/media/dvb/dvb-usb/af9035.c +++ b/drivers/media/dvb/dvb-usb/af9035.c | |||
@@ -209,24 +209,15 @@ static int af9035_i2c_master_xfer(struct i2c_adapter *adap, | |||
209 | msg[1].len); | 209 | msg[1].len); |
210 | } else { | 210 | } else { |
211 | /* I2C */ | 211 | /* I2C */ |
212 | #if 0 | ||
213 | /* | ||
214 | * FIXME: Keep that code. It should work but as it is | ||
215 | * not tested I left it disabled and return -EOPNOTSUPP | ||
216 | * for the sure. | ||
217 | */ | ||
218 | u8 buf[4 + msg[0].len]; | 212 | u8 buf[4 + msg[0].len]; |
219 | struct usb_req req = { CMD_I2C_RD, 0, sizeof(buf), | 213 | struct usb_req req = { CMD_I2C_RD, 0, sizeof(buf), |
220 | buf, msg[1].len, msg[1].buf }; | 214 | buf, msg[1].len, msg[1].buf }; |
221 | buf[0] = msg[0].len; | 215 | buf[0] = msg[1].len; |
222 | buf[1] = msg[0].addr << 1; | 216 | buf[1] = msg[0].addr << 1; |
223 | buf[2] = 0x01; | 217 | buf[2] = 0x01; |
224 | buf[3] = 0x00; | 218 | buf[3] = 0x00; |
225 | memcpy(&buf[4], msg[0].buf, msg[0].len); | 219 | memcpy(&buf[4], msg[0].buf, msg[0].len); |
226 | ret = af9035_ctrl_msg(d->udev, &req); | 220 | ret = af9035_ctrl_msg(d->udev, &req); |
227 | #endif | ||
228 | pr_debug("%s: I2C operation not supported\n", __func__); | ||
229 | ret = -EOPNOTSUPP; | ||
230 | } | 221 | } |
231 | } else if (num == 1 && !(msg[0].flags & I2C_M_RD)) { | 222 | } else if (num == 1 && !(msg[0].flags & I2C_M_RD)) { |
232 | if (msg[0].len > 40) { | 223 | if (msg[0].len > 40) { |