Commit 3d4f9898 authored by Wolfram Sang's avatar Wolfram Sang Committed by Ulf Hansson
Browse files

mmc: renesas_sdhi: alway populate SCC pointer



We need the SCC pointer to reset the device, so populate it even when we
don't need it for tuning.

Fixes: 45bffc37 ("mmc: renesas_sdhi: only reset SCC when its pointer is populated")
Signed-off-by: default avatarTakeshi Saito <takeshi.saito.xv@renesas.com>
Signed-off-by: default avatarTakeshi Kihara <takeshi.kihara.df@renesas.com>
Signed-off-by: default avatarWolfram Sang <wsa+renesas@sang-engineering.com>
Reviewed-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Tested-by: default avatarYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Link: https://lore.kernel.org/r/20221120113457.42010-2-wsa+renesas@sang-engineering.com


Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent fa30becc
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -1067,9 +1067,12 @@ int renesas_sdhi_probe(struct platform_device *pdev,
	if (ver >= SDHI_VER_GEN3_SD)
		host->get_timeout_cycles = renesas_sdhi_gen3_get_cycles;

	/* Check for SCC so we can reset it if needed */
	if (of_data && of_data->scc_offset && ver >= SDHI_VER_GEN2_SDR104)
		priv->scc_ctl = host->ctl + of_data->scc_offset;

	/* Enable tuning iff we have an SCC and a supported mode */
	if (of_data && of_data->scc_offset &&
	    (host->mmc->caps & MMC_CAP_UHS_SDR104 ||
	if (priv->scc_ctl && (host->mmc->caps & MMC_CAP_UHS_SDR104 ||
	    host->mmc->caps2 & (MMC_CAP2_HS200_1_8V_SDR |
				MMC_CAP2_HS400_1_8V))) {
		const struct renesas_sdhi_scc *taps = of_data->taps;
@@ -1091,7 +1094,6 @@ int renesas_sdhi_probe(struct platform_device *pdev,
		if (!hit)
			dev_warn(&host->pdev->dev, "Unknown clock rate for tuning\n");

		priv->scc_ctl = host->ctl + of_data->scc_offset;
		host->check_retune = renesas_sdhi_check_scc_error;
		host->ops.execute_tuning = renesas_sdhi_execute_tuning;
		host->ops.prepare_hs400_tuning = renesas_sdhi_prepare_hs400_tuning;