[PATCH V2 00/11] mmc: sdhci-esdhci-imx: fix cd/wp regression

Ulf Hansson ulf.hansson at linaro.org
Thu Jul 23 02:11:58 PDT 2015


+Johan Derycke

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:
> http://lists.infradead.org/pipermail/linux-arm-kernel/2015-June/351167.html
> http://www.spinics.net/lists/arm-kernel/msg426156.html
>
> 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(-)
>
> --
> 1.9.1
>

I have applied this for my fixes branch, with a small change to fix
some white-spaces in patch3 which  checkpatch complained about.

Thanks!

Kind regards
Uffe



More information about the linux-arm-kernel mailing list