On Mon, Apr 6, 2009 at 8:54 AM, Atsushi Nemoto <anemo@xxxxxxxxxxxxx> wrote: > This patch adds support for the integrated DMAC of the TXx9 family. > > Signed-off-by: Atsushi Nemoto <anemo@xxxxxxxxxxxxx> > --- Not quite "ackable" yet... > +#ifdef CONFIG_MACH_TX49XX > +#define TXX9_DMA_MAY_HAVE_64BIT_REGS > +#define TXX9_DMA_HAVE_CCR_LE > +#define TXX9_DMA_HAVE_SMPCHN > +#define TXX9_DMA_HAVE_IRQ_PER_CHAN > +#endif > + > +#ifdef TXX9_DMA_HAVE_SMPCHN > +#define TXX9_DMA_USE_SIMPLE_CHAIN > +#endif > + There seems to be a lot of ifdef magic in the code based on these defines. Can we move this magic and some of the pure definitions to drivers/dma/txx9dmac.h? (See the "#ifdefs are ugly" section of Documentation/SubmittingPatches) > +static struct dma_async_tx_descriptor * > +txx9dmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src, > + size_t len, unsigned long flags) [..] > + if (!first) { > + first = desc; > + } else { > + desc_write_CHAR(dc, prev, desc->txd.phys); > + dma_sync_single_for_device(chan2parent(&dc->chan), > + prev->txd.phys, ddev->descsize, > + DMA_TO_DEVICE); > + list_add_tail(&desc->desc_node, > + &first->txd.tx_list); > + } Is there a reason to keep f'irst' off of the tx_list? It seems like you could simplify this logic and get rid of the scary looking list_splice followed by list_add in txx9dmac_desc_put. It also seems odd that the descriptors on tx_list are not reachable from the dc->queue list after a submit... but maybe I am missing a subtle detail? Regards, Dan