• Mikko Vinni's avatar
    mmc: sdhci: work around broken dma boundary behavior · f6a03cbf
    Mikko Vinni authored
    Some SD host controllers (noticed on an integrated JMicron SD reader on an
    HP Pavilion dv5-1250eo laptop) don't update the dma address register before
    signaling a dma interrupt due to a dma boundary. Update the register
    manually to the next boundary (by default 512KiB), at which the transfer
    stopped.
    
    As long as each transfer is at most 512KiB in size (guaranteed by a BUG_ON
    in sdhci_prepare_data()) and the boundary is kept at the default value,
    this fix is needed at most once per transfer. Smaller boundaries are taken
    care of by counting the transferred bytes.
    
    Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=28462Signed-off-by: default avatarMikko Vinni <mmvinni@yahoo.com>
    Signed-off-by: default avatarChris Ball <cjb@laptop.org>
    f6a03cbf
sdhci.c 53 KB