[meta-freescale] [meta-fsl-arm/V2][PATCH 1/2] linux-imx_3.14.28: fix initial MMC device detection

Andreas Müller schnitzeltony at googlemail.com
Mon Jun 8 05:48:05 PDT 2015


On Variscite Varsom we have three devices connected to MMC

* MMC1: eMMC
* MMC2: SDCard
* MMC3: Wifi

Without this patch only the first device was detected properly.
I found two workarounds which can be removed by this patch:

1. Variscite: booting from SDCard made possible by renumbering MMC devices [1].
2. BoundaryDevices: Add workqueues for each mmc_host [2]. This had been tested
   here too but causes crashing sdcard for huge storage traffic.

[1] https://github.com/varigit/linux-2.6-imx/blob/imx_3.10.53_1.1.0_ga_var01/arch/arm/boot/dts/imx6qdl.dtsi / Line 879
[2] https://github.com/boundarydevices/linux-imx6/commit/1d40159a995a298f16901bfb14ae3e0294c65691

Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
---
 ...sdhc-imx-Fixup-runtime-PM-conditions-duri.patch | 36 ++++++++++++++++++++++
 recipes-kernel/linux/linux-imx_3.14.28.bb          |  1 +
 2 files changed, 37 insertions(+)
 create mode 100644 recipes-kernel/linux/linux-imx-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch

diff --git a/recipes-kernel/linux/linux-imx-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch b/recipes-kernel/linux/linux-imx-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch
new file mode 100644
index 0000000..0d3caa4
--- /dev/null
+++ b/recipes-kernel/linux/linux-imx-3.14.28/0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch
@@ -0,0 +1,36 @@
+From 77903c01d8c6c5d2544085ba074aceadc1191d21 Mon Sep 17 00:00:00 2001
+From: Ulf Hansson <ulf.hansson at linaro.org>
+Date: Thu, 11 Dec 2014 15:12:25 +0100
+Subject: [PATCH 2/2] mmc: sdhci-esdhc-imx: Fixup runtime PM conditions during
+ ->probe()
+
+By configure runtime PM prior we enable the use of it, we close the gap
+for strange and unhandled conditions. Moreover it makes us rely on the
+driver core, after finalized ->probe(), to request an inactive device
+to become runtime PM idle/suspended, which earlier potentially could
+happen already at pm_runtime_set_autosuspend_delay().
+
+Signed-off-by: Ulf Hansson <ulf.hansson at linaro.org>
+---
+ drivers/mmc/host/sdhci-esdhc-imx.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
+index 043866c..10ef824 100644
+--- a/drivers/mmc/host/sdhci-esdhc-imx.c
++++ b/drivers/mmc/host/sdhci-esdhc-imx.c
+@@ -1080,10 +1080,10 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
+ 		goto disable_clk;
+ 
+ 	pm_runtime_set_active(&pdev->dev);
+-	pm_runtime_enable(&pdev->dev);
+ 	pm_runtime_set_autosuspend_delay(&pdev->dev, 50);
+ 	pm_runtime_use_autosuspend(&pdev->dev);
+ 	pm_suspend_ignore_children(&pdev->dev, 1);
++	pm_runtime_enable(&pdev->dev);
+ 
+ 	return 0;
+ 
+-- 
+1.9.3
+
diff --git a/recipes-kernel/linux/linux-imx_3.14.28.bb b/recipes-kernel/linux/linux-imx_3.14.28.bb
index e3078f7..5d1be54 100644
--- a/recipes-kernel/linux/linux-imx_3.14.28.bb
+++ b/recipes-kernel/linux/linux-imx_3.14.28.bb
@@ -18,6 +18,7 @@ SRC_URI += " \
     file://0001-ARM-imx6q-drop-unnecessary-semicolon.patch \
     file://0002-ARM-clk-imx6q-fix-video-divider-for-rev-T0-1.0.patch \
     file://0003-ARM-imx6sl-Disable-imx6sl-specific-code-when-imx6sl-.patch \
+    file://0004-mmc-sdhci-esdhc-imx-Fixup-runtime-PM-conditions-duri.patch \
 "
 
 COMPATIBLE_MACHINE = "(mx6)"
-- 
1.9.3



More information about the meta-freescale mailing list