aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/sunxi/patches-3.13/170-9-mmc-fixup-revert-sdio.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/sunxi/patches-3.13/170-9-mmc-fixup-revert-sdio.patch')
-rw-r--r--target/linux/sunxi/patches-3.13/170-9-mmc-fixup-revert-sdio.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/target/linux/sunxi/patches-3.13/170-9-mmc-fixup-revert-sdio.patch b/target/linux/sunxi/patches-3.13/170-9-mmc-fixup-revert-sdio.patch
new file mode 100644
index 0000000000..90727f3e0b
--- /dev/null
+++ b/target/linux/sunxi/patches-3.13/170-9-mmc-fixup-revert-sdio.patch
@@ -0,0 +1,44 @@
+From 0483aa124d32bdcafc84623a31141a49e71cc72d Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+Date: Sun, 16 Feb 2014 08:54:20 +0100
+Subject: [PATCH] sunxi-mmc: fixup: revert "add host initialization for when
+ the sdio irq is enabled"
+
+This is not necessary since when the host is not initialized at this point
+yet the irq line from the mmc controller is not enabled, so writing the
+host controller interrupt mask cannot cause interrupts at this point.
+
+More over doing this is wrong, as it leads to unbalanced calling of
+clk_prepare_enable and regulator_power_on.
+
+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
+---
+ drivers/mmc/host/sunxi-mmc.c | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
+index 2dc446c..f33bc30 100644
+--- a/drivers/mmc/host/sunxi-mmc.c
++++ b/drivers/mmc/host/sunxi-mmc.c
+@@ -593,18 +593,9 @@ static void sunxi_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
+ {
+ struct sunxi_mmc_host *smc_host = mmc_priv(mmc);
+ unsigned long flags;
+- int ret;
+ u32 imask;
+
+ spin_lock_irqsave(&smc_host->lock, flags);
+-
+- /* Make sure the controller is in a sane state before enabling irqs */
+- ret = sunxi_mmc_init_host(host->mmc);
+- if (ret) {
+- spin_unlock_irqrestore(&smc_host->lock, flags);
+- return ret;
+- }
+-
+ imask = mci_readl(smc_host, REG_IMASK);
+ if (enable) {
+ smc_host->sdio_imask = SDXC_SDIO_INTERRUPT;
+--
+1.8.5.5
+