summaryrefslogtreecommitdiffstats
path: root/drivers/mmc/core/sdio_irq.c
Commit message (Collapse)AuthorAgeFilesLines
* mmc: sdio: avoid spurious calls to interrupt handlersNicolas Pitre2012-04-221-4/+7
| | | | | | | | | | | | | | Commit 06e8935feb ("optimized SDIO IRQ handling for single irq") introduced some spurious calls to SDIO function interrupt handlers, such as when the SDIO IRQ thread is started, or the safety check performed upon a system resume. Let's add a flag to perform the optimization only when a real interrupt is signaled by the host driver and we know there is no point confirming it. Reported-by: Sujit Reddy Thumma <sthumma@codeaurora.org> Signed-off-by: Nicolas Pitre <nico@linaro.org> Cc: stable <stable@vger.kernel.org> Signed-off-by: Chris Ball <cjb@laptop.org>
* mmc: core: Ensure clocks are always enabled before host interactionSujit Reddy Thumma2012-02-131-2/+8
| | | | | | | | | | | | Ensure clocks are always enabled before any interaction with the host controller driver. This makes sure that there is no race between host execution and the core layer turning off clocks in different context with clock gating framework. Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Per Forlin <per.forlin@stericsson.com> Signed-off-by: Chris Ball <cjb@laptop.org>
* mmc: Add export.h for EXPORT_SYMBOL/THIS_MODULE as requiredPaul Gortmaker2011-10-311-0/+1
| | | | | | | | These two basic defines were everywhere, simply because module.h was also everywhere. But we are cleaning up the latter. So make the exporters actually call out their need for the include. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
* mmc: replace printk with appropriate display macroGirish K S2011-10-261-3/+3
| | | | | | | | All the files using printk function for displaying kernel messages in the mmc driver have been replaced with corresponding macro. Signed-off-by: Girish K S <girish.shivananjappa@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
* mmc: sdio: optimized SDIO IRQ handling for single irqStefan Nilsson XK2011-05-241-1/+32
| | | | | | | | | | | If there is only 1 function interrupt registered it is possible to improve performance by directly calling the irq handler and avoiding the overhead of reading the CCCR registers. Signed-off-by: Per Forlin <per.forlin@linaro.org> Acked-by: Ulf Hansson <ulf.hansson@stericsson.com> Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org> Signed-off-by: Chris Ball <cjb@laptop.org>
* Fix common misspellingsLucas De Marchi2011-03-311-1/+1
| | | | | | Fixes generated by 'codespell' and manually reviewed. Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
* sdio: give sdio irq thread a host specific namePierre Ossman2008-10-121-1/+2
| | | | | | | There is one thread per host controller so make sure they all get unique names. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: make sleep on error interruptablePierre Ossman2008-10-121-4/+9
| | | | | | | | | | | Make sure we can be woken from the forced sleep that is done on errors. Removing a card often results in -ENOMEDIUM or -EILSEQ so we previously locked up the removal process for a second. We could completely exit on -ENOMEDIUM, but it might be a transient glitch so treat it like any other error. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: use shorter, equivalent set_current_state()Robert P. J. Day2008-04-181-2/+2
| | | | | | Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: make the IRQ thread more resilient in the presence of bad statesNicolas Pitre2007-10-061-2/+8
| | | | | | | | | | | Currently we print a message about some bad states wrt function IRQ handlers but return 0 from process_sdio_pending_irqs() nevertheless. This can lead to an infinite loop as nothing might have cleared the condition for the pending card interrupt from the host controller by the time host->ops->enable_sdio_irq(host, 1) is called. Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: fix IRQ diagnostic messageNicolas Pitre2007-10-061-1/+1
| | | | | | | If func is actually null we won't get much from sdio_func_id(func). Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: adaptive interrupt pollingPierre Ossman2007-09-271-5/+23
| | | | | | | | | | | | | The interrupt polling frequency is a compromise between power usage and interrupt latency. Unfortunately, it affects throughput rather severely for devices which require an interrupt for every chunk of data. By making the polling frequency adaptive, we get better throughput with those devices without sacficing too much power. Polling will quickly increase when there is an actual interrupt, and slowly fall back to the idle frequency when the interrupts stop coming. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* mmc: replace BUG_ON with WARN_ONPierre Ossman2007-09-231-2/+2
| | | | | | | | Replace all cases of BUG_ON with WARN_ON where there is a chance (with varying degrees of slim) that the kernel can continue without incidence. Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: add interface for host side SDIO interrupt reportingNicolas Pitre2007-09-231-1/+7
| | | | | Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
* sdio: core support for SDIO function interruptNicolas Pitre2007-09-231-0/+237
Signed-off-by: Nicolas Pitre <npitre@mvista.com> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
OpenPOWER on IntegriCloud