linux/drivers/mmc/core
Grazvydas Ignotas 6f51be3d37 sdio: allow non-standard SDIO cards
There are some chips (like TI WL12xx series) that can be interfaced over
SDIO but don't support the SDIO specification, meaning that they are
missing CIA (Common I/O Area) with all it's registers.  Current Linux SDIO
implementation relies on those registers to identify and configure the
card, so non-standard cards can not function and cause lots of warnings
from the core when it reads invalid data from non-existent registers.

After this patch, init_card() host callback can now set new quirk
MMC_QUIRK_NONSTD_SDIO, which means that SDIO core should not try to access
any standard SDIO registers and rely on init_card() to fill all SDIO
structures instead.  As those cards are usually embedded chips, all the
required information can be obtained from machine board files by the host
driver when it's called through init_card() callback.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
Cc: Adrian Hunter <adrian.hunter@nokia.com>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Bob Copeland <me@bobcopeland.com>
Cc: Kalle Valo <kvalo@adurom.com>
Cc: Madhusudhan Chikkature <madhu.cr@ti.com>
Cc: Kishore Kadiyala <kishore.kadiyala@ti.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-08-11 08:59:04 -07:00
..
bus.c mmc: implement SD-combo (IO+mem) support 2010-08-11 08:59:03 -07:00
bus.h mmc: use sysfs groups to handle conditional attributes 2008-03-22 17:02:20 -07:00
core.c mmc: fix all hangs related to mmc/sd card insert/removal during suspend/resume 2010-08-11 08:59:03 -07:00
core.h mmc: add module parameter to set whether cards are assumed removable 2009-12-15 08:53:35 -08:00
debugfs.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
host.c mmc: fix all hangs related to mmc/sd card insert/removal during suspend/resume 2010-08-11 08:59:03 -07:00
host.h mmc: add 'enable' and 'disable' methods to mmc host 2009-09-23 07:39:33 -07:00
Kconfig mmc: add module parameter to set whether cards are assumed removable 2009-12-15 08:53:35 -08:00
Makefile mmc: Export internal host state through debugfs 2008-07-27 01:26:16 +02:00
mmc_ops.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mmc_ops.h mmc: add mmc card sleep and awake support 2009-09-23 07:39:33 -07:00
mmc.c mmc: only set blockaddressed for > 2GiB cards 2010-08-11 08:59:03 -07:00
sd_ops.c mmc: sd: clean up redundant memset 2010-05-27 09:12:39 -07:00
sd_ops.h drivers/mmc/core/: make 3 functions static 2007-07-26 02:05:57 +02:00
sd.c mmc: split mmc_sd_init_card() 2010-08-11 08:59:02 -07:00
sd.h mmc: split mmc_sd_init_card() 2010-08-11 08:59:02 -07:00
sdio_bus.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
sdio_bus.h mmc: basic SDIO device model 2007-09-23 19:45:31 +02:00
sdio_cis.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09: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 new function for RAW (Read after Write) operation 2010-05-27 09:12:40 -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: recognize io card without powercycle 2010-03-12 15:52:28 -08:00
sdio_ops.h sdio: recognize io card without powercycle 2010-03-12 15:52:28 -08:00
sdio.c sdio: allow non-standard SDIO cards 2010-08-11 08:59:04 -07:00