Răsfoiți Sursa

i2c: rcar: use correct length when unmapping DMA

Because we need to transfer some bytes with PIO, the msg length is not
the length of the DMA buffer. Use the correct value which we used when
doing the mapping.

Fixes: 73e8b0528346e8 ("i2c: rcar: add DMA support")
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Wolfram Sang 8 ani în urmă
părinte
comite
916335036d
1 a modificat fișierele cu 1 adăugiri și 1 ștergeri
  1. 1 1
      drivers/i2c/busses/i2c-rcar.c

+ 1 - 1
drivers/i2c/busses/i2c-rcar.c

@@ -319,7 +319,7 @@ static void rcar_i2c_dma_unmap(struct rcar_i2c_priv *priv)
 	rcar_i2c_write(priv, ICFBSCR, TCYC06);
 	rcar_i2c_write(priv, ICFBSCR, TCYC06);
 
 
 	dma_unmap_single(chan->device->dev, sg_dma_address(&priv->sg),
 	dma_unmap_single(chan->device->dev, sg_dma_address(&priv->sg),
-			 priv->msg->len, priv->dma_direction);
+			 sg_dma_len(&priv->sg), priv->dma_direction);
 
 
 	priv->dma_direction = DMA_NONE;
 	priv->dma_direction = DMA_NONE;
 }
 }