On Mon, Jul 15, 2013 at 05:53:08PM +0200, Lars-Peter Clausen wrote: > Implemnt the device_slave_caps() callback for the pl330 driver. This allows typo ^^^^ > dmaengine users like the generic ALSA dmaengine PCM driver to query the > capabilities of the driver. The PL330 supports all buswidths and both > mem-to-dev as well as dev-to-mem transfers. In theory there is no limit on the > number of segments that can be transferred (in practice you'll run out of > memory > eventually) and the number of bytes per segment is limited by the size of the > PL330 program buffer. Due to the nature of the PL330 the maximum number of > bytes > per segment depends on the burstsize, the driver sets it to the value for a > 1-byte burstsize, since it is the smallest. > > Signed-off-by: Lars-Peter Clausen <l...@metafoo.de> > --- > drivers/dma/pl330.c | 27 +++++++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c > index 593827b..2bf578c 100644 > --- a/drivers/dma/pl330.c > +++ b/drivers/dma/pl330.c > @@ -2855,6 +2855,32 @@ static irqreturn_t pl330_irq_handler(int irq, void > *data) > return IRQ_NONE; > } > > +#define PL330_DMA_BUSWIDTHS \ > + BIT(DMA_SLAVE_BUSWIDTH_UNDEFINED) | \ > + BIT(DMA_SLAVE_BUSWIDTH_1_BYTE) | \ > + BIT(DMA_SLAVE_BUSWIDTH_2_BYTES) | \ > + BIT(DMA_SLAVE_BUSWIDTH_4_BYTES) | \ > + BIT(DMA_SLAVE_BUSWIDTH_8_BYTES) checkpatch cribs that this is complex macro and should be enclosed in a parenthesis, I have ignored it as usage doesnt justify it, yet! > + > +static int pl330_dma_device_slave_caps(struct dma_chan *dchan, > + struct dma_slave_caps *caps) > +{ > + caps->src_addr_widths = PL330_DMA_BUSWIDTHS; > + caps->dstn_addr_widths = PL330_DMA_BUSWIDTHS; > + caps->directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV); > + caps->cmd_pause = false; > + caps->cmd_terminate = true; > + > + /* trailing whitepsace here! > + * This is the limit for transfers with a buswidth of 1, larger > buswidths you could have sticked to 80 char rule here very easily... > + * will have larger limits. > + */ Now, i am catching a plane for a work trip tomorrow, so have fixed checkpatch and typo and applied this.
~Vinod -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/