[meta-freescale] [meta-fsl-arm-extra][PATCH 2/2] linux-riotboard: Fix broken boot

Nikolay Dimitrov picmaster at mail.bg
Sun Apr 26 21:35:02 PDT 2015


Revert patch "mmc: sdhci-esdhc-imx: Call mmc_of_parse()",
commit 1b673ef39236db962ea7cff642949bb5bc485018,
repo https://github.com/Freescale/linux-fslc.

Gary Thomas reported that RIoTboard doesn't boot with commit 48dfc7c, and I
traced the issue to commit 1b673ef. I also verified that the board boots
properly with 1b673ef reverted.

Link: https://lists.yoctoproject.org/pipermail/meta-freescale/2015-April/013486.html # report

Signed-off-by: Nikolay Dimitrov <picmaster at mail.bg>
Cc: Gary Thomas <gary at mlbassoc.com>
Cc: Fabio Estevam <festevam at gmail.com>
---
 ...ert-mmc-sdhci-esdhc-imx-Call-mmc_of_parse.patch |   79 ++++++++++++++++++++
 recipes-kernel/linux/linux-riotboard_4.0.bb        |    1 +
 2 files changed, 80 insertions(+)
 create mode 100644 recipes-kernel/linux/linux-riotboard-4.0/0001-Revert-mmc-sdhci-esdhc-imx-Call-mmc_of_parse.patch

diff --git a/recipes-kernel/linux/linux-riotboard-4.0/0001-Revert-mmc-sdhci-esdhc-imx-Call-mmc_of_parse.patch b/recipes-kernel/linux/linux-riotboard-4.0/0001-Revert-mmc-sdhci-esdhc-imx-Call-mmc_of_parse.patch
new file mode 100644
index 0000000..5ad1700
--- /dev/null
+++ b/recipes-kernel/linux/linux-riotboard-4.0/0001-Revert-mmc-sdhci-esdhc-imx-Call-mmc_of_parse.patch
@@ -0,0 +1,79 @@
+From fc732f2762a98a97e84a40225edd4379d2cb1e6d Mon Sep 17 00:00:00 2001
+From: Nikolay Dimitrov <picmaster at mail.bg>
+Date: Mon, 27 Apr 2015 04:10:47 +0300
+Subject: [PATCH] Revert "mmc: sdhci-esdhc-imx: Call mmc_of_parse()"
+
+This reverts commit 1b673ef39236db962ea7cff642949bb5bc485018.
+
+Gary Thomas reported that RIoTboard doesn't boot with commit 48dfc7c, and I
+traced the issue to commit 1b673ef. I also verified that the board boots
+properly with 1b673ef reverted.
+
+Link: https://lists.yoctoproject.org/pipermail/meta-freescale/2015-April/013486.html # report
+
+Signed-off-by: Nikolay Dimitrov <picmaster at mail.bg>
+---
+ drivers/mmc/host/sdhci-esdhc-imx.c |   38 ++++++++++++++++++++++++++++++------
+ 1 file changed, 32 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
+index 1690d0b..10ef824 100644
+--- a/drivers/mmc/host/sdhci-esdhc-imx.c
++++ b/drivers/mmc/host/sdhci-esdhc-imx.c
+@@ -1009,9 +1009,40 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
+ 					host->mmc->parent->platform_data);
+ 	}
+ 
++	/* write_protect */
++	if (boarddata->wp_type == ESDHC_WP_GPIO) {
++		err = mmc_gpio_request_ro(host->mmc, boarddata->wp_gpio);
++		if (err) {
++			dev_err(mmc_dev(host->mmc),
++				"failed to request write-protect gpio!\n");
++			goto disable_clk;
++		}
++		host->mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
++	}
++
+ 	/* card_detect */
+-	if (boarddata->cd_type == ESDHC_CD_CONTROLLER)
++	switch (boarddata->cd_type) {
++	case ESDHC_CD_GPIO:
++		err = mmc_gpio_request_cd(host->mmc, boarddata->cd_gpio, 0);
++		if (err) {
++			dev_err(mmc_dev(host->mmc),
++				"failed to request card-detect gpio!\n");
++			goto disable_clk;
++		}
++		/* fall through */
++
++	case ESDHC_CD_CONTROLLER:
++		/* we have a working card_detect back */
+ 		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
++		break;
++
++	case ESDHC_CD_PERMANENT:
++		host->mmc->caps |= MMC_CAP_NONREMOVABLE;
++		break;
++
++	case ESDHC_CD_NONE:
++		break;
++	}
+ 
+ 	switch (boarddata->max_bus_width) {
+ 	case 8:
+@@ -1044,11 +1075,6 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
+ 		host->quirks2 |= SDHCI_QUIRK2_NO_1_8_V;
+ 	}
+ 
+-	/* call to generic mmc_of_parse to support additional capabilities */
+-	err = mmc_of_parse(host->mmc);
+-	if (err)
+-		goto disable_clk;
+-
+ 	err = sdhci_add_host(host);
+ 	if (err)
+ 		goto disable_clk;
+-- 
+1.7.10.4
+
diff --git a/recipes-kernel/linux/linux-riotboard_4.0.bb b/recipes-kernel/linux/linux-riotboard_4.0.bb
index 7ac63fc..47648bb 100644
--- a/recipes-kernel/linux/linux-riotboard_4.0.bb
+++ b/recipes-kernel/linux/linux-riotboard_4.0.bb
@@ -10,6 +10,7 @@ SRCREV = "48dfc7ce6933a593a651e8ce029cbc5bcca19382"
 
 SRC_URI = "git://github.com/Freescale/linux-fslc.git;branch=${SRCBRANCH} \
            file://defconfig \
+           file://0001-Revert-mmc-sdhci-esdhc-imx-Call-mmc_of_parse.patch \
 "
 
 COMPATIBLE_MACHINE = "(imx6dl-riotboard)"
-- 
1.7.10.4



More information about the meta-freescale mailing list