Add support for I2C read operation without a preceeding write.

While here, change the error code to EOPNOTSUPP in case an
unsupported I2C operation is attempted.

Signed-off-by: Olli Salonen <olli.salo...@iki.fi>
---
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 
b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
index 895441f..54cb109 100644
--- a/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+++ b/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
@@ -232,8 +232,14 @@ static int rtl28xxu_i2c_xfer(struct i2c_adapter *adap, 
struct i2c_msg msg[],
                        req.data = msg[0].buf;
                        ret = rtl28xxu_ctrl_msg(d, &req);
                }
+       } else if (num == 1 && (msg[0].flags & I2C_M_RD)) {
+               req.value = (msg[0].addr << 1);
+               req.index = CMD_I2C_DA_RD;
+               req.size = msg[0].len;
+               req.data = msg[0].buf;
+               ret = rtl28xxu_ctrl_msg(d, &req);
        } else {
-               ret = -EINVAL;
+               ret = -EOPNOTSUPP;
        }
 
 err_mutex_unlock:
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to