summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch')
-rw-r--r--recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch29
1 files changed, 29 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch
new file mode 100644
index 0000000..2efdf51
--- /dev/null
+++ b/recipes-kernel/linux/linux-3.12.27/linux-3.12-atmel-mci-force-detect.patch
@@ -0,0 +1,29 @@
+Index: linux-3.12.13/drivers/mmc/host/atmel-mci.c
+===================================================================
+--- linux-3.12.13.orig/drivers/mmc/host/atmel-mci.c 2014-04-10 13:32:40.012723945 -0500
++++ linux-3.12.13/drivers/mmc/host/atmel-mci.c 2014-04-10 13:36:46.088723297 -0500
+@@ -1447,6 +1447,9 @@
+ slot->detect_is_active_high);
+ dev_dbg(&mmc->class_dev, "card is %spresent\n",
+ present ? "" : "not ");
++ } else {
++ // jjg - assume card is present if detect pin is unset
++ present = 1;
+ }
+
+ return present;
+@@ -2205,8 +2208,12 @@
+ }
+ }
+
+- if (!gpio_is_valid(slot->detect_pin))
+- mmc->caps |= MMC_CAP_NEEDS_POLL;
++ // jjg - if detect pin isn't set, don't poll -- just assume device
++ // is there and mark it non-removable
++ if (!gpio_is_valid(slot->detect_pin)) {
++ dev_info(&host->pdev->dev,"No detect pin, marking non-removable and assuming device is present\n");
++ mmc->caps |= MMC_CAP_NONREMOVABLE;
++ }
+
+ if (gpio_is_valid(slot->wp_pin)) {
+ if (gpio_request(slot->wp_pin, "mmc_wp")) {