PM / devfreq: tegra30: Improve initial hardware resetting
authorDmitry Osipenko <digetx@gmail.com>
Sun, 27 Sep 2020 20:51:39 +0000 (23:51 +0300)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 29 Sep 2020 08:50:10 +0000 (17:50 +0900)
It's safe to enable the ACTMON clock at any time during driver probing,
even if we don't know the state of hardware, because it's used only for
collecting and processing stats, and interrupt is kept disabled. This
allows us to slightly improve code which performs initial hardware
resetting by making use of a single reset_control_reset() instead of
assert/deassert pair. Secondly, a potential error of the reset-control
API is handled nicely now.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/devfreq/tegra30-devfreq.c

index dedd39de736752c3a1b36ed422bcaf1b941396fe..f5e74c2ede85dd208000b3cf6c6960151d26226a 100644 (file)
@@ -822,8 +822,6 @@ static int tegra_devfreq_probe(struct platform_device *pdev)
                return err;
        }
 
-       reset_control_assert(tegra->reset);
-
        err = clk_prepare_enable(tegra->clock);
        if (err) {
                dev_err(&pdev->dev,
@@ -831,7 +829,11 @@ static int tegra_devfreq_probe(struct platform_device *pdev)
                return err;
        }
 
-       reset_control_deassert(tegra->reset);
+       err = reset_control_reset(tegra->reset);
+       if (err) {
+               dev_err(&pdev->dev, "Failed to reset hardware: %d\n", err);
+               goto disable_clk;
+       }
 
        rate = clk_round_rate(tegra->emc_clock, ULONG_MAX);
        if (rate < 0) {