[media] saa7164: Improvements for I2C handling"
authorOlli Salonen <olli.salonen@iki.fi>
Sat, 6 Jun 2015 07:44:58 +0000 (04:44 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Wed, 10 Jun 2015 14:46:03 +0000 (11:46 -0300)
This reverts commit ad90b6b0f10566d4a5546e27fe455ce3b5e6b6c7.

This patch breaks I2C communication towards Si2168. After reverting and
applying the other patch in this series the I2C communication is
correct.

Signed-off-by: Olli Salonen <olli.salonen@iki.fi>
Reviewed-by: Antti Palosaari <crope@iki.fi>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/pci/saa7164/saa7164-api.c

index e8077037fb5c785f0fdaf947dba7482e8b20a2a0..e7e586c1ba535af882a2159f5e33ae2f0286ef91 100644 (file)
@@ -1385,8 +1385,7 @@ int saa7164_api_i2c_read(struct saa7164_i2c *bus, u8 addr, u32 reglen, u8 *reg,
         *       08... register address
         */
        memset(buf, 0, sizeof(buf));
-       if (reg)
-               memcpy((buf + 2 * sizeof(u32) + 0), reg, reglen);
+       memcpy((buf + 2 * sizeof(u32) + 0), reg, reglen);
        *((u32 *)(buf + 0 * sizeof(u32))) = reglen;
        *((u32 *)(buf + 1 * sizeof(u32))) = datalen;
 
@@ -1475,14 +1474,6 @@ int saa7164_api_i2c_write(struct saa7164_i2c *bus, u8 addr, u32 datalen,
         *       04-07 dest bytes to write
         *       08... register address
         */
-       if (datalen == 1) {
-               /* Workaround for issues with i2c components
-                * that issue writes with no data. IE: SI2168/2157
-                * Increase reglen by 1, strobe out an additional byte,
-                * ignored by SI2168/2157.
-                */
-               datalen++;
-       }
        *((u32 *)(buf + 0 * sizeof(u32))) = reglen;
        *((u32 *)(buf + 1 * sizeof(u32))) = datalen - reglen;
        memcpy((buf + 2 * sizeof(u32)), data, datalen);