]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
mmc: renesas_sdhi: workaround a regression when reinserting SD cards
authorWolfram Sang <wsa+renesas@sang-engineering.com>
Thu, 8 Oct 2020 09:25:33 +0000 (11:25 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 8 Oct 2020 09:41:12 +0000 (11:41 +0200)
After the conversions of the reset routines, re-inserting SD cards
didn't work anymore. Apply this temporary workaround to have working SD
cards during the merge window. The issue will be fixed properly until
the final release.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Link: https://lore.kernel.org/r/20201008092533.76588-1-wsa+renesas@sang-engineering.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/renesas_sdhi_core.c

index 20e5eb63caf8b7f829a2c197a4bf984d379c2b66..414314151d0a47de58a90297177bdf751ef5d81d 100644 (file)
@@ -572,6 +572,17 @@ static void renesas_sdhi_reset(struct tmio_mmc_host *host)
                                             TMIO_MASK_INIT_RCAR2);
 }
 
+/*
+ * This is a temporary workaround! This driver used 'hw_reset' wrongly and the
+ * fix for that showed a regression. So, we mimic the old behaviour until the
+ * proper solution is found.
+ */
+static void renesas_sdhi_hw_reset(struct mmc_host *mmc)
+{
+       struct tmio_mmc_host *host = mmc_priv(mmc);
+       renesas_sdhi_reset(host);
+}
+
 #define SH_MOBILE_SDHI_MIN_TAP_ROW 3
 
 static int renesas_sdhi_select_tuning(struct tmio_mmc_host *host)
@@ -1009,6 +1020,8 @@ int renesas_sdhi_probe(struct platform_device *pdev,
                if (of_data && of_data->scc_offset) {
                        priv->scc_ctl = host->ctl + of_data->scc_offset;
                        host->reset = renesas_sdhi_reset;
+                       host->ops.hw_reset = renesas_sdhi_hw_reset;
+                       host->mmc->caps |= MMC_CAP_HW_RESET;
                }
        }