x86/ACPI: CPPC: Move init_freq_invariance_cppc() into x86 CPPC
authorHuang Rui <ray.huang@amd.com>
Mon, 14 Feb 2022 10:14:50 +0000 (18:14 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 8 Mar 2022 18:16:43 +0000 (19:16 +0100)
The init_freq_invariance_cppc code actually doesn't need the SMP
functionality. So setting the CONFIG_SMP as the check condition for
init_freq_invariance_cppc may cause the confusion to misunderstand the
CPPC. And the x86 CPPC file is better space to store the CPPC related
functions, while the init_freq_invariance_cppc is out of smpboot, that
means, the CONFIG_SMP won't be mandatory condition any more. And It's more
clear than before.

Signed-off-by: Huang Rui <ray.huang@amd.com>
[ rjw: Subject adjustment ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
arch/x86/include/asm/topology.h
arch/x86/kernel/acpi/cppc.c
arch/x86/kernel/smpboot.c

index c35005a03768343d2aca9b97de9dad99486fbab2..9c73d62f72760210b70647bb470efecefd73d2f9 100644 (file)
@@ -225,12 +225,10 @@ static inline void init_freq_invariance(bool secondary, bool cppc_ready)
 }
 #endif
 
-#if defined(CONFIG_ACPI_CPPC_LIB) && defined(CONFIG_SMP)
+#ifdef CONFIG_ACPI_CPPC_LIB
 void init_freq_invariance_cppc(void);
 #define init_freq_invariance_cppc init_freq_invariance_cppc
-#endif
 
-#ifdef CONFIG_ACPI_CPPC_LIB
 bool amd_set_max_freq_ratio(u64 *ratio);
 #else
 static inline bool amd_set_max_freq_ratio(u64 *ratio)
index f0be5058e3e3e85aedf331e1c8482fb838ce68e8..df1644d9b3b66c635a8bf99241c3fd15be97fcbd 100644 (file)
@@ -87,3 +87,17 @@ bool amd_set_max_freq_ratio(u64 *ratio)
 
        return true;
 }
+
+static DEFINE_MUTEX(freq_invariance_lock);
+
+void init_freq_invariance_cppc(void)
+{
+       static bool secondary;
+
+       mutex_lock(&freq_invariance_lock);
+
+       init_freq_invariance(secondary, true);
+       secondary = true;
+
+       mutex_unlock(&freq_invariance_lock);
+}
index 8f2ff9be0fcc31980776cf9daef5291690a7967f..2ef14772dc047d433e54e97a030026a69f6439df 100644 (file)
 #include <asm/hw_irq.h>
 #include <asm/stackprotector.h>
 
-#ifdef CONFIG_ACPI_CPPC_LIB
-#include <acpi/cppc_acpi.h>
-#endif
-
 /* representing HT siblings of each logical CPU */
 DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_map);
 EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
@@ -2156,22 +2152,6 @@ void init_freq_invariance(bool secondary, bool cppc_ready)
        }
 }
 
-#ifdef CONFIG_ACPI_CPPC_LIB
-static DEFINE_MUTEX(freq_invariance_lock);
-
-void init_freq_invariance_cppc(void)
-{
-       static bool secondary;
-
-       mutex_lock(&freq_invariance_lock);
-
-       init_freq_invariance(secondary, true);
-       secondary = true;
-
-       mutex_unlock(&freq_invariance_lock);
-}
-#endif
-
 static void disable_freq_invariance_workfn(struct work_struct *work)
 {
        static_branch_disable(&arch_scale_freq_key);