aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc
Commit message (Collapse)AuthorAgeFilesLines
...
* sdio: core support for SDIO function interruptNicolas Pitre2007-09-233-1/+246
| | | | | Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: allow for mmc_claim_host to be abortedNicolas Pitre2007-09-231-6/+16
| | | | | | | | | | It is sometimes necessary to give up on trying to claim the host lock, especially if that happens in a thread that has to be stopped. While at it, fix the description for mmc_claim_host() which was wrong. Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: add basic sysfs attributesPierre Ossman2007-09-231-0/+32
| | | | Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: add modalias supportPierre Ossman2007-09-231-1/+20
| | | | Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: whip bus uevent handler into shapePierre Ossman2007-09-231-14/+17
| | | | | | Make the mmc bus uevent callback look like all other subsystems. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: add device id table and matchingPierre Ossman2007-09-231-6/+52
| | | | Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: initialize mmc subsystem with subsys_initcall()Nicolas Pitre2007-09-231-1/+1
| | | | | | | | | | | | | | | | | | | | The problem is that the sdio_bus must be registered before any SDIO drivers are registered against it otherwise the kernel sulks. Because the sdio_bus registration happens through module_init (equivalent to device_initcall), then any SDIO drivers linked before the SDIO core code in the kernel will be initialized first. Upcoming SDIO function drivers are likely to be located outside the drivers/mmc directory as it is common practice to group drivers according to their function rather than the bus they use. SDIO drivers are therefore likely to appear at random location in the kernel link. To make sure the sdio_bus is always initialized before any SDIO drivers, let's move the MMC init to the subsys_initcall level. Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: split up common and function CIS parsingPierre Ossman2007-09-235-26/+193
| | | | | | | | Add a more clean separation between global, common CIS information and the function specific one as we need the common information in places where no specific function is specified. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: link unknown CIS tuples to the sdio_func structureNicolas Pitre2007-09-233-29/+58
| | | | | | | | | This way those tuples that the core cares about are consumed by the core code, and tuples that only function drivers might make sense of are available to drivers. Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: initial CIS parsing codeNicolas Pitre2007-09-234-1/+144
| | | | | Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: basic parsing of FBRPierre Ossman2007-09-231-0/+38
| | | | Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: read and decode interesting parts of the CCCRPierre Ossman2007-09-231-0/+63
| | | | Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: enable/disable functions for SDIOPierre Ossman2007-09-231-0/+93
| | | | | | | | Like many other buses, the devices (functions) on the SDIO bus must be enabled before they can be used. Add functions that allow drivers to do so. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: add basic SDIO I/O operationsPierre Ossman2007-09-232-1/+107
| | | | | | | Add command wrappers that simplify register access from SDIO function drivers. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: add SDIO driver handlingPierre Ossman2007-09-231-0/+23
| | | | | | Add basic driver handling to the SDIO device model. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: basic SDIO device modelPierre Ossman2007-09-235-15/+237
| | | | | | Add the sdio bus type and basic device handling. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: implement SDIO IO_RW_DIRECT operationPierre Ossman2007-09-232-0/+39
| | | | Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: detect SDIO cardsPierre Ossman2007-09-236-13/+281
| | | | | | Really basic init sequence for SDIO cards. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: at91_mci: disable handling of blocks with size not multiple of 4 bytesMarc Pignat2007-09-231-0/+8
| | | | | | | | This kind of transfer is not supported, so don't advertise it and make it fail early. Signed-off-by: Marc Pignat <marc.pignat@hevs.ch> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: add missing printk levelsPierre Ossman2007-09-231-2/+3
| | | | | | Some printk:s were missing an explicit level. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: remove confusing flagPierre Ossman2007-09-233-15/+16
| | | | | | | | The MMC_DATA_MULTI flag never had a proper definition of what it means, so remove it and let the drivers check the block count in the request. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: remove BYTEBLOCK capabilityPierre Ossman2007-09-236-7/+21
| | | | | | | Remove the BYTEBLOCK capability and let the broken hosts fail the requests with -EINVAL instead. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: mmc_set_data_timeout() parameter write is redundantPierre Ossman2007-09-234-10/+8
| | | | | | | | The write parameter in mmc_set_data_timeout() is redundant as the data structure contains information about the direction of the transfer. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: read ext_csd version numberPierre Ossman2007-09-231-7/+17
| | | | | | | Make sure we do not try to parse a structure we do not understand. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: improve error code feedbackPierre Ossman2007-09-232-13/+36
| | | | | | | Now that we use "normal" error codes, improve the reporting and response to error codes in the core. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: remove custom error codesPierre Ossman2007-09-2315-196/+190
| | | | | | | Convert the MMC layer to use standard error codes and not its own, incompatible values. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* bug in AT91 MCI suspend routinesAnti Sullin2007-09-111-3/+3
| | | | | | | | | | | | This patch fixes a bug in AT91 mmc host driver, that enables the wakeup from suspend on card detection pin even if the card detect pin is not available (==0). If not card detection pin is defined, IRQ0 == FIQ gets enabled and if some activity is present on that pin, the system gets a FIQ request, that causes a crash. Signed-off-by: Anti Sullin <anti.sullin@artecdesign.ee> Signed-off-by: Nicolas Ferre <nicolas.ferre@rfo.atmel.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdhci: tell which spurious interrupt we gotPierre Ossman2007-08-231-6/+6
| | | | | | When we get unexpected interrupts, also print which interrupt it was. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdhci: handle data interrupts during commandPierre Ossman2007-08-232-7/+22
| | | | | | | | It is fully legal for a controller to start issuing data related interrupts before it has signalled that the command has completed. Make sure the driver actually can handle this. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: ignore bad max block size in sdhciDavid Vrabel2007-08-231-5/+4
| | | | | | | | | Some SDHC cards report an invalid maximum block size, in these cases assume they support block sizes up to 512 bytes instead of returning an error. Signed-off-by: David Vrabel <david.vrabel@csr.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdhci: be more cautious about block count registerPierre Ossman2007-08-231-2/+2
| | | | | | | The block count register shouldn't be trusted for single block transfers, so avoid using it completely when calculating transferred bytes. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* drivers/mmc/core/host.c: kmalloc + memset conversion to kzallocMariusz Kozlowski2007-08-231-3/+1
| | | | | | | | | drivers/mmc/core/host.c | 3509 -> 3457 (-52 bytes) drivers/mmc/core/host.o | 92400 -> 92136 (-264 bytes) Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* drivers/mmc/core/bus.c: kmalloc + memset conversion to kzallocMariusz Kozlowski2007-08-231-3/+1
| | | | | | | | | drivers/mmc/core/bus.c | 5663 -> 5619 (-44 bytes) drivers/mmc/core/bus.o | 70899 -> 70731 (-168 bytes) Signed-off-by: Mariusz Kozlowski <m.kozlowski@tuxland.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: at91_mci: remove whitespace at the end of linesNicolas Ferre2007-08-091-4/+4
| | | | | | | Some cleanup with whitespace/tab at the end of lines. Signed-off-by: Nicolas Ferre <nicolas.ferre@rfo.atmel.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: reorganize bounce buffer initPierre Ossman2007-08-091-7/+7
| | | | | | | Reorganize the code that initializes mmc_block's bounce buffer in order to avoid warnings when MMC_BLOCK_BOUNCE isn't used. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* wbsd: fix section mismatch warningsGabriel C2007-08-091-5/+5
| | | | | | | | | | | | | | | | This patch fixes the following section mismatch warnings ... WARNING: vmlinux.o(.init.text+0x29d40): Section mismatch: reference to .exit.text:wbsd_release_resources (between 'wbsd_init' and 'wbsd_probe') WARNING: vmlinux.o(.init.text+0x29d49): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe') WARNING: vmlinux.o(.init.text+0x29f28): Section mismatch: reference to .exit.text:wbsd_free_mmc (between 'wbsd_init' and 'wbsd_probe') ... Signed-off-by: Gabriel Craciunescu <nix.or.die@googlemail.com> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* Merge branch 'for-linus' of ↵Linus Torvalds2007-07-2622-175/+250
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: drivers/mmc/core/: make 3 functions static mmc: add missing printk levels mmc: remove redundant debug information from sdhci and wbsd mmc: proper debugging output in core mmc: be more verbose about card insertions/removal mmc: Don't hold lock when releasing an added card mmc: add a might_sleep() to mmc_claim_host() mmc: update kerneldoc mmc: update header file paths sdhci: add support to ENE-CB714 mmc: check error bits before command completion
| * drivers/mmc/core/: make 3 functions staticAdrian Bunk2007-07-264-75/+69
| | | | | | | | | | | | | | | | | | | | This patch makes the following needlessly global functions static: - sd_ops.c: mmc_app_cmd() - core.c: __mmc_release_bus() - core.c: mmc_start_request() Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: add missing printk levelsPierre Ossman2007-07-262-10/+8
| | | | | | | | | | | | Some printk:s were missing an explicit level. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: remove redundant debug information from sdhci and wbsdPierre Ossman2007-07-262-26/+0
| | | | | | | | | | | | | | Remove the extra debugging output that now is properly printed by the core. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: proper debugging output in corePierre Ossman2007-07-261-8/+40
| | | | | | | | | | | | | | | | Make sure that the debugging output in the core is complete. This should allow us to clean up all the extra debug output that each and every other host driver seems to contain. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: be more verbose about card insertions/removalPierre Ossman2007-07-263-2/+35
| | | | | | | | | | | | | | Let the user know that the kernel actually detected the card by printing some basic information in dmesg. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: Don't hold lock when releasing an added cardPierre Ossman2007-07-262-10/+16
| | | | | | | | | | | | | | | | When the card has been added to the device model, it might be bound to a card driver. Therefore, we have to release the host lock when trying to remove it as we otherwise might deadlock with the driver. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: add a might_sleep() to mmc_claim_host()Pierre Ossman2007-07-261-0/+2
| | | | | | | | | | | | | | | | In the normal case, the host lock can be claimed directly. When it cannot, the caller will sleep. Make sure we don't have any latent bugs by always calling might_sleep(). Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: update kerneldocPierre Ossman2007-07-263-14/+26
| | | | | | | | | | | | Make sure the kerneldoc comments are up to date and relevant. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: update header file pathsPierre Ossman2007-07-2618-18/+18
| | | | | | | | | | | | | | Make sure all headers in the files reflect their true position in the tree. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * sdhci: add support to ENE-CB714Leandro Dorileo2007-07-261-0/+27
| | | | | | | | | | | | | | | | | | Added its pci_id and implemented a quirk for it because this controller needs to reset cmd and data when setting ios. Signed-off-by: Leandro Dorileo <dorileo@ossystems.com.br> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
| * mmc: check error bits before command completionPierre Ossman2007-07-261-13/+10
| | | | | | | | | | | | | | | | Some controllers signal "command complete" even on failures (which they are allowed to do according to the spec). Make sure we check the error bits first so we don't get any false positives. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* | [BLOCK] Get rid of request_queue_t typedefJens Axboe2007-07-241-4/+4
|/ | | | | | | | | Some of the code has been gradually transitioned to using the proper struct request_queue, but there's lots left. So do a full sweet of the kernel and get rid of this typedef and replace its uses with the proper type. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* sdhci: make sure to clear the error interruptPierre Ossman2007-07-202-0/+3
| | | | | | | | The controller has a bit indicating that one of the higher bits (the error bits) are set. A previous bug caused this bit to be masked, but since that bug has been fixed we have to clear it explicictly. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>