ARM: cpuidle: Remove overzealous error logging
authorLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Fri, 9 Aug 2019 11:03:08 +0000 (12:03 +0100)
committerWill Deacon <will@kernel.org>
Fri, 9 Aug 2019 16:51:39 +0000 (17:51 +0100)
CPUidle back-end operations are not implemented in some platforms
but this should not be considered an error serious enough to be
logged. Check the arm_cpuidle_init() return value to detect whether
the failure must be reported or not in the kernel log and do
not log it if the platform does not support CPUidle operations.

Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Cc: Ulf Hansson <ulf.hansson@linaro.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Signed-off-by: Will Deacon <will@kernel.org>
drivers/cpuidle/cpuidle-arm.c

index dc33b3d2954fd4eefd12070fa53028b41013a20e..9e5156d3962769e54f6742ea5f72a30f2bd565b7 100644 (file)
@@ -105,11 +105,17 @@ static int __init arm_idle_init_cpu(int cpu)
        ret = arm_cpuidle_init(cpu);
 
        /*
-        * Allow the initialization to continue for other CPUs, if the reported
-        * failure is a HW misconfiguration/breakage (-ENXIO).
+        * Allow the initialization to continue for other CPUs, if the
+        * reported failure is a HW misconfiguration/breakage (-ENXIO).
+        *
+        * Some platforms do not support idle operations
+        * (arm_cpuidle_init() returning -EOPNOTSUPP), we should
+        * not flag this case as an error, it is a valid
+        * configuration.
         */
        if (ret) {
-               pr_err("CPU %d failed to init idle CPU ops\n", cpu);
+               if (ret != -EOPNOTSUPP)
+                       pr_err("CPU %d failed to init idle CPU ops\n", cpu);
                ret = ret == -ENXIO ? 0 : ret;
                goto out_kfree_drv;
        }