]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: af9035: add the formula used for the I2C speed
authorMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 4 Oct 2019 13:08:28 +0000 (10:08 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 10 Oct 2019 10:06:35 +0000 (07:06 -0300)
A very old patch sent to the media ML used to contain the
I2C speed formula:

https://lore.kernel.org/linux-media/1312539895.2763.33.camel@Jason-Linux/

When the ite9135 code was merged with af9035, the formula was
lost. As we might need to slow down the speed for some devices,
add the formula again.

No functional changes.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/usb/dvb-usb-v2/af9035.c

index 3afd18733614a37e2e031ce6f0260a27d854693d..51e607ea3addbf47cabf2349ed9a43a993dcf3c8 100644 (file)
@@ -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;