Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: mmc: sdhci-s3c: fix NULL ptr access in sdhci_s3c_remove mmc: sdhci-s3c: fix incorrect spinlock usage after merge mmc: MAINTAINERS: add myself as MMC maintainer
This commit is contained in:
commit
65097561b9
2 changed files with 14 additions and 6 deletions
|
@ -3925,8 +3925,10 @@ S: Supported
|
||||||
F: drivers/mfd/
|
F: drivers/mfd/
|
||||||
|
|
||||||
MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
|
MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
|
||||||
S: Orphan
|
M: Chris Ball <cjb@laptop.org>
|
||||||
L: linux-mmc@vger.kernel.org
|
L: linux-mmc@vger.kernel.org
|
||||||
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
|
||||||
|
S: Maintained
|
||||||
F: drivers/mmc/
|
F: drivers/mmc/
|
||||||
F: include/linux/mmc/
|
F: include/linux/mmc/
|
||||||
|
|
||||||
|
@ -5097,8 +5099,10 @@ S: Maintained
|
||||||
F: drivers/mmc/host/sdricoh_cs.c
|
F: drivers/mmc/host/sdricoh_cs.c
|
||||||
|
|
||||||
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
|
SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) DRIVER
|
||||||
S: Orphan
|
M: Chris Ball <cjb@laptop.org>
|
||||||
L: linux-mmc@vger.kernel.org
|
L: linux-mmc@vger.kernel.org
|
||||||
|
T: git git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc.git
|
||||||
|
S: Maintained
|
||||||
F: drivers/mmc/host/sdhci.*
|
F: drivers/mmc/host/sdhci.*
|
||||||
|
|
||||||
SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF)
|
SECURE DIGITAL HOST CONTROLLER INTERFACE, OPEN FIRMWARE BINDINGS (SDHCI-OF)
|
||||||
|
|
|
@ -241,8 +241,10 @@ static struct sdhci_ops sdhci_s3c_ops = {
|
||||||
static void sdhci_s3c_notify_change(struct platform_device *dev, int state)
|
static void sdhci_s3c_notify_change(struct platform_device *dev, int state)
|
||||||
{
|
{
|
||||||
struct sdhci_host *host = platform_get_drvdata(dev);
|
struct sdhci_host *host = platform_get_drvdata(dev);
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
if (host) {
|
if (host) {
|
||||||
spin_lock(&host->lock);
|
spin_lock_irqsave(&host->lock, flags);
|
||||||
if (state) {
|
if (state) {
|
||||||
dev_dbg(&dev->dev, "card inserted.\n");
|
dev_dbg(&dev->dev, "card inserted.\n");
|
||||||
host->flags &= ~SDHCI_DEVICE_DEAD;
|
host->flags &= ~SDHCI_DEVICE_DEAD;
|
||||||
|
@ -253,7 +255,7 @@ static void sdhci_s3c_notify_change(struct platform_device *dev, int state)
|
||||||
host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
|
host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
|
||||||
}
|
}
|
||||||
tasklet_schedule(&host->card_tasklet);
|
tasklet_schedule(&host->card_tasklet);
|
||||||
spin_unlock(&host->lock);
|
spin_unlock_irqrestore(&host->lock, flags);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -481,8 +483,10 @@ static int __devexit sdhci_s3c_remove(struct platform_device *pdev)
|
||||||
sdhci_remove_host(host, 1);
|
sdhci_remove_host(host, 1);
|
||||||
|
|
||||||
for (ptr = 0; ptr < 3; ptr++) {
|
for (ptr = 0; ptr < 3; ptr++) {
|
||||||
clk_disable(sc->clk_bus[ptr]);
|
if (sc->clk_bus[ptr]) {
|
||||||
clk_put(sc->clk_bus[ptr]);
|
clk_disable(sc->clk_bus[ptr]);
|
||||||
|
clk_put(sc->clk_bus[ptr]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
clk_disable(sc->clk_io);
|
clk_disable(sc->clk_io);
|
||||||
clk_put(sc->clk_io);
|
clk_put(sc->clk_io);
|
||||||
|
|
Loading…
Add table
Reference in a new issue