kernel-fxtec-pro1x/drivers/mmc/host
Haavard Skinnemoen 965ebf33ea atmel-mci: support multiple mmc slots
The Atmel MCI controller can drive multiple cards through separate sets
of pins, but only one at a time. This patch adds support for
multiplexing access to the controller so that multiple card slots can be
used as if they were hooked up to separate mmc controllers.

The atmel-mci driver registers each slot as a separate mmc_host. Both
access the same common controller state, but they also have some state
on their own for card detection/write protect handling, and separate
shadows of the MR and SDCR registers.

When one of the slots receives a request from the mmc core, the common
controller state is checked. If it's idle, the request is submitted
immediately. If not, the request is added to a queue. When a request is
done, the queue is checked and if there is a queued request, it is
submitted before the completion callback is called.

This patch also includes a few cleanups and fixes, including a locking
overhaul. I had to change the locking extensively in any case, so I
might as well try to get it right. The driver no longer takes any
irq-safe locks, which may or may not improve the overall system
performance.

This patch also adds a bit of documentation of the internal data
structures.

Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
2008-10-05 20:39:21 +02:00
..
at91_mci.c mmc: at91_mci: don't use coherent dma buffers 2008-09-02 19:21:38 -07:00
atmel-mci-regs.h atmel-mci: Platform code for supporting multiple mmc slots 2008-10-05 20:39:21 +02:00
atmel-mci.c atmel-mci: support multiple mmc slots 2008-10-05 20:39:21 +02:00
au1xmmc.c au1xmmc: raise segment size limit. 2008-08-01 19:04:26 +02:00
imxmmc.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
imxmmc.h
Kconfig mfd: have TMIO drivers and subdevices depend on ARM 2008-08-10 23:30:34 +02:00
Makefile mfd: TMIO MMC driver 2008-08-10 23:30:16 +02:00
mmc_spi.c mmc_spi: put signals to low power off fix 2008-07-24 01:27:07 +02:00
mmci.c mmc: remove multiwrite capability 2008-07-15 14:14:49 +02:00
mmci.h
omap.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxamci.c [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
pxamci.h
ricoh_mmc.c
s3cmci.c s3cmci: attach get_cd host ops 2008-08-17 20:00:22 +02:00
s3cmci.h MMC: S3C24XX: Add platform data for MMC/SD driver 2008-07-15 14:14:47 +02:00
sdhci-pci.c sdhci: handle bug in JMB38x for sizes < 4 bytes 2008-08-01 19:03:35 +02:00
sdhci.c sdhci: check correct return value 2008-08-01 19:03:36 +02:00
sdhci.h sdhci: handle bug in JMB38x for sizes < 4 bytes 2008-08-01 19:03:35 +02:00
sdricoh_cs.c sdricoh_cs: removed unused #include <version.h> 2008-08-17 20:01:35 +02:00
tifm_sd.c mmc: remove multiwrite capability 2008-07-15 14:14:49 +02:00
tmio_mmc.c mfd: TMIO MMC driver 2008-08-10 23:30:16 +02:00
tmio_mmc.h tmio_mmc: fix compilation with debug enabled 2008-09-20 12:11:13 +02:00
wbsd.c mmc: remove multiwrite capability 2008-07-15 14:14:49 +02:00
wbsd.h