Re: [PATCH 2/2] mmc: sdhci-msm: Re-initialize DLL if MCLK is gated dynamically

From: Veerabhadrarao Badiganti
Date: Thu Sep 27 2018 - 07:00:06 EST


Hi Doug,


On 9/26/2018 3:58 AM, Doug Anderson wrote:
Hi,

On Tue, Sep 25, 2018 at 8:05 AM Veerabhadrarao Badiganti
<vbadigan@xxxxxxxxxxxxxx> wrote:
+ /*
+ * Whenever core-clock is gated dynamically, it's needed to
+ * re-initialize the DLL when the clock is ungated.
+ */
+ if (msm_host->restore_dll_cfg_needed && msm_host->clk_rate) {
+ msm_host->restore_dll_cfg = true;
+ mmc_retune_needed(host->mmc);
Using the boolean "restore_dll_cfg" to communicate like this seems
really fragile. I have no basis in fact, but I worry that something
will happen in the meantime that really ought to invalidate the
"saved_tuning_phase" but the boolean will still be set.

Is there a reason you can't just call msm_config_cm_dll_phase()
directly from sdhci_msm_runtime_resume()? Perhaps after the
clk_bulk_prepare_enable() call below?

I can do that.

But we don't need to restore the clock phase for all speed modes since every mode
doesn't use DLL. Only few speed modes (only SDR104 mode for SD card)
would need to restore DLL setting. So I would need to do some extra checks
for performing this operation for only required speed modes.
And we should re-initialize the DLL first before programming the phase.

I wanted to reuse the existing logic which does all these things. So did this way.


-Doug
Thanks
Veera