diff options
author | Marek Vasut <marex@denx.de> | 2012-11-18 09:25:07 +0400 |
---|---|---|
committer | Wolfram Sang <w.sang@pengutronix.de> | 2012-11-23 02:03:09 +0400 |
commit | c35d3cfdbc8d4fb4358a5bc97a334dbdb86e3d69 (patch) | |
tree | 60f21b33f1014b873097065b058dc3fabc71e9eb /drivers/i2c | |
parent | 31f313d9bebfc17e48c787c8c36b38662b4134a1 (diff) | |
download | linux-c35d3cfdbc8d4fb4358a5bc97a334dbdb86e3d69.tar.xz |
i2c: mxs: Handle i2c DMA failure properly
Properly terminate the DMA transfer in case the DMA PIO transfer
or setup fails for any reason.
Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Wolfram Sang <w.sang@pengutronix.de>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-mxs.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c index 286ca1917820..0670da79ee5e 100644 --- a/drivers/i2c/busses/i2c-mxs.c +++ b/drivers/i2c/busses/i2c-mxs.c @@ -287,12 +287,14 @@ read_init_dma_fail: select_init_dma_fail: dma_unmap_sg(i2c->dev, &i2c->sg_io[0], 1, DMA_TO_DEVICE); select_init_pio_fail: + dmaengine_terminate_all(i2c->dmach); return -EINVAL; /* Write failpath. */ write_init_dma_fail: dma_unmap_sg(i2c->dev, i2c->sg_io, 2, DMA_TO_DEVICE); write_init_pio_fail: + dmaengine_terminate_all(i2c->dmach); return -EINVAL; } |