[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <62e86fcf-a50c-6e7a-3eb2-919f0cb34c01@xilinx.com>
Date: Mon, 16 Nov 2020 08:09:32 +0100
From: Michal Simek <michal.simek@...inx.com>
To: Manish Narani <manish.narani@...inx.com>,
<michal.simek@...inx.com>, <adrian.hunter@...el.com>,
<ulf.hansson@...aro.org>
CC: <linux-arm-kernel@...ts.infradead.org>,
<linux-mmc@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<git@...inx.com>,
Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@...inx.com>
Subject: Re: [PATCH 2/2] mmc: sdhci-of-arasan: Issue DLL reset explicitly
On 16. 11. 20 7:15, Manish Narani wrote:
> In the current implementation DLL reset will be issued for
> each ITAP and OTAP setting inside ATF, this is creating issues
> in some scenarios and this sequence is not inline with the TRM.
> To fix the issue, DLL reset should be removed from the ATF and
> host driver will request it explicitly.
> This patch update host driver to explicitly request for DLL reset
> before ITAP (assert DLL) and after OTAP (release DLL) settings.
>
> Fixes: a5c8b2ae2e51 ("mmc: sdhci-of-arasan: Add support for ZynqMP Platform Tap Delays Setup")
> Signed-off-by: Sai Krishna Potthuri <lakshmi.sai.krishna.potthuri@...inx.com>
> Signed-off-by: Manish Narani <manish.narani@...inx.com>
> ---
> drivers/mmc/host/sdhci-of-arasan.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/mmc/host/sdhci-of-arasan.c b/drivers/mmc/host/sdhci-of-arasan.c
> index 3ec5ecad637c..e066d8f51954 100644
> --- a/drivers/mmc/host/sdhci-of-arasan.c
> +++ b/drivers/mmc/host/sdhci-of-arasan.c
> @@ -635,6 +635,9 @@ static int sdhci_zynqmp_sdcardclk_set_phase(struct clk_hw *hw, int degrees)
> if (ret)
> pr_err("Error setting Output Tap Delay\n");
>
> + eemi_ops->ioctl(node_id, IOCTL_SD_DLL_RESET,
> + PM_DLL_RESET_RELEASE, 0, NULL);
> +
> return ret;
> }
>
> @@ -794,6 +797,9 @@ static int sdhci_versal_sampleclk_set_phase(struct clk_hw *hw, int degrees)
> if (host->version < SDHCI_SPEC_300)
> return 0;
>
> + eemi_ops->ioctl(node_id, IOCTL_SD_DLL_RESET,
> + PM_DLL_RESET_ASSERT, 0, NULL);
> +
> switch (host->timing) {
> case MMC_TIMING_MMC_HS:
> case MMC_TIMING_SD_HS:
>
this won't apply. It needs to be fixed.
Thanks,
Michal
Powered by blists - more mailing lists