Message ID | 1433576698-1780-2-git-send-email-olli.salonen@iki.fi (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 06/06/2015 10:44 AM, Olli Salonen wrote: > 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> Antti > --- > drivers/media/pci/saa7164/saa7164-api.c | 11 +---------- > 1 file changed, 1 insertion(+), 10 deletions(-) > > diff --git a/drivers/media/pci/saa7164/saa7164-api.c b/drivers/media/pci/saa7164/saa7164-api.c > index e807703..e7e586c 100644 > --- a/drivers/media/pci/saa7164/saa7164-api.c > +++ b/drivers/media/pci/saa7164/saa7164-api.c > @@ -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); >
On Sat, Jun 6, 2015 at 3:44 AM, Olli Salonen <olli.salonen@iki.fi> wrote: > 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. Tested-By: Steven Toth <stoth@kernellabs.com> Checked with a HVR-2205 and a HVR-2215, firmware loads as expected. Thanks for chasing this down Olli.
diff --git a/drivers/media/pci/saa7164/saa7164-api.c b/drivers/media/pci/saa7164/saa7164-api.c index e807703..e7e586c 100644 --- a/drivers/media/pci/saa7164/saa7164-api.c +++ b/drivers/media/pci/saa7164/saa7164-api.c @@ -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);
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> --- drivers/media/pci/saa7164/saa7164-api.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-)