[PATCH V2 00/11] mmc: sdhci-esdhci-imx: fix cd/wp regression
ulf.hansson at linaro.org
Thu Jul 23 02:11:58 PDT 2015
On 22 July 2015 at 14:52, Dong Aisheng <aisheng.dong at freescale.com> wrote:
> This is a rebase version of former two patch series:
> No other changes.
> Commit 8d86e4f mmc: sdhci-esdhc-imx: Call mmc_of_parse()
> seriously break the sd card detect/write protect function
> of most IMX platforms since a lot of GPIO flags of cd-gpios/wp-gpios
> are wrongly set in devicetree.
> It breaks the following things:
> 1) cd-gpio function enable
> Most IMX boards GPIO card detect function becomes unwork and using card
> polling mode instead by mistake.
> Openning CONFIG_MMC_DEBUG will easily see that.
> It is caused by the default quirk SDHCI_QUIRK_BROKEN_CARD_DETECTION
> is not cleared for dt platform by commit 8d86e4f, then
> MMC_CAP_NEEDS_POLL is wrongly set.
> This is fixed by patch 6~7
> 2) cd-gpio/wp-gpio polarity
> Before commit 8d86e4f, we do not use GPIO flags passed from
> devicetree. But after it, GPIO flags specfied in dt becomes valid
> and will affect the normal cd/wp function.
> This is fixed by patch 1~5
> 3) max-frequency not work in sdhci
> mmc_of_parse will parse the max-frequency from devicetree,
> however, its value will be overwritten by common sdhci driver
> finnally,so it does not actually work.
> Patch 8 is to fix it.
> 4) patch 9~11 clear unneeded parsing code after switch to mmc_of_parse().
> The series is based on ulf/next tree.
> I also CCed this patch series to all board maintainer related in this
> change, hope they can help test it.
> I only tested some freescale IMX boards.
> Dong Aisheng (11):
> dts: imx51: fix sd card gpio polarity specified in device tree
> dts: imx53: fix sd card gpio polarity specified in device tree
> dts: imx6: fix sd card gpio polarity specified in device tree
> dts: imx25: fix sd card gpio polarity specified in device tree
> dts: imx7: fix sd card gpio polarity specified in device tree
> mmc: sdhci-esdhc-imx: fix cd regression for dt platform
> mmc: sdhci-esdhc-imx: move all non dt probe code into one function
> mmc: sdhci: make max-frequency property in device tree work
> mmc: sdhci-esdhc-imx: remove duplicated dts parsing
> mmc: sdhci-esdhc-imx: clear f_max in boarddata
> dts: mmc: fsl-imx-esdhc: remove fsl,cd-controller support
> .../devicetree/bindings/mmc/fsl-imx-esdhc.txt | 2 -
> arch/arm/boot/dts/imx25-pdk.dts | 4 +-
> arch/arm/boot/dts/imx51-apf51dev.dts | 2 +-
> arch/arm/boot/dts/imx53-ard.dts | 4 +-
> arch/arm/boot/dts/imx53-m53evk.dts | 4 +-
> arch/arm/boot/dts/imx53-qsb-common.dtsi | 4 +-
> arch/arm/boot/dts/imx53-smd.dts | 4 +-
> arch/arm/boot/dts/imx53-tqma53.dtsi | 4 +-
> arch/arm/boot/dts/imx53-tx53.dtsi | 4 +-
> arch/arm/boot/dts/imx53-voipac-bsb.dts | 4 +-
> arch/arm/boot/dts/imx6dl-riotboard.dts | 8 +-
> arch/arm/boot/dts/imx6q-arm2.dts | 5 +-
> arch/arm/boot/dts/imx6q-gk802.dts | 3 +-
> arch/arm/boot/dts/imx6q-tbs2910.dts | 4 +-
> arch/arm/boot/dts/imx6qdl-aristainetos.dtsi | 4 +-
> arch/arm/boot/dts/imx6qdl-aristainetos2.dtsi | 4 +-
> arch/arm/boot/dts/imx6qdl-cubox-i.dtsi | 2 +-
> arch/arm/boot/dts/imx6qdl-dfi-fs700-m60.dtsi | 4 +-
> arch/arm/boot/dts/imx6qdl-gw52xx.dtsi | 2 +-
> arch/arm/boot/dts/imx6qdl-gw53xx.dtsi | 2 +-
> arch/arm/boot/dts/imx6qdl-gw54xx.dtsi | 2 +-
> arch/arm/boot/dts/imx6qdl-hummingboard.dtsi | 2 +-
> arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi | 4 +-
> arch/arm/boot/dts/imx6qdl-phytec-pfla02.dtsi | 8 +-
> arch/arm/boot/dts/imx6qdl-rex.dtsi | 4 +-
> arch/arm/boot/dts/imx6qdl-sabreauto.dtsi | 4 +-
> arch/arm/boot/dts/imx6qdl-sabrelite.dtsi | 6 +-
> arch/arm/boot/dts/imx6qdl-sabresd.dtsi | 8 +-
> arch/arm/boot/dts/imx6qdl-tx6.dtsi | 4 +-
> arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 6 +-
> arch/arm/boot/dts/imx6sl-evk.dts | 10 +-
> arch/arm/boot/dts/imx6sx-sabreauto.dts | 4 +-
> arch/arm/boot/dts/imx6sx-sdb.dtsi | 4 +-
> arch/arm/boot/dts/imx7d-sdb.dts | 4 +-
> drivers/mmc/host/sdhci-esdhc-imx.c | 210 ++++++++++-----------
> drivers/mmc/host/sdhci.c | 9 +-
> include/linux/platform_data/mmc-esdhc-imx.h | 1 -
> 37 files changed, 185 insertions(+), 179 deletions(-)
I have applied this for my fixes branch, with a small change to fix
some white-spaces in patch3 which checkpatch complained about.
More information about the linux-arm-kernel