Message ID | 20201202185118.29076-1-mw@semihalf.com |
---|---|
Headers | show |
Series | sdhci-xenon ACPI support | expand |
On Wed, 2 Dec 2020 at 19:51, Marcin Wojtas <mw@semihalf.com> wrote: > > As a preparation for supporting ACPI, modify the driver > to use the clk framework only when booting with DT - > otherwise rely on the configuration done by firmware. > For that purpose introduce also a custom SDHCI get_max_clock > callback. > > Signed-off-by: Marcin Wojtas <mw@semihalf.com> > Acked-by: Adrian Hunter <adrian.hunter@intel.com> > --- > drivers/mmc/host/sdhci-xenon.c | 61 ++++++++++++-------- > 1 file changed, 38 insertions(+), 23 deletions(-) > > diff --git a/drivers/mmc/host/sdhci-xenon.c b/drivers/mmc/host/sdhci-xenon.c [...] > @@ -637,10 +650,12 @@ static int xenon_runtime_resume(struct device *dev) > struct xenon_priv *priv = sdhci_pltfm_priv(pltfm_host); > int ret; > > - ret = clk_prepare_enable(pltfm_host->clk); > - if (ret) { > - dev_err(dev, "can't enable mainck\n"); > - return ret; > + if (dev->of_node) { I didn't notice this in the earlier version, my apologies, but there is no need for this check. clk_prepare_enable() should cope fine with a NULL argument - and you only reach this path, if the clock was successfully fetched during the probe or that it was left to stay NULL for non-DT case. > + ret = clk_prepare_enable(pltfm_host->clk); > + if (ret) { > + dev_err(dev, "can't enable mainck\n"); > + return ret; > + } > } > > if (priv->restore_needed) { > -- > 2.29.0 > Kind regards Uffe
pt., 4 gru 2020 o 14:51 Ulf Hansson <ulf.hansson@linaro.org> napisaĆ(a): > > On Wed, 2 Dec 2020 at 19:51, Marcin Wojtas <mw@semihalf.com> wrote: > > > > As a preparation for supporting ACPI, modify the driver > > to use the clk framework only when booting with DT - > > otherwise rely on the configuration done by firmware. > > For that purpose introduce also a custom SDHCI get_max_clock > > callback. > > > > Signed-off-by: Marcin Wojtas <mw@semihalf.com> > > Acked-by: Adrian Hunter <adrian.hunter@intel.com> > > --- > > drivers/mmc/host/sdhci-xenon.c | 61 ++++++++++++-------- > > 1 file changed, 38 insertions(+), 23 deletions(-) > > > > diff --git a/drivers/mmc/host/sdhci-xenon.c b/drivers/mmc/host/sdhci-xenon.c > > [...] > > > @@ -637,10 +650,12 @@ static int xenon_runtime_resume(struct device *dev) > > struct xenon_priv *priv = sdhci_pltfm_priv(pltfm_host); > > int ret; > > > > - ret = clk_prepare_enable(pltfm_host->clk); > > - if (ret) { > > - dev_err(dev, "can't enable mainck\n"); > > - return ret; > > + if (dev->of_node) { > > I didn't notice this in the earlier version, my apologies, but there > is no need for this check. > > clk_prepare_enable() should cope fine with a NULL argument - and you > only reach this path, if the clock was successfully fetched during the > probe or that it was left to stay NULL for non-DT case. You are right, thanks! I applied the change and resent v4. Best regards, Marcin > > > + ret = clk_prepare_enable(pltfm_host->clk); > > + if (ret) { > > + dev_err(dev, "can't enable mainck\n"); > > + return ret; > > + } > > } > > > > if (priv->restore_needed) { > > -- > > 2.29.0 > > > > Kind regards > Uffe