Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'platform-drivers-x86-v6.18-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform driver fixes from Ilpo Järvinen:
"This one has lots of new HW entries which adds to the size in diffstat
but the individual changes are simple.

Fixes

- acer-wmi: Ignore backlight event

- alienware-wmi-wmax: Fix quirk match table order & drop redundant
entries

- amd/pmc:
- Add Xbox Ally to spurious 8042 quirk list
- Quirk list Lenovo Legion Go 2 NVMe resume

- msi-wmi-platform:
- Correct GUID to uppercase
- GUID is uncleverly copy-pasted from an example so add a DMI
whitelist

- intel/speed_select_if: PCIBIOS_* return code conversion

- intel-uncore-freq & ISST: Fix kernel doc warnings

New HW support

- alienware-wmi-wmax:
- Alienware 16 Aurora support
- Alienware M support
- Alienware X support
- Dell G support

- amd/pmc:
- ROG Xbox Ally (non-X) support

- huaway-wmi: HONOR MagicBoox X16/X14 PrintScreen & YOYO keys

- hp-wmi:
- Omen 16-wf1xxx fan support
- Omen MAX 16-ah0xx fan + thermal profile support
- Victus 16-r0 and 16-s0 fan + thermal profile support

- intel/hid: Intel Nova Lake support

- intel-uncore-freq:
- Intel Panther Lake support
- Intel Wildcat Lake support
- Intel Nova Lake support"

* tag 'platform-drivers-x86-v6.18-4' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (21 commits)
platform/x86: intel-uncore-freq: fix all header kernel-doc warnings
platform/x86: acer-wmi: Ignore backlight event
platform/x86/intel/speed_select_if: Convert PCIBIOS_* return codes to errnos
platform/x86/intel/hid: Add Nova Lake support
platform/x86: alienware-wmi-wmax: Add AWCC support to Alienware 16 Aurora
platform/x86: hp-wmi: Add Omen MAX 16-ah0xx fan support and thermal profile
platform/x86: msi-wmi-platform: Fix typo in WMI GUID
platform/x86: msi-wmi-platform: Only load on MSI devices
platform/x86/amd: pmc: Add Lenovo Legion Go 2 to pmc quirk list
platform/x86/amd/pmc: Add spurious_8042 to Xbox Ally
platform/x86/amd/pmc: Add support for Van Gogh SoC
platform/x86: alienware-wmi-wmax: Add support for the whole "G" family
platform/x86: alienware-wmi-wmax: Add support for the whole "X" family
platform/x86: alienware-wmi-wmax: Add support for the whole "M" family
platform/x86: alienware-wmi-wmax: Drop redundant DMI entries
platform/x86: alienware-wmi-wmax: Fix "Alienware m16 R1 AMD" quirk order
platform/x86: ISST: isst_if.h: fix all kernel-doc warnings
platform/x86: intel-uncore-freq: Add additional client processors
platform/x86: hp-wmi: Add Omen 16-wf1xxx fan support
platform/x86: huawei-wmi: add keys for HONOR models
...

+151 -117
+1
Documentation/wmi/driver-development-guide.rst
··· 54 54 :: 55 55 56 56 static const struct wmi_device_id foo_id_table[] = { 57 + /* Only use uppercase letters! */ 57 58 { "936DA01F-9ABD-4D9D-80C7-02AF85C822A8", NULL }, 58 59 { } 59 60 };
+1
drivers/platform/x86/Kconfig
··· 545 545 config MSI_WMI_PLATFORM 546 546 tristate "MSI WMI Platform features" 547 547 depends on ACPI_WMI 548 + depends on DMI 548 549 depends on HWMON 549 550 help 550 551 Say Y here if you want to have support for WMI-based platform features
+4
drivers/platform/x86/acer-wmi.c
··· 102 102 103 103 enum acer_wmi_event_ids { 104 104 WMID_HOTKEY_EVENT = 0x1, 105 + WMID_BACKLIGHT_EVENT = 0x4, 105 106 WMID_ACCEL_OR_KBD_DOCK_EVENT = 0x5, 106 107 WMID_GAMING_TURBO_KEY_EVENT = 0x7, 107 108 WMID_AC_EVENT = 0x8, ··· 2369 2368 } 2370 2369 sparse_keymap_report_event(acer_wmi_input_dev, scancode, 1, true); 2371 2370 } 2371 + break; 2372 + case WMID_BACKLIGHT_EVENT: 2373 + /* Already handled by acpi-video */ 2372 2374 break; 2373 2375 case WMID_ACCEL_OR_KBD_DOCK_EVENT: 2374 2376 acer_gsensor_event();
+25
drivers/platform/x86/amd/pmc/pmc-quirks.c
··· 122 122 DMI_MATCH(DMI_PRODUCT_NAME, "21A1"), 123 123 } 124 124 }, 125 + { 126 + .ident = "ROG Xbox Ally RC73YA", 127 + .driver_data = &quirk_spurious_8042, 128 + .matches = { 129 + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), 130 + DMI_MATCH(DMI_BOARD_NAME, "RC73YA"), 131 + } 132 + }, 125 133 /* https://bugzilla.kernel.org/show_bug.cgi?id=218024 */ 126 134 { 127 135 .ident = "V14 G4 AMN", ··· 210 202 .matches = { 211 203 DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 212 204 DMI_MATCH(DMI_PRODUCT_NAME, "82ND"), 205 + } 206 + }, 207 + /* https://gitlab.freedesktop.org/drm/amd/-/issues/4618 */ 208 + { 209 + .ident = "Lenovo Legion Go 2", 210 + .driver_data = &quirk_s2idle_bug, 211 + .matches = { 212 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 213 + DMI_MATCH(DMI_PRODUCT_NAME, "83N0"), 214 + } 215 + }, 216 + { 217 + .ident = "Lenovo Legion Go 2", 218 + .driver_data = &quirk_s2idle_bug, 219 + .matches = { 220 + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), 221 + DMI_MATCH(DMI_PRODUCT_NAME, "83N1"), 213 222 } 214 223 }, 215 224 /* https://gitlab.freedesktop.org/drm/amd/-/issues/2684 */
+3
drivers/platform/x86/amd/pmc/pmc.c
··· 106 106 switch (dev->cpu_id) { 107 107 case AMD_CPU_ID_PCO: 108 108 case AMD_CPU_ID_RN: 109 + case AMD_CPU_ID_VG: 109 110 case AMD_CPU_ID_YC: 110 111 case AMD_CPU_ID_CB: 111 112 dev->num_ips = 12; ··· 518 517 case AMD_CPU_ID_PCO: 519 518 return MSG_OS_HINT_PCO; 520 519 case AMD_CPU_ID_RN: 520 + case AMD_CPU_ID_VG: 521 521 case AMD_CPU_ID_YC: 522 522 case AMD_CPU_ID_CB: 523 523 case AMD_CPU_ID_PS: ··· 719 717 { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_RV) }, 720 718 { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_SP) }, 721 719 { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_SHP) }, 720 + { PCI_DEVICE(PCI_VENDOR_ID_AMD, AMD_CPU_ID_VG) }, 722 721 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M20H_ROOT) }, 723 722 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_1AH_M60H_ROOT) }, 724 723 { }
+1
drivers/platform/x86/amd/pmc/pmc.h
··· 156 156 #define AMD_CPU_ID_RN 0x1630 157 157 #define AMD_CPU_ID_PCO AMD_CPU_ID_RV 158 158 #define AMD_CPU_ID_CZN AMD_CPU_ID_RN 159 + #define AMD_CPU_ID_VG 0x1645 159 160 #define AMD_CPU_ID_YC 0x14B5 160 161 #define AMD_CPU_ID_CB 0x14D8 161 162 #define AMD_CPU_ID_PS 0x14E8
+28 -84
drivers/platform/x86/dell/alienware-wmi-wmax.c
··· 90 90 91 91 static const struct dmi_system_id awcc_dmi_table[] __initconst = { 92 92 { 93 + .ident = "Alienware 16 Aurora", 94 + .matches = { 95 + DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 96 + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware 16 Aurora"), 97 + }, 98 + .driver_data = &g_series_quirks, 99 + }, 100 + { 93 101 .ident = "Alienware Area-51m", 94 102 .matches = { 95 103 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), ··· 106 98 .driver_data = &generic_quirks, 107 99 }, 108 100 { 109 - .ident = "Alienware Area-51m R2", 101 + .ident = "Alienware m15", 110 102 .matches = { 111 103 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 112 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware Area-51m R2"), 104 + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15"), 113 105 }, 114 106 .driver_data = &generic_quirks, 115 107 }, 116 108 { 117 - .ident = "Alienware m15 R5", 109 + .ident = "Alienware m16 R1 AMD", 118 110 .matches = { 119 111 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 120 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15 R5"), 121 - }, 122 - .driver_data = &generic_quirks, 123 - }, 124 - { 125 - .ident = "Alienware m15 R7", 126 - .matches = { 127 - DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 128 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m15 R7"), 112 + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m16 R1 AMD"), 129 113 }, 130 114 .driver_data = &generic_quirks, 131 115 }, ··· 130 130 .driver_data = &g_series_quirks, 131 131 }, 132 132 { 133 - .ident = "Alienware m16 R1 AMD", 134 - .matches = { 135 - DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 136 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m16 R1 AMD"), 137 - }, 138 - .driver_data = &generic_quirks, 139 - }, 140 - { 141 133 .ident = "Alienware m16 R2", 142 134 .matches = { 143 135 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), ··· 138 146 .driver_data = &generic_quirks, 139 147 }, 140 148 { 141 - .ident = "Alienware m17 R5", 149 + .ident = "Alienware m17", 142 150 .matches = { 143 151 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 144 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m17 R5 AMD"), 152 + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m17"), 145 153 }, 146 154 .driver_data = &generic_quirks, 147 155 }, 148 156 { 149 - .ident = "Alienware m18 R2", 157 + .ident = "Alienware m18", 150 158 .matches = { 151 159 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 152 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m18 R2"), 160 + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m18"), 153 161 }, 154 162 .driver_data = &generic_quirks, 155 163 }, 156 164 { 157 - .ident = "Alienware x15 R1", 165 + .ident = "Alienware x15", 158 166 .matches = { 159 167 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 160 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x15 R1"), 168 + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x15"), 161 169 }, 162 170 .driver_data = &generic_quirks, 163 171 }, 164 172 { 165 - .ident = "Alienware x15 R2", 173 + .ident = "Alienware x17", 166 174 .matches = { 167 175 DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 168 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x15 R2"), 176 + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x17"), 169 177 }, 170 178 .driver_data = &generic_quirks, 171 179 }, 172 180 { 173 - .ident = "Alienware x17 R2", 174 - .matches = { 175 - DMI_MATCH(DMI_SYS_VENDOR, "Alienware"), 176 - DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x17 R2"), 177 - }, 178 - .driver_data = &generic_quirks, 179 - }, 180 - { 181 - .ident = "Dell Inc. G15 5510", 181 + .ident = "Dell Inc. G15", 182 182 .matches = { 183 183 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 184 - DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5510"), 184 + DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15"), 185 185 }, 186 186 .driver_data = &g_series_quirks, 187 187 }, 188 188 { 189 - .ident = "Dell Inc. G15 5511", 189 + .ident = "Dell Inc. G16", 190 190 .matches = { 191 191 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 192 - DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5511"), 192 + DMI_MATCH(DMI_PRODUCT_NAME, "Dell G16"), 193 193 }, 194 194 .driver_data = &g_series_quirks, 195 195 }, 196 196 { 197 - .ident = "Dell Inc. G15 5515", 197 + .ident = "Dell Inc. G3", 198 198 .matches = { 199 199 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 200 - DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5515"), 200 + DMI_MATCH(DMI_PRODUCT_NAME, "G3"), 201 201 }, 202 202 .driver_data = &g_series_quirks, 203 203 }, 204 204 { 205 - .ident = "Dell Inc. G15 5530", 205 + .ident = "Dell Inc. G5", 206 206 .matches = { 207 207 DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 208 - DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5530"), 209 - }, 210 - .driver_data = &g_series_quirks, 211 - }, 212 - { 213 - .ident = "Dell Inc. G16 7630", 214 - .matches = { 215 - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 216 - DMI_MATCH(DMI_PRODUCT_NAME, "Dell G16 7630"), 217 - }, 218 - .driver_data = &g_series_quirks, 219 - }, 220 - { 221 - .ident = "Dell Inc. G3 3500", 222 - .matches = { 223 - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 224 - DMI_MATCH(DMI_PRODUCT_NAME, "G3 3500"), 225 - }, 226 - .driver_data = &g_series_quirks, 227 - }, 228 - { 229 - .ident = "Dell Inc. G3 3590", 230 - .matches = { 231 - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 232 - DMI_MATCH(DMI_PRODUCT_NAME, "G3 3590"), 233 - }, 234 - .driver_data = &g_series_quirks, 235 - }, 236 - { 237 - .ident = "Dell Inc. G5 5500", 238 - .matches = { 239 - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 240 - DMI_MATCH(DMI_PRODUCT_NAME, "G5 5500"), 241 - }, 242 - .driver_data = &g_series_quirks, 243 - }, 244 - { 245 - .ident = "Dell Inc. G5 5505", 246 - .matches = { 247 - DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), 248 - DMI_MATCH(DMI_PRODUCT_NAME, "G5 5505"), 208 + DMI_MATCH(DMI_PRODUCT_NAME, "G5"), 249 209 }, 250 210 .driver_data = &g_series_quirks, 251 211 },
+4 -2
drivers/platform/x86/hp/hp-wmi.c
··· 92 92 "8A25" 93 93 }; 94 94 95 - /* DMI Board names of Victus 16-r1000 and Victus 16-s1000 laptops */ 95 + /* DMI Board names of Victus 16-r and Victus 16-s laptops */ 96 96 static const char * const victus_s_thermal_profile_boards[] = { 97 - "8C99", "8C9C" 97 + "8BBE", "8BD4", "8BD5", 98 + "8C78", "8C99", "8C9C", 99 + "8D41", 98 100 }; 99 101 100 102 enum hp_wmi_radio {
+4
drivers/platform/x86/huawei-wmi.c
··· 81 81 { KE_KEY, 0x289, { KEY_WLAN } }, 82 82 // Huawei |M| key 83 83 { KE_KEY, 0x28a, { KEY_CONFIG } }, 84 + // HONOR YOYO key 85 + { KE_KEY, 0x28b, { KEY_NOTIFICATION_CENTER } }, 86 + // HONOR print screen 87 + { KE_KEY, 0x28e, { KEY_PRINT } }, 84 88 // Keyboard backlit 85 89 { KE_IGNORE, 0x293, { KEY_KBDILLUMTOGGLE } }, 86 90 { KE_IGNORE, 0x294, { KEY_KBDILLUMUP } },
+1
drivers/platform/x86/intel/hid.c
··· 55 55 { "INTC10CB" }, 56 56 { "INTC10CC" }, 57 57 { "INTC10F1" }, 58 + { "INTC10F2" }, 58 59 { } 59 60 }; 60 61 MODULE_DEVICE_TABLE(acpi, intel_hid_ids);
+2 -2
drivers/platform/x86/intel/speed_select_if/isst_if_mmio.c
··· 108 108 109 109 ret = pci_read_config_dword(pdev, 0xD0, &mmio_base); 110 110 if (ret) 111 - return ret; 111 + return pcibios_err_to_errno(ret); 112 112 113 113 ret = pci_read_config_dword(pdev, 0xFC, &pcu_base); 114 114 if (ret) 115 - return ret; 115 + return pcibios_err_to_errno(ret); 116 116 117 117 pcu_base &= GENMASK(10, 0); 118 118 base_addr = (u64)mmio_base << 23 | (u64) pcu_base << 12;
+5 -4
drivers/platform/x86/intel/uncore-frequency/uncore-frequency-common.h
··· 40 40 * @agent_type_mask: Bit mask of all hardware agents for this domain 41 41 * @uncore_attr_group: Attribute group storage 42 42 * @max_freq_khz_kobj_attr: Storage for kobject attribute max_freq_khz 43 - * @mix_freq_khz_kobj_attr: Storage for kobject attribute min_freq_khz 43 + * @min_freq_khz_kobj_attr: Storage for kobject attribute min_freq_khz 44 44 * @initial_max_freq_khz_kobj_attr: Storage for kobject attribute initial_max_freq_khz 45 45 * @initial_min_freq_khz_kobj_attr: Storage for kobject attribute initial_min_freq_khz 46 46 * @current_freq_khz_kobj_attr: Storage for kobject attribute current_freq_khz ··· 48 48 * @fabric_cluster_id_kobj_attr: Storage for kobject attribute fabric_cluster_id 49 49 * @package_id_kobj_attr: Storage for kobject attribute package_id 50 50 * @elc_low_threshold_percent_kobj_attr: 51 - Storage for kobject attribute elc_low_threshold_percent 51 + * Storage for kobject attribute elc_low_threshold_percent 52 52 * @elc_high_threshold_percent_kobj_attr: 53 - Storage for kobject attribute elc_high_threshold_percent 53 + * Storage for kobject attribute elc_high_threshold_percent 54 54 * @elc_high_threshold_enable_kobj_attr: 55 - Storage for kobject attribute elc_high_threshold_enable 55 + * Storage for kobject attribute elc_high_threshold_enable 56 56 * @elc_floor_freq_khz_kobj_attr: Storage for kobject attribute elc_floor_freq_khz 57 57 * @agent_types_kobj_attr: Storage for kobject attribute agent_type 58 + * @die_id_kobj_attr: Attribute storage for die_id information 58 59 * @uncore_attrs: Attribute storage for group creation 59 60 * 60 61 * This structure is used to encapsulate all data related to uncore sysfs
+4
drivers/platform/x86/intel/uncore-frequency/uncore-frequency.c
··· 256 256 X86_MATCH_VFM(INTEL_ARROWLAKE, NULL), 257 257 X86_MATCH_VFM(INTEL_ARROWLAKE_H, NULL), 258 258 X86_MATCH_VFM(INTEL_LUNARLAKE_M, NULL), 259 + X86_MATCH_VFM(INTEL_PANTHERLAKE_L, NULL), 260 + X86_MATCH_VFM(INTEL_WILDCATLAKE_L, NULL), 261 + X86_MATCH_VFM(INTEL_NOVALAKE, NULL), 262 + X86_MATCH_VFM(INTEL_NOVALAKE_L, NULL), 259 263 {} 260 264 }; 261 265 MODULE_DEVICE_TABLE(x86cpu, intel_uncore_cpu_ids);
+41 -2
drivers/platform/x86/msi-wmi-platform.c
··· 14 14 #include <linux/debugfs.h> 15 15 #include <linux/device.h> 16 16 #include <linux/device/driver.h> 17 + #include <linux/dmi.h> 17 18 #include <linux/errno.h> 18 19 #include <linux/hwmon.h> 19 20 #include <linux/kernel.h> ··· 29 28 30 29 #define DRIVER_NAME "msi-wmi-platform" 31 30 32 - #define MSI_PLATFORM_GUID "ABBC0F6E-8EA1-11d1-00A0-C90629100000" 31 + #define MSI_PLATFORM_GUID "ABBC0F6E-8EA1-11D1-00A0-C90629100000" 33 32 34 33 #define MSI_WMI_PLATFORM_INTERFACE_VERSION 2 35 34 ··· 449 448 .probe = msi_wmi_platform_probe, 450 449 .no_singleton = true, 451 450 }; 452 - module_wmi_driver(msi_wmi_platform_driver); 451 + 452 + /* 453 + * MSI reused the WMI GUID from the WMI-ACPI sample code provided by Microsoft, 454 + * so other manufacturers might use it as well for their WMI-ACPI implementations. 455 + */ 456 + static const struct dmi_system_id msi_wmi_platform_whitelist[] __initconst = { 457 + { 458 + .matches = { 459 + DMI_MATCH(DMI_SYS_VENDOR, "MICRO-STAR INT"), 460 + }, 461 + }, 462 + { 463 + .matches = { 464 + DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star International"), 465 + }, 466 + }, 467 + { } 468 + }; 469 + 470 + static int __init msi_wmi_platform_module_init(void) 471 + { 472 + if (!dmi_check_system(msi_wmi_platform_whitelist)) { 473 + if (!force) 474 + return -ENODEV; 475 + 476 + pr_warn("Ignoring DMI whitelist\n"); 477 + } 478 + 479 + return wmi_driver_register(&msi_wmi_platform_driver); 480 + } 481 + 482 + static void __exit msi_wmi_platform_module_exit(void) 483 + { 484 + wmi_driver_unregister(&msi_wmi_platform_driver); 485 + } 486 + 487 + module_init(msi_wmi_platform_module_init); 488 + module_exit(msi_wmi_platform_module_exit); 489 + 453 490 454 491 MODULE_AUTHOR("Armin Wolf <W_Armin@gmx.de>"); 455 492 MODULE_DESCRIPTION("MSI WMI platform features");
+27 -23
include/uapi/linux/isst_if.h
··· 52 52 /** 53 53 * struct isst_if_cpu_maps - structure for CPU map IOCTL 54 54 * @cmd_count: Number of CPU mapping command in cpu_map[] 55 - * @cpu_map[]: Holds one or more CPU map data structure 55 + * @cpu_map: Holds one or more CPU map data structure 56 56 * 57 57 * This structure used with ioctl ISST_IF_GET_PHY_ID to send 58 58 * one or more CPU mapping commands. Here IOCTL return value indicates ··· 82 82 83 83 /** 84 84 * struct isst_if_io_regs - structure for IO register commands 85 - * @cmd_count: Number of io reg commands in io_reg[] 86 - * @io_reg[]: Holds one or more io_reg command structure 85 + * @req_count: Number of io reg commands in io_reg[] 86 + * @io_reg: Holds one or more io_reg command structure 87 87 * 88 88 * This structure used with ioctl ISST_IF_IO_CMD to send 89 89 * one or more read/write commands to PUNIT. Here IOCTL return value ··· 120 120 /** 121 121 * struct isst_if_mbox_cmds - structure for mailbox commands 122 122 * @cmd_count: Number of mailbox commands in mbox_cmd[] 123 - * @mbox_cmd[]: Holds one or more mbox commands 123 + * @mbox_cmd: Holds one or more mbox commands 124 124 * 125 125 * This structure used with ioctl ISST_IF_MBOX_COMMAND to send 126 126 * one or more mailbox commands to PUNIT. Here IOCTL return value ··· 152 152 /** 153 153 * struct isst_if_msr_cmds - structure for msr commands 154 154 * @cmd_count: Number of mailbox commands in msr_cmd[] 155 - * @msr_cmd[]: Holds one or more msr commands 155 + * @msr_cmd: Holds one or more msr commands 156 156 * 157 157 * This structure used with ioctl ISST_IF_MSR_COMMAND to send 158 158 * one or more MSR commands. IOCTL return value indicates number of ··· 167 167 * struct isst_core_power - Structure to get/set core_power feature 168 168 * @get_set: 0: Get, 1: Set 169 169 * @socket_id: Socket/package id 170 - * @power_domain: Power Domain id 170 + * @power_domain_id: Power Domain id 171 171 * @enable: Feature enable status 172 + * @supported: Power domain supports SST_CP interface 172 173 * @priority_type: Priority type for the feature (ordered/proportional) 173 174 * 174 175 * Structure to get/set core_power feature state using IOCTL ··· 188 187 * struct isst_clos_param - Structure to get/set clos praram 189 188 * @get_set: 0: Get, 1: Set 190 189 * @socket_id: Socket/package id 191 - * @power_domain: Power Domain id 192 - * clos: Clos ID for the parameters 193 - * min_freq_mhz: Minimum frequency in MHz 194 - * max_freq_mhz: Maximum frequency in MHz 195 - * prop_prio: Proportional priority from 0-15 190 + * @power_domain_id: Power Domain id 191 + * @clos: Clos ID for the parameters 192 + * @min_freq_mhz: Minimum frequency in MHz 193 + * @max_freq_mhz: Maximum frequency in MHz 194 + * @prop_prio: Proportional priority from 0-15 196 195 * 197 196 * Structure to get/set per clos property using IOCTL 198 197 * ISST_IF_CLOS_PARAM. ··· 210 209 /** 211 210 * struct isst_if_clos_assoc - Structure to assign clos to a CPU 212 211 * @socket_id: Socket/package id 213 - * @power_domain: Power Domain id 212 + * @power_domain_id: Power Domain id 214 213 * @logical_cpu: CPU number 215 214 * @clos: Clos ID to assign to the logical CPU 216 215 * ··· 229 228 * @get_set: Request is for get or set 230 229 * @punit_cpu_map: Set to 1 if the CPU number is punit numbering not 231 230 * Linux CPU number 231 + * @assoc_info: CLOS data for this CPU 232 232 * 233 233 * Structure used to get/set associate CPUs to clos using IOCTL 234 234 * ISST_IF_CLOS_ASSOC. ··· 259 257 /** 260 258 * struct isst_perf_level_info - Structure to get information on SST-PP levels 261 259 * @socket_id: Socket/package id 262 - * @power_domain: Power Domain id 260 + * @power_domain_id: Power Domain id 263 261 * @logical_cpu: CPU number 264 262 * @clos: Clos ID to assign to the logical CPU 265 263 * @max_level: Maximum performance level supported by the platform ··· 269 267 * @feature_state: SST-BF and SST-TF (enabled/disabled) status at current level 270 268 * @locked: SST-PP performance level change is locked/unlocked 271 269 * @enabled: SST-PP feature is enabled or not 272 - * @sst-tf_support: SST-TF support status at this level 273 - * @sst-bf_support: SST-BF support status at this level 270 + * @sst_tf_support: SST-TF support status at this level 271 + * @sst_bf_support: SST-BF support status at this level 274 272 * 275 273 * Structure to get SST-PP details using IOCTL ISST_IF_PERF_LEVELS. 276 274 */ ··· 291 289 /** 292 290 * struct isst_perf_level_control - Structure to set SST-PP level 293 291 * @socket_id: Socket/package id 294 - * @power_domain: Power Domain id 292 + * @power_domain_id: Power Domain id 295 293 * @level: level to set 296 294 * 297 295 * Structure used change SST-PP level using IOCTL ISST_IF_PERF_SET_LEVEL. ··· 305 303 /** 306 304 * struct isst_perf_feature_control - Structure to activate SST-BF/SST-TF 307 305 * @socket_id: Socket/package id 308 - * @power_domain: Power Domain id 306 + * @power_domain_id: Power Domain id 309 307 * @feature: bit 0 = SST-BF state, bit 1 = SST-TF state 310 308 * 311 309 * Structure used to enable SST-BF/SST-TF using IOCTL ISST_IF_PERF_SET_FEATURE. ··· 322 320 /** 323 321 * struct isst_perf_level_data_info - Structure to get SST-PP level details 324 322 * @socket_id: Socket/package id 325 - * @power_domain: Power Domain id 323 + * @power_domain_id: Power Domain id 326 324 * @level: SST-PP level for which caller wants to get information 327 325 * @tdp_ratio: TDP Ratio 328 326 * @base_freq_mhz: Base frequency in MHz ··· 343 341 * @pm_fabric_freq_mhz: Fabric (Uncore) minimum frequency 344 342 * @max_buckets: Maximum trl buckets 345 343 * @max_trl_levels: Maximum trl levels 346 - * @bucket_core_counts[TRL_MAX_BUCKETS]: Number of cores per bucket 347 - * @trl_freq_mhz[TRL_MAX_LEVELS][TRL_MAX_BUCKETS]: maximum frequency 344 + * @bucket_core_counts: Number of cores per bucket 345 + * @trl_freq_mhz: maximum frequency 348 346 * for a bucket and trl level 349 347 * 350 348 * Structure used to get information on frequencies and TDP for a SST-PP ··· 404 402 /** 405 403 * struct isst_perf_level_cpu_mask - Structure to get SST-PP level CPU mask 406 404 * @socket_id: Socket/package id 407 - * @power_domain: Power Domain id 405 + * @power_domain_id: Power Domain id 408 406 * @level: SST-PP level for which caller wants to get information 409 407 * @punit_cpu_map: Set to 1 if the CPU number is punit numbering not 410 408 * Linux CPU number. If 0 CPU buffer is copied to user space ··· 432 430 /** 433 431 * struct isst_base_freq_info - Structure to get SST-BF frequencies 434 432 * @socket_id: Socket/package id 435 - * @power_domain: Power Domain id 433 + * @power_domain_id: Power Domain id 436 434 * @level: SST-PP level for which caller wants to get information 437 435 * @high_base_freq_mhz: High priority CPU base frequency 438 436 * @low_base_freq_mhz: Low priority CPU base frequency ··· 455 453 /** 456 454 * struct isst_turbo_freq_info - Structure to get SST-TF frequencies 457 455 * @socket_id: Socket/package id 458 - * @power_domain: Power Domain id 456 + * @power_domain_id: Power Domain id 459 457 * @level: SST-PP level for which caller wants to get information 460 458 * @max_clip_freqs: Maximum number of low priority core clipping frequencies 459 + * @max_buckets: Maximum trl buckets 460 + * @max_trl_levels: Maximum trl levels 461 461 * @lp_clip_freq_mhz: Clip frequencies per trl level 462 462 * @bucket_core_counts: Maximum number of cores for a bucket 463 463 * @trl_freq_mhz: Frequencies per trl level for each bucket