• Andrew Lunn's avatar
    mmc: mvsdio: Work around broken TX DMA · 3c583f70
    Andrew Lunn authored
    In order to use the mvsdio driver for sdio, it has been necessary to
    use a module parameter to disable DMA so to force PIO is used. It is
    then possible to use wireless LAN devices like mwifiex found on
    topkick and mirabox. However, accessing an MMC SD card does work with
    DMA.
    
    Investigation has shown that MMC block device accesses are always
    aligned to 64 byte boundaries, where as transfers from mwifiex are
    rarely more than word aligned. It has also been determined that card
    to host transfers work with DMA for SDIO devices, but host to card
    transfers with DMA have problems.
    
    This patch extends the current checks for buffers which are not word
    aligned or multiple of words. All host to card transfers which are not
    64 byte aligned are now also performed via PIO. This should not affect
    the performance of SD cards, but allow sdio devices to work out of the
    box, and they are likely to be more efficient since DMA will be used
    for card to host transfers.
    
    Tested on mirabox for wifi via mwifiex
    Tested on 370 RD for file systems on an SD card.
    Signed-off-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    3c583f70
mvsdio.c 24.7 KB