]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/acpi/processor_idle.c
ACPI / cpuidle: Clean up fallback to C1 checks
[mirror_ubuntu-bionic-kernel.git] / drivers / acpi / processor_idle.c
index ceeff3d473f1eaa4f413ca5ad3f7837be9401571..94c85ff2d123d595577b60e0cb9fcb6d6764a69e 100644 (file)
@@ -758,6 +758,13 @@ static int acpi_idle_play_dead(struct cpuidle_device *dev, int index)
        return 0;
 }
 
+static bool acpi_idle_fallback_to_c1(struct acpi_processor *pr)
+{
+       return IS_ENABLED(CONFIG_HOTPLUG_CPU) && num_online_cpus() > 1 &&
+               !(acpi_gbl_FADT.flags & ACPI_FADT_C2_MP_SUPPORTED) &&
+               !pr->flags.has_cst;
+}
+
 /**
  * acpi_idle_enter_simple - enters an ACPI state without BM handling
  * @dev: the target CPU
@@ -775,12 +782,8 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev,
        if (unlikely(!pr))
                return -EINVAL;
 
-#ifdef CONFIG_HOTPLUG_CPU
-       if ((cx->type != ACPI_STATE_C1) && (num_online_cpus() > 1) &&
-           !pr->flags.has_cst &&
-           !(acpi_gbl_FADT.flags & ACPI_FADT_C2_MP_SUPPORTED))
+       if (acpi_idle_fallback_to_c1(pr))
                return acpi_idle_enter_c1(dev, drv, CPUIDLE_DRIVER_STATE_START);
-#endif
 
        /*
         * Must be done before busmaster disable as we might need to
@@ -819,12 +822,8 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev,
        if (unlikely(!pr))
                return -EINVAL;
 
-#ifdef CONFIG_HOTPLUG_CPU
-       if ((cx->type != ACPI_STATE_C1) && (num_online_cpus() > 1) &&
-           !pr->flags.has_cst &&
-           !(acpi_gbl_FADT.flags & ACPI_FADT_C2_MP_SUPPORTED))
+       if (acpi_idle_fallback_to_c1(pr))
                return acpi_idle_enter_c1(dev, drv, CPUIDLE_DRIVER_STATE_START);
-#endif
 
        if (!cx->bm_sts_skip && acpi_idle_bm_check()) {
                if (drv->safe_state_index >= 0) {