Hi, > -----Original Message----- > From: Michal Simek <michal.si...@amd.com> > Sent: Monday, July 10, 2023 9:12 PM > To: u-boot@lists.denx.de; g...@xilinx.com > Cc: Ashok Reddy Soma <ashok.reddy.s...@amd.com>; Jaehoon Chung > <jh80.ch...@samsung.com>; Peng Fan > <peng....@nxp.com> > Subject: [PATCH] mmc: zynq_sdhci: Dll reset only for ZynqMP platform > > From: Ashok Reddy Soma <ashok.reddy.s...@amd.com> > > Dll reset is needed only for ZynqMP platforms, add condition in tuning > to call arasan_zynqmp_dll_reset() just for ZynqMP platforms. > > On other platforms like Versal NET, If this condition is not added, we > see PLM error messages when dll reset smc is called. > > Signed-off-by: Ashok Reddy Soma <ashok.reddy.s...@amd.com> > Signed-off-by: Michal Simek <michal.si...@amd.com> > --- > > drivers/mmc/zynq_sdhci.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/mmc/zynq_sdhci.c b/drivers/mmc/zynq_sdhci.c > index e779251ce34f..935540d17194 100644 > --- a/drivers/mmc/zynq_sdhci.c > +++ b/drivers/mmc/zynq_sdhci.c > @@ -422,7 +422,8 @@ static int arasan_sdhci_execute_tuning(struct mmc *mmc, > u8 opcode) > > mdelay(1); > > - arasan_zynqmp_dll_reset(host, priv->node_id); > + if (device_is_compatible(mmc->dev, "xlnx,zynqmp-8.9a")) > + arasan_zynqmp_dll_reset(host, priv->node_id);
How about using local variable to check whether it needs to reset or not? It's not efficient to call device_is_compatible() everytime. (I'm not sure that it will be added more in future.) e.g) bool reset = device_is_compatible(mmc->dev, "xlx,zynmp-8.8a"); if (reset) arasan_zynqmp_dll_reset(host, priv->node_id); .. If (reset) arasan_zynqmp_dll_reset(host, priv->node_id); Best Regards, Jaehoon Chung > > sdhci_writel(host, SDHCI_INT_DATA_AVAIL, SDHCI_INT_ENABLE); > sdhci_writel(host, SDHCI_INT_DATA_AVAIL, SDHCI_SIGNAL_ENABLE); > @@ -468,7 +469,9 @@ static int arasan_sdhci_execute_tuning(struct mmc *mmc, > u8 opcode) > } > > udelay(1); > - arasan_zynqmp_dll_reset(host, priv->node_id); > + > + if (device_is_compatible(mmc->dev, "xlnx,zynqmp-8.9a")) > + arasan_zynqmp_dll_reset(host, priv->node_id); > > /* Enable only interrupts served by the SD controller */ > sdhci_writel(host, SDHCI_INT_DATA_MASK | SDHCI_INT_CMD_MASK, > -- > 2.36.1