PM / devfreq: tegra30: Check whether clk_round_rate() returns zero rate
authorDmitry Osipenko <digetx@gmail.com>
Mon, 20 Sep 2021 17:22:49 +0000 (20:22 +0300)
committerViresh Kumar <viresh.kumar@linaro.org>
Tue, 5 Oct 2021 04:24:39 +0000 (09:54 +0530)
EMC clock is always-on and can't be zero. Check whether clk_round_rate()
returns zero rate and error out if it does. It can return zero if clock
tree isn't initialized properly.

Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/devfreq/tegra30-devfreq.c

index d83fdc2..65ecf17 100644 (file)
@@ -891,9 +891,9 @@ static int tegra_devfreq_probe(struct platform_device *pdev)
                return err;
 
        rate = clk_round_rate(tegra->emc_clock, ULONG_MAX);
-       if (rate < 0) {
+       if (rate <= 0) {
                dev_err(&pdev->dev, "Failed to round clock rate: %ld\n", rate);
-               return rate;
+               return rate ?: -EINVAL;
        }
 
        tegra->max_freq = rate / KHZ;