From: Tony Lindgren Date: Tue, 8 Nov 2005 01:50:10 +0000 (-0800) Subject: ARM: OMAP: Fixed MMC DMA writes on 15xx X-Git-Tag: v2.6.15-omap2~105 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=07d9605a58a118a4ec01ba3061dbcbbe752add7e;p=linux-2.6-omap-h63xx.git ARM: OMAP: Fixed MMC DMA writes on 15xx Fixed MMC DMA writes on 15xx --- diff --git a/drivers/mmc/omap.c b/drivers/mmc/omap.c index 66840873297..f39464b2667 100644 --- a/drivers/mmc/omap.c +++ b/drivers/mmc/omap.c @@ -693,11 +693,13 @@ mmc_omap_prepare_dma(struct mmc_omap_host *host, struct mmc_data *data) } host->dma_len = count; - /* FIFO is 32x2 bytes; use 32 word frames when the blocksize is - * at least that large. Blocksize is usually 512 bytes; but - * not for some SD reads. + /* FIFO is 16x2 bytes on 15xx, and 32x2 bytes on 16xx and 24xx. + * Use 16 or 32 word frames when the blocksize is at least that large. + * Blocksize is usually 512 bytes; but not for some SD reads. */ - if (frame > 64) + if (cpu_is_omap15xx() && frame > 32) + frame = 32; + else if (frame > 64) frame = 64; count /= frame; frame >>= 1;