Here are the patches for Secure Digital support that I've been sitting on for a while. I tried to get some feedback on inclusion of this previously but since I didn't get any I'll just submit the thing. It was originally diffed against 2.6.10 but it applies to 2.6.11 just fine (only minor fuzz). Change summary: * Detects if connected card is SD or MMC. Marks host as in SD mode if SD is detected (since SD isn't a bus system). * Reads extra registers from SD cards (SCR) and parses CSD differently depending on SD/MMC mode. * Support for 4-bit mode. This has been design to be fairly isolated from the SD bit so that it can (hopefully) be reused with MMC. * New callback added for reading the read-only switch on SD cards. Changed files: mmc.c : SD detection and register parsing. mmc_block.c : Checks read-only flag for cards (not SD-specific). mmc_sysfs.c : Exposes SCR register. card.h : Added flags to determine card type, RO and new register. host.h : Added flags for bus width, RO test and mode (SD/MMC). mmc.h : Added R6 define and new defines. protocol.h : Added needed SD commands. This patch is backwards compatible and only needs updated drivers to take advantage of 4-bit bus and reading the RO switch (unmodified drivers will default to 1-bit bus and write enable). There might be new bugs that surface with this though. With my own drivers I discovered that very small transfers (< 16 bytes) always failed. Testing is needed but I do not have access to do it myself. MMC should not break with this since MMC is detected before SD. Rgds Pierre