[PATCH 3/7] DMA: PL330: Add DMA capabilities

Chanho Park parkch98 at gmail.com
Tue Jul 5 02:33:49 EDT 2011


Kukjin Kim <kgene.kim <at> samsung.com> writes:

(snip)

> +             if (slave_config->direction == DMA_TO_DEVICE) {
> +                     if (slave_config->dst_addr)
> +                             peri->fifo_addr = slave_config->dst_addr;
> +                     if (slave_config->dst_addr_width) {
> +                             i = 0;
> +                             while (slave_config->dst_addr_width != (1 <<
i))
> +                                     i++;
> +                             peri->burst_sz = i;
> +                     }
> +             } else if (slave_config->direction == DMA_FROM_DEVICE) {
> +                     if (slave_config->src_addr)
> +                             peri->fifo_addr = slave_config->src_addr;
> +                     if (slave_config->src_addr_width) {
> +                             i = 0;
> +                             while (slave_config->src_addr_width != (1 <<
i))
> +                                     i++;
> +                             peri->burst_sz = i;

Re-send including cc and mailing lists
--
pl330 dmac only supports 1/2/4/8/16 bytes burst size.
If some bad D/D doesn't use powers of 2 width,
dmaengine is going to infinite loop.
You'd better check it instead of running loop.



More information about the linux-arm-kernel mailing list