[PATCH] mmci: sync DATAEND irq with dma transfer done
Vitaly Wool
vitalywool at gmail.com
Wed Apr 20 13:58:40 EDT 2011
On Wed, Apr 20, 2011 at 7:17 PM, Linus Walleij <linus.walleij at linaro.org> wrote:
>
> What we need is a DMAXFERCOMPLETE flag so we know that
> the DMA state machine is really finished. Sadly the hardware lacks
> such a status flag, so there is no way to know that the DMA state
> machine is finished by looking at any status registers in the
> MMCI block.
>
> We are thus reliant on the other end of the bitpipe telling us
> it's finished.
Okay, but can't we have something like this then in the unmap function:
for (i = 0; i < 100; i++) {
status = readl(host->base + MMCISTATUS);
if (host->unreliable_rxflags) {
if (host->dataend)
break;
} else if (!(status & MCI_RXDATAAVLBLMASK))
break;
udelay(10);
}
to minimize the changes and apparently address Russell's concern as well?
Thanks,
Vitaly
More information about the linux-arm-kernel
mailing list