kernel_optimize_test/drivers
David Brownell af51715079 MMC core learns about SPI
Teach the MMC/SD/SDIO core about using SPI mode.

 - Use mmc_host_is_spi() so enumeration works through SPI signaling
   and protocols, not just the native versions.

 - Provide the SPI response type flags with each request issued,
   including requests from the new lock/unlock code.

 - Understand that cmd->resp[0] and mmc_get_status() results for SPI
   return different values than for "native" MMC/SD protocol; this
   affects resetting, checking card lock status, and some others.

 - Understand that some commands act a bit differently ... notably:
     * OP_COND command doesn't return the OCR
     * APP_CMD status doesn't have an R1_APP_CMD analogue

Those changes required some new and updated primitives:

 - Provide utilities to access two SPI-only requests, and one
   request that wasn't previously needed:
     * mmc_spi_read_ocr() ... SPI only
     * mmc_spi_set_crc() ... SPI only (override by module parm)
     * mmc_send_cid() ... for use without broadcast mode

 - Updated internal routines:
     * Previous mmc_send_csd() modified into mmc_send_cxd_native();
       it uses native "R2" responses, which include 16 bytes of data.
     * Previous mmc_send_ext_csd() becomes new mmc_send_cxd_data()
       helper for command-and-data access
     * Bugfix to that mmc_send_cxd_data() code:  dma-to-stack is
       unsafe/nonportable, so kmalloc a bounce buffer instead.

 - Modified mmc_send_ext_csd() now uses mmc_send_cxd_data() helper

 - Modified mmc_send_csd(), and new mmc_spi_send_cid(), routines use
   those helper routines based on whether they're native or SPI

The newest categories of cards supported by the MMC stack aren't expected
to work yet with SPI:  MMC or SD cards with over 4GB data, and SDIO.
All those cards support SPI mode, so eventually they should work too.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
2007-09-23 21:51:30 +02:00
..
acorn/char
acpi ACPI: disable lower idle C-states across suspend/resume 2007-09-22 17:15:34 -07:00
amba
ata [libata] ahci: add ATI SB800 PCI IDs 2007-09-20 16:07:33 -04:00
atm Add some help texts to recently-introduced kconfig items 2007-08-18 09:52:50 -07:00
auxdisplay cfag12864b fix 2007-08-22 19:52:46 -07:00
base Driver core: fix deprectated sysfs structure for nested class devices 2007-09-19 11:24:18 -07:00
block Fix "Fix DAC960 driver on machines which don't support 64-bit DMA" 2007-09-19 11:24:16 -07:00
bluetooth [Bluetooth] Add missing stat.byte_rx counter modification 2007-09-09 08:39:27 +02:00
cdrom
char intel-agp: Fix i830 mask variable that changed with G33 support 2007-09-19 11:24:18 -07:00
clocksource
connector
cpufreq
crypto Add some help texts to recently-introduced kconfig items 2007-08-18 09:52:50 -07:00
dio
dma [IOAT]: ioatdma needs to to play nice in a multi-dma-client world 2007-08-26 18:35:40 -07:00
edac drivers/edac: fix e752x correct return code 2007-09-11 17:21:19 -07:00
eisa
fc4
firewire firewire: fw-ohci: ignore failure of pci_set_power_state (fix suspend regression) 2007-09-07 18:44:35 +02:00
firmware
hid Add some help texts to recently-introduced kconfig items 2007-08-18 09:52:50 -07:00
hwmon hwmon: End of I/O region off-by-one 2007-09-09 10:38:37 -04:00
i2c i2c-algo-bit: Read block data bugfix 2007-09-09 22:29:14 +02:00
ide ide: remove unused variables from drivers/ide/ppc/pmac.c 2007-09-17 12:35:30 +02:00
ieee1394 ieee1394: ohci1394: fix initialization if built non-modular 2007-09-20 21:19:45 +02:00
infiniband Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband 2007-08-31 20:40:37 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2007-09-12 07:57:00 -07:00
isdn [ISDN]: Get rid of some pointless allocation casts in common and bsd comp. 2007-08-26 18:35:46 -07:00
kvm KVM: Fix virtualization menu help text 2007-09-22 12:55:18 -07:00
leds
lguest lguest: Fix guest crash when CONFIG_X86_USE_3DNOW=y 2007-09-12 12:19:46 -07:00
macintosh [POWERPC] Fix undefined reference to device_power_up/resume 2007-08-25 16:58:27 +10:00
mca
md Fix kernel buuild with (CONFIG_COMPAT && ! CONFIG_BLOCK) 2007-09-14 13:56:47 -07:00
media pci: fix unterminated pci_device_id lists 2007-09-19 11:24:17 -07:00
message
mfd
misc Pull thinkpad into release branch 2007-09-17 00:58:40 -04:00
mmc MMC core learns about SPI 2007-09-23 21:51:30 +02:00
mtd pci: fix unterminated pci_device_id lists 2007-09-19 11:24:17 -07:00
net Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2007-09-20 12:42:47 -07:00
nubus
of
oprofile
parisc
parport
pci PCI: unhide SMBus on Compaq Deskpro EP 401963-001 motherboard 2007-09-11 04:22:16 -07:00
pcmcia
pnp PNP: remove SMCf010 quirk 2007-09-11 17:21:19 -07:00
power
ps3
rapidio
rtc rtc: rtc-ds1553.c should use resource_size_t for base address 2007-09-19 11:24:17 -07:00
s390 Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2007-09-11 07:46:09 -07:00
sbus
scsi Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2007-09-11 07:46:09 -07:00
serial [SUNSAB]: Fix several bugs. 2007-09-17 16:47:07 -07:00
sh
sn
spi spi_mpc83xx: hang fix 2007-09-11 17:21:19 -07:00
tc
telephony
uio
usb Revert "usb-storage: implement autosuspend" 2007-09-13 06:01:24 -07:00
video intelfb: Fix bug in DPLL disable 2007-09-19 11:24:18 -07:00
w1 w1: fix w1_remove_master_device() searching 2007-08-22 19:52:46 -07:00
xen
zorro zorro: Make sysfs config attribute read-only 2007-08-22 19:52:45 -07:00
Kconfig
Makefile