original_kernel/arch/arm/mach-at91
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
..
include/mach
Kconfig
Makefile
Makefile.boot
at91cap9.c
at91cap9_devices.c
at91rm9200.c
at91rm9200_devices.c
at91rm9200_time.c
at91sam9_alt_reset.S
at91sam9g45.c
at91sam9g45_devices.c
at91sam9rl.c
at91sam9rl_devices.c
at91sam926x_time.c
at91sam9260.c
at91sam9260_devices.c
at91sam9261.c
at91sam9261_devices.c
at91sam9263.c
at91sam9263_devices.c
at91x40.c
at91x40_time.c
at572d940hf.c
at572d940hf_devices.c
board-1arm.c
board-afeb-9260v1.c
board-at572d940hf_ek.c
board-cam60.c
board-cap9adk.c
board-carmeva.c
board-cpu9krea.c
board-cpuat91.c
board-csb337.c
board-csb637.c
board-eb01.c
board-eb9200.c
board-ecbat91.c
board-eco920.c
board-flexibity.c
board-kafa.c
board-kb9202.c
board-neocore926.c
board-pcontrol-g20.c
board-picotux200.c
board-qil-a9260.c
board-rm9200dk.c
board-rm9200ek.c
board-sam9-l9260.c
board-sam9g20ek.c
board-sam9m10g45ek.c
board-sam9rlek.c
board-sam9260ek.c
board-sam9261ek.c
board-sam9263ek.c
board-snapper9260.c
board-stamp9g20.c
board-usb-a9260.c
board-usb-a9263.c
board-yl-9200.c
clock.c
clock.h
cpuidle.c
generic.h
gpio.c
irq.c
leds.c
pm.c
pm.h
pm_slowclock.S
sam9_smc.c
sam9_smc.h