On Fri, Jun 29, 2012 at 05:30:16PM +0800, Marek Vasut wrote: > Dear Dong Aisheng, > > > On Fri, Jun 29, 2012 at 04:24:03PM +0800, Marek Vasut wrote: > > > This patch implements DMA support into mxs-i2c. DMA transfers are now > > > enabled via DT. The DMA operation is enabled by default. > > > > > > Signed-off-by: Marek Vasut <marex@xxxxxxx> > > > Cc: Detlev Zundel <dzu@xxxxxxx> > > > CC: Dong Aisheng <b29396@xxxxxxxxxxxxx> > > > CC: Fabio Estevam <fabio.estevam@xxxxxxxxxxxxx> > > > Cc: Linux ARM kernel <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx> > > > Cc: linux-i2c@xxxxxxxxxxxxxxx > > > CC: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> > > > CC: Shawn Guo <shawn.guo@xxxxxxxxxx> > > > Cc: Stefano Babic <sbabic@xxxxxxx> > > > CC: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > > > Cc: Wolfgang Denk <wd@xxxxxxx> > > > Cc: Wolfram Sang <w.sang@xxxxxxxxxxxxxx> > > > --- > > > > > > Documentation/devicetree/bindings/i2c/i2c-mxs.txt | 4 + > > > arch/arm/boot/dts/imx28.dtsi | 2 + > > > drivers/i2c/busses/i2c-mxs.c | 267 > > > +++++++++++++++++++-- 3 files changed, 251 insertions(+), 22 > > > deletions(-) > > > > > > diff --git a/Documentation/devicetree/bindings/i2c/i2c-mxs.txt > > > b/Documentation/devicetree/bindings/i2c/i2c-mxs.txt index > > > d2bf750..9497ee0 100644 > > > --- a/Documentation/devicetree/bindings/i2c/i2c-mxs.txt > > > +++ b/Documentation/devicetree/bindings/i2c/i2c-mxs.txt > > > > > > @@ -5,6 +5,10 @@ Required properties: > > > - reg: Should contain registers location and length > > > - interrupts: Should contain ERROR and DMA interrupts > > > - clock-frequency: desired I2C bus clock frequency in Hz. > > > > > > +- fsl,i2c-dma-channel: APBX DMA channel for the I2C > > > > Shoundn't this be optional? > > DMA channel? No, why? > User can use pio mode, so actually it's optional. Is it reasonable? > > > > > + /* > > > + * The last descriptor must have this callback, > > > + * to finish the DMA transaction. > > > + */ > > > + desc->callback = mxs_i2c_dma_irq_callback; > > > + desc->callback_param = i2c; > > > + > > > + /* Start the transfer. */ > > > + dmaengine_submit(desc); > > > + dma_async_issue_pending(i2c->dmach); > > > + return 0; > > > + > > > +/* Read failpath. */ > > > +read_init_dma_fail: > > > + dma_unmap_sg(i2c->dev, &i2c->sg_io[1], 1, DMA_FROM_DEVICE); > > > +select_init_dma_fail: > > > + dma_unmap_sg(i2c->dev, &i2c->sg_io[0], 1, DMA_TO_DEVICE); > > > +select_init_pio_fail: > > > + return 1; > > > > look strange why return 1; > > Because it failed. -Esomething might be better ? > i think yes. Regards Dong Aisheng -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html