]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/tsc: Move away from TSC leaf magic numbers
authorDave Hansen <dave.hansen@linux.intel.com>
Fri, 13 Dec 2024 20:50:34 +0000 (12:50 -0800)
committerDave Hansen <dave.hansen@linux.intel.com>
Wed, 18 Dec 2024 14:17:38 +0000 (06:17 -0800)
The TSC code has a bunch of hard-coded references to leaf 0x15.  Change
them over to the symbolic name.  Also zap the 'ART_CPUID_LEAF' definition.
It was a duplicate of 'CPUID_TSC_LEAF'.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Link: https://lore.kernel.org/all/20241213205034.B79D6224%40davehans-spike.ostc.intel.com
arch/x86/kernel/tsc.c
drivers/platform/x86/intel/pmc/core.c

index 67aeaba4ba9c86017e62ba26ea98cd1502987c79..8091b0ea7de291b27a2594c5d6a74026af91bebb 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/static_key.h>
 #include <linux/static_call.h>
 
+#include <asm/cpuid.h>
 #include <asm/hpet.h>
 #include <asm/timer.h>
 #include <asm/vgtod.h>
@@ -665,13 +666,13 @@ unsigned long native_calibrate_tsc(void)
        if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
                return 0;
 
-       if (boot_cpu_data.cpuid_level < 0x15)
+       if (boot_cpu_data.cpuid_level < CPUID_TSC_LEAF)
                return 0;
 
        eax_denominator = ebx_numerator = ecx_hz = edx = 0;
 
        /* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */
-       cpuid(0x15, &eax_denominator, &ebx_numerator, &ecx_hz, &edx);
+       cpuid(CPUID_TSC_LEAF, &eax_denominator, &ebx_numerator, &ecx_hz, &edx);
 
        if (ebx_numerator == 0 || eax_denominator == 0)
                return 0;
@@ -1067,10 +1068,8 @@ core_initcall(cpufreq_register_tsc_scaling);
 
 #endif /* CONFIG_CPU_FREQ */
 
-#define ART_CPUID_LEAF (0x15)
 #define ART_MIN_DENOMINATOR (1)
 
-
 /*
  * If ART is present detect the numerator:denominator to convert to TSC
  */
@@ -1078,7 +1077,7 @@ static void __init detect_art(void)
 {
        unsigned int unused;
 
-       if (boot_cpu_data.cpuid_level < ART_CPUID_LEAF)
+       if (boot_cpu_data.cpuid_level < CPUID_TSC_LEAF)
                return;
 
        /*
@@ -1091,7 +1090,7 @@ static void __init detect_art(void)
            tsc_async_resets)
                return;
 
-       cpuid(ART_CPUID_LEAF, &art_base_clk.denominator,
+       cpuid(CPUID_TSC_LEAF, &art_base_clk.denominator,
              &art_base_clk.numerator, &art_base_clk.freq_khz, &unused);
 
        art_base_clk.freq_khz /= KHZ;
index 3e7f99ac8c941edb5c39e2feede20baac44d894f..ac8231e2f0c6fb462c81106e61a8adfab355744f 100644 (file)
@@ -22,6 +22,7 @@
 #include <linux/suspend.h>
 #include <linux/units.h>
 
+#include <asm/cpuid.h>
 #include <asm/cpu_device_id.h>
 #include <asm/intel-family.h>
 #include <asm/msr.h>
@@ -935,13 +936,13 @@ static unsigned int pmc_core_get_crystal_freq(void)
 {
        unsigned int eax_denominator, ebx_numerator, ecx_hz, edx;
 
-       if (boot_cpu_data.cpuid_level < 0x15)
+       if (boot_cpu_data.cpuid_level < CPUID_TSC_LEAF)
                return 0;
 
        eax_denominator = ebx_numerator = ecx_hz = edx = 0;
 
-       /* CPUID 15H TSC/Crystal ratio, plus optionally Crystal Hz */
-       cpuid(0x15, &eax_denominator, &ebx_numerator, &ecx_hz, &edx);
+       /* TSC/Crystal ratio, plus optionally Crystal Hz */
+       cpuid(CPUID_TSC_LEAF, &eax_denominator, &ebx_numerator, &ecx_hz, &edx);
 
        if (ebx_numerator == 0 || eax_denominator == 0)
                return 0;