]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
soc/tegra: regulators: Do nothing if voltage is unchanged
authorDmitry Osipenko <digetx@gmail.com>
Wed, 18 Dec 2019 18:55:35 +0000 (21:55 +0300)
committerThierry Reding <treding@nvidia.com>
Fri, 10 Jan 2020 14:42:58 +0000 (15:42 +0100)
There is no need to re-apply the same voltage. This change is just a minor
cleanup.

Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
drivers/soc/tegra/regulators-tegra20.c
drivers/soc/tegra/regulators-tegra30.c

index ea0eede488028ef60c6352d9230ac7413804c92b..367a71a3cd10c7227a37325a7ca5147fcb3122cd 100644 (file)
@@ -162,6 +162,9 @@ static int tegra20_core_rtc_update(struct tegra_regulator_coupler *tegra,
                        core_target_uV = max(rtc_uV - max_spread, core_target_uV);
                }
 
+               if (core_uV == core_target_uV)
+                       goto update_rtc;
+
                err = regulator_set_voltage_rdev(core_rdev,
                                                 core_target_uV,
                                                 core_max_uV,
@@ -170,7 +173,7 @@ static int tegra20_core_rtc_update(struct tegra_regulator_coupler *tegra,
                        return err;
 
                core_uV = core_target_uV;
-
+update_rtc:
                if (rtc_uV < rtc_min_uV) {
                        rtc_target_uV = min(rtc_uV + max_spread, rtc_min_uV);
                        rtc_target_uV = min(core_uV + max_spread, rtc_target_uV);
@@ -179,6 +182,9 @@ static int tegra20_core_rtc_update(struct tegra_regulator_coupler *tegra,
                        rtc_target_uV = max(core_uV - max_spread, rtc_target_uV);
                }
 
+               if (rtc_uV == rtc_target_uV)
+                       continue;
+
                err = regulator_set_voltage_rdev(rtc_rdev,
                                                 rtc_target_uV,
                                                 rtc_max_uV,
index 8e623ff18e70b1d0f47d957cb0717dc9d2f10f5f..7f21f31de09d6822b82569461264c7de342c749d 100644 (file)
@@ -209,6 +209,9 @@ static int tegra30_voltage_update(struct tegra_regulator_coupler *tegra,
                        cpu_target_uV = max(core_uV - max_spread, cpu_target_uV);
                }
 
+               if (cpu_uV == cpu_target_uV)
+                       goto update_core;
+
                err = regulator_set_voltage_rdev(cpu_rdev,
                                                 cpu_target_uV,
                                                 cpu_max_uV,
@@ -231,6 +234,9 @@ static int tegra30_voltage_update(struct tegra_regulator_coupler *tegra,
                        core_target_uV = max(core_target_uV, core_uV - core_max_step);
                }
 
+               if (core_uV == core_target_uV)
+                       continue;
+
                err = regulator_set_voltage_rdev(core_rdev,
                                                 core_target_uV,
                                                 core_max_uV,