diff mbox

[4/4] mmc: add MMC_QUIRK_NONSTD_FUNC_IF

Message ID AANLkTi=HyXUAMALQD4MMZrw=Por8bTkJ6HxSC10UrDt4@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ohad Ben Cohen Jan. 4, 2011, 11:16 p.m. UTC
None
diff mbox

Patch

diff --git a/arch/arm/mach-omap2/board-zoom-peripherals.c b/arch/arm/mach-omap2/
index 5a8311f..f9f9c8a 100644
--- a/arch/arm/mach-omap2/board-zoom-peripherals.c
+++ b/arch/arm/mach-omap2/board-zoom-peripherals.c
@@ -19,6 +19,7 @@ 
 #include <linux/regulator/fixed.h>
 #include <linux/wl12xx.h>
 #include <linux/mmc/host.h>
+#include <linux/mmc/card.h>

 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
@@ -196,6 +197,17 @@  struct wl12xx_platform_data omap_zoom_wlan_data __initdata
        .board_ref_clock = 1,
 };

+static void zoom_wl1271_init_card(struct mmc_card *card)
+{
+       /*
+        * Tell SDIO core to ignore the standard SDIO function interface
+        * codes indicated by the wl1271. This is required because the
+        * wl1271 erronouesly indicates its first function as a standard
+        * Bluetooth SDIO interface.
+        */
+       card->quirks |= MMC_QUIRK_NONSTD_FUNC_IF;
+}
+
 static struct omap2_hsmmc_info mmc[] __initdata = {
        {
                .name           = "external",
@@ -221,6 +233,7 @@  static struct omap2_hsmmc_info mmc[] __initdata = {
                .gpio_wp        = -EINVAL,
                .gpio_cd        = -EINVAL,
                .nonremovable   = true,
+               .init_card      = zoom_wl1271_init_card,
        },
        {}      /* Terminator */
 };