linux/drivers/mmc
Yauhen Kharuzhy a2255ff451 mmc: at91_mci: fix multiblock SDIO transfers
The AT91 MCI has special SDIO transfer types: SDIO block and SDIO byte
transfers, but at91_mci driver doesn't use them and handles all SDIO
transfers as ordinary MMC block transfers. This causes problems for
multiple-block SDIO transfers (in particular for 256-bytes blocks).

Fix this situation by checking the opcode for SDIO CMD53 and setting
the transfer type in the AT91_MCI_CMDR register properly.

This patch was tested with libertas SDIO driver: problem with TX
timeouts on big packets was eliminated.

Signed-off-by: Yauhen Kharuzhy <yauhen.kharuzhy@promwad.com>
Cc: <stable@kernel.org>
Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2010-12-21 11:46:32 -08:00
..
card mmc: make number of mmcblk minors configurable 2010-10-25 09:28:46 +08:00
core mmc: sdio: fix runtime PM anomalies by introducing MMC_CAP_POWER_OFF_CARD 2010-11-19 17:07:01 -05:00
host mmc: at91_mci: fix multiblock SDIO transfers 2010-12-21 11:46:32 -08:00
Kconfig mmc: explicitly mention SDIO support in Kconfig 2008-10-12 11:04:36 +02:00
Makefile mmc: Makefile: Fix EXTRA_CFLAGS assignment 2010-10-23 21:11:15 +08:00