Signed-off-by: Gon Solo <gons...@gmail.com>
---
 drivers/media/usb/dvb-usb-v2/af9035.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/media/usb/dvb-usb-v2/af9035.c 
b/drivers/media/usb/dvb-usb-v2/af9035.c
index 3afd18733614..51e607ea3add 100644
--- a/drivers/media/usb/dvb-usb-v2/af9035.c
+++ b/drivers/media/usb/dvb-usb-v2/af9035.c
@@ -1197,6 +1197,15 @@ static int af9035_frontend_attach(struct dvb_usb_adapter 
*adap)
        return ret;
 }
 
+/*
+ * The I2C speed register is calculated with:
+ *     I2C speed register = (1000000000 / (24.4 * 16 * I2C_speed))
+ *
+ * The default speed register for it930x is 7, with means a
+ * speed of ~366 kbps
+ */
+#define I2C_SPEED_366K 7
+
 static int it930x_frontend_attach(struct dvb_usb_adapter *adap)
 {
        struct state *state = adap_to_priv(adap);
@@ -1208,13 +1217,13 @@ static int it930x_frontend_attach(struct 
dvb_usb_adapter *adap)
 
        dev_dbg(&intf->dev, "adap->id=%d\n", adap->id);
 
-       /* I2C master bus 2 clock speed 300k */
-       ret = af9035_wr_reg(d, 0x00f6a7, 0x07);
+       /* I2C master bus 2 clock speed 366k */
+       ret = af9035_wr_reg(d, 0x00f6a7, I2C_SPEED_366K);
        if (ret < 0)
                goto err;
 
-       /* I2C master bus 1,3 clock speed 300k */
-       ret = af9035_wr_reg(d, 0x00f103, 0x07);
+       /* I2C master bus 1,3 clock speed 366k */
+       ret = af9035_wr_reg(d, 0x00f103, I2C_SPEED_366K);
        if (ret < 0)
                goto err;
 
-- 
2.20.1

Reply via email to