This patch adds code to Initialize the DMA buffer to compensate for possible hardware data corruption.
Signed-off-by: James Ralston <[email protected]>
---
drivers/i2c/busses/i2c-ismt.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c
index 8ed79a0..d3f30ea 100644
--- a/drivers/i2c/busses/i2c-ismt.c
+++ b/drivers/i2c/busses/i2c-ismt.c
@@ -393,6 +393,9 @@ static int ismt_access(struct i2c_adapter *adap, u16 addr,
desc = &priv->hw[priv->head];
+ /* Initialize the DMA buffer */
+ memset(priv->dma_buffer, 0, (I2C_SMBUS_BLOCK_MAX+1));
+
/* Initialize the descriptor */
memset(desc, 0, sizeof(struct ismt_desc));
desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, read_write);
--
1.7.7.6
On Tue, Sep 24, 2013 at 04:47:55PM -0700, James Ralston wrote:
> This patch adds code to Initialize the DMA buffer to compensate for possible hardware data corruption.
Take care of the line width here.
> Signed-off-by: James Ralston <[email protected]>
> ---
> drivers/i2c/busses/i2c-ismt.c | 3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c
> index 8ed79a0..d3f30ea 100644
> --- a/drivers/i2c/busses/i2c-ismt.c
> +++ b/drivers/i2c/busses/i2c-ismt.c
> @@ -393,6 +393,9 @@ static int ismt_access(struct i2c_adapter *adap, u16 addr,
>
> desc = &priv->hw[priv->head];
>
> + /* Initialize the DMA buffer */
> + memset(priv->dma_buffer, 0, (I2C_SMBUS_BLOCK_MAX+1));
sizeof()?
> +
> /* Initialize the descriptor */
> memset(desc, 0, sizeof(struct ismt_desc));
> desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, read_write);
> --
> 1.7.7.6
>
On Thu, Sep 26, 2013 at 10:40:32AM +0200, Wolfram Sang wrote:
> On Tue, Sep 24, 2013 at 04:47:55PM -0700, James Ralston wrote:
> > This patch adds code to Initialize the DMA buffer to compensate for possible hardware data corruption.
>
> Take care of the line width here.
>
> > Signed-off-by: James Ralston <[email protected]>
> > ---
> > drivers/i2c/busses/i2c-ismt.c | 3 +++
> > 1 files changed, 3 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c
> > index 8ed79a0..d3f30ea 100644
> > --- a/drivers/i2c/busses/i2c-ismt.c
> > +++ b/drivers/i2c/busses/i2c-ismt.c
> > @@ -393,6 +393,9 @@ static int ismt_access(struct i2c_adapter *adap, u16 addr,
> >
> > desc = &priv->hw[priv->head];
> >
> > + /* Initialize the DMA buffer */
> > + memset(priv->dma_buffer, 0, (I2C_SMBUS_BLOCK_MAX+1));
>
> sizeof()?
>
Agreed.
Neil
> > +
> > /* Initialize the descriptor */
> > memset(desc, 0, sizeof(struct ismt_desc));
> > desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, read_write);
> > --
> > 1.7.7.6
> >
On Thu, Sep 26, 2013 at 10:41:15AM -0400, Neil Horman wrote:
> On Thu, Sep 26, 2013 at 10:40:32AM +0200, Wolfram Sang wrote:
> > On Tue, Sep 24, 2013 at 04:47:55PM -0700, James Ralston wrote:
> > > This patch adds code to Initialize the DMA buffer to compensate for possible hardware data corruption.
> >
> > Take care of the line width here.
> >
> > > Signed-off-by: James Ralston <[email protected]>
> > > ---
> > > drivers/i2c/busses/i2c-ismt.c | 3 +++
> > > 1 files changed, 3 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/drivers/i2c/busses/i2c-ismt.c b/drivers/i2c/busses/i2c-ismt.c
> > > index 8ed79a0..d3f30ea 100644
> > > --- a/drivers/i2c/busses/i2c-ismt.c
> > > +++ b/drivers/i2c/busses/i2c-ismt.c
> > > @@ -393,6 +393,9 @@ static int ismt_access(struct i2c_adapter *adap, u16 addr,
> > >
> > > desc = &priv->hw[priv->head];
> > >
> > > + /* Initialize the DMA buffer */
> > > + memset(priv->dma_buffer, 0, (I2C_SMBUS_BLOCK_MAX+1));
> >
> > sizeof()?
> >
> Agreed.
Fixed that myself so it can be in my pull-request to Linus today.