[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPDyKFropJGPHEmczi9rjWEJvgCOz8d9bLUdMmu6K+B+1w8c-w@mail.gmail.com>
Date: Fri, 11 Sep 2020 12:03:36 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: Viresh Kumar <viresh.kumar@...aro.org>
Cc: Adrian Hunter <adrian.hunter@...el.com>,
Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Vincent Guittot <vincent.guittot@...aro.org>,
Naresh Kamboju <naresh.kamboju@...aro.org>,
Anders Roxell <anders.roxell@...aro.org>,
linux-arm-msm <linux-arm-msm@...r.kernel.org>,
"linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH V2 resend] mmc: sdhci-msm: Unconditionally call dev_pm_opp_of_remove_table()
On Wed, 9 Sep 2020 at 16:12, Viresh Kumar <viresh.kumar@...aro.org> wrote:
>
> dev_pm_opp_of_remove_table() doesn't report any errors when it fails to
> find the OPP table with error -ENODEV (i.e. OPP table not present for
> the device). And we can call dev_pm_opp_of_remove_table()
> unconditionally here.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@...aro.org>
Applied for next, thanks!
Kind regards
Uffe
>
> ---
> V2:
> - Compare with -ENODEV only for failures.
> - Create new label to put clkname.
> - Based on 5.9-rc4
> ---
> drivers/mmc/host/sdhci-msm.c | 14 +++++---------
> 1 file changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c
> index 5a33389037cd..f7beaec6412e 100644
> --- a/drivers/mmc/host/sdhci-msm.c
> +++ b/drivers/mmc/host/sdhci-msm.c
> @@ -263,7 +263,6 @@ struct sdhci_msm_host {
> unsigned long clk_rate;
> struct mmc_host *mmc;
> struct opp_table *opp_table;
> - bool has_opp_table;
> bool use_14lpp_dll_reset;
> bool tuning_done;
> bool calibration_done;
> @@ -2285,11 +2284,9 @@ static int sdhci_msm_probe(struct platform_device *pdev)
>
> /* OPP table is optional */
> ret = dev_pm_opp_of_add_table(&pdev->dev);
> - if (!ret) {
> - msm_host->has_opp_table = true;
> - } else if (ret != -ENODEV) {
> + if (ret && ret != -ENODEV) {
> dev_err(&pdev->dev, "Invalid OPP table in Device tree\n");
> - goto opp_cleanup;
> + goto opp_put_clkname;
> }
>
> /* Vote for maximum clock rate for maximum performance */
> @@ -2453,8 +2450,8 @@ static int sdhci_msm_probe(struct platform_device *pdev)
> clk_bulk_disable_unprepare(ARRAY_SIZE(msm_host->bulk_clks),
> msm_host->bulk_clks);
> opp_cleanup:
> - if (msm_host->has_opp_table)
> - dev_pm_opp_of_remove_table(&pdev->dev);
> + dev_pm_opp_of_remove_table(&pdev->dev);
> +opp_put_clkname:
> dev_pm_opp_put_clkname(msm_host->opp_table);
> bus_clk_disable:
> if (!IS_ERR(msm_host->bus_clk))
> @@ -2474,8 +2471,7 @@ static int sdhci_msm_remove(struct platform_device *pdev)
>
> sdhci_remove_host(host, dead);
>
> - if (msm_host->has_opp_table)
> - dev_pm_opp_of_remove_table(&pdev->dev);
> + dev_pm_opp_of_remove_table(&pdev->dev);
> dev_pm_opp_put_clkname(msm_host->opp_table);
> pm_runtime_get_sync(&pdev->dev);
> pm_runtime_disable(&pdev->dev);
> --
> 2.25.0.rc1.19.g042ed3e048af
>
Powered by blists - more mailing lists