linux-mediatek.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers
@ 2020-09-03 23:24 Douglas Anderson
  2020-09-03 23:24 ` [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 Douglas Anderson
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Douglas Anderson @ 2020-09-03 23:24 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Heiko Stuebner, Geert Uytterhoeven, Linus Walleij,
	Peter Ujfalusi, Jerome Brunet, linux-samsung-soc, Aaro Koskinen,
	Kevin Hilman, Michal Simek, Ludovic Desroches, NXP Linux Team,
	linux-tegra, Sascha Hauer, swboyd, Lars Persson, linux-omap,
	Chaotian Jing, Scott Branden, Andrew Jeffery, Greg Kroah-Hartman,
	Yoshihiro Shimoda, linux-kernel, Pengutronix Kernel Team,
	Eugen Hristev, Alexandre Belloni, linux-aspeed, Yangtao Li,
	Hu Ziji, Thierry Reding, Manivannan Sadhasivam, Jesper Nilsson,
	Chunyan Zhang, linux-arm-kernel, Jonathan Hunter, linux-rockchip,
	Kukjin Kim, Pierre Ossman, Saiyam Doshi, Martin Blumenstingl,
	Maxime Ripard, linux-rpi-kernel, linux-amlogic, linux-arm-kernel,
	Barry Song, Nicolas Pitre, Douglas Anderson,
	Microchip Linux Driver Support, Stefan Wahren,
	Christophe JAILLET, Ricky Wu, Nicolas Saenz Julienne,
	Patrice Chotard, Neil Armstrong, Al Cooper, Wolfram Sang,
	Fabio Estevam, Florian Fainelli, Steen Hegelund,
	Krzysztof Kozlowski, Kishon Vijay Abraham I, Chen-Yu Tsai,
	bcm-kernel-feedback-list, Joel Stanley, Orson Zhai, Ray Jui,
	Ben Dooks, Masahiro Yamada, linux-mmc, Baolin Wang, Shawn Guo,
	Andreas Färber, H. Nikolaus Schaller, Adrian Hunter,
	Paul Cercueil, Lee Jones, Marek Vasut, Anson Huang,
	Jaehoon Chung, Rui Miguel Silva, linux-mediatek, Manuel Lauss,
	Matthias Brugger, Michał Mirosław, Angelo Dureghello,
	Lars Povlsen, Nicolas Ferre, Tony Prisk, Vinod Koul,
	Robert Richter, Viresh Kumar, Jun Nie

As per discussion [1], it seems like it should be quite safe to turn
on PROBE_PREFER_ASYNCHRONOUS for all sd/mmc host controllers.  Let's
give it a shot.  For some discussion about this flag, see the commit
message for commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
probe").

I've broken this series into chunks based on LTS kernel releases to
attempt to make it easier if someone wanted to cherry-pick it to an
older kernel.  While these cherry-picks won't be conflict free, there
should only be trivial context conflicts and no problems with drivers
that are totally missing.  This is a bit of a compromise between a
1-big patch and a many-part patch series.

I have only tested this on a rk3399-kevin (sdhci-of-arasan) and a
rk3288-veyron (dw_mmc-rockchip) device and only lightly.  If this
patch causes anyone problems those drivers should be marked with
PROBE_FORCE_SYNCHRONOUS, debugged, and then go back to prefer
asynchronous.  Any problems are likely just a hidden bug that has been
exposed by this change.

NOTE: in theory, it'd be nice if there was a KConfig option that we
could flip that would turn on async probe everywhere (except for those
that opt out by adding PROBE_FORCE_SYNCHRONOUS).  My hope is that by
adding this flag in more places it will become clear that this flag is
working reliably and easier to move over when we're ready.

While coccinelle is too difficult for my feeble brain, I managed to
whip up a pretty terrible python script to help with this.  For your
edification:

import os
import sys
import re

for filename in os.listdir("."):
    found_plat = False
    found_driver = False
    output = []
    for line in open(filename, "r").readlines():
        output.append(line)

        if "struct platform_driver" in line:
            found_plat = True
        if found_plat and re.search(r"\t\.driver\s*=\s*{", line):
            found_driver = True
            found_plat = False
        mo = re.search(r"(\s*)\.name(\s*)=", line)
        if found_driver and mo:
            if mo.group(2) == " ":
                space = " "
            elif mo.group(2) == "\t":
                # Best we can do
                space = " "
            elif mo.group(2).startswith("\t"):
                # Guess that removing one tab is right
                space = mo.group(2)[1:]
            else:
                # Guess it's all spaces
                space = mo.group(2)[7:] + " "

            output.append("%s.probe_type%s= PROBE_PREFER_ASYNCHRONOUS,\n" % (mo.group(1), space))
            found_driver = False

    open(filename, "w").write("".join(output))

[1] https://lore.kernel.org/r/CAPDyKFq31bucJhP9hp1HSqh-qM2uNGHgDoyQpmbJf00nEf_T4Q@mail.gmail.com/


Douglas Anderson (6):
  mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4
  mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.9
  mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14
  mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.19
  mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v5.4
  mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4

 drivers/mmc/host/alcor.c                      | 1 +
 drivers/mmc/host/android-goldfish.c           | 1 +
 drivers/mmc/host/atmel-mci.c                  | 1 +
 drivers/mmc/host/au1xmmc.c                    | 1 +
 drivers/mmc/host/bcm2835.c                    | 1 +
 drivers/mmc/host/cavium-octeon.c              | 1 +
 drivers/mmc/host/davinci_mmc.c                | 1 +
 drivers/mmc/host/dw_mmc-bluefield.c           | 1 +
 drivers/mmc/host/dw_mmc-exynos.c              | 1 +
 drivers/mmc/host/dw_mmc-hi3798cv200.c         | 1 +
 drivers/mmc/host/dw_mmc-k3.c                  | 1 +
 drivers/mmc/host/dw_mmc-pltfm.c               | 1 +
 drivers/mmc/host/dw_mmc-rockchip.c            | 1 +
 drivers/mmc/host/dw_mmc-zx.c                  | 1 +
 drivers/mmc/host/jz4740_mmc.c                 | 1 +
 drivers/mmc/host/meson-gx-mmc.c               | 1 +
 drivers/mmc/host/meson-mx-sdhc-mmc.c          | 1 +
 drivers/mmc/host/meson-mx-sdio.c              | 1 +
 drivers/mmc/host/moxart-mmc.c                 | 1 +
 drivers/mmc/host/mtk-sd.c                     | 1 +
 drivers/mmc/host/mvsdio.c                     | 1 +
 drivers/mmc/host/mxcmmc.c                     | 1 +
 drivers/mmc/host/mxs-mmc.c                    | 1 +
 drivers/mmc/host/omap.c                       | 1 +
 drivers/mmc/host/omap_hsmmc.c                 | 1 +
 drivers/mmc/host/owl-mmc.c                    | 1 +
 drivers/mmc/host/pxamci.c                     | 1 +
 drivers/mmc/host/renesas_sdhi_internal_dmac.c | 1 +
 drivers/mmc/host/renesas_sdhi_sys_dmac.c      | 1 +
 drivers/mmc/host/rtsx_pci_sdmmc.c             | 1 +
 drivers/mmc/host/rtsx_usb_sdmmc.c             | 1 +
 drivers/mmc/host/s3cmci.c                     | 1 +
 drivers/mmc/host/sdhci-acpi.c                 | 1 +
 drivers/mmc/host/sdhci-bcm-kona.c             | 1 +
 drivers/mmc/host/sdhci-brcmstb.c              | 1 +
 drivers/mmc/host/sdhci-cadence.c              | 1 +
 drivers/mmc/host/sdhci-cns3xxx.c              | 1 +
 drivers/mmc/host/sdhci-dove.c                 | 1 +
 drivers/mmc/host/sdhci-esdhc-imx.c            | 1 +
 drivers/mmc/host/sdhci-esdhc-mcf.c            | 1 +
 drivers/mmc/host/sdhci-iproc.c                | 1 +
 drivers/mmc/host/sdhci-milbeaut.c             | 1 +
 drivers/mmc/host/sdhci-of-arasan.c            | 1 +
 drivers/mmc/host/sdhci-of-aspeed.c            | 2 ++
 drivers/mmc/host/sdhci-of-at91.c              | 1 +
 drivers/mmc/host/sdhci-of-dwcmshc.c           | 1 +
 drivers/mmc/host/sdhci-of-esdhc.c             | 1 +
 drivers/mmc/host/sdhci-of-hlwd.c              | 1 +
 drivers/mmc/host/sdhci-of-sparx5.c            | 1 +
 drivers/mmc/host/sdhci-omap.c                 | 1 +
 drivers/mmc/host/sdhci-pic32.c                | 1 +
 drivers/mmc/host/sdhci-pxav2.c                | 1 +
 drivers/mmc/host/sdhci-pxav3.c                | 1 +
 drivers/mmc/host/sdhci-s3c.c                  | 1 +
 drivers/mmc/host/sdhci-sirf.c                 | 1 +
 drivers/mmc/host/sdhci-spear.c                | 1 +
 drivers/mmc/host/sdhci-sprd.c                 | 1 +
 drivers/mmc/host/sdhci-st.c                   | 1 +
 drivers/mmc/host/sdhci-tegra.c                | 1 +
 drivers/mmc/host/sdhci-xenon.c                | 1 +
 drivers/mmc/host/sdhci_am654.c                | 1 +
 drivers/mmc/host/sdhci_f_sdh30.c              | 1 +
 drivers/mmc/host/sh_mmcif.c                   | 1 +
 drivers/mmc/host/sunxi-mmc.c                  | 1 +
 drivers/mmc/host/tmio_mmc.c                   | 1 +
 drivers/mmc/host/uniphier-sd.c                | 1 +
 drivers/mmc/host/usdhi6rol0.c                 | 1 +
 drivers/mmc/host/wbsd.c                       | 1 +
 drivers/mmc/host/wmt-sdmmc.c                  | 1 +
 69 files changed, 70 insertions(+)

-- 
2.28.0.526.ge36021eeef-goog


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4
  2020-09-03 23:24 [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Douglas Anderson
@ 2020-09-03 23:24 ` Douglas Anderson
  2020-09-04  6:36   ` Wolfram Sang
  2020-09-04 13:28   ` Thierry Reding
  2020-09-04 21:53 ` [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Martin Blumenstingl
  2020-09-07 12:28 ` Ulf Hansson
  2 siblings, 2 replies; 10+ messages in thread
From: Douglas Anderson @ 2020-09-03 23:24 UTC (permalink / raw)
  To: Ulf Hansson
  Cc: Alexandre Belloni, Heiko Stuebner, Geert Uytterhoeven,
	Yangtao Li, H. Nikolaus Schaller, Linus Walleij,
	Douglas Anderson, Paul Cercueil, Wolfram Sang, Thierry Reding,
	linux-arm-kernel, Shawn Guo, Fabio Estevam, Michal Simek,
	Marek Vasut, Jesper Nilsson, Florian Fainelli, Anson Huang,
	Aaro Koskinen, Lee Jones, Ludovic Desroches, Krzysztof Kozlowski,
	Jonathan Hunter, Jaehoon Chung, linux-rockchip, Chen-Yu Tsai,
	Kukjin Kim, bcm-kernel-feedback-list, NXP Linux Team,
	Pierre Ossman, linux-tegra, linux-omap, Ray Jui, Sascha Hauer,
	Nicolas Ferre, Maxime Ripard, swboyd, Rui Miguel Silva,
	linux-samsung-soc, linux-mediatek, Lars Persson, Ben Dooks,
	Manuel Lauss, Matthias Brugger, Michał Mirosław,
	Chaotian Jing, linux-arm-kernel, Peter Ujfalusi, Barry Song,
	Scott Branden, Nicolas Pitre, Greg Kroah-Hartman,
	Yoshihiro Shimoda, linux-mmc, Adrian Hunter, linux-kernel,
	Tony Prisk, Vinod Koul, Patrice Chotard, Pengutronix Kernel Team,
	Viresh Kumar, Eugen Hristev, Ricky Wu

This is like commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
probe") but applied to a whole pile of drivers.  This batch converts
the drivers that appeared to be around in the v4.4 timeframe.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
---

 drivers/mmc/host/android-goldfish.c | 1 +
 drivers/mmc/host/atmel-mci.c        | 1 +
 drivers/mmc/host/au1xmmc.c          | 1 +
 drivers/mmc/host/davinci_mmc.c      | 1 +
 drivers/mmc/host/dw_mmc-exynos.c    | 1 +
 drivers/mmc/host/dw_mmc-k3.c        | 1 +
 drivers/mmc/host/dw_mmc-pltfm.c     | 1 +
 drivers/mmc/host/dw_mmc-rockchip.c  | 1 +
 drivers/mmc/host/jz4740_mmc.c       | 1 +
 drivers/mmc/host/moxart-mmc.c       | 1 +
 drivers/mmc/host/mtk-sd.c           | 1 +
 drivers/mmc/host/mvsdio.c           | 1 +
 drivers/mmc/host/mxcmmc.c           | 1 +
 drivers/mmc/host/mxs-mmc.c          | 1 +
 drivers/mmc/host/omap.c             | 1 +
 drivers/mmc/host/omap_hsmmc.c       | 1 +
 drivers/mmc/host/pxamci.c           | 1 +
 drivers/mmc/host/rtsx_pci_sdmmc.c   | 1 +
 drivers/mmc/host/rtsx_usb_sdmmc.c   | 1 +
 drivers/mmc/host/s3cmci.c           | 1 +
 drivers/mmc/host/sdhci-acpi.c       | 1 +
 drivers/mmc/host/sdhci-bcm-kona.c   | 1 +
 drivers/mmc/host/sdhci-cns3xxx.c    | 1 +
 drivers/mmc/host/sdhci-dove.c       | 1 +
 drivers/mmc/host/sdhci-esdhc-imx.c  | 1 +
 drivers/mmc/host/sdhci-iproc.c      | 1 +
 drivers/mmc/host/sdhci-of-arasan.c  | 1 +
 drivers/mmc/host/sdhci-of-at91.c    | 1 +
 drivers/mmc/host/sdhci-of-esdhc.c   | 1 +
 drivers/mmc/host/sdhci-of-hlwd.c    | 1 +
 drivers/mmc/host/sdhci-pxav2.c      | 1 +
 drivers/mmc/host/sdhci-pxav3.c      | 1 +
 drivers/mmc/host/sdhci-s3c.c        | 1 +
 drivers/mmc/host/sdhci-sirf.c       | 1 +
 drivers/mmc/host/sdhci-spear.c      | 1 +
 drivers/mmc/host/sdhci-st.c         | 1 +
 drivers/mmc/host/sdhci-tegra.c      | 1 +
 drivers/mmc/host/sdhci_f_sdh30.c    | 1 +
 drivers/mmc/host/sh_mmcif.c         | 1 +
 drivers/mmc/host/sunxi-mmc.c        | 1 +
 drivers/mmc/host/tmio_mmc.c         | 1 +
 drivers/mmc/host/usdhi6rol0.c       | 1 +
 drivers/mmc/host/wbsd.c             | 1 +
 drivers/mmc/host/wmt-sdmmc.c        | 1 +
 44 files changed, 44 insertions(+)

diff --git a/drivers/mmc/host/android-goldfish.c b/drivers/mmc/host/android-goldfish.c
index ceb4924e02d0..e878fdf8f20a 100644
--- a/drivers/mmc/host/android-goldfish.c
+++ b/drivers/mmc/host/android-goldfish.c
@@ -537,6 +537,7 @@ static struct platform_driver goldfish_mmc_driver = {
 	.remove		= goldfish_mmc_remove,
 	.driver		= {
 		.name	= DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 	},
 };
 
diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 300901415aa2..19d72eb0ec5a 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -2668,6 +2668,7 @@ static struct platform_driver atmci_driver = {
 	.remove		= atmci_remove,
 	.driver		= {
 		.name		= "atmel_mci",
+		.probe_type	= PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table	= of_match_ptr(atmci_dt_ids),
 		.pm		= &atmci_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/au1xmmc.c b/drivers/mmc/host/au1xmmc.c
index 9bb1910268ca..bd00515fbaba 100644
--- a/drivers/mmc/host/au1xmmc.c
+++ b/drivers/mmc/host/au1xmmc.c
@@ -1189,6 +1189,7 @@ static struct platform_driver au1xmmc_driver = {
 	.resume        = au1xmmc_resume,
 	.driver        = {
 		.name  = DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 	},
 };
 
diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c
index a138e1ea6805..384e989f493a 100644
--- a/drivers/mmc/host/davinci_mmc.c
+++ b/drivers/mmc/host/davinci_mmc.c
@@ -1395,6 +1395,7 @@ static const struct dev_pm_ops davinci_mmcsd_pm = {
 static struct platform_driver davinci_mmcsd_driver = {
 	.driver		= {
 		.name	= "davinci_mmc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= davinci_mmcsd_pm_ops,
 		.of_match_table = davinci_mmc_dt_ids,
 	},
diff --git a/drivers/mmc/host/dw_mmc-exynos.c b/drivers/mmc/host/dw_mmc-exynos.c
index 95adeee07217..0c75810812a0 100644
--- a/drivers/mmc/host/dw_mmc-exynos.c
+++ b/drivers/mmc/host/dw_mmc-exynos.c
@@ -592,6 +592,7 @@ static struct platform_driver dw_mci_exynos_pltfm_driver = {
 	.remove		= dw_mci_exynos_remove,
 	.driver		= {
 		.name		= "dwmmc_exynos",
+		.probe_type	= PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table	= dw_mci_exynos_match,
 		.pm		= &dw_mci_exynos_pmops,
 	},
diff --git a/drivers/mmc/host/dw_mmc-k3.c b/drivers/mmc/host/dw_mmc-k3.c
index 50977ff18074..ea7e6c734394 100644
--- a/drivers/mmc/host/dw_mmc-k3.c
+++ b/drivers/mmc/host/dw_mmc-k3.c
@@ -473,6 +473,7 @@ static struct platform_driver dw_mci_k3_pltfm_driver = {
 	.remove		= dw_mci_pltfm_remove,
 	.driver		= {
 		.name		= "dwmmc_k3",
+		.probe_type	= PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table	= dw_mci_k3_match,
 		.pm		= &dw_mci_k3_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/dw_mmc-pltfm.c b/drivers/mmc/host/dw_mmc-pltfm.c
index 7de37f524a96..73731cd3ba23 100644
--- a/drivers/mmc/host/dw_mmc-pltfm.c
+++ b/drivers/mmc/host/dw_mmc-pltfm.c
@@ -98,6 +98,7 @@ static struct platform_driver dw_mci_pltfm_driver = {
 	.remove		= dw_mci_pltfm_remove,
 	.driver		= {
 		.name		= "dw_mmc",
+		.probe_type	= PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table	= dw_mci_pltfm_match,
 		.pm		= &dw_mci_pltfm_pmops,
 	},
diff --git a/drivers/mmc/host/dw_mmc-rockchip.c b/drivers/mmc/host/dw_mmc-rockchip.c
index d4d02134848c..753502ce3c85 100644
--- a/drivers/mmc/host/dw_mmc-rockchip.c
+++ b/drivers/mmc/host/dw_mmc-rockchip.c
@@ -383,6 +383,7 @@ static struct platform_driver dw_mci_rockchip_pltfm_driver = {
 	.remove		= dw_mci_rockchip_remove,
 	.driver		= {
 		.name		= "dwmmc_rockchip",
+		.probe_type	= PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table	= dw_mci_rockchip_match,
 		.pm		= &dw_mci_rockchip_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/jz4740_mmc.c b/drivers/mmc/host/jz4740_mmc.c
index 21fd0939bb7b..e2a111e54097 100644
--- a/drivers/mmc/host/jz4740_mmc.c
+++ b/drivers/mmc/host/jz4740_mmc.c
@@ -1125,6 +1125,7 @@ static struct platform_driver jz4740_mmc_driver = {
 	.remove = jz4740_mmc_remove,
 	.driver = {
 		.name = "jz4740-mmc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(jz4740_mmc_of_match),
 		.pm = pm_ptr(&jz4740_mmc_pm_ops),
 	},
diff --git a/drivers/mmc/host/moxart-mmc.c b/drivers/mmc/host/moxart-mmc.c
index fc6b9cf27d0b..2bfb376fddc4 100644
--- a/drivers/mmc/host/moxart-mmc.c
+++ b/drivers/mmc/host/moxart-mmc.c
@@ -717,6 +717,7 @@ static struct platform_driver moxart_mmc_driver = {
 	.remove     = moxart_remove,
 	.driver     = {
 		.name		= "mmc-moxart",
+		.probe_type	= PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table	= moxart_mmc_match,
 	},
 };
diff --git a/drivers/mmc/host/mtk-sd.c b/drivers/mmc/host/mtk-sd.c
index ed2b24691b4f..691c928edab7 100644
--- a/drivers/mmc/host/mtk-sd.c
+++ b/drivers/mmc/host/mtk-sd.c
@@ -2689,6 +2689,7 @@ static struct platform_driver mt_msdc_driver = {
 	.remove = msdc_drv_remove,
 	.driver = {
 		.name = "mtk-msdc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = msdc_of_ids,
 		.pm = &msdc_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index cc0752a9df6d..629efbe639c4 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -824,6 +824,7 @@ static struct platform_driver mvsd_driver = {
 	.remove		= mvsd_remove,
 	.driver		= {
 		.name	= DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = mvsdio_dt_ids,
 	},
 };
diff --git a/drivers/mmc/host/mxcmmc.c b/drivers/mmc/host/mxcmmc.c
index b3d654c688e5..12ee07285980 100644
--- a/drivers/mmc/host/mxcmmc.c
+++ b/drivers/mmc/host/mxcmmc.c
@@ -1244,6 +1244,7 @@ static struct platform_driver mxcmci_driver = {
 	.id_table	= mxcmci_devtype,
 	.driver		= {
 		.name		= DRIVER_NAME,
+		.probe_type	= PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &mxcmci_pm_ops,
 		.of_match_table	= mxcmci_of_match,
 	}
diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
index b1820def36c0..75007f61df97 100644
--- a/drivers/mmc/host/mxs-mmc.c
+++ b/drivers/mmc/host/mxs-mmc.c
@@ -726,6 +726,7 @@ static struct platform_driver mxs_mmc_driver = {
 	.id_table	= mxs_ssp_ids,
 	.driver		= {
 		.name	= DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &mxs_mmc_pm_ops,
 		.of_match_table = mxs_mmc_dt_ids,
 	},
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c
index 33d7af7c7762..6aa0537f1f84 100644
--- a/drivers/mmc/host/omap.c
+++ b/drivers/mmc/host/omap.c
@@ -1504,6 +1504,7 @@ static struct platform_driver mmc_omap_driver = {
 	.remove		= mmc_omap_remove,
 	.driver		= {
 		.name	= DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(mmc_omap_match),
 	},
 };
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 37b8740513f5..036264443646 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2171,6 +2171,7 @@ static struct platform_driver omap_hsmmc_driver = {
 	.remove		= omap_hsmmc_remove,
 	.driver		= {
 		.name = DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm = &omap_hsmmc_dev_pm_ops,
 		.of_match_table = of_match_ptr(omap_mmc_of_match),
 	},
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index 3a9333475a2b..29f6180a0036 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -811,6 +811,7 @@ static struct platform_driver pxamci_driver = {
 	.remove		= pxamci_remove,
 	.driver		= {
 		.name	= DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(pxa_mmc_dt_ids),
 	},
 };
diff --git a/drivers/mmc/host/rtsx_pci_sdmmc.c b/drivers/mmc/host/rtsx_pci_sdmmc.c
index 2763a376b054..eb395e144207 100644
--- a/drivers/mmc/host/rtsx_pci_sdmmc.c
+++ b/drivers/mmc/host/rtsx_pci_sdmmc.c
@@ -1471,6 +1471,7 @@ static struct platform_driver rtsx_pci_sdmmc_driver = {
 	.id_table       = rtsx_pci_sdmmc_ids,
 	.driver		= {
 		.name	= DRV_NAME_RTSX_PCI_SDMMC,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 	},
 };
 module_platform_driver(rtsx_pci_sdmmc_driver);
diff --git a/drivers/mmc/host/rtsx_usb_sdmmc.c b/drivers/mmc/host/rtsx_usb_sdmmc.c
index 7225d9312af8..598f49573f5d 100644
--- a/drivers/mmc/host/rtsx_usb_sdmmc.c
+++ b/drivers/mmc/host/rtsx_usb_sdmmc.c
@@ -1458,6 +1458,7 @@ static struct platform_driver rtsx_usb_sdmmc_driver = {
 	.id_table       = rtsx_usb_sdmmc_ids,
 	.driver		= {
 		.name	= "rtsx_usb_sdmmc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &rtsx_usb_sdmmc_dev_pm_ops,
 	},
 };
diff --git a/drivers/mmc/host/s3cmci.c b/drivers/mmc/host/s3cmci.c
index a725fb1abce7..e3698aba8dd3 100644
--- a/drivers/mmc/host/s3cmci.c
+++ b/drivers/mmc/host/s3cmci.c
@@ -1804,6 +1804,7 @@ MODULE_DEVICE_TABLE(platform, s3cmci_driver_ids);
 static struct platform_driver s3cmci_driver = {
 	.driver	= {
 		.name	= "s3c-sdi",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = s3cmci_dt_match,
 	},
 	.id_table	= s3cmci_driver_ids,
diff --git a/drivers/mmc/host/sdhci-acpi.c b/drivers/mmc/host/sdhci-acpi.c
index 284cba11e279..fc41d0451f20 100644
--- a/drivers/mmc/host/sdhci-acpi.c
+++ b/drivers/mmc/host/sdhci-acpi.c
@@ -1027,6 +1027,7 @@ static const struct dev_pm_ops sdhci_acpi_pm_ops = {
 static struct platform_driver sdhci_acpi_driver = {
 	.driver = {
 		.name			= "sdhci-acpi",
+		.probe_type		= PROBE_PREFER_ASYNCHRONOUS,
 		.acpi_match_table	= sdhci_acpi_ids,
 		.pm			= &sdhci_acpi_pm_ops,
 	},
diff --git a/drivers/mmc/host/sdhci-bcm-kona.c b/drivers/mmc/host/sdhci-bcm-kona.c
index a6c2bd202b45..4d4aac85cc7a 100644
--- a/drivers/mmc/host/sdhci-bcm-kona.c
+++ b/drivers/mmc/host/sdhci-bcm-kona.c
@@ -324,6 +324,7 @@ static int sdhci_bcm_kona_probe(struct platform_device *pdev)
 static struct platform_driver sdhci_bcm_kona_driver = {
 	.driver		= {
 		.name	= "sdhci-kona",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &sdhci_pltfm_pmops,
 		.of_match_table = sdhci_bcm_kona_of_match,
 	},
diff --git a/drivers/mmc/host/sdhci-cns3xxx.c b/drivers/mmc/host/sdhci-cns3xxx.c
index 811eab1b8964..2a29c7a4f308 100644
--- a/drivers/mmc/host/sdhci-cns3xxx.c
+++ b/drivers/mmc/host/sdhci-cns3xxx.c
@@ -98,6 +98,7 @@ static int sdhci_cns3xxx_probe(struct platform_device *pdev)
 static struct platform_driver sdhci_cns3xxx_driver = {
 	.driver		= {
 		.name	= "sdhci-cns3xxx",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &sdhci_pltfm_pmops,
 	},
 	.probe		= sdhci_cns3xxx_probe,
diff --git a/drivers/mmc/host/sdhci-dove.c b/drivers/mmc/host/sdhci-dove.c
index fe9da3122fe9..5e5bf82e5976 100644
--- a/drivers/mmc/host/sdhci-dove.c
+++ b/drivers/mmc/host/sdhci-dove.c
@@ -105,6 +105,7 @@ MODULE_DEVICE_TABLE(of, sdhci_dove_of_match_table);
 static struct platform_driver sdhci_dove_driver = {
 	.driver		= {
 		.name	= "sdhci-dove",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &sdhci_pltfm_pmops,
 		.of_match_table = sdhci_dove_of_match_table,
 	},
diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index 325e241b5f99..6a859616dcc7 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -1925,6 +1925,7 @@ static const struct dev_pm_ops sdhci_esdhc_pmops = {
 static struct platform_driver sdhci_esdhc_imx_driver = {
 	.driver		= {
 		.name	= "sdhci-esdhc-imx",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = imx_esdhc_dt_ids,
 		.pm	= &sdhci_esdhc_pmops,
 	},
diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
index b540aa6faacb..c9434b461aab 100644
--- a/drivers/mmc/host/sdhci-iproc.c
+++ b/drivers/mmc/host/sdhci-iproc.c
@@ -369,6 +369,7 @@ static int sdhci_iproc_probe(struct platform_device *pdev)
 static struct platform_driver sdhci_iproc_driver = {
 	.driver = {
 		.name = "sdhci-iproc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = sdhci_iproc_of_match,
 		.acpi_match_table = ACPI_PTR(sdhci_iproc_acpi_ids),
 		.pm = &sdhci_pltfm_pmops,
diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
index 3aea46db2ea7..829ccef87426 100644
--- a/drivers/mmc/host/sdhci-of-arasan.c
+++ b/drivers/mmc/host/sdhci-of-arasan.c
@@ -1693,6 +1693,7 @@ static int sdhci_arasan_remove(struct platform_device *pdev)
 static struct platform_driver sdhci_arasan_driver = {
 	.driver = {
 		.name = "sdhci-arasan",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = sdhci_arasan_of_match,
 		.pm = &sdhci_arasan_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/sdhci-of-at91.c b/drivers/mmc/host/sdhci-of-at91.c
index 1ece2c50042c..5564d7b23e7c 100644
--- a/drivers/mmc/host/sdhci-of-at91.c
+++ b/drivers/mmc/host/sdhci-of-at91.c
@@ -465,6 +465,7 @@ static int sdhci_at91_remove(struct platform_device *pdev)
 static struct platform_driver sdhci_at91_driver = {
 	.driver		= {
 		.name	= "sdhci-at91",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = sdhci_at91_dt_match,
 		.pm	= &sdhci_at91_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/sdhci-of-esdhc.c b/drivers/mmc/host/sdhci-of-esdhc.c
index 45881b309956..3a3340c9b8c9 100644
--- a/drivers/mmc/host/sdhci-of-esdhc.c
+++ b/drivers/mmc/host/sdhci-of-esdhc.c
@@ -1468,6 +1468,7 @@ static int sdhci_esdhc_probe(struct platform_device *pdev)
 static struct platform_driver sdhci_esdhc_driver = {
 	.driver = {
 		.name = "sdhci-esdhc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = sdhci_esdhc_of_match,
 		.pm = &esdhc_of_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/sdhci-of-hlwd.c b/drivers/mmc/host/sdhci-of-hlwd.c
index da844a39af6e..12675797b296 100644
--- a/drivers/mmc/host/sdhci-of-hlwd.c
+++ b/drivers/mmc/host/sdhci-of-hlwd.c
@@ -80,6 +80,7 @@ MODULE_DEVICE_TABLE(of, sdhci_hlwd_of_match);
 static struct platform_driver sdhci_hlwd_driver = {
 	.driver = {
 		.name = "sdhci-hlwd",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = sdhci_hlwd_of_match,
 		.pm = &sdhci_pltfm_pmops,
 	},
diff --git a/drivers/mmc/host/sdhci-pxav2.c b/drivers/mmc/host/sdhci-pxav2.c
index 9282bc4b8c41..f18906b5575f 100644
--- a/drivers/mmc/host/sdhci-pxav2.c
+++ b/drivers/mmc/host/sdhci-pxav2.c
@@ -226,6 +226,7 @@ static int sdhci_pxav2_probe(struct platform_device *pdev)
 static struct platform_driver sdhci_pxav2_driver = {
 	.driver		= {
 		.name	= "sdhci-pxav2",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(sdhci_pxav2_of_match),
 		.pm	= &sdhci_pltfm_pmops,
 	},
diff --git a/drivers/mmc/host/sdhci-pxav3.c b/drivers/mmc/host/sdhci-pxav3.c
index e55037ceda73..a6d89a3f1946 100644
--- a/drivers/mmc/host/sdhci-pxav3.c
+++ b/drivers/mmc/host/sdhci-pxav3.c
@@ -567,6 +567,7 @@ static const struct dev_pm_ops sdhci_pxav3_pmops = {
 static struct platform_driver sdhci_pxav3_driver = {
 	.driver		= {
 		.name	= "sdhci-pxav3",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(sdhci_pxav3_of_match),
 		.pm	= &sdhci_pxav3_pmops,
 	},
diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
index 9194bb73e601..ae75bebbbfbf 100644
--- a/drivers/mmc/host/sdhci-s3c.c
+++ b/drivers/mmc/host/sdhci-s3c.c
@@ -784,6 +784,7 @@ static struct platform_driver sdhci_s3c_driver = {
 	.id_table	= sdhci_s3c_driver_ids,
 	.driver		= {
 		.name	= "s3c-sdhci",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(sdhci_s3c_dt_match),
 		.pm	= &sdhci_s3c_pmops,
 	},
diff --git a/drivers/mmc/host/sdhci-sirf.c b/drivers/mmc/host/sdhci-sirf.c
index f4b05dd6c20a..e9b347b3af7e 100644
--- a/drivers/mmc/host/sdhci-sirf.c
+++ b/drivers/mmc/host/sdhci-sirf.c
@@ -220,6 +220,7 @@ MODULE_DEVICE_TABLE(of, sdhci_sirf_of_match);
 static struct platform_driver sdhci_sirf_driver = {
 	.driver		= {
 		.name	= "sdhci-sirf",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = sdhci_sirf_of_match,
 		.pm	= &sdhci_pltfm_pmops,
 	},
diff --git a/drivers/mmc/host/sdhci-spear.c b/drivers/mmc/host/sdhci-spear.c
index b4b63089a4e2..d463e2fd5b1a 100644
--- a/drivers/mmc/host/sdhci-spear.c
+++ b/drivers/mmc/host/sdhci-spear.c
@@ -181,6 +181,7 @@ MODULE_DEVICE_TABLE(of, sdhci_spear_id_table);
 static struct platform_driver sdhci_driver = {
 	.driver = {
 		.name	= "sdhci",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &sdhci_pm_ops,
 		.of_match_table = of_match_ptr(sdhci_spear_id_table),
 	},
diff --git a/drivers/mmc/host/sdhci-st.c b/drivers/mmc/host/sdhci-st.c
index 1301cebfc3ea..4e9ff3e828ba 100644
--- a/drivers/mmc/host/sdhci-st.c
+++ b/drivers/mmc/host/sdhci-st.c
@@ -521,6 +521,7 @@ static struct platform_driver sdhci_st_driver = {
 	.remove = sdhci_st_remove,
 	.driver = {
 		   .name = "sdhci-st",
+		   .probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		   .pm = &sdhci_st_pmops,
 		   .of_match_table = of_match_ptr(st_sdhci_match),
 		  },
diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c
index 428cdc53c858..ed12aacb1c73 100644
--- a/drivers/mmc/host/sdhci-tegra.c
+++ b/drivers/mmc/host/sdhci-tegra.c
@@ -1782,6 +1782,7 @@ static SIMPLE_DEV_PM_OPS(sdhci_tegra_dev_pm_ops, sdhci_tegra_suspend,
 static struct platform_driver sdhci_tegra_driver = {
 	.driver		= {
 		.name	= "sdhci-tegra",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = sdhci_tegra_dt_match,
 		.pm	= &sdhci_tegra_dev_pm_ops,
 	},
diff --git a/drivers/mmc/host/sdhci_f_sdh30.c b/drivers/mmc/host/sdhci_f_sdh30.c
index 4625cc071b61..3f5977979cf2 100644
--- a/drivers/mmc/host/sdhci_f_sdh30.c
+++ b/drivers/mmc/host/sdhci_f_sdh30.c
@@ -219,6 +219,7 @@ MODULE_DEVICE_TABLE(acpi, f_sdh30_acpi_ids);
 static struct platform_driver sdhci_f_sdh30_driver = {
 	.driver = {
 		.name = "f_sdh30",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(f_sdh30_dt_ids),
 		.acpi_match_table = ACPI_PTR(f_sdh30_acpi_ids),
 		.pm	= &sdhci_pltfm_pmops,
diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c
index 9f53634aa411..e5e457037235 100644
--- a/drivers/mmc/host/sh_mmcif.c
+++ b/drivers/mmc/host/sh_mmcif.c
@@ -1562,6 +1562,7 @@ static struct platform_driver sh_mmcif_driver = {
 	.remove		= sh_mmcif_remove,
 	.driver		= {
 		.name	= DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm	= &sh_mmcif_dev_pm_ops,
 		.of_match_table = sh_mmcif_of_match,
 	},
diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
index 5e95bbc51644..fc62773602ec 100644
--- a/drivers/mmc/host/sunxi-mmc.c
+++ b/drivers/mmc/host/sunxi-mmc.c
@@ -1514,6 +1514,7 @@ static const struct dev_pm_ops sunxi_mmc_pm_ops = {
 static struct platform_driver sunxi_mmc_driver = {
 	.driver = {
 		.name	= "sunxi-mmc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = of_match_ptr(sunxi_mmc_of_match),
 		.pm = &sunxi_mmc_pm_ops,
 	},
diff --git a/drivers/mmc/host/tmio_mmc.c b/drivers/mmc/host/tmio_mmc.c
index 757c90160ae4..d2d3b8df1bbe 100644
--- a/drivers/mmc/host/tmio_mmc.c
+++ b/drivers/mmc/host/tmio_mmc.c
@@ -213,6 +213,7 @@ static const struct dev_pm_ops tmio_mmc_dev_pm_ops = {
 static struct platform_driver tmio_mmc_driver = {
 	.driver = {
 		.name = "tmio-mmc",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm = &tmio_mmc_dev_pm_ops,
 	},
 	.probe = tmio_mmc_probe,
diff --git a/drivers/mmc/host/usdhi6rol0.c b/drivers/mmc/host/usdhi6rol0.c
index 369b8dee2e3d..f644f7035f16 100644
--- a/drivers/mmc/host/usdhi6rol0.c
+++ b/drivers/mmc/host/usdhi6rol0.c
@@ -1890,6 +1890,7 @@ static struct platform_driver usdhi6_driver = {
 	.remove		= usdhi6_remove,
 	.driver		= {
 		.name	= "usdhi6rol0",
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.of_match_table = usdhi6_of_match,
 	},
 };
diff --git a/drivers/mmc/host/wbsd.c b/drivers/mmc/host/wbsd.c
index 67f917d6ecd3..cd63ea865b77 100644
--- a/drivers/mmc/host/wbsd.c
+++ b/drivers/mmc/host/wbsd.c
@@ -1905,6 +1905,7 @@ static struct platform_driver wbsd_driver = {
 	.resume		= wbsd_platform_resume,
 	.driver		= {
 		.name	= DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 	},
 };
 
diff --git a/drivers/mmc/host/wmt-sdmmc.c b/drivers/mmc/host/wmt-sdmmc.c
index 2c4ba1fa4bbf..cf10949fb0ac 100644
--- a/drivers/mmc/host/wmt-sdmmc.c
+++ b/drivers/mmc/host/wmt-sdmmc.c
@@ -990,6 +990,7 @@ static struct platform_driver wmt_mci_driver = {
 	.remove = wmt_mci_remove,
 	.driver = {
 		.name = DRIVER_NAME,
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
 		.pm = wmt_mci_pm_ops,
 		.of_match_table = wmt_mci_dt_ids,
 	},
-- 
2.28.0.526.ge36021eeef-goog


_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4
  2020-09-03 23:24 ` [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 Douglas Anderson
@ 2020-09-04  6:36   ` Wolfram Sang
  2020-09-04 13:28   ` Thierry Reding
  1 sibling, 0 replies; 10+ messages in thread
From: Wolfram Sang @ 2020-09-04  6:36 UTC (permalink / raw)
  To: Douglas Anderson
  Cc: Ulf Hansson, Heiko Stuebner, Geert Uytterhoeven, Yangtao Li,
	H. Nikolaus Schaller, Linus Walleij, Alexandre Belloni,
	Michal Simek, Paul Cercueil, linux-tegra, Thierry Reding,
	linux-arm-kernel, Shawn Guo, Fabio Estevam, Marek Vasut,
	Jesper Nilsson, Florian Fainelli, Anson Huang, Aaro Koskinen,
	Lee Jones, Ludovic Desroches, Krzysztof Kozlowski,
	Jonathan Hunter, Jaehoon Chung, linux-rockchip, Chen-Yu Tsai,
	Kukjin Kim, bcm-kernel-feedback-list, NXP Linux Team,
	Pierre Ossman, linux-omap, Ray Jui, Sascha Hauer, Nicolas Ferre,
	Maxime Ripard, swboyd, Rui Miguel Silva, linux-samsung-soc,
	linux-mediatek, Lars Persson, Ben Dooks, Manuel Lauss,
	Matthias Brugger, Michał Mirosław, Chaotian Jing,
	linux-arm-kernel, Peter Ujfalusi, Barry Song, Scott Branden,
	Nicolas Pitre, Greg Kroah-Hartman, Yoshihiro Shimoda, linux-mmc,
	Adrian Hunter, linux-kernel, Tony Prisk, Vinod Koul,
	Patrice Chotard, Pengutronix Kernel Team, Viresh Kumar,
	Eugen Hristev, Ricky Wu


[-- Attachment #1.1: Type: text/plain, Size: 579 bytes --]

On Thu, Sep 03, 2020 at 04:24:36PM -0700, Douglas Anderson wrote:
> This is like commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> probe") but applied to a whole pile of drivers.  This batch converts
> the drivers that appeared to be around in the v4.4 timeframe.
> 
> Signed-off-by: Douglas Anderson <dianders@chromium.org>

Positive comments from patch 3 apply here, too.

Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>

>  drivers/mmc/host/sh_mmcif.c         | 1 +

Tested-by: Wolfram Sang <wsa+renesas@sang-engineering.com> # SH_MMCIF


[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4
  2020-09-03 23:24 ` [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 Douglas Anderson
  2020-09-04  6:36   ` Wolfram Sang
@ 2020-09-04 13:28   ` Thierry Reding
  1 sibling, 0 replies; 10+ messages in thread
From: Thierry Reding @ 2020-09-04 13:28 UTC (permalink / raw)
  To: Douglas Anderson
  Cc: Ulf Hansson, Heiko Stuebner, Geert Uytterhoeven, Yangtao Li,
	H. Nikolaus Schaller, Linus Walleij, Alexandre Belloni,
	Michal Simek, Paul Cercueil, Wolfram Sang, linux-arm-kernel,
	Shawn Guo, Fabio Estevam, Marek Vasut, Jesper Nilsson,
	Florian Fainelli, Anson Huang, Aaro Koskinen, Lee Jones,
	Ludovic Desroches, Krzysztof Kozlowski, Jonathan Hunter,
	Jaehoon Chung, linux-rockchip, Chen-Yu Tsai, Kukjin Kim,
	bcm-kernel-feedback-list, NXP Linux Team, Pierre Ossman,
	linux-tegra, linux-omap, Ray Jui, Sascha Hauer, Nicolas Ferre,
	Maxime Ripard, swboyd, Rui Miguel Silva, linux-samsung-soc,
	linux-mediatek, Lars Persson, Ben Dooks, Manuel Lauss,
	Matthias Brugger, Michał Mirosław, Chaotian Jing,
	linux-arm-kernel, Peter Ujfalusi, Barry Song, Scott Branden,
	Nicolas Pitre, Greg Kroah-Hartman, Yoshihiro Shimoda, linux-mmc,
	Adrian Hunter, linux-kernel, Tony Prisk, Vinod Koul,
	Patrice Chotard, Pengutronix Kernel Team, Viresh Kumar,
	Eugen Hristev, Ricky Wu


[-- Attachment #1.1: Type: text/plain, Size: 2237 bytes --]

On Thu, Sep 03, 2020 at 04:24:36PM -0700, Douglas Anderson wrote:
> This is like commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> probe") but applied to a whole pile of drivers.  This batch converts
> the drivers that appeared to be around in the v4.4 timeframe.
> 
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> ---
> 
>  drivers/mmc/host/android-goldfish.c | 1 +
>  drivers/mmc/host/atmel-mci.c        | 1 +
>  drivers/mmc/host/au1xmmc.c          | 1 +
>  drivers/mmc/host/davinci_mmc.c      | 1 +
>  drivers/mmc/host/dw_mmc-exynos.c    | 1 +
>  drivers/mmc/host/dw_mmc-k3.c        | 1 +
>  drivers/mmc/host/dw_mmc-pltfm.c     | 1 +
>  drivers/mmc/host/dw_mmc-rockchip.c  | 1 +
>  drivers/mmc/host/jz4740_mmc.c       | 1 +
>  drivers/mmc/host/moxart-mmc.c       | 1 +
>  drivers/mmc/host/mtk-sd.c           | 1 +
>  drivers/mmc/host/mvsdio.c           | 1 +
>  drivers/mmc/host/mxcmmc.c           | 1 +
>  drivers/mmc/host/mxs-mmc.c          | 1 +
>  drivers/mmc/host/omap.c             | 1 +
>  drivers/mmc/host/omap_hsmmc.c       | 1 +
>  drivers/mmc/host/pxamci.c           | 1 +
>  drivers/mmc/host/rtsx_pci_sdmmc.c   | 1 +
>  drivers/mmc/host/rtsx_usb_sdmmc.c   | 1 +
>  drivers/mmc/host/s3cmci.c           | 1 +
>  drivers/mmc/host/sdhci-acpi.c       | 1 +
>  drivers/mmc/host/sdhci-bcm-kona.c   | 1 +
>  drivers/mmc/host/sdhci-cns3xxx.c    | 1 +
>  drivers/mmc/host/sdhci-dove.c       | 1 +
>  drivers/mmc/host/sdhci-esdhc-imx.c  | 1 +
>  drivers/mmc/host/sdhci-iproc.c      | 1 +
>  drivers/mmc/host/sdhci-of-arasan.c  | 1 +
>  drivers/mmc/host/sdhci-of-at91.c    | 1 +
>  drivers/mmc/host/sdhci-of-esdhc.c   | 1 +
>  drivers/mmc/host/sdhci-of-hlwd.c    | 1 +
>  drivers/mmc/host/sdhci-pxav2.c      | 1 +
>  drivers/mmc/host/sdhci-pxav3.c      | 1 +
>  drivers/mmc/host/sdhci-s3c.c        | 1 +
>  drivers/mmc/host/sdhci-sirf.c       | 1 +
>  drivers/mmc/host/sdhci-spear.c      | 1 +
>  drivers/mmc/host/sdhci-st.c         | 1 +
>  drivers/mmc/host/sdhci-tegra.c      | 1 +

I do see a failure on Tegra124, but comparing to recent test results
from linux-next that seems to be a preexisting problem, so:

Tested-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 170 bytes --]

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers
  2020-09-03 23:24 [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Douglas Anderson
  2020-09-03 23:24 ` [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 Douglas Anderson
@ 2020-09-04 21:53 ` Martin Blumenstingl
  2020-09-07  3:57   ` Anand Moon
  2020-09-07 12:28 ` Ulf Hansson
  2 siblings, 1 reply; 10+ messages in thread
From: Martin Blumenstingl @ 2020-09-04 21:53 UTC (permalink / raw)
  To: Douglas Anderson
  Cc: Heiko Stuebner, Geert Uytterhoeven, Linus Walleij,
	Peter Ujfalusi, Jerome Brunet, linux-samsung-soc, Aaro Koskinen,
	Kevin Hilman, Michal Simek, Ludovic Desroches, NXP Linux Team,
	linux-tegra, Sascha Hauer, swboyd, Lars Persson, linux-omap,
	Chaotian Jing, Scott Branden, Andrew Jeffery, Greg Kroah-Hartman,
	Yoshihiro Shimoda, linux-kernel, Pengutronix Kernel Team,
	Eugen Hristev, Alexandre Belloni, linux-aspeed, Yangtao Li,
	Hu Ziji, Thierry Reding, Manivannan Sadhasivam, Jesper Nilsson,
	Chunyan Zhang, linux-arm-kernel, Jonathan Hunter, linux-rockchip,
	Kukjin Kim, Pierre Ossman, Saiyam Doshi, Maxime Ripard,
	linux-rpi-kernel, linux-amlogic, linux-arm-kernel, Barry Song,
	Nicolas Pitre, Patrice Chotard, Microchip Linux Driver Support,
	Stefan Wahren, Christophe JAILLET, Ricky Wu,
	Nicolas Saenz Julienne, Ulf Hansson, Neil Armstrong, Al Cooper,
	Wolfram Sang, Fabio Estevam, Florian Fainelli, Steen Hegelund,
	Krzysztof Kozlowski, Kishon Vijay Abraham I, Chen-Yu Tsai,
	bcm-kernel-feedback-list, Joel Stanley, Orson Zhai, Ray Jui,
	Ben Dooks, Masahiro Yamada, linux-mmc, Baolin Wang, Shawn Guo,
	Andreas Färber, H. Nikolaus Schaller, Adrian Hunter,
	Paul Cercueil, Lee Jones, Marek Vasut, Anson Huang,
	Jaehoon Chung, Rui Miguel Silva, linux-mediatek, Manuel Lauss,
	Matthias Brugger, Michał Mirosław, Angelo Dureghello,
	Lars Povlsen, Nicolas Ferre, Tony Prisk, Vinod Koul,
	Robert Richter, Viresh Kumar, Jun Nie

Hi Douglas,

On Fri, Sep 4, 2020 at 1:25 AM Douglas Anderson <dianders@chromium.org> wrote:
>
> As per discussion [1], it seems like it should be quite safe to turn
> on PROBE_PREFER_ASYNCHRONOUS for all sd/mmc host controllers.  Let's
> give it a shot.  For some discussion about this flag, see the commit
> message for commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> probe").
can this somehow change the order in which the MMC drivers end up loading?
on Amlogic SoCs we have up to three MMC controllers, some SoCs even
use two different MMC controller IPs (and therefore two different
drivers).
so far the MMC controller naming (/dev/mmcblk* etc.) was consistent -
can that change with this patch?

apologies if this has been discussed and answered anywhere


Best regards,
Martin

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers
  2020-09-04 21:53 ` [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Martin Blumenstingl
@ 2020-09-07  3:57   ` Anand Moon
  2020-09-07  4:04     ` Chen-Yu Tsai
  2020-09-07  4:07     ` Chen-Yu Tsai
  0 siblings, 2 replies; 10+ messages in thread
From: Anand Moon @ 2020-09-07  3:57 UTC (permalink / raw)
  To: Martin Blumenstingl
  Cc: Heiko Stuebner, Geert Uytterhoeven, Linus Walleij,
	Peter Ujfalusi, Jerome Brunet, linux-samsung-soc, Aaro Koskinen,
	Kevin Hilman, Michal Simek, Ludovic Desroches, NXP Linux Team,
	linux-tegra, Sascha Hauer, Michał Mirosław,
	Lars Persson, linux-omap, Chaotian Jing, Scott Branden,
	Andrew Jeffery, Greg Kroah-Hartman, Yoshihiro Shimoda,
	Linux Kernel, Pengutronix Kernel Team, Eugen Hristev,
	Alexandre Belloni, linux-aspeed, Yangtao Li, Hu Ziji,
	Thierry Reding, Manivannan Sadhasivam, Jesper Nilsson,
	Chunyan Zhang, linux-arm-kernel, Jonathan Hunter, linux-rockchip,
	Kukjin Kim, Pierre Ossman, Saiyam Doshi, Maxime Ripard,
	linux-rpi-kernel, linux-amlogic, linux-arm-kernel, Barry Song,
	Nicolas Pitre, Douglas Anderson, Microchip Linux Driver Support,
	Stefan Wahren, Christophe JAILLET, Ricky Wu,
	Nicolas Saenz Julienne, Ulf Hansson, Neil Armstrong, Al Cooper,
	Wolfram Sang, Fabio Estevam, Florian Fainelli, Steen Hegelund,
	Krzysztof Kozlowski, Kishon Vijay Abraham I, Chen-Yu Tsai,
	bcm-kernel-feedback-list, Joel Stanley, Orson Zhai, Ray Jui,
	Ben Dooks, Masahiro Yamada, linux-mmc, Baolin Wang, Shawn Guo,
	Andreas Färber, H. Nikolaus Schaller, Nicolas Ferre,
	Paul Cercueil, Lee Jones, Marek Vasut, Anson Huang,
	Jaehoon Chung, Robert Richter, Rui Miguel Silva, linux-mediatek,
	Manuel Lauss, Matthias Brugger, swboyd, Angelo Dureghello,
	Lars Povlsen, Adrian Hunter, Tony Prisk, Vinod Koul,
	Patrice Chotard, Viresh Kumar, Jun Nie

Hi Martin.

On Sat, 5 Sep 2020 at 03:24, Martin Blumenstingl
<martin.blumenstingl@googlemail.com> wrote:
>
> Hi Douglas,
>
> On Fri, Sep 4, 2020 at 1:25 AM Douglas Anderson <dianders@chromium.org> wrote:
> >
> > As per discussion [1], it seems like it should be quite safe to turn
> > on PROBE_PREFER_ASYNCHRONOUS for all sd/mmc host controllers.  Let's
> > give it a shot.  For some discussion about this flag, see the commit
> > message for commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> > probe").
> can this somehow change the order in which the MMC drivers end up loading?
> on Amlogic SoCs we have up to three MMC controllers, some SoCs even
> use two different MMC controller IPs (and therefore two different
> drivers).
> so far the MMC controller naming (/dev/mmcblk* etc.) was consistent -
> can that change with this patch?
>

We could resolve this by setting up aliases for mmc nodes in the dts.

> apologies if this has been discussed and answered anywhere
>
>
> Best regards,
> Martin

Best regards
-Anand

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers
  2020-09-07  3:57   ` Anand Moon
@ 2020-09-07  4:04     ` Chen-Yu Tsai
  2020-09-07  4:07     ` Chen-Yu Tsai
  1 sibling, 0 replies; 10+ messages in thread
From: Chen-Yu Tsai @ 2020-09-07  4:04 UTC (permalink / raw)
  To: Anand Moon
  Cc: Heiko Stuebner, Geert Uytterhoeven, Linus Walleij,
	Peter Ujfalusi, Jerome Brunet,
	moderated list:ARM/SAMSUNG EXYNO...,
	Aaro Koskinen, Kevin Hilman, Michal Simek, Ludovic Desroches,
	NXP Linux Team, linux-tegra, Sascha Hauer,
	Michał Mirosław, Lars Persson,
	open list:OMAP2+ SUPPORT, Chaotian Jing, Scott Branden,
	Andrew Jeffery, Greg Kroah-Hartman, Yoshihiro Shimoda,
	Linux Kernel, Pengutronix Kernel Team, Eugen Hristev,
	Alexandre Belloni, linux-aspeed, Yangtao Li, Hu Ziji,
	Thierry Reding, Manivannan Sadhasivam, Jesper Nilsson,
	Chunyan Zhang, linux-arm-kernel, Jonathan Hunter,
	open list:ARM/Rockchip SoC...,
	Kukjin Kim, Pierre Ossman, Saiyam Doshi, Martin Blumenstingl,
	Maxime Ripard, moderated list:BROADCOM BCM2835...,
	open list:ARM/Amlogic Meson...,
	linux-arm-kernel, Barry Song, Nicolas Pitre, Douglas Anderson,
	Microchip Linux Driver Support, Stefan Wahren,
	Christophe JAILLET, Ricky Wu, Nicolas Saenz Julienne,
	Ulf Hansson, Neil Armstrong, Al Cooper, Wolfram Sang,
	Fabio Estevam, Florian Fainelli, Steen Hegelund,
	Krzysztof Kozlowski, Kishon Vijay Abraham I,
	open list:BROADCOM BCM281XX...,
	Joel Stanley, Orson Zhai, Ray Jui, Ben Dooks, Masahiro Yamada,
	linux-mmc, Baolin Wang, Shawn Guo, Andreas Färber,
	H. Nikolaus Schaller, Nicolas Ferre, Paul Cercueil, Lee Jones,
	Marek Vasut, Anson Huang, Jaehoon Chung, Robert Richter,
	Rui Miguel Silva, moderated list:ARM/Mediatek SoC...,
	Manuel Lauss, Matthias Brugger, Stephen Boyd, Angelo Dureghello,
	Lars Povlsen, Adrian Hunter, Tony Prisk, Vinod Koul,
	Patrice Chotard, Viresh Kumar, Jun Nie

On Mon, Sep 7, 2020 at 11:57 AM Anand Moon <linux.amoon@gmail.com> wrote:
>
> Hi Martin.
>
> On Sat, 5 Sep 2020 at 03:24, Martin Blumenstingl
> <martin.blumenstingl@googlemail.com> wrote:
> >
> > Hi Douglas,
> >
> > On Fri, Sep 4, 2020 at 1:25 AM Douglas Anderson <dianders@chromium.org> wrote:
> > >
> > > As per discussion [1], it seems like it should be quite safe to turn
> > > on PROBE_PREFER_ASYNCHRONOUS for all sd/mmc host controllers.  Let's
> > > give it a shot.  For some discussion about this flag, see the commit
> > > message for commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> > > probe").
> > can this somehow change the order in which the MMC drivers end up loading?
> > on Amlogic SoCs we have up to three MMC controllers, some SoCs even
> > use two different MMC controller IPs (and therefore two different
> > drivers).
> > so far the MMC controller naming (/dev/mmcblk* etc.) was consistent -
> > can that change with this patch?
> >
>
> We could resolve this by setting up aliases for mmc nodes in the dts.

Right now, only the dw_mmc driver family supports aliases for mmc nodes.

> > apologies if this has been discussed and answered anywhere
> >
> >
> > Best regards,
> > Martin
>
> Best regards
> -Anand

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers
  2020-09-07  3:57   ` Anand Moon
  2020-09-07  4:04     ` Chen-Yu Tsai
@ 2020-09-07  4:07     ` Chen-Yu Tsai
  2020-09-07 10:25       ` Ulf Hansson
  1 sibling, 1 reply; 10+ messages in thread
From: Chen-Yu Tsai @ 2020-09-07  4:07 UTC (permalink / raw)
  To: Anand Moon
  Cc: Heiko Stuebner, Geert Uytterhoeven, Linus Walleij,
	Peter Ujfalusi, Jerome Brunet,
	moderated list:ARM/SAMSUNG EXYNO...,
	Aaro Koskinen, Kevin Hilman, Michal Simek, Ludovic Desroches,
	NXP Linux Team, linux-tegra, Sascha Hauer,
	Michał Mirosław, Lars Persson,
	open list:OMAP2+ SUPPORT, Chaotian Jing, Scott Branden,
	Andrew Jeffery, Greg Kroah-Hartman, Yoshihiro Shimoda,
	Linux Kernel, Pengutronix Kernel Team, Eugen Hristev,
	Alexandre Belloni, linux-aspeed, Yangtao Li, Hu Ziji,
	Thierry Reding, Manivannan Sadhasivam, Jesper Nilsson,
	Chunyan Zhang, linux-arm-kernel, Jonathan Hunter,
	open list:ARM/Rockchip SoC...,
	Kukjin Kim, Pierre Ossman, Saiyam Doshi, Martin Blumenstingl,
	Maxime Ripard, moderated list:BROADCOM BCM2835...,
	open list:ARM/Amlogic Meson...,
	linux-arm-kernel, Barry Song, Nicolas Pitre, Douglas Anderson,
	Microchip Linux Driver Support, Stefan Wahren,
	Christophe JAILLET, Ricky Wu, Nicolas Saenz Julienne,
	Ulf Hansson, Neil Armstrong, Al Cooper, Wolfram Sang,
	Fabio Estevam, Florian Fainelli, Steen Hegelund,
	Krzysztof Kozlowski, Kishon Vijay Abraham I,
	open list:BROADCOM BCM281XX...,
	Joel Stanley, Orson Zhai, Ray Jui, Ben Dooks, Masahiro Yamada,
	linux-mmc, Baolin Wang, Shawn Guo, Andreas Färber,
	H. Nikolaus Schaller, Nicolas Ferre, Paul Cercueil, Lee Jones,
	Marek Vasut, Anson Huang, Jaehoon Chung, Robert Richter,
	Rui Miguel Silva, moderated list:ARM/Mediatek SoC...,
	Manuel Lauss, Matthias Brugger, Stephen Boyd, Angelo Dureghello,
	Lars Povlsen, Adrian Hunter, Tony Prisk, Vinod Koul,
	Patrice Chotard, Viresh Kumar, Jun Nie

(Resent from kernel.org)

On Mon, Sep 7, 2020 at 11:57 AM Anand Moon <linux.amoon@gmail.com> wrote:
>
> Hi Martin.
>
> On Sat, 5 Sep 2020 at 03:24, Martin Blumenstingl
> <martin.blumenstingl@googlemail.com> wrote:
> >
> > Hi Douglas,
> >
> > On Fri, Sep 4, 2020 at 1:25 AM Douglas Anderson <dianders@chromium.org> wrote:
> > >
> > > As per discussion [1], it seems like it should be quite safe to turn
> > > on PROBE_PREFER_ASYNCHRONOUS for all sd/mmc host controllers.  Let's
> > > give it a shot.  For some discussion about this flag, see the commit
> > > message for commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> > > probe").
> > can this somehow change the order in which the MMC drivers end up loading?
> > on Amlogic SoCs we have up to three MMC controllers, some SoCs even
> > use two different MMC controller IPs (and therefore two different
> > drivers).
> > so far the MMC controller naming (/dev/mmcblk* etc.) was consistent -
> > can that change with this patch?
> >
>
> We could resolve this by setting up aliases for mmc nodes in the dts.

Right now, only the dw_mmc driver family supports aliases for mmc nodes.

> > apologies if this has been discussed and answered anywhere
> >
> >
> > Best regards,
> > Martin
>
> Best regards
> -Anand

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers
  2020-09-07  4:07     ` Chen-Yu Tsai
@ 2020-09-07 10:25       ` Ulf Hansson
  0 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2020-09-07 10:25 UTC (permalink / raw)
  To: Chen-Yu Tsai, Anand Moon, Martin Blumenstingl
  Cc: Heiko Stuebner, Geert Uytterhoeven, Linus Walleij,
	Peter Ujfalusi, Jerome Brunet,
	moderated list:ARM/SAMSUNG EXYNO...,
	Aaro Koskinen, Kevin Hilman, Michal Simek, Ludovic Desroches,
	NXP Linux Team, linux-tegra, Sascha Hauer,
	Michał Mirosław, Lars Persson,
	open list:OMAP2+ SUPPORT, Chaotian Jing, Scott Branden,
	Andrew Jeffery, Greg Kroah-Hartman, Yoshihiro Shimoda,
	Linux Kernel, Pengutronix Kernel Team, Eugen Hristev,
	Alexandre Belloni, linux-aspeed, Yangtao Li, Hu Ziji,
	Thierry Reding, Manivannan Sadhasivam, Jesper Nilsson,
	Chunyan Zhang, linux-arm-kernel, Jonathan Hunter,
	open list:ARM/Rockchip SoC...,
	Kukjin Kim, Pierre Ossman, Saiyam Doshi, Maxime Ripard,
	moderated list:BROADCOM BCM2835...,
	open list:ARM/Amlogic Meson...,
	linux-arm-kernel, Barry Song, Nicolas Pitre, Douglas Anderson,
	Microchip Linux Driver Support, Stefan Wahren,
	Christophe JAILLET, Ricky Wu, Nicolas Saenz Julienne,
	Neil Armstrong, Al Cooper, Wolfram Sang, Fabio Estevam,
	Florian Fainelli, Steen Hegelund, Krzysztof Kozlowski,
	Kishon Vijay Abraham I, open list:BROADCOM BCM281XX...,
	Joel Stanley, Orson Zhai, Ray Jui, Ben Dooks, Masahiro Yamada,
	linux-mmc, Baolin Wang, Shawn Guo, Andreas Färber,
	H. Nikolaus Schaller, Nicolas Ferre, Paul Cercueil, Lee Jones,
	Marek Vasut, Anson Huang, Jaehoon Chung, Robert Richter,
	Rui Miguel Silva, moderated list:ARM/Mediatek SoC...,
	Manuel Lauss, Matthias Brugger, Stephen Boyd, Angelo Dureghello,
	Lars Povlsen, Adrian Hunter, Tony Prisk, Vinod Koul,
	Patrice Chotard, Viresh Kumar, Jun Nie

On Mon, 7 Sep 2020 at 06:08, Chen-Yu Tsai <wens@kernel.org> wrote:
>
> (Resent from kernel.org)
>
> On Mon, Sep 7, 2020 at 11:57 AM Anand Moon <linux.amoon@gmail.com> wrote:
> >
> > Hi Martin.
> >
> > On Sat, 5 Sep 2020 at 03:24, Martin Blumenstingl
> > <martin.blumenstingl@googlemail.com> wrote:
> > >
> > > Hi Douglas,
> > >
> > > On Fri, Sep 4, 2020 at 1:25 AM Douglas Anderson <dianders@chromium.org> wrote:
> > > >
> > > > As per discussion [1], it seems like it should be quite safe to turn
> > > > on PROBE_PREFER_ASYNCHRONOUS for all sd/mmc host controllers.  Let's
> > > > give it a shot.  For some discussion about this flag, see the commit
> > > > message for commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> > > > probe").
> > > can this somehow change the order in which the MMC drivers end up loading?
> > > on Amlogic SoCs we have up to three MMC controllers, some SoCs even
> > > use two different MMC controller IPs (and therefore two different
> > > drivers).
> > > so far the MMC controller naming (/dev/mmcblk* etc.) was consistent -
> > > can that change with this patch?
> > >

Consistency has never been guaranteed. Just imagine one of the mmc
host drivers ending up lacking some of its resources during ->probe()
and returning -EPROBE_DEFER.

UUID/PARTID has been the only way.

> >
> > We could resolve this by setting up aliases for mmc nodes in the dts.

Yes, this is now possible due to the recently [1] applied patches for
supporting mmc aliases.

>
> Right now, only the dw_mmc driver family supports aliases for mmc nodes.

That's "mshc" specific (related to the old multiple slot support I
think), but not affecting the mmc aliases, which the mmc core now is
supporting.

So the mmc aliases are common for all mmc hosts. Please have a look at
the new OF parsing in mmc_alloc_host().

[...]

Kind regards
Uffe

[1]
https://patchwork.kernel.org/patch/11747669/
https://patchwork.kernel.org/patch/11747671/

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers
  2020-09-03 23:24 [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Douglas Anderson
  2020-09-03 23:24 ` [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 Douglas Anderson
  2020-09-04 21:53 ` [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Martin Blumenstingl
@ 2020-09-07 12:28 ` Ulf Hansson
  2 siblings, 0 replies; 10+ messages in thread
From: Ulf Hansson @ 2020-09-07 12:28 UTC (permalink / raw)
  To: Douglas Anderson
  Cc: Heiko Stuebner, Geert Uytterhoeven, Linus Walleij,
	Peter Ujfalusi, Jerome Brunet, linux-samsung-soc, Aaro Koskinen,
	Kevin Hilman, Michal Simek, Ludovic Desroches, NXP Linux Team,
	linux-tegra, Sascha Hauer, Stephen Boyd, Lars Persson,
	linux-omap, Chaotian Jing, Scott Branden, Andrew Jeffery,
	Greg Kroah-Hartman, Yoshihiro Shimoda, Linux Kernel Mailing List,
	Pengutronix Kernel Team, Eugen Hristev, Alexandre Belloni,
	linux-aspeed, Yangtao Li, Hu Ziji, Thierry Reding,
	Manivannan Sadhasivam, Jesper Nilsson, Chunyan Zhang,
	linux-arm-kernel, Jonathan Hunter, open list:ARM/Rockchip SoC...,
	Kukjin Kim, Pierre Ossman, Saiyam Doshi, Martin Blumenstingl,
	Maxime Ripard, moderated list:BROADCOM BCM2835...,
	open list:ARM/Amlogic Meson...,
	Linux ARM, Barry Song, Nicolas Pitre, Patrice Chotard,
	Microchip Linux Driver Support, Stefan Wahren,
	Christophe JAILLET, Ricky Wu, Nicolas Saenz Julienne,
	Neil Armstrong, Al Cooper, Wolfram Sang, Fabio Estevam,
	Florian Fainelli, Steen Hegelund, Krzysztof Kozlowski,
	Kishon Vijay Abraham I, Chen-Yu Tsai, BCM Kernel Feedback,
	Joel Stanley, Orson Zhai, Ray Jui, Ben Dooks, Masahiro Yamada,
	linux-mmc, Baolin Wang, Shawn Guo, Andreas Färber,
	H. Nikolaus Schaller, Adrian Hunter, Paul Cercueil, Lee Jones,
	Marek Vasut, Anson Huang, Jaehoon Chung, Rui Miguel Silva,
	moderated list:ARM/Mediatek SoC support, Manuel Lauss,
	Matthias Brugger, Michał Mirosław, Angelo Dureghello,
	Lars Povlsen, Nicolas Ferre, Tony Prisk, Vinod Koul,
	Robert Richter, Viresh Kumar, Jun Nie

On Fri, 4 Sep 2020 at 01:25, Douglas Anderson <dianders@chromium.org> wrote:
>
> As per discussion [1], it seems like it should be quite safe to turn
> on PROBE_PREFER_ASYNCHRONOUS for all sd/mmc host controllers.  Let's
> give it a shot.  For some discussion about this flag, see the commit
> message for commit 3d3451124f3d ("mmc: sdhci-msm: Prefer asynchronous
> probe").
>
> I've broken this series into chunks based on LTS kernel releases to
> attempt to make it easier if someone wanted to cherry-pick it to an
> older kernel.  While these cherry-picks won't be conflict free, there
> should only be trivial context conflicts and no problems with drivers
> that are totally missing.  This is a bit of a compromise between a
> 1-big patch and a many-part patch series.
>
> I have only tested this on a rk3399-kevin (sdhci-of-arasan) and a
> rk3288-veyron (dw_mmc-rockchip) device and only lightly.  If this
> patch causes anyone problems those drivers should be marked with
> PROBE_FORCE_SYNCHRONOUS, debugged, and then go back to prefer
> asynchronous.  Any problems are likely just a hidden bug that has been
> exposed by this change.
>
> NOTE: in theory, it'd be nice if there was a KConfig option that we
> could flip that would turn on async probe everywhere (except for those
> that opt out by adding PROBE_FORCE_SYNCHRONOUS).  My hope is that by
> adding this flag in more places it will become clear that this flag is
> working reliably and easier to move over when we're ready.
>
> While coccinelle is too difficult for my feeble brain, I managed to
> whip up a pretty terrible python script to help with this.  For your
> edification:
>
> import os
> import sys
> import re
>
> for filename in os.listdir("."):
>     found_plat = False
>     found_driver = False
>     output = []
>     for line in open(filename, "r").readlines():
>         output.append(line)
>
>         if "struct platform_driver" in line:
>             found_plat = True
>         if found_plat and re.search(r"\t\.driver\s*=\s*{", line):
>             found_driver = True
>             found_plat = False
>         mo = re.search(r"(\s*)\.name(\s*)=", line)
>         if found_driver and mo:
>             if mo.group(2) == " ":
>                 space = " "
>             elif mo.group(2) == "\t":
>                 # Best we can do
>                 space = " "
>             elif mo.group(2).startswith("\t"):
>                 # Guess that removing one tab is right
>                 space = mo.group(2)[1:]
>             else:
>                 # Guess it's all spaces
>                 space = mo.group(2)[7:] + " "
>
>             output.append("%s.probe_type%s= PROBE_PREFER_ASYNCHRONOUS,\n" % (mo.group(1), space))
>             found_driver = False
>
>     open(filename, "w").write("".join(output))
>
> [1] https://lore.kernel.org/r/CAPDyKFq31bucJhP9hp1HSqh-qM2uNGHgDoyQpmbJf00nEf_T4Q@mail.gmail.com/
>
>
> Douglas Anderson (6):
>   mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4
>   mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.9
>   mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14
>   mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.19
>   mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v5.4
>   mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4
>
>  drivers/mmc/host/alcor.c                      | 1 +
>  drivers/mmc/host/android-goldfish.c           | 1 +
>  drivers/mmc/host/atmel-mci.c                  | 1 +
>  drivers/mmc/host/au1xmmc.c                    | 1 +
>  drivers/mmc/host/bcm2835.c                    | 1 +
>  drivers/mmc/host/cavium-octeon.c              | 1 +
>  drivers/mmc/host/davinci_mmc.c                | 1 +
>  drivers/mmc/host/dw_mmc-bluefield.c           | 1 +
>  drivers/mmc/host/dw_mmc-exynos.c              | 1 +
>  drivers/mmc/host/dw_mmc-hi3798cv200.c         | 1 +
>  drivers/mmc/host/dw_mmc-k3.c                  | 1 +
>  drivers/mmc/host/dw_mmc-pltfm.c               | 1 +
>  drivers/mmc/host/dw_mmc-rockchip.c            | 1 +
>  drivers/mmc/host/dw_mmc-zx.c                  | 1 +
>  drivers/mmc/host/jz4740_mmc.c                 | 1 +
>  drivers/mmc/host/meson-gx-mmc.c               | 1 +
>  drivers/mmc/host/meson-mx-sdhc-mmc.c          | 1 +
>  drivers/mmc/host/meson-mx-sdio.c              | 1 +
>  drivers/mmc/host/moxart-mmc.c                 | 1 +
>  drivers/mmc/host/mtk-sd.c                     | 1 +
>  drivers/mmc/host/mvsdio.c                     | 1 +
>  drivers/mmc/host/mxcmmc.c                     | 1 +
>  drivers/mmc/host/mxs-mmc.c                    | 1 +
>  drivers/mmc/host/omap.c                       | 1 +
>  drivers/mmc/host/omap_hsmmc.c                 | 1 +
>  drivers/mmc/host/owl-mmc.c                    | 1 +
>  drivers/mmc/host/pxamci.c                     | 1 +
>  drivers/mmc/host/renesas_sdhi_internal_dmac.c | 1 +
>  drivers/mmc/host/renesas_sdhi_sys_dmac.c      | 1 +
>  drivers/mmc/host/rtsx_pci_sdmmc.c             | 1 +
>  drivers/mmc/host/rtsx_usb_sdmmc.c             | 1 +
>  drivers/mmc/host/s3cmci.c                     | 1 +
>  drivers/mmc/host/sdhci-acpi.c                 | 1 +
>  drivers/mmc/host/sdhci-bcm-kona.c             | 1 +
>  drivers/mmc/host/sdhci-brcmstb.c              | 1 +
>  drivers/mmc/host/sdhci-cadence.c              | 1 +
>  drivers/mmc/host/sdhci-cns3xxx.c              | 1 +
>  drivers/mmc/host/sdhci-dove.c                 | 1 +
>  drivers/mmc/host/sdhci-esdhc-imx.c            | 1 +
>  drivers/mmc/host/sdhci-esdhc-mcf.c            | 1 +
>  drivers/mmc/host/sdhci-iproc.c                | 1 +
>  drivers/mmc/host/sdhci-milbeaut.c             | 1 +
>  drivers/mmc/host/sdhci-of-arasan.c            | 1 +
>  drivers/mmc/host/sdhci-of-aspeed.c            | 2 ++
>  drivers/mmc/host/sdhci-of-at91.c              | 1 +
>  drivers/mmc/host/sdhci-of-dwcmshc.c           | 1 +
>  drivers/mmc/host/sdhci-of-esdhc.c             | 1 +
>  drivers/mmc/host/sdhci-of-hlwd.c              | 1 +
>  drivers/mmc/host/sdhci-of-sparx5.c            | 1 +
>  drivers/mmc/host/sdhci-omap.c                 | 1 +
>  drivers/mmc/host/sdhci-pic32.c                | 1 +
>  drivers/mmc/host/sdhci-pxav2.c                | 1 +
>  drivers/mmc/host/sdhci-pxav3.c                | 1 +
>  drivers/mmc/host/sdhci-s3c.c                  | 1 +
>  drivers/mmc/host/sdhci-sirf.c                 | 1 +
>  drivers/mmc/host/sdhci-spear.c                | 1 +
>  drivers/mmc/host/sdhci-sprd.c                 | 1 +
>  drivers/mmc/host/sdhci-st.c                   | 1 +
>  drivers/mmc/host/sdhci-tegra.c                | 1 +
>  drivers/mmc/host/sdhci-xenon.c                | 1 +
>  drivers/mmc/host/sdhci_am654.c                | 1 +
>  drivers/mmc/host/sdhci_f_sdh30.c              | 1 +
>  drivers/mmc/host/sh_mmcif.c                   | 1 +
>  drivers/mmc/host/sunxi-mmc.c                  | 1 +
>  drivers/mmc/host/tmio_mmc.c                   | 1 +
>  drivers/mmc/host/uniphier-sd.c                | 1 +
>  drivers/mmc/host/usdhi6rol0.c                 | 1 +
>  drivers/mmc/host/wbsd.c                       | 1 +
>  drivers/mmc/host/wmt-sdmmc.c                  | 1 +
>  69 files changed, 70 insertions(+)
>
> --
> 2.28.0.526.ge36021eeef-goog
>

An interesting idea about a patch per LTS release. I think it makes
perfect sense in this type of case.

Let's give this a shot in next and see how it goes. So, applied for
next, thanks!

Kind regards
Uffe

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-09-07 12:29 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-03 23:24 [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Douglas Anderson
2020-09-03 23:24 ` [PATCH 1/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 Douglas Anderson
2020-09-04  6:36   ` Wolfram Sang
2020-09-04 13:28   ` Thierry Reding
2020-09-04 21:53 ` [PATCH 0/6] mmc: Set PROBE_PREFER_ASYNCHRONOUS for all host drivers Martin Blumenstingl
2020-09-07  3:57   ` Anand Moon
2020-09-07  4:04     ` Chen-Yu Tsai
2020-09-07  4:07     ` Chen-Yu Tsai
2020-09-07 10:25       ` Ulf Hansson
2020-09-07 12:28 ` Ulf Hansson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).