summaryrefslogtreecommitdiff
path: root/drivers/devfreq/tegra30-devfreq.c
diff options
context:
space:
mode:
authorDmitry Osipenko <digetx@gmail.com>2020-09-27 23:51:39 +0300
committerChanwoo Choi <cw00.choi@samsung.com>2020-09-29 11:50:10 +0300
commitd353d1202b89ab039acd079cd97f7646058ebe11 (patch)
tree2a3383dc7450a11a23ad64bc51b392cf48f3f1af /drivers/devfreq/tegra30-devfreq.c
parent02bdbf7d09c059b16047e3d4a05e6d584dd993b6 (diff)
downloadlinux-d353d1202b89ab039acd079cd97f7646058ebe11.tar.xz
PM / devfreq: tegra30: Improve initial hardware resetting
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>
Diffstat (limited to 'drivers/devfreq/tegra30-devfreq.c')
-rw-r--r--drivers/devfreq/tegra30-devfreq.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/devfreq/tegra30-devfreq.c b/drivers/devfreq/tegra30-devfreq.c
index dedd39de7367..f5e74c2ede85 100644
--- a/drivers/devfreq/tegra30-devfreq.c
+++ b/drivers/devfreq/tegra30-devfreq.c
@@ -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) {