• Nicolas Pitre's avatar
    pxamci: support arbitrary block size · c783837b
    Nicolas Pitre authored
    The PXA has two transmit FIFOes, each32 byte deep.  when one FIFO is
    full and the other one has been transmitted, they are automatically
    swapped and DMA is triggered for another 32 byte burst.  However, when
    there is less than 32 bytes left to send, the FIFO swap has to be done
    manually. This is required for some SDIO transfers which are not
    required to be multiples of 32 bytes.
    
    A DMA completion interrupt is set for each descriptor which length isn't
    a multiple of 32 in order to force the FIFO swap.  While at it, the DMA
    interrupt handler has been made a bit more resilient against errors.
    Signed-off-by: default avatarNicolas Pitre <nico@marvell.com>
    Signed-off-by: default avatarPierre Ossman <drzeus@drzeus.cx>
    c783837b
pxamci.c 14.7 KB