On Tue, Oct 30, 2012 at 04:54:07PM +0100, Javier Martin wrote: > When a SD card is initialized some data transfers of 64 and 8 bytes > are issued. It seems the DMA has some problems dealing with these kind > of "short" transfers, leading sometimes to the SD card not being detected. > > In order to solve this problem, do not use DMA for transfer sizes lower > than the sector size. > > Signed-off-by: Javier Martin <javier.martin@xxxxxxxxxxxxxxxxx> Acked-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Sascha > --- > Changes since v1: > - Do not remove the check "sg->length & 3". > > --- > drivers/mmc/host/mxcmmc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c > index fc42a2e..a09637f 100644 > --- a/drivers/mmc/host/mxcmmc.c > +++ b/drivers/mmc/host/mxcmmc.c > @@ -240,7 +240,7 @@ static int mxcmci_setup_data(struct mxcmci_host *host, struct mmc_data *data) > return 0; > > for_each_sg(data->sg, sg, data->sg_len, i) { > - if (sg->offset & 3 || sg->length & 3) { > + if (sg->offset & 3 || sg->length & 3 || sg->length < 512) { > host->do_dma = 0; > return 0; > } > -- > 1.7.9.5 > > -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html