linux/drivers/mmc
Alex Dubov 8e02f8581c tifm_sd: restructure initialization, removal and command handling
In order to support correct suspend and resume several changes were needed:
1. Switch from work_struct to tasklet for command handling. When device
suspend is called workqueues are already frozen and can not be used.
2. Separate host initialization code from driver's probe and don't rely
on interrupts for host initialization. This, in turn, addresses two
problems:
 a) Resume needs to re-initialize the host, but can not assume that
    device interrupts were already re-armed.
 b) Previously, probe will return successfully before really knowing
    the state of the host, as host interrupts were not armed in time.
    Now it uses polling to determine the real host state before returning.
3. Separate termination code from driver's remove. Termination may be caused
by resume, if media changed type or became unavailable during suspend.

Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
2007-02-04 20:54:07 +01:00
..
at91_mci.c MMC: at91 mmc linkage updates 2007-01-04 07:03:57 +01:00
au1xmmc.c mmc: au1xmmc: return errors for unknown response types 2007-02-04 20:54:06 +01:00
au1xmmc.h Au1[12]00 mmc driver. Only tested on the Au1200 at this point though 2005-10-29 19:32:26 +01:00
imxmmc.c mmc: Correct definition of R6 2007-01-15 06:44:03 +01:00
imxmmc.h [ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1 2006-04-02 19:27:07 +01:00
Kconfig Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm 2006-12-07 15:40:39 -08:00
Makefile [ARM] 3963/1: AT91: Update configuration files 2006-12-01 16:56:43 +00:00
mmc_block.c mmc: Add support for SDHC cards 2007-02-04 20:54:07 +01:00
mmc_queue.c mmc: fix "prev->state: 2 != TASK_RUNNING??" problem on SD/MMC card removal 2006-12-11 09:48:16 +01:00
mmc_queue.h mmc: remove kernel_thread() 2006-12-01 17:56:46 +01:00
mmc_sysfs.c mmc: let host be parent of cards 2007-02-04 20:54:06 +01:00
mmc.c mmc: Add support for SDHC cards 2007-02-04 20:54:07 +01:00
mmc.h WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
mmci.c [ARM] Fix potential MMCI bug 2007-01-08 19:49:51 +00:00
mmci.h [MMC] mmci: kunmap_atomic() unmaps virtual address, not page 2006-01-05 10:31:23 +00:00
omap.c mmc: Correct definition of R6 2007-01-15 06:44:03 +01:00
pxamci.c mmc: Correct definition of R6 2007-01-15 06:44:03 +01:00
pxamci.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sdhci.c mmc: Power quirk for ENE controllers 2007-02-04 20:54:06 +01:00
sdhci.h mmc: sdhci high speed support 2006-12-01 18:54:10 +01:00
tifm_sd.c tifm_sd: restructure initialization, removal and command handling 2007-02-04 20:54:07 +01:00
wbsd.c Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/drzeus/mmc 2006-12-02 08:29:04 -08:00
wbsd.h [PATCH] mmc (mainly): add "or later" clause to licence statement. 2006-10-01 00:39:23 -07:00