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@xxxxxxxxxx> > Signed-off-by: Manish Narani <manish.narani@xxxxxxxxxx> > --- > 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