linux/drivers/mmc/core
Nicolas Pitre 95cdfb72b9 mmc: propagate error codes back from bus drivers' suspend/resume methods
Especially for SDIO drivers which may have special conditions/errors to
report, it is a good thing to relay the returned error code back to upper
layers.

This also allows for the rationalization of the resume path where code to
"remove" a no-longer-existing or replaced card was duplicated into the
MMC, SD and SDIO bus drivers.

In the SDIO case, if a function suspend method returns an error, then all
previously suspended functions are resumed and the error returned.  An
exception is made for -ENOSYS which the core interprets as "we don't
support suspend so just kick the card out for suspend and return success".

When resuming SDIO cards, the core code only validates the manufacturer
and product IDs to make sure the same kind of card is still present before
invoking functions resume methods.  It's the function driver's
responsibility to perform further tests to confirm that the actual same
card is present (same MAC address, etc.) and return an error otherwise.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-09-23 07:39:38 -07:00
..
bus.c mmc: add MODALIAS linkage for MMC/SD devices 2009-03-24 21:29:58 +01:00
bus.h mmc: use sysfs groups to handle conditional attributes 2008-03-22 17:02:20 -07:00
core.c mmc: propagate error codes back from bus drivers' suspend/resume methods 2009-09-23 07:39:38 -07:00
core.h mmc: propagate error codes back from bus drivers' suspend/resume methods 2009-09-23 07:39:38 -07:00
debugfs.c mmc: Add Extended CSD register to debugfs 2009-03-24 21:29:59 +01:00
host.c mmc: add 'enable' and 'disable' methods to mmc host 2009-09-23 07:39:33 -07:00
host.h mmc: add 'enable' and 'disable' methods to mmc host 2009-09-23 07:39:33 -07:00
Kconfig mmc: Use menuconfig objects 2007-05-08 22:41:55 +02:00
Makefile mmc: Export internal host state through debugfs 2008-07-27 01:26:16 +02:00
mmc_ops.c mmc: check status after MMC SWITCH command 2009-09-23 07:39:34 -07:00
mmc_ops.h mmc: add mmc card sleep and awake support 2009-09-23 07:39:33 -07:00
mmc.c mmc: propagate error codes back from bus drivers' suspend/resume methods 2009-09-23 07:39:38 -07:00
sd_ops.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
sd_ops.h drivers/mmc/core/: make 3 functions static 2007-07-26 02:05:57 +02:00
sd.c mmc: propagate error codes back from bus drivers' suspend/resume methods 2009-09-23 07:39:38 -07:00
sdio_bus.c mmc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-08 21:37:46 +01:00
sdio_bus.h mmc: basic SDIO device model 2007-09-23 19:45:31 +02:00
sdio_cis.c sdio: fix read buffer overflow 2009-09-23 07:39:36 -07:00
sdio_cis.h sdio: split up common and function CIS parsing 2007-09-23 20:44:22 +02:00
sdio_io.c sdio: add MMC_QUIRK_LENIENT_FN0 2009-09-23 07:39:37 -07:00
sdio_irq.c sdio: give sdio irq thread a host specific name 2008-10-12 11:04:30 +02:00
sdio_ops.c sdio: check that addresses are within the address space 2009-03-24 21:30:00 +01:00
sdio_ops.h sdio: extend sdio_readsb() and friends to handle any length of buffer 2007-09-23 21:21:32 +02:00
sdio.c mmc: propagate error codes back from bus drivers' suspend/resume methods 2009-09-23 07:39:38 -07:00