]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/tsc: Remove CPUID "frequency" leaf magic numbers.
authorDave Hansen <dave.hansen@linux.intel.com>
Fri, 13 Dec 2024 20:50:36 +0000 (12:50 -0800)
committerDave Hansen <dave.hansen@linux.intel.com>
Wed, 18 Dec 2024 14:17:40 +0000 (06:17 -0800)
All the code that reads the CPUID frequency information leaf hard-codes
a magic number.  Give it a symbolic name and use it.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/all/20241213205036.4397658F%40davehans-spike.ostc.intel.com
arch/x86/include/asm/cpuid.h
arch/x86/kernel/tsc.c

index 9b0d14bfd2f2ecda85210173fa18ee0fd2db78d2..e7803c21a3fdec487b97508e4f8e5d34d869402e 100644 (file)
@@ -24,6 +24,7 @@ enum cpuid_regs_idx {
 #define CPUID_MWAIT_LEAF       0x5
 #define CPUID_DCA_LEAF         0x9
 #define CPUID_TSC_LEAF         0x15
+#define CPUID_FREQ_LEAF                0x16
 
 #ifdef CONFIG_X86_32
 bool have_cpuid_p(void);
index 8091b0ea7de291b27a2594c5d6a74026af91bebb..678c36f5cd4a406f38170bf0e23958bf8410c8b1 100644 (file)
@@ -681,8 +681,8 @@ unsigned long native_calibrate_tsc(void)
 
        /*
         * Denverton SoCs don't report crystal clock, and also don't support
-        * CPUID.0x16 for the calculation below, so hardcode the 25MHz crystal
-        * clock.
+        * CPUID_FREQ_LEAF for the calculation below, so hardcode the 25MHz
+        * crystal clock.
         */
        if (crystal_khz == 0 &&
                        boot_cpu_data.x86_vfm == INTEL_ATOM_GOLDMONT_D)
@@ -701,10 +701,10 @@ unsigned long native_calibrate_tsc(void)
         * clock, but we can easily calculate it to a high degree of accuracy
         * by considering the crystal ratio and the CPU speed.
         */
-       if (crystal_khz == 0 && boot_cpu_data.cpuid_level >= 0x16) {
+       if (crystal_khz == 0 && boot_cpu_data.cpuid_level >= CPUID_FREQ_LEAF) {
                unsigned int eax_base_mhz, ebx, ecx, edx;
 
-               cpuid(0x16, &eax_base_mhz, &ebx, &ecx, &edx);
+               cpuid(CPUID_FREQ_LEAF, &eax_base_mhz, &ebx, &ecx, &edx);
                crystal_khz = eax_base_mhz * 1000 *
                        eax_denominator / ebx_numerator;
        }
@@ -739,12 +739,12 @@ static unsigned long cpu_khz_from_cpuid(void)
        if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
                return 0;
 
-       if (boot_cpu_data.cpuid_level < 0x16)
+       if (boot_cpu_data.cpuid_level < CPUID_FREQ_LEAF)
                return 0;
 
        eax_base_mhz = ebx_max_mhz = ecx_bus_mhz = edx = 0;
 
-       cpuid(0x16, &eax_base_mhz, &ebx_max_mhz, &ecx_bus_mhz, &edx);
+       cpuid(CPUID_FREQ_LEAF, &eax_base_mhz, &ebx_max_mhz, &ecx_bus_mhz, &edx);
 
        return eax_base_mhz * 1000;
 }