From e3b5cec78913a9f23776364eb7c6a28923bd279c Mon Sep 17 00:00:00 2001 From: Sujit Reddy Thumma Date: Wed, 3 Dec 2014 18:13:58 +0200 Subject: [PATCH] mmc: core: Remove BROKEN_CLK_GATING quirk for WCN1314 cards MMC_CLKGATE feature can be enabled for Volans cards as the host supports asynchronous acitivity notification when the clocks are off. Change-Id: Ic6cfa7fb2e713dcf1d2c6b2ae9df9cf0394f8c4a Signed-off-by: Sujit Reddy Thumma [merez@codeaurora.org: fix trivial conflicts] Signed-off-by: Maya Erez --- drivers/mmc/core/core.c | 4 +++- drivers/mmc/core/quirks.c | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 07d2c2a24c66..909af2984433 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -1115,6 +1115,8 @@ void mmc_gate_clock(struct mmc_host *host) { unsigned long flags; + WARN_ON(!host->ios.clock); + spin_lock_irqsave(&host->clk_lock, flags); host->clk_old = host->ios.clock; host->ios.clock = 0; @@ -1137,7 +1139,7 @@ void mmc_ungate_clock(struct mmc_host *host) * we just ignore the call. */ if (host->clk_old) { - BUG_ON(host->ios.clock); + WARN_ON(host->ios.clock); /* This call will also set host->clk_gated to false */ __mmc_set_clock(host, host->clk_old); } diff --git a/drivers/mmc/core/quirks.c b/drivers/mmc/core/quirks.c index dd1d1e0fe322..1adfb2d84248 100644 --- a/drivers/mmc/core/quirks.c +++ b/drivers/mmc/core/quirks.c @@ -35,6 +35,14 @@ #define SDIO_DEVICE_ID_MARVELL_8797_F0 0x9128 #endif +#ifndef SDIO_VENDOR_ID_MSM +#define SDIO_VENDOR_ID_MSM 0x0070 +#endif + +#ifndef SDIO_DEVICE_ID_MSM_WCN1314 +#define SDIO_DEVICE_ID_MSM_WCN1314 0x2881 +#endif + /* * This hook just adds a quirk for all sdio devices */ @@ -54,6 +62,9 @@ static const struct mmc_fixup mmc_fixup_methods[] = { SDIO_FIXUP(SDIO_VENDOR_ID_TI, SDIO_DEVICE_ID_TI_WL1271, remove_quirk, MMC_QUIRK_BROKEN_CLK_GATING), + SDIO_FIXUP(SDIO_VENDOR_ID_MSM, SDIO_DEVICE_ID_MSM_WCN1314, + remove_quirk, MMC_QUIRK_BROKEN_CLK_GATING), + SDIO_FIXUP(SDIO_VENDOR_ID_TI, SDIO_DEVICE_ID_TI_WL1271, add_quirk, MMC_QUIRK_NONSTD_FUNC_IF),