All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] i2c: mxs: Handle i2c DMA failure properly
@ 2012-11-14 14:31 Marek Vasut
       [not found] ` <1352903508-18113-1-git-send-email-marex-ynQEQJNshbs@public.gmane.org>
  0 siblings, 1 reply; 6+ messages in thread
From: Marek Vasut @ 2012-11-14 14:31 UTC (permalink / raw)
  To: linux-i2c-u79uwXL29TY76Z2rM5mHXA
  Cc: Marek Vasut, Fabio Estevam, Tim Michals, Wolfram Sang

Properly terminate the DMA transfer in case the DMA PIO transfer
or setup fails for any reason. While at it, enable support for
SMBUS_QUICK. This essentially fixes i2c-detect on this IP.

Signed-off-by: Marek Vasut <marex-ynQEQJNshbs@public.gmane.org>
Cc: Fabio Estevam <festevam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Tim Michals <tcmichals-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Wolfram Sang <w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
---
 drivers/i2c/busses/i2c-mxs.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c
index 286ca19..6ed53da 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;
 }
 
@@ -357,7 +359,7 @@ static int mxs_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[],
 
 static u32 mxs_i2c_func(struct i2c_adapter *adap)
 {
-	return I2C_FUNC_I2C | (I2C_FUNC_SMBUS_EMUL & ~I2C_FUNC_SMBUS_QUICK);
+	return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL;
 }
 
 static irqreturn_t mxs_i2c_isr(int this_irq, void *dev_id)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-11-16 15:29 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-14 14:31 [PATCH] i2c: mxs: Handle i2c DMA failure properly Marek Vasut
     [not found] ` <1352903508-18113-1-git-send-email-marex-ynQEQJNshbs@public.gmane.org>
2012-11-14 15:13   ` Fabio Estevam
     [not found]     ` <CAOMZO5AVDXeu59ZwB35k_0yYx5XwTzdmtj+QXXEoQRMs7Br-KA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-14 15:22       ` Marek Vasut
     [not found]         ` <CANqk_c-f3+a=f1QqWFxEpGcMQRqMD61eHiXNLyfzciJkzPGMRA@mail.gmail.com>
     [not found]           ` <CANqk_c-f3+a=f1QqWFxEpGcMQRqMD61eHiXNLyfzciJkzPGMRA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-15  4:01             ` Marek Vasut
2012-11-16 14:16             ` Wolfram Sang
     [not found]               ` <CANqk_c8xocNsdbj+FFowPjjj_7vWuZ3OEurRHc+fFF-=pYRu0w@mail.gmail.com>
     [not found]                 ` <CANqk_c8xocNsdbj+FFowPjjj_7vWuZ3OEurRHc+fFF-=pYRu0w-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-11-16 15:29                   ` Fabio Estevam

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.