Merge branch 'x86/cpu' into perf/core, to resolve conflict
authorIngo Molnar <mingo@kernel.org>
Wed, 25 Mar 2020 14:20:44 +0000 (15:20 +0100)
committerIngo Molnar <mingo@kernel.org>
Wed, 25 Mar 2020 14:20:44 +0000 (15:20 +0100)
Conflicts:
arch/x86/events/intel/uncore.c

Signed-off-by: Ingo Molnar <mingo@kernel.org>
77 files changed:
arch/x86/Kconfig
arch/x86/crypto/aesni-intel_glue.c
arch/x86/crypto/crc32-pclmul_glue.c
arch/x86/crypto/crc32c-intel_glue.c
arch/x86/crypto/crct10dif-pclmul_glue.c
arch/x86/crypto/ghash-clmulni-intel_glue.c
arch/x86/events/amd/power.c
arch/x86/events/intel/cstate.c
arch/x86/events/intel/rapl.c
arch/x86/events/intel/uncore.c
arch/x86/include/asm/amd_nb.h
arch/x86/include/asm/cpu_device_id.h
arch/x86/include/asm/cpufeatures.h
arch/x86/include/asm/intel-family.h
arch/x86/kernel/amd_nb.c
arch/x86/kernel/apic/apic.c
arch/x86/kernel/cpu/amd.c
arch/x86/kernel/cpu/common.c
arch/x86/kernel/cpu/match.c
arch/x86/kernel/smpboot.c
arch/x86/kernel/tsc_msr.c
arch/x86/kvm/svm.c
arch/x86/kvm/vmx/vmx.c
arch/x86/platform/atom/punit_atom_debug.c
arch/x86/platform/efi/quirks.c
arch/x86/platform/intel-mid/device_libs/platform_bt.c
arch/x86/platform/intel-quark/imr.c
arch/x86/platform/intel-quark/imr_selftest.c
arch/x86/power/cpu.c
drivers/acpi/acpi_lpss.c
drivers/acpi/x86/utils.c
drivers/char/agp/amd64-agp.c
drivers/char/hw_random/via-rng.c
drivers/cpufreq/acpi-cpufreq.c
drivers/cpufreq/amd_freq_sensitivity.c
drivers/cpufreq/e_powersaver.c
drivers/cpufreq/elanfreq.c
drivers/cpufreq/intel_pstate.c
drivers/cpufreq/longhaul.c
drivers/cpufreq/longrun.c
drivers/cpufreq/p4-clockmod.c
drivers/cpufreq/powernow-k6.c
drivers/cpufreq/powernow-k7.c
drivers/cpufreq/powernow-k8.c
drivers/cpufreq/sc520_freq.c
drivers/cpufreq/speedstep-centrino.c
drivers/cpufreq/speedstep-ich.c
drivers/cpufreq/speedstep-smi.c
drivers/crypto/padlock-aes.c
drivers/crypto/padlock-sha.c
drivers/edac/amd64_edac.c
drivers/edac/i10nm_base.c
drivers/edac/pnd2_edac.c
drivers/edac/sb_edac.c
drivers/edac/skx_base.c
drivers/extcon/extcon-axp288.c
drivers/hwmon/coretemp.c
drivers/hwmon/via-cputemp.c
drivers/idle/intel_idle.c
drivers/mmc/host/sdhci-acpi.c
drivers/pci/pci-mid.c
drivers/platform/x86/intel-uncore-frequency.c
drivers/platform/x86/intel_int0002_vgpio.c
drivers/platform/x86/intel_mid_powerbtn.c
drivers/platform/x86/intel_pmc_core.c
drivers/platform/x86/intel_pmc_core_pltdrv.c
drivers/platform/x86/intel_speed_select_if/isst_if_mbox_msr.c
drivers/platform/x86/intel_telemetry_debugfs.c
drivers/platform/x86/intel_telemetry_pltdrv.c
drivers/platform/x86/intel_turbo_max_3.c
drivers/powercap/intel_rapl_common.c
drivers/thermal/intel/intel_powerclamp.c
drivers/thermal/intel/intel_quark_dts_thermal.c
drivers/thermal/intel/intel_soc_dts_thermal.c
drivers/thermal/intel/x86_pkg_temp_thermal.c
include/linux/mod_devicetable.h
sound/soc/intel/common/soc-intel-quirks.h

index beea77046f9bab3eef998e8dd4c3248932dbc004..cb3633d243cb5aecfb4cf577aceb881391c92ea8 100644 (file)
@@ -1875,7 +1875,6 @@ config X86_SMAP
 
 config X86_UMIP
        def_bool y
-       depends on CPU_SUP_INTEL || CPU_SUP_AMD
        prompt "User Mode Instruction Prevention" if EXPERT
        ---help---
          User Mode Instruction Prevention (UMIP) is a security feature in
index bbbebbd35b5df6e0ea48a6d7f2b3a5a26b4d1815..75b6ea20491e36ae782f83880d74e84521a62dab 100644 (file)
@@ -1064,7 +1064,7 @@ static struct aead_alg aesni_aeads[0];
 static struct simd_aead_alg *aesni_simd_aeads[ARRAY_SIZE(aesni_aeads)];
 
 static const struct x86_cpu_id aesni_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_AES),
+       X86_MATCH_FEATURE(X86_FEATURE_AES, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, aesni_cpu_id);
index 418bd88acac8e74ea139aebbb92c5ff77590d27a..7c4c7b2fbf0599ce3dd85c497946f7c13489adfd 100644 (file)
@@ -170,7 +170,7 @@ static struct shash_alg alg = {
 };
 
 static const struct x86_cpu_id crc32pclmul_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_PCLMULQDQ),
+       X86_MATCH_FEATURE(X86_FEATURE_PCLMULQDQ, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, crc32pclmul_cpu_id);
index c20d1b8a82c38b7a5eab6c95480b4218953e9703..d2d069bd459bed1cc6d44f41f35960b73a43dc3e 100644 (file)
@@ -221,7 +221,7 @@ static struct shash_alg alg = {
 };
 
 static const struct x86_cpu_id crc32c_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_XMM4_2),
+       X86_MATCH_FEATURE(X86_FEATURE_XMM4_2, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, crc32c_cpu_id);
index 3c81e15b0873f7ed8a768435df0caf234da6922b..71291d5af9f4588b3811e05df7202975e7ede7e7 100644 (file)
@@ -114,7 +114,7 @@ static struct shash_alg alg = {
 };
 
 static const struct x86_cpu_id crct10dif_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_PCLMULQDQ),
+       X86_MATCH_FEATURE(X86_FEATURE_PCLMULQDQ, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, crct10dif_cpu_id);
index a4b728518e28e5867ece03c8db470429c88bd155..1f1a95f3dd0ca6828077544c26c5cb45545c31b6 100644 (file)
@@ -313,7 +313,7 @@ static struct ahash_alg ghash_async_alg = {
 };
 
 static const struct x86_cpu_id pcmul_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_PCLMULQDQ), /* Pickle-Mickle-Duck */
+       X86_MATCH_FEATURE(X86_FEATURE_PCLMULQDQ, NULL), /* Pickle-Mickle-Duck */
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, pcmul_cpu_id);
index abef51320e3a5ea2ac3a1827051fa9e786209f54..43b09e9c93a275a58e433f604b90114cdcea09a6 100644 (file)
@@ -259,7 +259,7 @@ static int power_cpu_init(unsigned int cpu)
 }
 
 static const struct x86_cpu_id cpu_match[] = {
-       { .vendor = X86_VENDOR_AMD, .family = 0x15 },
+       X86_MATCH_VENDOR_FAM(AMD, 0x15, NULL),
        {},
 };
 
index 4814c964692cb1a5d779660c2ececd247350283b..e4aa20c0426fcc31a87b8486ad5a2dfa8182dabb 100644 (file)
@@ -594,63 +594,60 @@ static const struct cstate_model glm_cstates __initconst = {
 };
 
 
-#define X86_CSTATES_MODEL(model, states)                               \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long) &(states) }
-
 static const struct x86_cpu_id intel_cstates_match[] __initconst = {
-       X86_CSTATES_MODEL(INTEL_FAM6_NEHALEM,    nhm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_NEHALEM_EP, nhm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_NEHALEM_EX, nhm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM,             &nhm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM_EP,          &nhm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM_EX,          &nhm_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_WESTMERE,    nhm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_WESTMERE_EP, nhm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_WESTMERE_EX, nhm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE,            &nhm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE_EP,         &nhm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE_EX,         &nhm_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_SANDYBRIDGE,   snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_SANDYBRIDGE_X, snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE,         &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE_X,       &snb_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_IVYBRIDGE,   snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_IVYBRIDGE_X, snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE,           &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE_X,         &snb_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_HASWELL,   snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_HASWELL_X, snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_HASWELL_G, snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL,             &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_X,           &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_G,           &snb_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_HASWELL_L, hswult_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_L,           &hswult_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_SILVERMONT,   slm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_SILVERMONT_D, slm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_AIRMONT,      slm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT,     &slm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_D,   &slm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT,        &slm_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_BROADWELL,   snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_BROADWELL_D, snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_BROADWELL_G, snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_BROADWELL_X, snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL,           &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D,         &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G,         &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X,         &snb_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_SKYLAKE_L, snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_SKYLAKE,   snb_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_SKYLAKE_X, snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &snb_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,           &snb_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_KABYLAKE_L, hswult_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_KABYLAKE,   hswult_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_COMETLAKE_L, hswult_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_COMETLAKE, hswult_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &hswult_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &hswult_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L,         &hswult_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE,           &hswult_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_CANNONLAKE_L, cnl_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L,        &cnl_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNL, knl_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_XEON_PHI_KNM, knl_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNL,        &knl_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNM,        &knl_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT,   glm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT_D, glm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_GOLDMONT_PLUS, glm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_TREMONT_D, glm_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_ATOM_TREMONT, glm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT,       &glm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_D,     &glm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS,  &glm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_D,      &glm_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT,        &glm_cstates),
 
-       X86_CSTATES_MODEL(INTEL_FAM6_ICELAKE_L, icl_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_ICELAKE,   icl_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_TIGERLAKE_L, icl_cstates),
-       X86_CSTATES_MODEL(INTEL_FAM6_TIGERLAKE, icl_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L,           &icl_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE,             &icl_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L,         &icl_cstates),
+       X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE,           &icl_cstates),
        { },
 };
 MODULE_DEVICE_TABLE(x86cpu, intel_cstates_match);
index 09913121e7263918a549eac45fda3de517e0ce01..a5dbd25852cb75b69b67f936e294db73aac95f92 100644 (file)
@@ -668,9 +668,6 @@ static int __init init_rapl_pmus(void)
        return 0;
 }
 
-#define X86_RAPL_MODEL_MATCH(model, init)      \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&init }
-
 static struct rapl_model model_snb = {
        .events         = BIT(PERF_RAPL_PP0) |
                          BIT(PERF_RAPL_PKG) |
@@ -716,36 +713,35 @@ static struct rapl_model model_skl = {
 };
 
 static const struct x86_cpu_id rapl_model_match[] __initconst = {
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE,            model_snb),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE_X,          model_snbep),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE,              model_snb),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE_X,            model_snbep),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL,                model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_X,              model_hsx),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_L,              model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_HASWELL_G,              model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL,              model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_G,            model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_X,            model_hsx),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_BROADWELL_D,            model_hsx),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL,           model_knl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNM,           model_knl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_L,              model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE,                model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X,              model_hsx),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_KABYLAKE_L,             model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_KABYLAKE,               model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_CANNONLAKE_L,           model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT,          model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT_D,        model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_ATOM_GOLDMONT_PLUS,     model_hsw),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_ICELAKE_L,              model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_ICELAKE,                model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_COMETLAKE_L,            model_skl),
-       X86_RAPL_MODEL_MATCH(INTEL_FAM6_COMETLAKE,              model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE,         &model_snb),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE_X,       &model_snbep),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE,           &model_snb),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE_X,         &model_snbep),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL,             &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_X,           &model_hsx),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_L,           &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_G,           &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL,           &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G,         &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X,         &model_hsx),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D,         &model_hsx),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNL,        &model_knl),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNM,        &model_knl),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,           &model_hsx),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L,        &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT,       &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_D,     &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS,  &model_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L,           &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE,             &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L,         &model_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE,           &model_skl),
        {},
 };
-
 MODULE_DEVICE_TABLE(x86cpu, rapl_model_match);
 
 static int __init rapl_pmu_init(void)
index 63922e3a34f54462b58a63c4a37a8259a304b0f6..1ba72c563313a115b874262aa5811de36830da76 100644 (file)
@@ -1392,10 +1392,6 @@ err:
        return ret;
 }
 
-
-#define X86_UNCORE_MODEL_MATCH(model, init)    \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&init }
-
 struct intel_uncore_init_fun {
        void    (*cpu_init)(void);
        int     (*pci_init)(void);
@@ -1487,40 +1483,39 @@ static const struct intel_uncore_init_fun snr_uncore_init __initconst = {
 };
 
 static const struct x86_cpu_id intel_uncore_match[] __initconst = {
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_NEHALEM_EP,     nhm_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_NEHALEM,        nhm_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_WESTMERE,       nhm_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_WESTMERE_EP,    nhm_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE,    snb_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE,      ivb_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_HASWELL,        hsw_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_HASWELL_L,      hsw_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_HASWELL_G,      hsw_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL,      bdw_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_G,    bdw_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SANDYBRIDGE_X,  snbep_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_NEHALEM_EX,     nhmex_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_WESTMERE_EX,    nhmex_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_IVYBRIDGE_X,    ivbep_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_HASWELL_X,      hswep_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_X,    bdx_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_BROADWELL_D,    bdx_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNL,   knl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_XEON_PHI_KNM,   knl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE,        skl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_L,      skl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_SKYLAKE_X,      skx_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_KABYLAKE_L,     skl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_KABYLAKE,       skl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ICELAKE_L,      icl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ICELAKE_NNPI,   icl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ICELAKE,        icl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_TIGERLAKE_L,    tgl_l_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_TIGERLAKE,      tgl_uncore_init),
-       X86_UNCORE_MODEL_MATCH(INTEL_FAM6_ATOM_TREMONT_D, snr_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM_EP,          &nhm_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM,             &nhm_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE,            &nhm_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE_EP,         &nhm_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE,         &snb_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE,           &ivb_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL,             &hsw_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_L,           &hsw_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_G,           &hsw_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL,           &bdw_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G,         &bdw_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE_X,       &snbep_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM_EX,          &nhmex_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE_EX,         &nhmex_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE_X,         &ivbep_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_X,           &hswep_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X,         &bdx_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D,         &bdx_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNL,        &knl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNM,        &knl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &skl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &skl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,           &skx_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &skl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &skl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L,           &icl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_NNPI,        &icl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE,             &icl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L,         &tgl_l_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE,           &tgl_uncore_init),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_D,      &snr_uncore_init),
        {},
 };
-
 MODULE_DEVICE_TABLE(x86cpu, intel_uncore_match);
 
 static int __init intel_uncore_init(void)
index 1ae4e5791afafbe56c188cf14a3223e06f724869..c7df20e78b095603b604d32168ee299ab9a4de21 100644 (file)
@@ -12,7 +12,6 @@ struct amd_nb_bus_dev_range {
        u8 dev_limit;
 };
 
-extern const struct pci_device_id amd_nb_misc_ids[];
 extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[];
 
 extern bool early_is_amd_nb(u32 value);
index 31c379c1da41c48b7f4ee89d3c100d62895ff5b2..cf3d621c68925a1558f25c37e3c90d04f5ef854e 100644 (file)
@@ -5,9 +5,139 @@
 /*
  * Declare drivers belonging to specific x86 CPUs
  * Similar in spirit to pci_device_id and related PCI functions
+ *
+ * The wildcard initializers are in mod_devicetable.h because
+ * file2alias needs them. Sigh.
  */
-
 #include <linux/mod_devicetable.h>
+/* Get the INTEL_FAM* model defines */
+#include <asm/intel-family.h>
+/* And the X86_VENDOR_* ones */
+#include <asm/processor.h>
+
+/* Centaur FAM6 models */
+#define X86_CENTAUR_FAM6_C7_A          0xa
+#define X86_CENTAUR_FAM6_C7_D          0xd
+#define X86_CENTAUR_FAM6_NANO          0xf
+
+/**
+ * X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Base macro for CPU matching
+ * @_vendor:   The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *             The name is expanded to X86_VENDOR_@_vendor
+ * @_family:   The family number or X86_FAMILY_ANY
+ * @_model:    The model number, model constant or X86_MODEL_ANY
+ * @_feature:  A X86_FEATURE bit or X86_FEATURE_ANY
+ * @_data:     Driver specific data or NULL. The internal storage
+ *             format is unsigned long. The supplied value, pointer
+ *             etc. is casted to unsigned long internally.
+ *
+ * Use only if you need all selectors. Otherwise use one of the shorter
+ * macros of the X86_MATCH_* family. If there is no matching shorthand
+ * macro, consider to add one. If you really need to wrap one of the macros
+ * into another macro at the usage site for good reasons, then please
+ * start this local macro with X86_MATCH to allow easy grepping.
+ */
+#define X86_MATCH_VENDOR_FAM_MODEL_FEATURE(_vendor, _family, _model,   \
+                                          _feature, _data) {           \
+       .vendor         = X86_VENDOR_##_vendor,                         \
+       .family         = _family,                                      \
+       .model          = _model,                                       \
+       .feature        = _feature,                                     \
+       .driver_data    = (unsigned long) _data                         \
+}
+
+/**
+ * X86_MATCH_VENDOR_FAM_FEATURE - Macro for matching vendor, family and CPU feature
+ * @vendor:    The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *             The name is expanded to X86_VENDOR_@vendor
+ * @family:    The family number or X86_FAMILY_ANY
+ * @feature:   A X86_FEATURE bit
+ * @data:      Driver specific data or NULL. The internal storage
+ *             format is unsigned long. The supplied value, pointer
+ *             etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_VENDOR_FAM_FEATURE(vendor, family, feature, data)    \
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family,              \
+                                          X86_MODEL_ANY, feature, data)
+
+/**
+ * X86_MATCH_VENDOR_FEATURE - Macro for matching vendor and CPU feature
+ * @vendor:    The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *             The name is expanded to X86_VENDOR_@vendor
+ * @feature:   A X86_FEATURE bit
+ * @data:      Driver specific data or NULL. The internal storage
+ *             format is unsigned long. The supplied value, pointer
+ *             etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_VENDOR_FEATURE(vendor, feature, data)                        \
+       X86_MATCH_VENDOR_FAM_FEATURE(vendor, X86_FAMILY_ANY, feature, data)
+
+/**
+ * X86_MATCH_FEATURE - Macro for matching a CPU feature
+ * @feature:   A X86_FEATURE bit
+ * @data:      Driver specific data or NULL. The internal storage
+ *             format is unsigned long. The supplied value, pointer
+ *             etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_FEATURE(feature, data)                               \
+       X86_MATCH_VENDOR_FEATURE(ANY, feature, data)
+
+/**
+ * X86_MATCH_VENDOR_FAM_MODEL - Match vendor, family and model
+ * @vendor:    The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *             The name is expanded to X86_VENDOR_@vendor
+ * @family:    The family number or X86_FAMILY_ANY
+ * @model:     The model number, model constant or X86_MODEL_ANY
+ * @data:      Driver specific data or NULL. The internal storage
+ *             format is unsigned long. The supplied value, pointer
+ *             etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set to wildcards.
+ */
+#define X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, data)                \
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(vendor, family, model,       \
+                                          X86_FEATURE_ANY, data)
+
+/**
+ * X86_MATCH_VENDOR_FAM - Match vendor and family
+ * @vendor:    The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY
+ *             The name is expanded to X86_VENDOR_@vendor
+ * @family:    The family number or X86_FAMILY_ANY
+ * @data:      Driver specific data or NULL. The internal storage
+ *             format is unsigned long. The supplied value, pointer
+ *             etc. is casted to unsigned long internally.
+ *
+ * All other missing arguments to X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are
+ * set of wildcards.
+ */
+#define X86_MATCH_VENDOR_FAM(vendor, family, data)                     \
+       X86_MATCH_VENDOR_FAM_MODEL(vendor, family, X86_MODEL_ANY, data)
+
+/**
+ * X86_MATCH_INTEL_FAM6_MODEL - Match vendor INTEL, family 6 and model
+ * @model:     The model name without the INTEL_FAM6_ prefix or ANY
+ *             The model name is expanded to INTEL_FAM6_@model internally
+ * @data:      Driver specific data or NULL. The internal storage
+ *             format is unsigned long. The supplied value, pointer
+ *             etc. is casted to unsigned long internally.
+ *
+ * The vendor is set to INTEL, the family to 6 and all other missing
+ * arguments of X86_MATCH_VENDOR_FAM_MODEL_FEATURE() are set to wildcards.
+ *
+ * See X86_MATCH_VENDOR_FAM_MODEL_FEATURE() for further information.
+ */
+#define X86_MATCH_INTEL_FAM6_MODEL(model, data)                                \
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL, 6, INTEL_FAM6_##model, data)
 
 /*
  * Match specific microcode revisions.
index f3327cb56edfe163d1a8fc0a45b89fb324573243..f980efcacfeb14fea718b039d197d50f59395e35 100644 (file)
 #define X86_FEATURE_IBRS               ( 7*32+25) /* Indirect Branch Restricted Speculation */
 #define X86_FEATURE_IBPB               ( 7*32+26) /* Indirect Branch Prediction Barrier */
 #define X86_FEATURE_STIBP              ( 7*32+27) /* Single Thread Indirect Branch Predictors */
-#define X86_FEATURE_ZEN                        ( 7*32+28) /* "" CPU is AMD family 0x17 (Zen) */
+#define X86_FEATURE_ZEN                        ( 7*32+28) /* "" CPU is AMD family 0x17 or above (Zen) */
 #define X86_FEATURE_L1TF_PTEINV                ( 7*32+29) /* "" L1TF workaround PTE inversion */
 #define X86_FEATURE_IBRS_ENHANCED      ( 7*32+30) /* Enhanced IBRS */
 #define X86_FEATURE_MSR_IA32_FEAT_CTL  ( 7*32+31) /* "" MSR IA32_FEAT_CTL configured */
index 4981c293f926caf29a2d81e982966701ef0e2a4c..8f1e94f29a1658f83ecdee9e9c343a2450856aa7 100644 (file)
@@ -35,6 +35,9 @@
  * The #define line may optionally include a comment including platform names.
  */
 
+/* Wildcard match for FAM6 so X86_MATCH_INTEL_FAM6_MODEL(ANY) works */
+#define INTEL_FAM6_ANY                 X86_MODEL_ANY
+
 #define INTEL_FAM6_CORE_YONAH          0x0E
 
 #define INTEL_FAM6_CORE2_MEROM         0x0F
 #define INTEL_FAM6_XEON_PHI_KNL                0x57 /* Knights Landing */
 #define INTEL_FAM6_XEON_PHI_KNM                0x85 /* Knights Mill */
 
-/* Useful macros */
-#define INTEL_CPU_FAM_ANY(_family, _model, _driver_data)       \
-{                                                              \
-       .vendor         = X86_VENDOR_INTEL,                     \
-       .family         = _family,                              \
-       .model          = _model,                               \
-       .feature        = X86_FEATURE_ANY,                      \
-       .driver_data    = (kernel_ulong_t)&_driver_data         \
-}
-
-#define INTEL_CPU_FAM6(_model, _driver_data)                   \
-       INTEL_CPU_FAM_ANY(6, INTEL_FAM6_##_model, _driver_data)
+/* Family 5 */
+#define INTEL_FAM5_QUARK_X1000         0x09 /* Quark X1000 SoC */
 
 #endif /* _ASM_X86_INTEL_FAMILY_H */
index 69aed0ebbdfc962691f367706fe8ddeb7cc51df5..b6b3297851f37d9406add86862a79dc0d9e0e908 100644 (file)
@@ -36,10 +36,9 @@ static const struct pci_device_id amd_root_ids[] = {
        {}
 };
 
-
 #define PCI_DEVICE_ID_AMD_CNB17H_F4     0x1704
 
-const struct pci_device_id amd_nb_misc_ids[] = {
+static const struct pci_device_id amd_nb_misc_ids[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB_MISC) },
        { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_10H_NB_MISC) },
        { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) },
@@ -56,7 +55,6 @@ const struct pci_device_id amd_nb_misc_ids[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_19H_DF_F3) },
        {}
 };
-EXPORT_SYMBOL_GPL(amd_nb_misc_ids);
 
 static const struct pci_device_id amd_nb_link_ids[] = {
        { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) },
index 5f973fed3c9ff21ba96692cd6d6c1d454c16acf4..81b9c63dae1bdee98a90701dbc9026d09bb1b359 100644 (file)
@@ -546,12 +546,6 @@ static struct clock_event_device lapic_clockevent = {
 };
 static DEFINE_PER_CPU(struct clock_event_device, lapic_events);
 
-#define DEADLINE_MODEL_MATCH_FUNC(model, func) \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&func }
-
-#define DEADLINE_MODEL_MATCH_REV(model, rev)   \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)rev }
-
 static u32 hsx_deadline_rev(void)
 {
        switch (boot_cpu_data.x86_stepping) {
@@ -588,23 +582,23 @@ static u32 skx_deadline_rev(void)
 }
 
 static const struct x86_cpu_id deadline_match[] = {
-       DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_HASWELL_X,        hsx_deadline_rev),
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_X,      0x0b000020),
-       DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_BROADWELL_D,      bdx_deadline_rev),
-       DEADLINE_MODEL_MATCH_FUNC( INTEL_FAM6_SKYLAKE_X,        skx_deadline_rev),
+       X86_MATCH_INTEL_FAM6_MODEL( HASWELL_X,          &hsx_deadline_rev),
+       X86_MATCH_INTEL_FAM6_MODEL( BROADWELL_X,        0x0b000020),
+       X86_MATCH_INTEL_FAM6_MODEL( BROADWELL_D,        &bdx_deadline_rev),
+       X86_MATCH_INTEL_FAM6_MODEL( SKYLAKE_X,          &skx_deadline_rev),
 
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL,          0x22),
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_L,        0x20),
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_HASWELL_G,        0x17),
+       X86_MATCH_INTEL_FAM6_MODEL( HASWELL,            0x22),
+       X86_MATCH_INTEL_FAM6_MODEL( HASWELL_L,          0x20),
+       X86_MATCH_INTEL_FAM6_MODEL( HASWELL_G,          0x17),
 
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL,        0x25),
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_BROADWELL_G,      0x17),
+       X86_MATCH_INTEL_FAM6_MODEL( BROADWELL,          0x25),
+       X86_MATCH_INTEL_FAM6_MODEL( BROADWELL_G,        0x17),
 
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_SKYLAKE_L,        0xb2),
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_SKYLAKE,          0xb2),
+       X86_MATCH_INTEL_FAM6_MODEL( SKYLAKE_L,          0xb2),
+       X86_MATCH_INTEL_FAM6_MODEL( SKYLAKE,            0xb2),
 
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_KABYLAKE_L,       0x52),
-       DEADLINE_MODEL_MATCH_REV ( INTEL_FAM6_KABYLAKE,         0x52),
+       X86_MATCH_INTEL_FAM6_MODEL( KABYLAKE_L,         0x52),
+       X86_MATCH_INTEL_FAM6_MODEL( KABYLAKE,           0x52),
 
        {},
 };
index 1f875fbe13846a9bfc00582173e6aedc571cd3ca..af952d7ed2fcee31dac0a02fd029656e93f3ebc4 100644 (file)
@@ -926,7 +926,8 @@ static void init_amd(struct cpuinfo_x86 *c)
        case 0x12: init_amd_ln(c); break;
        case 0x15: init_amd_bd(c); break;
        case 0x16: init_amd_jg(c); break;
-       case 0x17: init_amd_zn(c); break;
+       case 0x17: fallthrough;
+       case 0x19: init_amd_zn(c); break;
        }
 
        /*
index 4cdb123ff66a8dddd24a69987f78c37af7e28b8a..137644a5271625a406d3deb1b54e8633a1b42cbb 100644 (file)
@@ -1008,8 +1008,8 @@ static void identify_cpu_without_cpuid(struct cpuinfo_x86 *c)
 #define NO_ITLB_MULTIHIT       BIT(7)
 #define NO_SPECTRE_V2          BIT(8)
 
-#define VULNWL(_vendor, _family, _model, _whitelist)   \
-       { X86_VENDOR_##_vendor, _family, _model, X86_FEATURE_ANY, _whitelist }
+#define VULNWL(vendor, family, model, whitelist)       \
+       X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, whitelist)
 
 #define VULNWL_INTEL(model, whitelist)         \
        VULNWL(INTEL, 6, INTEL_FAM6_##model, whitelist)
index 6dd78d8235e4498abe83b624d69f9104315ae56e..d3482eb43ff3e6c954f34958a7caafb1ef3dc429 100644 (file)
  * respective wildcard entries.
  *
  * A typical table entry would be to match a specific CPU
- * { X86_VENDOR_INTEL, 6, 0x12 }
- * or to match a specific CPU feature
- * { X86_FEATURE_MATCH(X86_FEATURE_FOOBAR) }
+ *
+ * X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, INTEL_FAM6_BROADWELL,
+ *                                   X86_FEATURE_ANY, NULL);
  *
  * Fields can be wildcarded with %X86_VENDOR_ANY, %X86_FAMILY_ANY,
- * %X86_MODEL_ANY, %X86_FEATURE_ANY or 0 (except for vendor)
+ * %X86_MODEL_ANY, %X86_FEATURE_ANY (except for vendor)
+ *
+ * asm/cpu_device_id.h contains a set of useful macros which are shortcuts
+ * for various common selections. The above can be shortened to:
+ *
+ * X86_MATCH_INTEL_FAM6_MODEL(BROADWELL, NULL);
  *
  * Arrays used to match for this should also be declared using
  * MODULE_DEVICE_TABLE(x86cpu, ...)
index 69881b2d446ce29de1c61640d2e90e0e02ad5e7c..3076ef0864dd9a85b5543f081bff2f3a82f10d2d 100644 (file)
@@ -466,7 +466,7 @@ static bool match_smt(struct cpuinfo_x86 *c, struct cpuinfo_x86 *o)
  */
 
 static const struct x86_cpu_id snc_cpu[] = {
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_SKYLAKE_X },
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X, NULL),
        {}
 };
 
index e0cbe4f2af493deef46199b1712c2f95d472a18a..bf528aae8ece02cf4ed53af66eba3b765be04b74 100644 (file)
@@ -63,13 +63,13 @@ static const struct freq_desc freq_desc_lgm = {
 };
 
 static const struct x86_cpu_id tsc_msr_cpu_ids[] = {
-       INTEL_CPU_FAM6(ATOM_SALTWELL_MID,       freq_desc_pnw),
-       INTEL_CPU_FAM6(ATOM_SALTWELL_TABLET,    freq_desc_clv),
-       INTEL_CPU_FAM6(ATOM_SILVERMONT,         freq_desc_byt),
-       INTEL_CPU_FAM6(ATOM_SILVERMONT_MID,     freq_desc_tng),
-       INTEL_CPU_FAM6(ATOM_AIRMONT,            freq_desc_cht),
-       INTEL_CPU_FAM6(ATOM_AIRMONT_MID,        freq_desc_ann),
-       INTEL_CPU_FAM6(ATOM_AIRMONT_NP,         freq_desc_lgm),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SALTWELL_MID,   &freq_desc_pnw),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SALTWELL_TABLET,&freq_desc_clv),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT,     &freq_desc_byt),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, &freq_desc_tng),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT,        &freq_desc_cht),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT_MID,    &freq_desc_ann),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT_NP,     &freq_desc_lgm),
        {}
 };
 
index 91000501756ec04214ca14f6083440d2a351d1a4..eedf815c0a32f4baf35ff65d43352f4555709343 100644 (file)
@@ -48,6 +48,7 @@
 #include <asm/kvm_para.h>
 #include <asm/irq_remapping.h>
 #include <asm/spec-ctrl.h>
+#include <asm/cpu_device_id.h>
 
 #include <asm/virtext.h>
 #include "trace.h"
@@ -59,7 +60,7 @@ MODULE_LICENSE("GPL");
 
 #ifdef MODULE
 static const struct x86_cpu_id svm_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_SVM),
+       X86_MATCH_FEATURE(X86_FEATURE_SVM, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, svm_cpu_id);
index 26f8f31563e9b7b766d2fdbda135592085b3f148..967bc1eace3fd3819ea4a10a5182b5dae80d56af 100644 (file)
@@ -31,6 +31,7 @@
 #include <asm/apic.h>
 #include <asm/asm.h>
 #include <asm/cpu.h>
+#include <asm/cpu_device_id.h>
 #include <asm/debugreg.h>
 #include <asm/desc.h>
 #include <asm/fpu/internal.h>
@@ -66,7 +67,7 @@ MODULE_LICENSE("GPL");
 
 #ifdef MODULE
 static const struct x86_cpu_id vmx_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_VMX),
+       X86_MATCH_FEATURE(X86_FEATURE_VMX, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, vmx_cpu_id);
index ee6b0780bea1c34cba03c8353159d92de8270dbd..f8ed5f66cd206a024f4c4ceb4f0a1373739fbdd1 100644 (file)
@@ -117,17 +117,16 @@ static void punit_dbgfs_unregister(void)
        debugfs_remove_recursive(punit_dbg_file);
 }
 
-#define ICPU(model, drv_data) \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_MWAIT,\
-         (kernel_ulong_t)&drv_data }
+#define X86_MATCH(model, data)                                          \
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, INTEL_FAM6_##model, \
+                                          X86_FEATURE_MWAIT, data)
 
 static const struct x86_cpu_id intel_punit_cpu_ids[] = {
-       ICPU(INTEL_FAM6_ATOM_SILVERMONT, punit_device_byt),
-       ICPU(INTEL_FAM6_ATOM_SILVERMONT_MID,  punit_device_tng),
-       ICPU(INTEL_FAM6_ATOM_AIRMONT,     punit_device_cht),
+       X86_MATCH(ATOM_SILVERMONT,              &punit_device_byt),
+       X86_MATCH(ATOM_SILVERMONT_MID,          &punit_device_tng),
+       X86_MATCH(ATOM_AIRMONT,                 &punit_device_cht),
        {}
 };
-
 MODULE_DEVICE_TABLE(x86cpu, intel_punit_cpu_ids);
 
 static int __init punit_atom_debug_init(void)
index 88d32c06cffafe3c1777d05fc20b7d2871a34ba9..c000e03ecfe3c913b7a311d674a641872ac9d5e3 100644 (file)
@@ -659,12 +659,9 @@ static int qrk_capsule_setup_info(struct capsule_info *cap_info, void **pkbuff,
        return 1;
 }
 
-#define ICPU(family, model, quirk_handler) \
-       { X86_VENDOR_INTEL, family, model, X86_FEATURE_ANY, \
-         (unsigned long)&quirk_handler }
-
 static const struct x86_cpu_id efi_capsule_quirk_ids[] = {
-       ICPU(5, 9, qrk_capsule_setup_info),     /* Intel Quark X1000 */
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL, 5, INTEL_FAM5_QUARK_X1000,
+                                  &qrk_capsule_setup_info),
        { }
 };
 
index e3f4bfc08f785b5940eff8b232c9fae9cbe7873f..31dda18bb3700528bd0f57ac7cdb5c19671bdc90 100644 (file)
@@ -60,11 +60,8 @@ static struct bt_sfi_data tng_bt_sfi_data __initdata = {
        .setup  = tng_bt_sfi_setup,
 };
 
-#define ICPU(model, ddata)     \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (kernel_ulong_t)&ddata }
-
 static const struct x86_cpu_id bt_sfi_cpu_ids[] = {
-       ICPU(INTEL_FAM6_ATOM_SILVERMONT_MID, tng_bt_sfi_data),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, &tng_bt_sfi_data),
        {}
 };
 
index e9d97d52475e15136b1215aba3f95446b7080408..0286fe1b14b5cb57ca09f83ceb8a74d4f3b9f716 100644 (file)
@@ -569,7 +569,7 @@ static void __init imr_fixup_memmap(struct imr_device *idev)
 }
 
 static const struct x86_cpu_id imr_ids[] __initconst = {
-       { X86_VENDOR_INTEL, 5, 9 },     /* Intel Quark SoC X1000. */
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL, 5, INTEL_FAM5_QUARK_X1000, NULL),
        {}
 };
 
index 4307830e1b6f027e8dd53c07c463c17aca7d9871..570e3062faac267df713fa8d8b2a3ba74461c579 100644 (file)
@@ -105,7 +105,7 @@ static void __init imr_self_test(void)
 }
 
 static const struct x86_cpu_id imr_ids[] __initconst = {
-       { X86_VENDOR_INTEL, 5, 9 },     /* Intel Quark SoC X1000. */
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL, 5, INTEL_FAM5_QUARK_X1000, NULL),
        {}
 };
 
index 915bb163976324edd41b615b08fd8ecb95c2c33c..aaff9ed7ff45c35f818fc2d355713033a8f4600e 100644 (file)
@@ -475,20 +475,8 @@ static int msr_save_cpuid_features(const struct x86_cpu_id *c)
 }
 
 static const struct x86_cpu_id msr_save_cpu_table[] = {
-       {
-               .vendor = X86_VENDOR_AMD,
-               .family = 0x15,
-               .model = X86_MODEL_ANY,
-               .feature = X86_FEATURE_ANY,
-               .driver_data = (kernel_ulong_t)msr_save_cpuid_features,
-       },
-       {
-               .vendor = X86_VENDOR_AMD,
-               .family = 0x16,
-               .model = X86_MODEL_ANY,
-               .feature = X86_FEATURE_ANY,
-               .driver_data = (kernel_ulong_t)msr_save_cpuid_features,
-       },
+       X86_MATCH_VENDOR_FAM(AMD, 0x15, &msr_save_cpuid_features),
+       X86_MATCH_VENDOR_FAM(AMD, 0x16, &msr_save_cpuid_features),
        {}
 };
 
index db18df6cb330f8ea6872480979baab6edd55caa5..dee9999382134dc02834d9815ee02eeb6d0bf1d6 100644 (file)
@@ -306,11 +306,9 @@ static const struct lpss_device_desc bsw_spi_dev_desc = {
        .setup = lpss_deassert_reset,
 };
 
-#define ICPU(model)    { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
-
 static const struct x86_cpu_id lpss_cpu_ids[] = {
-       ICPU(INTEL_FAM6_ATOM_SILVERMONT),       /* Valleyview, Bay Trail */
-       ICPU(INTEL_FAM6_ATOM_AIRMONT),  /* Braswell, Cherry Trail */
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT,     NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT,        NULL),
        {}
 };
 
index 697a6b12d6b96ef4d0e7b974c4d888d97084cc07..bdc1ba00aee9f7e54f8b3c20e04577135cdbb430 100644 (file)
@@ -37,7 +37,7 @@ struct always_present_id {
        const char *uid;
 };
 
-#define ICPU(model)    { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
+#define X86_MATCH(model)       X86_MATCH_INTEL_FAM6_MODEL(model, NULL)
 
 #define ENTRY(hid, uid, cpu_models, dmi...) {                          \
        { { hid, }, {} },                                               \
@@ -51,29 +51,29 @@ static const struct always_present_id always_present_ids[] = {
         * Bay / Cherry Trail PWM directly poked by GPU driver in win10,
         * but Linux uses a separate PWM driver, harmless if not used.
         */
-       ENTRY("80860F09", "1", ICPU(INTEL_FAM6_ATOM_SILVERMONT), {}),
-       ENTRY("80862288", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {}),
+       ENTRY("80860F09", "1", X86_MATCH(ATOM_SILVERMONT), {}),
+       ENTRY("80862288", "1", X86_MATCH(ATOM_AIRMONT), {}),
 
        /* Lenovo Yoga Book uses PWM2 for keyboard backlight control */
-       ENTRY("80862289", "2", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
+       ENTRY("80862289", "2", X86_MATCH(ATOM_AIRMONT), {
                        DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9"),
                }),
        /*
         * The INT0002 device is necessary to clear wakeup interrupt sources
         * on Cherry Trail devices, without it we get nobody cared IRQ msgs.
         */
-       ENTRY("INT0002", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {}),
+       ENTRY("INT0002", "1", X86_MATCH(ATOM_AIRMONT), {}),
        /*
         * On the Dell Venue 11 Pro 7130 and 7139, the DSDT hides
         * the touchscreen ACPI device until a certain time
         * after _SB.PCI0.GFX0.LCD.LCD1._ON gets called has passed
         * *and* _STA has been called at least 3 times since.
         */
-       ENTRY("SYNA7500", "1", ICPU(INTEL_FAM6_HASWELL_L), {
+       ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
                DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
                DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7130"),
              }),
-       ENTRY("SYNA7500", "1", ICPU(INTEL_FAM6_HASWELL_L), {
+       ENTRY("SYNA7500", "1", X86_MATCH(HASWELL_L), {
                DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
                DMI_MATCH(DMI_PRODUCT_NAME, "Venue 11 Pro 7139"),
              }),
@@ -89,19 +89,19 @@ static const struct always_present_id always_present_ids[] = {
         * was copy-pasted from the GPD win, so it has a disabled KIOX000A
         * node which we should not enable, thus we also check the BIOS date.
         */
-       ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
+       ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
                DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
                DMI_MATCH(DMI_BOARD_NAME, "Default string"),
                DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
                DMI_MATCH(DMI_BIOS_DATE, "02/21/2017")
              }),
-       ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
+       ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
                DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
                DMI_MATCH(DMI_BOARD_NAME, "Default string"),
                DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
                DMI_MATCH(DMI_BIOS_DATE, "03/20/2017")
              }),
-       ENTRY("KIOX000A", "1", ICPU(INTEL_FAM6_ATOM_AIRMONT), {
+       ENTRY("KIOX000A", "1", X86_MATCH(ATOM_AIRMONT), {
                DMI_MATCH(DMI_BOARD_VENDOR, "AMI Corporation"),
                DMI_MATCH(DMI_BOARD_NAME, "Default string"),
                DMI_MATCH(DMI_PRODUCT_NAME, "Default string"),
index 594aee281977c30f4ce26ca16e1ce68e1acccf0d..b40edae328179bc7d032670b11dac5cf1d102a90 100644 (file)
@@ -775,7 +775,7 @@ int __init agp_amd64_init(void)
                }
 
                /* First check that we have at least one AMD64 NB */
-               if (!pci_dev_present(amd_nb_misc_ids)) {
+               if (!amd_nb_num()) {
                        pci_unregister_driver(&agp_amd64_pci_driver);
                        return -ENODEV;
                }
index ffe9b0c6c647c2ef897e8726043d79b5e2b48ca4..39943bc3651a61e10a634dbbbc3e5ee980e2506a 100644 (file)
@@ -209,20 +209,19 @@ static int __init mod_init(void)
 out:
        return err;
 }
+module_init(mod_init);
 
 static void __exit mod_exit(void)
 {
        hwrng_unregister(&via_rng);
 }
-
-module_init(mod_init);
 module_exit(mod_exit);
 
 static struct x86_cpu_id __maybe_unused via_rng_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_XSTORE),
+       X86_MATCH_FEATURE(X86_FEATURE_XSTORE, NULL),
        {}
 };
+MODULE_DEVICE_TABLE(x86cpu, via_rng_cpu_id);
 
 MODULE_DESCRIPTION("H/W RNG driver for VIA CPU with PadLock");
 MODULE_LICENSE("GPL");
-MODULE_DEVICE_TABLE(x86cpu, via_rng_cpu_id);
index d6f7df33ab8cefde1eea21bc82c330fff7080213..289e8ce3fd13d254d7f16a6353868196d404b326 100644 (file)
@@ -30,6 +30,7 @@
 #include <asm/msr.h>
 #include <asm/processor.h>
 #include <asm/cpufeature.h>
+#include <asm/cpu_device_id.h>
 
 MODULE_AUTHOR("Paul Diefenbaugh, Dominik Brodowski");
 MODULE_DESCRIPTION("ACPI Processor P-States Driver");
@@ -991,8 +992,8 @@ late_initcall(acpi_cpufreq_init);
 module_exit(acpi_cpufreq_exit);
 
 static const struct x86_cpu_id acpi_cpufreq_ids[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_ACPI),
-       X86_FEATURE_MATCH(X86_FEATURE_HW_PSTATE),
+       X86_MATCH_FEATURE(X86_FEATURE_ACPI, NULL),
+       X86_MATCH_FEATURE(X86_FEATURE_HW_PSTATE, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, acpi_cpufreq_ids);
index e2df9d1121063ba8d4a6e85b950d4b23dbaa38e6..f7c4206d4c90b1d50821929b045daa4649e3338b 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <asm/msr.h>
 #include <asm/cpufeature.h>
+#include <asm/cpu_device_id.h>
 
 #include "cpufreq_ondemand.h"
 
@@ -144,7 +145,7 @@ static void __exit amd_freq_sensitivity_exit(void)
 module_exit(amd_freq_sensitivity_exit);
 
 static const struct x86_cpu_id amd_freq_sensitivity_ids[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_PROC_FEEDBACK),
+       X86_MATCH_FEATURE(X86_FEATURE_PROC_FEEDBACK, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, amd_freq_sensitivity_ids);
index 45c18c6b8081c2a3c11ad291a7095f47f02b4c1b..776a58bab0ffd5f67266fe8ef703b6a867d0ef57 100644 (file)
@@ -385,7 +385,7 @@ static struct cpufreq_driver eps_driver = {
 /* This driver will work only on Centaur C7 processors with
  * Enhanced SpeedStep/PowerSaver registers */
 static const struct x86_cpu_id eps_cpu_id[] = {
-       { X86_VENDOR_CENTAUR, 6, X86_MODEL_ANY, X86_FEATURE_EST },
+       X86_MATCH_VENDOR_FAM_FEATURE(CENTAUR, 6, X86_FEATURE_EST, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, eps_cpu_id);
index 2242541f7ae3d6d4dc3da021e592d12c8ee1f27a..4ce5eb35dc46bf4ab8a5e67610295790b4f737a7 100644 (file)
@@ -198,7 +198,7 @@ static struct cpufreq_driver elanfreq_driver = {
 };
 
 static const struct x86_cpu_id elan_id[] = {
-       { X86_VENDOR_AMD, 4, 10, },
+       X86_MATCH_VENDOR_FAM_MODEL(AMD, 4, 10, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, elan_id);
index c81e1ff2906973f9729225d1cd0319638a72b4c8..46bce09e5affee3ad7c54cf2b2b0f8798959be33 100644 (file)
@@ -1908,51 +1908,51 @@ static const struct pstate_funcs knl_funcs = {
        .get_val = core_get_val,
 };
 
-#define ICPU(model, policy) \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_APERFMPERF,\
-                       (unsigned long)&policy }
+#define X86_MATCH(model, policy)                                        \
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, INTEL_FAM6_##model, \
+                                          X86_FEATURE_APERFMPERF, &policy)
 
 static const struct x86_cpu_id intel_pstate_cpu_ids[] = {
-       ICPU(INTEL_FAM6_SANDYBRIDGE,            core_funcs),
-       ICPU(INTEL_FAM6_SANDYBRIDGE_X,          core_funcs),
-       ICPU(INTEL_FAM6_ATOM_SILVERMONT,        silvermont_funcs),
-       ICPU(INTEL_FAM6_IVYBRIDGE,              core_funcs),
-       ICPU(INTEL_FAM6_HASWELL,                core_funcs),
-       ICPU(INTEL_FAM6_BROADWELL,              core_funcs),
-       ICPU(INTEL_FAM6_IVYBRIDGE_X,            core_funcs),
-       ICPU(INTEL_FAM6_HASWELL_X,              core_funcs),
-       ICPU(INTEL_FAM6_HASWELL_L,              core_funcs),
-       ICPU(INTEL_FAM6_HASWELL_G,              core_funcs),
-       ICPU(INTEL_FAM6_BROADWELL_G,            core_funcs),
-       ICPU(INTEL_FAM6_ATOM_AIRMONT,           airmont_funcs),
-       ICPU(INTEL_FAM6_SKYLAKE_L,              core_funcs),
-       ICPU(INTEL_FAM6_BROADWELL_X,            core_funcs),
-       ICPU(INTEL_FAM6_SKYLAKE,                core_funcs),
-       ICPU(INTEL_FAM6_BROADWELL_D,            core_funcs),
-       ICPU(INTEL_FAM6_XEON_PHI_KNL,           knl_funcs),
-       ICPU(INTEL_FAM6_XEON_PHI_KNM,           knl_funcs),
-       ICPU(INTEL_FAM6_ATOM_GOLDMONT,          core_funcs),
-       ICPU(INTEL_FAM6_ATOM_GOLDMONT_PLUS,     core_funcs),
-       ICPU(INTEL_FAM6_SKYLAKE_X,              core_funcs),
+       X86_MATCH(SANDYBRIDGE,          core_funcs),
+       X86_MATCH(SANDYBRIDGE_X,        core_funcs),
+       X86_MATCH(ATOM_SILVERMONT,      silvermont_funcs),
+       X86_MATCH(IVYBRIDGE,            core_funcs),
+       X86_MATCH(HASWELL,              core_funcs),
+       X86_MATCH(BROADWELL,            core_funcs),
+       X86_MATCH(IVYBRIDGE_X,          core_funcs),
+       X86_MATCH(HASWELL_X,            core_funcs),
+       X86_MATCH(HASWELL_L,            core_funcs),
+       X86_MATCH(HASWELL_G,            core_funcs),
+       X86_MATCH(BROADWELL_G,          core_funcs),
+       X86_MATCH(ATOM_AIRMONT,         airmont_funcs),
+       X86_MATCH(SKYLAKE_L,            core_funcs),
+       X86_MATCH(BROADWELL_X,          core_funcs),
+       X86_MATCH(SKYLAKE,              core_funcs),
+       X86_MATCH(BROADWELL_D,          core_funcs),
+       X86_MATCH(XEON_PHI_KNL,         knl_funcs),
+       X86_MATCH(XEON_PHI_KNM,         knl_funcs),
+       X86_MATCH(ATOM_GOLDMONT,        core_funcs),
+       X86_MATCH(ATOM_GOLDMONT_PLUS,   core_funcs),
+       X86_MATCH(SKYLAKE_X,            core_funcs),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids);
 
 static const struct x86_cpu_id intel_pstate_cpu_oob_ids[] __initconst = {
-       ICPU(INTEL_FAM6_BROADWELL_D, core_funcs),
-       ICPU(INTEL_FAM6_BROADWELL_X, core_funcs),
-       ICPU(INTEL_FAM6_SKYLAKE_X, core_funcs),
+       X86_MATCH(BROADWELL_D,          core_funcs),
+       X86_MATCH(BROADWELL_X,          core_funcs),
+       X86_MATCH(SKYLAKE_X,            core_funcs),
        {}
 };
 
 static const struct x86_cpu_id intel_pstate_cpu_ee_disable_ids[] = {
-       ICPU(INTEL_FAM6_KABYLAKE, core_funcs),
+       X86_MATCH(KABYLAKE,             core_funcs),
        {}
 };
 
 static const struct x86_cpu_id intel_pstate_hwp_boost_ids[] = {
-       ICPU(INTEL_FAM6_SKYLAKE_X, core_funcs),
-       ICPU(INTEL_FAM6_SKYLAKE, core_funcs),
+       X86_MATCH(SKYLAKE_X,            core_funcs),
+       X86_MATCH(SKYLAKE,              core_funcs),
        {}
 };
 
@@ -2725,13 +2725,14 @@ static inline void intel_pstate_request_control_from_smm(void) {}
 
 #define INTEL_PSTATE_HWP_BROADWELL     0x01
 
-#define ICPU_HWP(model, hwp_mode) \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_HWP, hwp_mode }
+#define X86_MATCH_HWP(model, hwp_mode)                                 \
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, INTEL_FAM6_##model, \
+                                          X86_FEATURE_HWP, hwp_mode)
 
 static const struct x86_cpu_id hwp_support_ids[] __initconst = {
-       ICPU_HWP(INTEL_FAM6_BROADWELL_X, INTEL_PSTATE_HWP_BROADWELL),
-       ICPU_HWP(INTEL_FAM6_BROADWELL_D, INTEL_PSTATE_HWP_BROADWELL),
-       ICPU_HWP(X86_MODEL_ANY, 0),
+       X86_MATCH_HWP(BROADWELL_X,      INTEL_PSTATE_HWP_BROADWELL),
+       X86_MATCH_HWP(BROADWELL_D,      INTEL_PSTATE_HWP_BROADWELL),
+       X86_MATCH_HWP(ANY,              0),
        {}
 };
 
index 92d92e67ae0a14d0d4ec7af3b3fc475b52783cfd..123fb006810d5da028c926b3a68da2b324095500 100644 (file)
@@ -910,7 +910,7 @@ static struct cpufreq_driver longhaul_driver = {
 };
 
 static const struct x86_cpu_id longhaul_id[] = {
-       { X86_VENDOR_CENTAUR, 6 },
+       X86_MATCH_VENDOR_FAM(CENTAUR, 6, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, longhaul_id);
index 0b08be8bff76e040fd5080ca7a8779095ed92b42..1caaec7c280baba537f72a5e92a60fc4b0b219d5 100644 (file)
@@ -281,8 +281,7 @@ static struct cpufreq_driver longrun_driver = {
 };
 
 static const struct x86_cpu_id longrun_ids[] = {
-       { X86_VENDOR_TRANSMETA, X86_FAMILY_ANY, X86_MODEL_ANY,
-         X86_FEATURE_LONGRUN },
+       X86_MATCH_VENDOR_FEATURE(TRANSMETA, X86_FEATURE_LONGRUN, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, longrun_ids);
index efc0b46efada96190f92ed8684fd15d4205951c8..bb61677c11c7142c1d5b41d8a1855846fb1b007d 100644 (file)
@@ -231,7 +231,7 @@ static struct cpufreq_driver p4clockmod_driver = {
 };
 
 static const struct x86_cpu_id cpufreq_p4_id[] = {
-       { X86_VENDOR_INTEL, X86_FAMILY_ANY, X86_MODEL_ANY, X86_FEATURE_ACC },
+       X86_MATCH_VENDOR_FEATURE(INTEL, X86_FEATURE_ACC, NULL),
        {}
 };
 
index 0196f8129597fe3e13fe9b349389f235f726649f..41eefef95d873f6e5f8b5a183db2b6d1e5373c8a 100644 (file)
@@ -258,8 +258,8 @@ static struct cpufreq_driver powernow_k6_driver = {
 };
 
 static const struct x86_cpu_id powernow_k6_ids[] = {
-       { X86_VENDOR_AMD, 5, 12 },
-       { X86_VENDOR_AMD, 5, 13 },
+       X86_MATCH_VENDOR_FAM_MODEL(AMD, 5, 12, NULL),
+       X86_MATCH_VENDOR_FAM_MODEL(AMD, 5, 13, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, powernow_k6_ids);
index 5e5171d3eece0722fc2c8608bc59a6efed24af70..5d515fc348364c36f24b15ef02630730480e0fca 100644 (file)
@@ -109,7 +109,7 @@ static int check_fsb(unsigned int fsbspeed)
 }
 
 static const struct x86_cpu_id powernow_k7_cpuids[] = {
-       { X86_VENDOR_AMD, 6, },
+       X86_MATCH_VENDOR_FAM(AMD, 6, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, powernow_k7_cpuids);
index 2db2f1739e09267f4b1ee7daaf8185c9a669c08e..3984959eed1d514bcd73febe29cb95d20c8c001d 100644 (file)
@@ -452,7 +452,7 @@ static int core_voltage_post_transition(struct powernow_k8_data *data,
 
 static const struct x86_cpu_id powernow_k8_ids[] = {
        /* IO based frequency switching */
-       { X86_VENDOR_AMD, 0xf },
+       X86_MATCH_VENDOR_FAM(AMD, 0xf, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, powernow_k8_ids);
index c6f647babaadbcc65e7c6e4a287532fc0a36bf67..73a208559fe2832640581fa724e947f6e6d6f338 100644 (file)
@@ -95,7 +95,7 @@ static struct cpufreq_driver sc520_freq_driver = {
 };
 
 static const struct x86_cpu_id sc520_ids[] = {
-       { X86_VENDOR_AMD, 4, 9 },
+       X86_MATCH_VENDOR_FAM_MODEL(AMD, 4, 9, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, sc520_ids);
index b49f494e0285beb65ddcac71bfd482b5929b8057..75b10ecdb60f28b15786a0e677553ec147785b1e 100644 (file)
@@ -520,18 +520,12 @@ static struct cpufreq_driver centrino_driver = {
  * or ASCII model IDs.
  */
 static const struct x86_cpu_id centrino_ids[] = {
-       { X86_VENDOR_INTEL, 6, 9, X86_FEATURE_EST },
-       { X86_VENDOR_INTEL, 6, 13, X86_FEATURE_EST },
-       { X86_VENDOR_INTEL, 6, 13, X86_FEATURE_EST },
-       { X86_VENDOR_INTEL, 6, 13, X86_FEATURE_EST },
-       { X86_VENDOR_INTEL, 15, 3, X86_FEATURE_EST },
-       { X86_VENDOR_INTEL, 15, 4, X86_FEATURE_EST },
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL,  6,  9, X86_FEATURE_EST, NULL),
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL,  6, 13, X86_FEATURE_EST, NULL),
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 15,  3, X86_FEATURE_EST, NULL),
+       X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 15,  4, X86_FEATURE_EST, NULL),
        {}
 };
-#if 0
-/* Autoload or not? Do not for now. */
-MODULE_DEVICE_TABLE(x86cpu, centrino_ids);
-#endif
 
 /**
  * centrino_init - initializes the Enhanced SpeedStep CPUFreq driver
index 547fd7af5bf51993e17ec75c67cee45d4ae06107..f2076d72bf39966b7ceff580f663ede1fda4f70a 100644 (file)
@@ -319,15 +319,11 @@ static struct cpufreq_driver speedstep_driver = {
 };
 
 static const struct x86_cpu_id ss_smi_ids[] = {
-       { X86_VENDOR_INTEL, 6, 0xb, },
-       { X86_VENDOR_INTEL, 6, 0x8, },
-       { X86_VENDOR_INTEL, 15, 2 },
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL,  6, 0x8, 0),
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL,  6, 0xb, 0),
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL, 15, 0x2, 0),
        {}
 };
-#if 0
-/* Autoload or not? Do not for now. */
-MODULE_DEVICE_TABLE(x86cpu, ss_smi_ids);
-#endif
 
 /**
  * speedstep_init - initializes the SpeedStep CPUFreq driver
index eeb31bc21cc955b5bc2ea406e0cd8cda424f862e..0ce9d4b6dfcc0f3a9fb2bb7033576a4a81a2a82e 100644 (file)
@@ -299,15 +299,11 @@ static struct cpufreq_driver speedstep_driver = {
 };
 
 static const struct x86_cpu_id ss_smi_ids[] = {
-       { X86_VENDOR_INTEL, 6, 0xb, },
-       { X86_VENDOR_INTEL, 6, 0x8, },
-       { X86_VENDOR_INTEL, 15, 2 },
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL,  6, 0x8, 0),
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL,  6, 0xb, 0),
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL, 15, 0x2, 0),
        {}
 };
-#if 0
-/* Not auto loaded currently */
-MODULE_DEVICE_TABLE(x86cpu, ss_smi_ids);
-#endif
 
 /**
  * speedstep_init - initializes the SpeedStep CPUFreq driver
index 594d6b1695d597575ed657b2a4d63dd6822feaf9..62c6fe88b21290138c3cd9b95a5d6e64f0f9aadf 100644 (file)
@@ -474,7 +474,7 @@ static struct skcipher_alg cbc_aes_alg = {
 };
 
 static const struct x86_cpu_id padlock_cpu_id[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_XCRYPT),
+       X86_MATCH_FEATURE(X86_FEATURE_XCRYPT, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, padlock_cpu_id);
index c826abe79e794d51c025989c3df7cd0a01f7b12f..a697a4a3f2d0d2fde7865c410059e443b1e90a3e 100644 (file)
@@ -490,7 +490,7 @@ static struct shash_alg sha256_alg_nano = {
 };
 
 static const struct x86_cpu_id padlock_sha_ids[] = {
-       X86_FEATURE_MATCH(X86_FEATURE_PHE),
+       X86_MATCH_FEATURE(X86_FEATURE_PHE, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, padlock_sha_ids);
index 9fbad908a854810ab716bc98a00da83ba6e041bb..f91f3bc1e0b28b1095977ce3b27621e6fc08616f 100644 (file)
@@ -3626,13 +3626,13 @@ static void setup_pci_device(void)
 }
 
 static const struct x86_cpu_id amd64_cpuids[] = {
-       { X86_VENDOR_AMD, 0xF,  X86_MODEL_ANY,  X86_FEATURE_ANY, 0 },
-       { X86_VENDOR_AMD, 0x10, X86_MODEL_ANY,  X86_FEATURE_ANY, 0 },
-       { X86_VENDOR_AMD, 0x15, X86_MODEL_ANY,  X86_FEATURE_ANY, 0 },
-       { X86_VENDOR_AMD, 0x16, X86_MODEL_ANY,  X86_FEATURE_ANY, 0 },
-       { X86_VENDOR_AMD, 0x17, X86_MODEL_ANY,  X86_FEATURE_ANY, 0 },
-       { X86_VENDOR_HYGON, 0x18, X86_MODEL_ANY, X86_FEATURE_ANY, 0 },
-       { X86_VENDOR_AMD, 0x19, X86_MODEL_ANY,  X86_FEATURE_ANY, 0 },
+       X86_MATCH_VENDOR_FAM(AMD,       0x0F, NULL),
+       X86_MATCH_VENDOR_FAM(AMD,       0x10, NULL),
+       X86_MATCH_VENDOR_FAM(AMD,       0x15, NULL),
+       X86_MATCH_VENDOR_FAM(AMD,       0x16, NULL),
+       X86_MATCH_VENDOR_FAM(AMD,       0x17, NULL),
+       X86_MATCH_VENDOR_FAM(HYGON,     0x18, NULL),
+       X86_MATCH_VENDOR_FAM(AMD,       0x19, NULL),
        { }
 };
 MODULE_DEVICE_TABLE(x86cpu, amd64_cpuids);
index 059eccf0582bbbe80b62d2bc7875b4f1c74f40cb..df08de963d1017607de5df515108e445bf3cd79e 100644 (file)
@@ -123,10 +123,10 @@ static int i10nm_get_all_munits(void)
 }
 
 static const struct x86_cpu_id i10nm_cpuids[] = {
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_TREMONT_D, 0, 0 },
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_ICELAKE_X, 0, 0 },
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_ICELAKE_D, 0, 0 },
-       { }
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_D,      NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X,           NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_D,           NULL),
+       {}
 };
 MODULE_DEVICE_TABLE(x86cpu, i10nm_cpuids);
 
index 933f7722b893d7e516854c1b779d09970653bb94..bc47328eb48588314a257a499e71d2d88f2ff412 100644 (file)
@@ -1537,8 +1537,8 @@ static struct dunit_ops dnv_ops = {
 };
 
 static const struct x86_cpu_id pnd2_cpuids[] = {
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_GOLDMONT, 0, (kernel_ulong_t)&apl_ops },
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_GOLDMONT_D, 0, (kernel_ulong_t)&dnv_ops },
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT,       &apl_ops),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_D,     &dnv_ops),
        { }
 };
 MODULE_DEVICE_TABLE(x86cpu, pnd2_cpuids);
index 4957e8ee1879920f2139e3c2318dd4772b3d5280..7d51c82be62ba3cf9d379c53c67ee7b4caa53f08 100644 (file)
@@ -3420,13 +3420,13 @@ fail0:
 }
 
 static const struct x86_cpu_id sbridge_cpuids[] = {
-       INTEL_CPU_FAM6(SANDYBRIDGE_X,     pci_dev_descr_sbridge_table),
-       INTEL_CPU_FAM6(IVYBRIDGE_X,       pci_dev_descr_ibridge_table),
-       INTEL_CPU_FAM6(HASWELL_X,         pci_dev_descr_haswell_table),
-       INTEL_CPU_FAM6(BROADWELL_X,       pci_dev_descr_broadwell_table),
-       INTEL_CPU_FAM6(BROADWELL_D,       pci_dev_descr_broadwell_table),
-       INTEL_CPU_FAM6(XEON_PHI_KNL,      pci_dev_descr_knl_table),
-       INTEL_CPU_FAM6(XEON_PHI_KNM,      pci_dev_descr_knl_table),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE_X, &pci_dev_descr_sbridge_table),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE_X,   &pci_dev_descr_ibridge_table),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_X,     &pci_dev_descr_haswell_table),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X,   &pci_dev_descr_broadwell_table),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D,   &pci_dev_descr_broadwell_table),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNL,  &pci_dev_descr_knl_table),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNM,  &pci_dev_descr_knl_table),
        { }
 };
 MODULE_DEVICE_TABLE(x86cpu, sbridge_cpuids);
index 83545b4facb7693696d49ecafd8ccbf39cd67d42..46a3a3440f5e7f1225b161ca38fc9bb5728d8e6c 100644 (file)
@@ -158,7 +158,7 @@ fail:
 }
 
 static const struct x86_cpu_id skx_cpuids[] = {
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_SKYLAKE_X, 0, 0 },
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,   NULL),
        { }
 };
 MODULE_DEVICE_TABLE(x86cpu, skx_cpuids);
index a7f216191493095b8766aa35e95023a63debd235..34b7afffac28d847894d8ae9da7b673280c866b7 100644 (file)
@@ -107,7 +107,7 @@ struct axp288_extcon_info {
 };
 
 static const struct x86_cpu_id cherry_trail_cpu_ids[] = {
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_AIRMONT, X86_FEATURE_ANY },
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT,        NULL),
        {}
 };
 
index d855c78fb8bea77d87df0fe2a16289a039bc63ed..bb9211215a688f8eb06ae11b94a58ae68e368cc9 100644 (file)
@@ -709,7 +709,7 @@ static int coretemp_cpu_offline(unsigned int cpu)
        return 0;
 }
 static const struct x86_cpu_id __initconst coretemp_ids[] = {
-       { X86_VENDOR_INTEL, X86_FAMILY_ANY, X86_MODEL_ANY, X86_FEATURE_DTHERM },
+       X86_MATCH_VENDOR_FEATURE(INTEL, X86_FEATURE_DTHERM, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, coretemp_ids);
index 8264e849e588cc3ba19cb22745c4a03abc8d7647..e5d18dac8ee7ba91682cc9c421baa6632169443b 100644 (file)
@@ -270,10 +270,10 @@ static int via_cputemp_down_prep(unsigned int cpu)
 }
 
 static const struct x86_cpu_id __initconst cputemp_ids[] = {
-       { X86_VENDOR_CENTAUR, 6, 0xa, }, /* C7 A */
-       { X86_VENDOR_CENTAUR, 6, 0xd, }, /* C7 D */
-       { X86_VENDOR_CENTAUR, 6, 0xf, }, /* Nano */
-       { X86_VENDOR_CENTAUR, 7, X86_MODEL_ANY, },
+       X86_MATCH_VENDOR_FAM_MODEL(CENTAUR, 6, X86_CENTAUR_FAM6_C7_A,   NULL),
+       X86_MATCH_VENDOR_FAM_MODEL(CENTAUR, 6, X86_CENTAUR_FAM6_C7_D,   NULL),
+       X86_MATCH_VENDOR_FAM_MODEL(CENTAUR, 6, X86_CENTAUR_FAM6_NANO,   NULL),
+       X86_MATCH_VENDOR_FAM_MODEL(CENTAUR, 7, X86_MODEL_ANY,           NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, cputemp_ids);
index d55606608ac8c30fb3b19eb6cd3c9f634fa20301..88f6f926d9674dbf106936e9a4db23d3e4160b9e 100644 (file)
@@ -1068,51 +1068,48 @@ static const struct idle_cpu idle_cpu_dnv = {
 };
 
 static const struct x86_cpu_id intel_idle_ids[] __initconst = {
-       INTEL_CPU_FAM6(NEHALEM_EP,              idle_cpu_nhx),
-       INTEL_CPU_FAM6(NEHALEM,                 idle_cpu_nehalem),
-       INTEL_CPU_FAM6(NEHALEM_G,               idle_cpu_nehalem),
-       INTEL_CPU_FAM6(WESTMERE,                idle_cpu_nehalem),
-       INTEL_CPU_FAM6(WESTMERE_EP,             idle_cpu_nhx),
-       INTEL_CPU_FAM6(NEHALEM_EX,              idle_cpu_nhx),
-       INTEL_CPU_FAM6(ATOM_BONNELL,            idle_cpu_atom),
-       INTEL_CPU_FAM6(ATOM_BONNELL_MID,        idle_cpu_lincroft),
-       INTEL_CPU_FAM6(WESTMERE_EX,             idle_cpu_nhx),
-       INTEL_CPU_FAM6(SANDYBRIDGE,             idle_cpu_snb),
-       INTEL_CPU_FAM6(SANDYBRIDGE_X,           idle_cpu_snx),
-       INTEL_CPU_FAM6(ATOM_SALTWELL,           idle_cpu_atom),
-       INTEL_CPU_FAM6(ATOM_SILVERMONT,         idle_cpu_byt),
-       INTEL_CPU_FAM6(ATOM_SILVERMONT_MID,     idle_cpu_tangier),
-       INTEL_CPU_FAM6(ATOM_AIRMONT,            idle_cpu_cht),
-       INTEL_CPU_FAM6(IVYBRIDGE,               idle_cpu_ivb),
-       INTEL_CPU_FAM6(IVYBRIDGE_X,             idle_cpu_ivt),
-       INTEL_CPU_FAM6(HASWELL,                 idle_cpu_hsw),
-       INTEL_CPU_FAM6(HASWELL_X,               idle_cpu_hsx),
-       INTEL_CPU_FAM6(HASWELL_L,               idle_cpu_hsw),
-       INTEL_CPU_FAM6(HASWELL_G,               idle_cpu_hsw),
-       INTEL_CPU_FAM6(ATOM_SILVERMONT_D,       idle_cpu_avn),
-       INTEL_CPU_FAM6(BROADWELL,               idle_cpu_bdw),
-       INTEL_CPU_FAM6(BROADWELL_G,             idle_cpu_bdw),
-       INTEL_CPU_FAM6(BROADWELL_X,             idle_cpu_bdx),
-       INTEL_CPU_FAM6(BROADWELL_D,             idle_cpu_bdx),
-       INTEL_CPU_FAM6(SKYLAKE_L,               idle_cpu_skl),
-       INTEL_CPU_FAM6(SKYLAKE,                 idle_cpu_skl),
-       INTEL_CPU_FAM6(KABYLAKE_L,              idle_cpu_skl),
-       INTEL_CPU_FAM6(KABYLAKE,                idle_cpu_skl),
-       INTEL_CPU_FAM6(SKYLAKE_X,               idle_cpu_skx),
-       INTEL_CPU_FAM6(XEON_PHI_KNL,            idle_cpu_knl),
-       INTEL_CPU_FAM6(XEON_PHI_KNM,            idle_cpu_knl),
-       INTEL_CPU_FAM6(ATOM_GOLDMONT,           idle_cpu_bxt),
-       INTEL_CPU_FAM6(ATOM_GOLDMONT_PLUS,      idle_cpu_bxt),
-       INTEL_CPU_FAM6(ATOM_GOLDMONT_D,         idle_cpu_dnv),
-       INTEL_CPU_FAM6(ATOM_TREMONT_D,          idle_cpu_dnv),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM_EP,          &idle_cpu_nhx),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM,             &idle_cpu_nehalem),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM_G,           &idle_cpu_nehalem),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE,            &idle_cpu_nehalem),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE_EP,         &idle_cpu_nhx),
+       X86_MATCH_INTEL_FAM6_MODEL(NEHALEM_EX,          &idle_cpu_nhx),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_BONNELL,        &idle_cpu_atom),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_BONNELL_MID,    &idle_cpu_lincroft),
+       X86_MATCH_INTEL_FAM6_MODEL(WESTMERE_EX,         &idle_cpu_nhx),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE,         &idle_cpu_snb),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE_X,       &idle_cpu_snx),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SALTWELL,       &idle_cpu_atom),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT,     &idle_cpu_byt),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, &idle_cpu_tangier),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT,        &idle_cpu_cht),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE,           &idle_cpu_ivb),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE_X,         &idle_cpu_ivt),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL,             &idle_cpu_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_X,           &idle_cpu_hsx),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_L,           &idle_cpu_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_G,           &idle_cpu_hsw),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_D,   &idle_cpu_avn),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL,           &idle_cpu_bdw),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G,         &idle_cpu_bdw),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X,         &idle_cpu_bdx),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D,         &idle_cpu_bdx),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &idle_cpu_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &idle_cpu_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &idle_cpu_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &idle_cpu_skl),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,           &idle_cpu_skx),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNL,        &idle_cpu_knl),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNM,        &idle_cpu_knl),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT,       &idle_cpu_bxt),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS,  &idle_cpu_bxt),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_D,     &idle_cpu_dnv),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_D,      &idle_cpu_dnv),
        {}
 };
 
-#define INTEL_CPU_FAM6_MWAIT \
-       { X86_VENDOR_INTEL, 6, X86_MODEL_ANY, X86_FEATURE_MWAIT, 0 }
-
 static const struct x86_cpu_id intel_mwait_ids[] __initconst = {
-       INTEL_CPU_FAM6_MWAIT,
+       X86_MATCH_VENDOR_FAM_FEATURE(INTEL, 6, X86_FEATURE_MWAIT, NULL),
        {}
 };
 
index 9651dca6863ec299df9062879015a83aadc25a78..a439754aa84154ef8bb1f577cbf652813a9f2d4f 100644 (file)
@@ -234,7 +234,7 @@ static const struct sdhci_acpi_chip sdhci_acpi_chip_int = {
 static bool sdhci_acpi_byt(void)
 {
        static const struct x86_cpu_id byt[] = {
-               { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_SILVERMONT },
+               X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT, NULL),
                {}
        };
 
@@ -244,7 +244,7 @@ static bool sdhci_acpi_byt(void)
 static bool sdhci_acpi_cht(void)
 {
        static const struct x86_cpu_id cht[] = {
-               { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_AIRMONT },
+               X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT, NULL),
                {}
        };
 
index 30fbe2ea6eab48bad6a974b423a4fe1aefe79224..aafd58da3a896cf655d3d0ea4fc51b34583acbcb 100644 (file)
@@ -55,15 +55,13 @@ static const struct pci_platform_pm_ops mid_pci_platform_pm = {
        .need_resume    = mid_pci_need_resume,
 };
 
-#define ICPU(model)    { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
-
 /*
  * This table should be in sync with the one in
  * arch/x86/platform/intel-mid/pwr.c.
  */
 static const struct x86_cpu_id lpss_cpu_ids[] = {
-       ICPU(INTEL_FAM6_ATOM_SALTWELL_MID),
-       ICPU(INTEL_FAM6_ATOM_SILVERMONT_MID),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SALTWELL_MID, NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, NULL),
        {}
 };
 
index 2b1a0734c3f87a2c482c8f113fa746796d2693f6..859272075a8fc4c78876ff27447a862957ef62a5 100644 (file)
@@ -358,15 +358,13 @@ static struct notifier_block uncore_pm_nb = {
        .notifier_call = uncore_pm_notify,
 };
 
-#define ICPU(model)     { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
-
 static const struct x86_cpu_id intel_uncore_cpu_ids[] = {
-       ICPU(INTEL_FAM6_BROADWELL_G),
-       ICPU(INTEL_FAM6_BROADWELL_X),
-       ICPU(INTEL_FAM6_BROADWELL_D),
-       ICPU(INTEL_FAM6_SKYLAKE_X),
-       ICPU(INTEL_FAM6_ICELAKE_X),
-       ICPU(INTEL_FAM6_ICELAKE_D),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G, NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X, NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D, NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,   NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X,   NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_D,   NULL),
        {}
 };
 
index f14e2c5f9da544cf6dbf2e856f38d3adc4085127..7b23efc46a4352658772c2c3189cc022cf579363 100644 (file)
@@ -148,8 +148,8 @@ static struct irq_chip int0002_cht_irqchip = {
 };
 
 static const struct x86_cpu_id int0002_cpu_ids[] = {
-       INTEL_CPU_FAM6(ATOM_SILVERMONT, int0002_byt_irqchip),   /* Valleyview, Bay Trail  */
-       INTEL_CPU_FAM6(ATOM_AIRMONT, int0002_cht_irqchip),      /* Braswell, Cherry Trail */
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT,     &int0002_byt_irqchip),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT,        &int0002_cht_irqchip),
        {}
 };
 
index 6f436836fe501149049701e45e7f0c594f7e49e1..9c9f209c8a334b35f7d450bbd5f7695f265b8768 100644 (file)
@@ -113,8 +113,8 @@ static const struct mid_pb_ddata mrfld_ddata = {
 };
 
 static const struct x86_cpu_id mid_pb_cpu_ids[] = {
-       INTEL_CPU_FAM6(ATOM_SALTWELL_MID,       mfld_ddata),
-       INTEL_CPU_FAM6(ATOM_SILVERMONT_MID,     mrfld_ddata),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SALTWELL_MID,   &mfld_ddata),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, &mrfld_ddata),
        {}
 };
 
index 144faa8bad3d20715e0d9197c8dcdecd9673e31b..3df33ff50faa95ba14e46169eb437c19a3dbc3a8 100644 (file)
@@ -871,18 +871,18 @@ static inline void pmc_core_dbgfs_unregister(struct pmc_dev *pmcdev)
 #endif /* CONFIG_DEBUG_FS */
 
 static const struct x86_cpu_id intel_pmc_core_ids[] = {
-       INTEL_CPU_FAM6(SKYLAKE_L, spt_reg_map),
-       INTEL_CPU_FAM6(SKYLAKE, spt_reg_map),
-       INTEL_CPU_FAM6(KABYLAKE_L, spt_reg_map),
-       INTEL_CPU_FAM6(KABYLAKE, spt_reg_map),
-       INTEL_CPU_FAM6(CANNONLAKE_L, cnp_reg_map),
-       INTEL_CPU_FAM6(ICELAKE_L, icl_reg_map),
-       INTEL_CPU_FAM6(ICELAKE_NNPI, icl_reg_map),
-       INTEL_CPU_FAM6(COMETLAKE, cnp_reg_map),
-       INTEL_CPU_FAM6(COMETLAKE_L, cnp_reg_map),
-       INTEL_CPU_FAM6(TIGERLAKE_L, tgl_reg_map),
-       INTEL_CPU_FAM6(TIGERLAKE, tgl_reg_map),
-       INTEL_CPU_FAM6(ATOM_TREMONT, tgl_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &spt_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &spt_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &spt_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &spt_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L,        &cnp_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L,           &icl_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_NNPI,        &icl_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE,           &cnp_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L,         &cnp_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L,         &tgl_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE,           &tgl_reg_map),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT,        &tgl_reg_map),
        {}
 };
 
index e1266f5c63593e958a7d9412ff2166b3556d8209..731281855cc8f157ca33a8b20e1ffd0404e87aaf 100644 (file)
@@ -38,14 +38,14 @@ static struct platform_device pmc_core_device = {
  * other list may grow, but this list should not.
  */
 static const struct x86_cpu_id intel_pmc_core_platform_ids[] = {
-       INTEL_CPU_FAM6(SKYLAKE_L, pmc_core_device),
-       INTEL_CPU_FAM6(SKYLAKE, pmc_core_device),
-       INTEL_CPU_FAM6(KABYLAKE_L, pmc_core_device),
-       INTEL_CPU_FAM6(KABYLAKE, pmc_core_device),
-       INTEL_CPU_FAM6(CANNONLAKE_L, pmc_core_device),
-       INTEL_CPU_FAM6(ICELAKE_L, pmc_core_device),
-       INTEL_CPU_FAM6(COMETLAKE, pmc_core_device),
-       INTEL_CPU_FAM6(COMETLAKE_L, pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L,        &pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L,           &pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE,           &pmc_core_device),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L,         &pmc_core_device),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, intel_pmc_core_platform_ids);
index 89b042aecef3aa263ce371725b8bb877423d72cd..1b6eab07106810cf1b77ec1348ce4fcb7f895c88 100644 (file)
@@ -160,10 +160,8 @@ static struct notifier_block isst_pm_nb = {
        .notifier_call = isst_pm_notify,
 };
 
-#define ICPU(model)     { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
-
 static const struct x86_cpu_id isst_if_cpu_ids[] = {
-       ICPU(INTEL_FAM6_SKYLAKE_X),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, isst_if_cpu_ids);
index 8e3fb55ac1ae264df7d4e7a555b82d458b019db4..8a53d3b485b3a04cfc10cc9f274bb1ab2c892a99 100644 (file)
@@ -308,11 +308,10 @@ static struct telemetry_debugfs_conf telem_apl_debugfs_conf = {
 };
 
 static const struct x86_cpu_id telemetry_debugfs_cpu_ids[] = {
-       INTEL_CPU_FAM6(ATOM_GOLDMONT, telem_apl_debugfs_conf),
-       INTEL_CPU_FAM6(ATOM_GOLDMONT_PLUS, telem_apl_debugfs_conf),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT,       &telem_apl_debugfs_conf),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS,  &telem_apl_debugfs_conf),
        {}
 };
-
 MODULE_DEVICE_TABLE(x86cpu, telemetry_debugfs_cpu_ids);
 
 static int telemetry_debugfs_check_evts(void)
index c4c742bb23cf7c66871e93d31992f1592f16b80f..987a24e3344e920413437436e7e0a26080ce3053 100644 (file)
@@ -67,9 +67,6 @@
 #define TELEM_CLEAR_VERBOSITY_BITS(x)  ((x) &= ~(BIT(27) | BIT(28)))
 #define TELEM_SET_VERBOSITY_BITS(x, y) ((x) |= ((y) << 27))
 
-#define TELEM_CPU(model, data) \
-       { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, (unsigned long)&data }
-
 enum telemetry_action {
        TELEM_UPDATE = 0,
        TELEM_ADD,
@@ -183,8 +180,8 @@ static struct telemetry_plt_config telem_glk_config = {
 };
 
 static const struct x86_cpu_id telemetry_cpu_ids[] = {
-       TELEM_CPU(INTEL_FAM6_ATOM_GOLDMONT, telem_apl_config),
-       TELEM_CPU(INTEL_FAM6_ATOM_GOLDMONT_PLUS, telem_glk_config),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT,       &telem_apl_config),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS,  &telem_glk_config),
        {}
 };
 
index 7b9cc841ab6557157a71691cf131cd43cc7ecb9c..892140b628985baa20ba047e50ae274eb175e744 100644 (file)
@@ -113,11 +113,9 @@ static int itmt_legacy_cpu_online(unsigned int cpu)
        return 0;
 }
 
-#define ICPU(model)     { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
-
 static const struct x86_cpu_id itmt_legacy_cpu_ids[] = {
-       ICPU(INTEL_FAM6_BROADWELL_X),
-       ICPU(INTEL_FAM6_SKYLAKE_X),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X, NULL),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,   NULL),
        {}
 };
 
index 73257cf107d973b034b2e3e36076d558f44efe10..eb328655bc0186c5cb974cf99f0316ca368f55ed 100644 (file)
@@ -951,52 +951,51 @@ static const struct rapl_defaults rapl_defaults_cht = {
 };
 
 static const struct x86_cpu_id rapl_ids[] __initconst = {
-       INTEL_CPU_FAM6(SANDYBRIDGE, rapl_defaults_core),
-       INTEL_CPU_FAM6(SANDYBRIDGE_X, rapl_defaults_core),
-
-       INTEL_CPU_FAM6(IVYBRIDGE, rapl_defaults_core),
-       INTEL_CPU_FAM6(IVYBRIDGE_X, rapl_defaults_core),
-
-       INTEL_CPU_FAM6(HASWELL, rapl_defaults_core),
-       INTEL_CPU_FAM6(HASWELL_L, rapl_defaults_core),
-       INTEL_CPU_FAM6(HASWELL_G, rapl_defaults_core),
-       INTEL_CPU_FAM6(HASWELL_X, rapl_defaults_hsw_server),
-
-       INTEL_CPU_FAM6(BROADWELL, rapl_defaults_core),
-       INTEL_CPU_FAM6(BROADWELL_G, rapl_defaults_core),
-       INTEL_CPU_FAM6(BROADWELL_D, rapl_defaults_core),
-       INTEL_CPU_FAM6(BROADWELL_X, rapl_defaults_hsw_server),
-
-       INTEL_CPU_FAM6(SKYLAKE, rapl_defaults_core),
-       INTEL_CPU_FAM6(SKYLAKE_L, rapl_defaults_core),
-       INTEL_CPU_FAM6(SKYLAKE_X, rapl_defaults_hsw_server),
-       INTEL_CPU_FAM6(KABYLAKE_L, rapl_defaults_core),
-       INTEL_CPU_FAM6(KABYLAKE, rapl_defaults_core),
-       INTEL_CPU_FAM6(CANNONLAKE_L, rapl_defaults_core),
-       INTEL_CPU_FAM6(ICELAKE_L, rapl_defaults_core),
-       INTEL_CPU_FAM6(ICELAKE, rapl_defaults_core),
-       INTEL_CPU_FAM6(ICELAKE_NNPI, rapl_defaults_core),
-       INTEL_CPU_FAM6(ICELAKE_X, rapl_defaults_hsw_server),
-       INTEL_CPU_FAM6(ICELAKE_D, rapl_defaults_hsw_server),
-       INTEL_CPU_FAM6(COMETLAKE_L, rapl_defaults_core),
-       INTEL_CPU_FAM6(COMETLAKE, rapl_defaults_core),
-       INTEL_CPU_FAM6(TIGERLAKE_L, rapl_defaults_core),
-
-       INTEL_CPU_FAM6(ATOM_SILVERMONT, rapl_defaults_byt),
-       INTEL_CPU_FAM6(ATOM_AIRMONT, rapl_defaults_cht),
-       INTEL_CPU_FAM6(ATOM_SILVERMONT_MID, rapl_defaults_tng),
-       INTEL_CPU_FAM6(ATOM_AIRMONT_MID, rapl_defaults_ann),
-       INTEL_CPU_FAM6(ATOM_GOLDMONT, rapl_defaults_core),
-       INTEL_CPU_FAM6(ATOM_GOLDMONT_PLUS, rapl_defaults_core),
-       INTEL_CPU_FAM6(ATOM_GOLDMONT_D, rapl_defaults_core),
-       INTEL_CPU_FAM6(ATOM_TREMONT_D, rapl_defaults_core),
-       INTEL_CPU_FAM6(ATOM_TREMONT_L, rapl_defaults_core),
-
-       INTEL_CPU_FAM6(XEON_PHI_KNL, rapl_defaults_hsw_server),
-       INTEL_CPU_FAM6(XEON_PHI_KNM, rapl_defaults_hsw_server),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE,         &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(SANDYBRIDGE_X,       &rapl_defaults_core),
+
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE,           &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(IVYBRIDGE_X,         &rapl_defaults_core),
+
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL,             &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_L,           &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_G,           &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(HASWELL_X,           &rapl_defaults_hsw_server),
+
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL,           &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_G,         &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_D,         &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(BROADWELL_X,         &rapl_defaults_hsw_server),
+
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE,             &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_L,           &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(SKYLAKE_X,           &rapl_defaults_hsw_server),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE_L,          &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(KABYLAKE,            &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(CANNONLAKE_L,        &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_L,           &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE,             &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_NNPI,        &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_X,           &rapl_defaults_hsw_server),
+       X86_MATCH_INTEL_FAM6_MODEL(ICELAKE_D,           &rapl_defaults_hsw_server),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE_L,         &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(COMETLAKE,           &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(TIGERLAKE_L,         &rapl_defaults_core),
+
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT,     &rapl_defaults_byt),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT,        &rapl_defaults_cht),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT_MID, &rapl_defaults_tng),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_AIRMONT_MID,    &rapl_defaults_ann),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT,       &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_PLUS,  &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_GOLDMONT_D,     &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_D,      &rapl_defaults_core),
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_TREMONT_L,      &rapl_defaults_core),
+
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNL,        &rapl_defaults_hsw_server),
+       X86_MATCH_INTEL_FAM6_MODEL(XEON_PHI_KNM,        &rapl_defaults_hsw_server),
        {}
 };
-
 MODULE_DEVICE_TABLE(x86cpu, rapl_ids);
 
 /* Read once for all raw primitive data for domains */
index 53216dcbe173cd7ab3826474e24ba9a5b2428c86..f74b2473440d26f6f51be525b1be09f556c020a0 100644 (file)
@@ -651,7 +651,7 @@ static struct thermal_cooling_device_ops powerclamp_cooling_ops = {
 };
 
 static const struct x86_cpu_id __initconst intel_powerclamp_ids[] = {
-       { X86_VENDOR_INTEL, X86_FAMILY_ANY, X86_MODEL_ANY, X86_FEATURE_MWAIT },
+       X86_MATCH_VENDOR_FEATURE(INTEL, X86_FEATURE_MWAIT, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, intel_powerclamp_ids);
index 5d33b350da1c68d937d2b7d97a4ea8650ea0c4a4..d704fc104cfd6ef7300d37ad704c2627cb91aef8 100644 (file)
@@ -64,9 +64,6 @@
 #include <asm/cpu_device_id.h>
 #include <asm/iosf_mbi.h>
 
-#define X86_FAMILY_QUARK       0x5
-#define X86_MODEL_QUARK_X1000  0x9
-
 /* DTS reset is programmed via QRK_MBI_UNIT_SOC */
 #define QRK_DTS_REG_OFFSET_RESET       0x34
 #define QRK_DTS_RESET_BIT              BIT(0)
@@ -433,7 +430,7 @@ err_ret:
 }
 
 static const struct x86_cpu_id qrk_thermal_ids[] __initconst  = {
-       { X86_VENDOR_INTEL, X86_FAMILY_QUARK, X86_MODEL_QUARK_X1000 },
+       X86_MATCH_VENDOR_FAM_MODEL(INTEL, 5, INTEL_FAM5_QUARK_X1000, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, qrk_thermal_ids);
index f4be9c14e5d922ede9bad6b9584623d7dc5b88a3..92e5c19d03f6c15d46df7ed3ec01e5b6f3cc9db6 100644 (file)
@@ -36,8 +36,7 @@ static irqreturn_t soc_irq_thread_fn(int irq, void *dev_data)
 }
 
 static const struct x86_cpu_id soc_thermal_ids[] = {
-       { X86_VENDOR_INTEL, 6, INTEL_FAM6_ATOM_SILVERMONT, 0,
-               BYT_SOC_DTS_APIC_IRQ},
+       X86_MATCH_INTEL_FAM6_MODEL(ATOM_SILVERMONT, BYT_SOC_DTS_APIC_IRQ),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, soc_thermal_ids);
index ddb4a973c698606b735dd3ae3b9820488bb87257..23d9990a97c19cb76849985c717ee1582e949ea7 100644 (file)
@@ -478,7 +478,7 @@ static int pkg_thermal_cpu_online(unsigned int cpu)
 }
 
 static const struct x86_cpu_id __initconst pkg_temp_thermal_ids[] = {
-       { X86_VENDOR_INTEL, X86_FAMILY_ANY, X86_MODEL_ANY, X86_FEATURE_PTS },
+       X86_MATCH_VENDOR_FEATURE(INTEL, X86_FEATURE_PTS, NULL),
        {}
 };
 MODULE_DEVICE_TABLE(x86cpu, pkg_temp_thermal_ids);
index e3596db077dc598f3a44c2e47086d0b017d4e551..f8b66d43acf645ee3b3d2eaf3b782bf4524d6206 100644 (file)
@@ -667,9 +667,7 @@ struct x86_cpu_id {
        kernel_ulong_t driver_data;
 };
 
-#define X86_FEATURE_MATCH(x) \
-       { X86_VENDOR_ANY, X86_FAMILY_ANY, X86_MODEL_ANY, x }
-
+/* Wild cards for x86_cpu_id::vendor, family, model and feature */
 #define X86_VENDOR_ANY 0xffff
 #define X86_FAMILY_ANY 0
 #define X86_MODEL_ANY  0
index 863a477d34051d12f4cac5f2e6df78309b69fcef..a9176150c6ed6808fa2e3186dd19748bf592ee1c 100644 (file)
 #include <asm/intel-family.h>
 #include <asm/iosf_mbi.h>
 
-#define ICPU(model)    { X86_VENDOR_INTEL, 6, model, X86_FEATURE_ANY, }
-
 #define SOC_INTEL_IS_CPU(soc, type)                            \
 static inline bool soc_intel_is_##soc(void)                    \
 {                                                              \
        static const struct x86_cpu_id soc##_cpu_ids[] = {      \
-               ICPU(type),                                     \
+               X86_MATCH_INTEL_FAM6_MODEL(type, NULL),         \
                {}                                              \
        };                                                      \
        const struct x86_cpu_id *id;                            \
@@ -32,11 +30,11 @@ static inline bool soc_intel_is_##soc(void)                 \
        return false;                                           \
 }
 
-SOC_INTEL_IS_CPU(byt, INTEL_FAM6_ATOM_SILVERMONT);
-SOC_INTEL_IS_CPU(cht, INTEL_FAM6_ATOM_AIRMONT);
-SOC_INTEL_IS_CPU(apl, INTEL_FAM6_ATOM_GOLDMONT);
-SOC_INTEL_IS_CPU(glk, INTEL_FAM6_ATOM_GOLDMONT_PLUS);
-SOC_INTEL_IS_CPU(cml, INTEL_FAM6_KABYLAKE_L);
+SOC_INTEL_IS_CPU(byt, ATOM_SILVERMONT);
+SOC_INTEL_IS_CPU(cht, ATOM_AIRMONT);
+SOC_INTEL_IS_CPU(apl, ATOM_GOLDMONT);
+SOC_INTEL_IS_CPU(glk, ATOM_GOLDMONT_PLUS);
+SOC_INTEL_IS_CPU(cml, KABYLAKE_L);
 
 static inline bool soc_intel_is_byt_cr(struct platform_device *pdev)
 {