Patch "mmc: sdhci-esdhc-imx: fix cd regression for dt platform" has been added to the 4.1-stable tree
Subsystems (5)
This is a note to let you know that I've just added the patch titled
mmc: sdhci-esdhc-imx: fix cd regression for dt platform
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mmc-sdhci-esdhc-imx-fix-cd-regression-for-dt-platform.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
4800e87a2ee886c1972deb73f057d1a6541edb36Mon Sep 17 00:00:00 2001
From: Dong Aisheng <[email protected]>
Date: Wed, 22 Jul 2015 20:53:05 +0800
Subject: mmc: sdhci-esdhc-imx: fix cd regression for dt platform
From: Dong Aisheng <[email protected]>
commit 4800e87a2ee886c1972deb73f057d1a6541edb36 upstream.
Current card detect probe process is that when driver finds a valid ESDHC_CD_GPIO, it will clear the quirk SDHCI_QUIRK_BROKEN_CARD_DETECTION which is set by default for all esdhc/usdhc controllers. Then host driver will know there's a valid card detect function.
Commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()") breaks GPIO CD function for dt platform that it will return directly when find ESDHC_CD_GPIO for dt platform which result in the later wrongly to keep SDHCI_QUIRK_BROKEN_CARD_DETECTION for all dt platforms. Then MMC_CAP_NEEDS_POLL will be used instead even there's a valid GPIO card detect.
This patch adds back this function and follows the original approach to clear the quirk if find an valid CD GPIO for dt platforms.
--- drivers/mmc/host/sdhci-esdhc-imx.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
drivers/mmc/host/sdhci-esdhc-imx.c +9 -1
@@ -868,6 +868,7 @@ sdhci_esdhc_imx_probe_dt(struct platform struct esdhc_platform_data *boarddata) {struct device_node *np = pdev->dev.of_node; +int ret;if (!np)return -ENODEV ;
@@ -904,7 +905,14 @@ sdhci_esdhc_imx_probe_dt(struct platformmmc_of_parse_voltage (np, &host->ocr_mask);/* call to generic mmc_of_parse to support additional capabilities */ -return mmc_of_parse (host->mmc); + ret =mmc_of_parse (host->mmc); +if (ret) +return ret; + +if (!IS_ERR_VALUE (mmc_gpio_get_cd (host->mmc))) + host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION ; + +return 0 ; }#else static inline int
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/dts-imx51-fix-sd-card-gpio-polarity-specified-in-device-tree.patch queue-4.1/dts-imx6-fix-sd-card-gpio-polarity-specified-in-device-tree.patch queue-4.1/dts-imx25-fix-sd-card-gpio-polarity-specified-in-device-tree.patch queue-4.1/dts-imx53-fix-sd-card-gpio-polarity-specified-in-device-tree.patch queue-4.1/mmc-sdhci-esdhc-imx-fix-cd-regression-for-dt-platform.patch