On Thu, Jul 14, 2011 at 6:27 AM, boojin <boojin.kim@xxxxxxxxxxx> wrote: > Jassi Brar wrote: > >> On Tue, Jul 5, 2011 at 12:03 PM, Chanho Park <parkch98@xxxxxxxxx> wrote: >> > 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. >> > >> It might be even better to start with max possible width and >> keep decreasing 'i' in the loop. > I will addressed your comment on next release. Actually, best would be to simply do peri->burst_sz = __ffs(slave_config->src_addr_width); And sorry I haven't yet reviewed the patches because I have been very busy lately. Will be more active in a few days. ��.n��������+%������w��{.n�����{��Ʀ����)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥