MLK-20203-1 cpufreq: imx6q: fix coverity issue
authorAnson Huang <Anson.Huang@nxp.com>
Sat, 3 Nov 2018 04:15:12 +0000 (12:15 +0800)
committerLeonard Crestez <leonard.crestez@nxp.com>
Wed, 17 Apr 2019 23:51:34 +0000 (02:51 +0300)
This patch fixes coverity issue of "unchecked return value".

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Reviewed-by: Bai Ping <ping.bai@nxp.com>
Signed-off-by: Arulpandiyan Vadivel <arulpandiyan_vadivel@mentor.com>
drivers/cpufreq/imx6q-cpufreq.c

index 01d82c7..e53a38f 100644 (file)
@@ -84,7 +84,7 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index)
        unsigned long freq_hz, volt, volt_old;
        unsigned int old_freq, new_freq;
        bool pll1_sys_temp_enabled = false;
-       int ret;
+       int ret, ret1;
 
        new_freq = freq_table[index].frequency;
        freq_hz = new_freq * 1000;
@@ -209,9 +209,11 @@ static int imx6q_set_target(struct cpufreq_policy *policy, unsigned int index)
 
                dev_err(cpu_dev, "failed to set clock rate: %d\n", ret);
                ret1 = regulator_set_voltage_tol(arm_reg, volt_old, 0);
-               if (ret1)
-                       dev_warn(cpu_dev,
-                                "failed to restore vddarm voltage: %d\n", ret1);
+               if (ret1) {
+                       dev_err(cpu_dev,
+                               "failed to restore vddarm: %d\n", ret1);
+                       return ret1;
+               }
                return ret;
        }
 
@@ -419,14 +421,28 @@ put_node:
 static int imx6_cpufreq_pm_notify(struct notifier_block *nb,
                unsigned long event, void *dummy)
 {
+       int ret;
+
        switch (event) {
        case PM_SUSPEND_PREPARE:
-               if (!IS_ERR(dc_reg) && !ignore_dc_reg)
-                       regulator_set_voltage_tol(dc_reg, DC_VOLTAGE_MAX, 0);
+               if (!IS_ERR(dc_reg) && !ignore_dc_reg) {
+                       ret = regulator_set_voltage_tol(dc_reg, DC_VOLTAGE_MAX, 0);
+                       if (ret) {
+                               dev_err(cpu_dev,
+                                       "failed to scale dc_reg to max: %d\n", ret);
+                               return ret;
+                       }
+               }
                break;
        case PM_POST_SUSPEND:
-               if (!IS_ERR(dc_reg) && !ignore_dc_reg)
-                       regulator_set_voltage_tol(dc_reg, DC_VOLTAGE_MIN, 0);
+               if (!IS_ERR(dc_reg) && !ignore_dc_reg) {
+                       ret = regulator_set_voltage_tol(dc_reg, DC_VOLTAGE_MIN, 0);
+                       if (ret) {
+                               dev_err(cpu_dev,
+                                       "failed to scale dc_reg to min: %d\n", ret);
+                               return ret;
+                       }
+               }
                break;
        default:
                break;
@@ -545,8 +561,14 @@ static int imx6q_cpufreq_probe(struct platform_device *pdev)
         */
        if (freq_table[num - 1].frequency > FREQ_528_MHZ)
                ignore_dc_reg = true;
-       if (!IS_ERR(dc_reg) && !ignore_dc_reg)
-               regulator_set_voltage_tol(dc_reg, DC_VOLTAGE_MIN, 0);
+       if (!IS_ERR(dc_reg) && !ignore_dc_reg) {
+               ret = regulator_set_voltage_tol(dc_reg, DC_VOLTAGE_MIN, 0);
+               if (ret) {
+                       dev_err(cpu_dev,
+                               "failed to scale dc_reg to min: %d\n", ret);
+                       return ret;
+               }
+       }
 
        /* Make imx6_soc_volt array's size same as arm opp number */
        imx6_soc_volt = devm_kcalloc(cpu_dev, num, sizeof(*imx6_soc_volt),