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.potth...@xilinx.com>
> Signed-off-by: Manish Narani <manish.nar...@xilinx.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

Reply via email to