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-v7.0-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86

Pull x86 platform driver fixes from Ilpo Järvinen:
"Fixes and New HW Support. The trivial drop of unused gz_chain_head is
not exactly fixes material but it allows other work to avoid problems
so I decided to take it in along with the fixes.

- amd/hsmp: Fix typo in error message

- asus-armoury: Add support for G614FP, GA503QM, GZ302EAC, and GZ302EAC

- asus-nb-wmi: Add DMI quirk for ASUS ROG Flow Z13-KJP GZ302EAC

- hp-wmi: Support for Omen 16-k0xxx, 16-wf1xxx, 16-xf0xxx

- intel-hid: Disable wakeup_mode during hibernation

- ISST:
- Check HWP support before MSR access
- Correct locked bit width

- lenovo: wmi-gamezone: Drop unused gz_chain_head

- olpc-xo175-ec: Fix overflow error message"

* tag 'platform-drivers-x86-v7.0-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
platform/x86: ISST: Correct locked bit width
platform/x86: intel-hid: disable wakeup_mode during hibernation
platform/x86: asus-armoury: add support for GZ302EA and GZ302EAC
platform/x86: asus-nb-wmi: add DMI quirk for ASUS ROG Flow Z13-KJP GZ302EAC
platform/x86/amd/hsmp: Fix typo in error message
platform/olpc: olpc-xo175-ec: Fix overflow error message to print inlen
platform/x86: lenovo: wmi-gamezone: Drop gz_chain_head
platform/x86: ISST: Check HWP support before MSR access
platform/x86: hp-wmi: Add support for Omen 16-k0xxx (8A4D)
platform/x86: hp-wmi: Add support for Omen 16-wf1xxx (8C76)
platform/x86: hp-wmi: Add Omen 16-xf0xxx (8BCA) support
platform/x86: asus-armoury: add support for G614FP
platform/x86: asus-armoury: add support for GA503QM
MAINTAINERS: change email address of Denis Benato

+113 -8
+1 -1
MAINTAINERS
··· 3986 3986 ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS 3987 3987 M: Corentin Chary <corentin.chary@gmail.com> 3988 3988 M: Luke D. Jones <luke@ljones.dev> 3989 - M: Denis Benato <benato.denis96@gmail.com> 3989 + M: Denis Benato <denis.benato@linux.dev> 3990 3990 L: platform-driver-x86@vger.kernel.org 3991 3991 S: Maintained 3992 3992 W: https://asus-linux.org/
+1 -1
drivers/platform/olpc/olpc-xo175-ec.c
··· 482 482 dev_dbg(dev, "CMD %x, %zd bytes expected\n", cmd, resp_len); 483 483 484 484 if (inlen > 5) { 485 - dev_err(dev, "command len %zd too big!\n", resp_len); 485 + dev_err(dev, "command len %zd too big!\n", inlen); 486 486 return -EOVERFLOW; 487 487 } 488 488
+1 -1
drivers/platform/x86/amd/hsmp/hsmp.c
··· 117 117 } 118 118 119 119 if (unlikely(mbox_status == HSMP_STATUS_NOT_READY)) { 120 - dev_err(sock->dev, "Message ID 0x%X failure : SMU tmeout (status = 0x%X)\n", 120 + dev_err(sock->dev, "Message ID 0x%X failure : SMU timeout (status = 0x%X)\n", 121 121 msg->msg_id, mbox_status); 122 122 return -ETIMEDOUT; 123 123 } else if (unlikely(mbox_status == HSMP_ERR_INVALID_MSG)) {
+77
drivers/platform/x86/asus-armoury.h
··· 1082 1082 }, 1083 1083 { 1084 1084 .matches = { 1085 + DMI_MATCH(DMI_BOARD_NAME, "GA503QM"), 1086 + }, 1087 + .driver_data = &(struct power_data) { 1088 + .ac_data = &(struct power_limits) { 1089 + .ppt_pl1_spl_min = 15, 1090 + .ppt_pl1_spl_def = 35, 1091 + .ppt_pl1_spl_max = 80, 1092 + .ppt_pl2_sppt_min = 65, 1093 + .ppt_pl2_sppt_max = 80, 1094 + }, 1095 + }, 1096 + }, 1097 + { 1098 + .matches = { 1085 1099 DMI_MATCH(DMI_BOARD_NAME, "GA503QR"), 1086 1100 }, 1087 1101 .driver_data = &(struct power_data) { ··· 1534 1520 }, 1535 1521 { 1536 1522 .matches = { 1523 + DMI_MATCH(DMI_BOARD_NAME, "GZ302EA"), 1524 + }, 1525 + .driver_data = &(struct power_data) { 1526 + .ac_data = &(struct power_limits) { 1527 + .ppt_pl1_spl_min = 28, 1528 + .ppt_pl1_spl_def = 60, 1529 + .ppt_pl1_spl_max = 80, 1530 + .ppt_pl2_sppt_min = 32, 1531 + .ppt_pl2_sppt_def = 75, 1532 + .ppt_pl2_sppt_max = 92, 1533 + .ppt_pl3_fppt_min = 45, 1534 + .ppt_pl3_fppt_def = 86, 1535 + .ppt_pl3_fppt_max = 93, 1536 + }, 1537 + .dc_data = &(struct power_limits) { 1538 + .ppt_pl1_spl_min = 28, 1539 + .ppt_pl1_spl_def = 45, 1540 + .ppt_pl1_spl_max = 80, 1541 + .ppt_pl2_sppt_min = 32, 1542 + .ppt_pl2_sppt_def = 52, 1543 + .ppt_pl2_sppt_max = 92, 1544 + .ppt_pl3_fppt_min = 45, 1545 + .ppt_pl3_fppt_def = 71, 1546 + .ppt_pl3_fppt_max = 93, 1547 + }, 1548 + }, 1549 + }, 1550 + { 1551 + .matches = { 1537 1552 DMI_MATCH(DMI_BOARD_NAME, "G513I"), 1538 1553 }, 1539 1554 .driver_data = &(struct power_data) { ··· 1633 1590 .ppt_pl2_sppt_max = 50, 1634 1591 .ppt_pl3_fppt_min = 28, 1635 1592 .ppt_pl3_fppt_max = 65, 1593 + .nv_temp_target_min = 75, 1594 + .nv_temp_target_max = 87, 1595 + }, 1596 + .requires_fan_curve = true, 1597 + }, 1598 + }, 1599 + { 1600 + .matches = { 1601 + DMI_MATCH(DMI_BOARD_NAME, "G614FP"), 1602 + }, 1603 + .driver_data = &(struct power_data) { 1604 + .ac_data = &(struct power_limits) { 1605 + .ppt_pl1_spl_min = 30, 1606 + .ppt_pl1_spl_max = 120, 1607 + .ppt_pl2_sppt_min = 65, 1608 + .ppt_pl2_sppt_def = 140, 1609 + .ppt_pl2_sppt_max = 165, 1610 + .ppt_pl3_fppt_min = 65, 1611 + .ppt_pl3_fppt_def = 140, 1612 + .ppt_pl3_fppt_max = 165, 1613 + .nv_temp_target_min = 75, 1614 + .nv_temp_target_max = 87, 1615 + .nv_dynamic_boost_min = 5, 1616 + .nv_dynamic_boost_max = 15, 1617 + .nv_tgp_min = 50, 1618 + .nv_tgp_max = 100, 1619 + }, 1620 + .dc_data = &(struct power_limits) { 1621 + .ppt_pl1_spl_min = 25, 1622 + .ppt_pl1_spl_max = 65, 1623 + .ppt_pl2_sppt_min = 25, 1624 + .ppt_pl2_sppt_max = 65, 1625 + .ppt_pl3_fppt_min = 35, 1626 + .ppt_pl3_fppt_max = 75, 1636 1627 .nv_temp_target_min = 75, 1637 1628 .nv_temp_target_max = 87, 1638 1629 },
+1 -1
drivers/platform/x86/asus-nb-wmi.c
··· 548 548 .callback = dmi_matched, 549 549 .ident = "ASUS ROG Z13", 550 550 .matches = { 551 - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), 551 + DMI_MATCH(DMI_SYS_VENDOR, "ASUS"), 552 552 DMI_MATCH(DMI_PRODUCT_NAME, "ROG Flow Z13"), 553 553 }, 554 554 .driver_data = &quirk_asus_z13,
+19
drivers/platform/x86/hp/hp-wmi.c
··· 120 120 .ec_tp_offset = HP_VICTUS_S_EC_THERMAL_PROFILE_OFFSET, 121 121 }; 122 122 123 + static const struct thermal_profile_params omen_v1_legacy_thermal_params = { 124 + .performance = HP_OMEN_V1_THERMAL_PROFILE_PERFORMANCE, 125 + .balanced = HP_OMEN_V1_THERMAL_PROFILE_DEFAULT, 126 + .low_power = HP_OMEN_V1_THERMAL_PROFILE_DEFAULT, 127 + .ec_tp_offset = HP_OMEN_EC_THERMAL_PROFILE_OFFSET, 128 + }; 129 + 123 130 /* 124 131 * A generic pointer for the currently-active board's thermal profile 125 132 * parameters. ··· 183 176 /* DMI Board names of Victus 16-r and Victus 16-s laptops */ 184 177 static const struct dmi_system_id victus_s_thermal_profile_boards[] __initconst = { 185 178 { 179 + .matches = { DMI_MATCH(DMI_BOARD_NAME, "8A4D") }, 180 + .driver_data = (void *)&omen_v1_legacy_thermal_params, 181 + }, 182 + { 186 183 .matches = { DMI_MATCH(DMI_BOARD_NAME, "8BAB") }, 187 184 .driver_data = (void *)&omen_v1_thermal_params, 188 185 }, 189 186 { 190 187 .matches = { DMI_MATCH(DMI_BOARD_NAME, "8BBE") }, 191 188 .driver_data = (void *)&victus_s_thermal_params, 189 + }, 190 + { 191 + .matches = { DMI_MATCH(DMI_BOARD_NAME, "8BCA") }, 192 + .driver_data = (void *)&omen_v1_thermal_params, 192 193 }, 193 194 { 194 195 .matches = { DMI_MATCH(DMI_BOARD_NAME, "8BCD") }, ··· 209 194 { 210 195 .matches = { DMI_MATCH(DMI_BOARD_NAME, "8BD5") }, 211 196 .driver_data = (void *)&victus_s_thermal_params, 197 + }, 198 + { 199 + .matches = { DMI_MATCH(DMI_BOARD_NAME, "8C76") }, 200 + .driver_data = (void *)&omen_v1_thermal_params, 212 201 }, 213 202 { 214 203 .matches = { DMI_MATCH(DMI_BOARD_NAME, "8C78") },
+9 -1
drivers/platform/x86/intel/hid.c
··· 438 438 return 0; 439 439 } 440 440 441 + static int intel_hid_pl_freeze_handler(struct device *device) 442 + { 443 + struct intel_hid_priv *priv = dev_get_drvdata(device); 444 + 445 + priv->wakeup_mode = false; 446 + return intel_hid_pl_suspend_handler(device); 447 + } 448 + 441 449 static int intel_hid_pl_resume_handler(struct device *device) 442 450 { 443 451 intel_hid_pm_complete(device); ··· 460 452 static const struct dev_pm_ops intel_hid_pl_pm_ops = { 461 453 .prepare = intel_hid_pm_prepare, 462 454 .complete = intel_hid_pm_complete, 463 - .freeze = intel_hid_pl_suspend_handler, 455 + .freeze = intel_hid_pl_freeze_handler, 464 456 .thaw = intel_hid_pl_resume_handler, 465 457 .restore = intel_hid_pl_resume_handler, 466 458 .suspend = intel_hid_pl_suspend_handler,
+4 -1
drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c
··· 558 558 { 559 559 u64 value; 560 560 561 + if (!static_cpu_has(X86_FEATURE_HWP)) 562 + return true; 563 + 561 564 rdmsrq(MSR_PM_ENABLE, value); 562 565 return !(value & 0x1); 563 566 } ··· 872 869 _read_pp_info("current_level", perf_level.current_level, SST_PP_STATUS_OFFSET, 873 870 SST_PP_LEVEL_START, SST_PP_LEVEL_WIDTH, SST_MUL_FACTOR_NONE) 874 871 _read_pp_info("locked", perf_level.locked, SST_PP_STATUS_OFFSET, 875 - SST_PP_LOCK_START, SST_PP_LEVEL_WIDTH, SST_MUL_FACTOR_NONE) 872 + SST_PP_LOCK_START, SST_PP_LOCK_WIDTH, SST_MUL_FACTOR_NONE) 876 873 _read_pp_info("feature_state", perf_level.feature_state, SST_PP_STATUS_OFFSET, 877 874 SST_PP_FEATURE_STATE_START, SST_PP_FEATURE_STATE_WIDTH, SST_MUL_FACTOR_NONE) 878 875 perf_level.enabled = !!(power_domain_info->sst_header.cap_mask & BIT(1));
-2
drivers/platform/x86/lenovo/wmi-gamezone.c
··· 31 31 #define LWMI_GZ_METHOD_ID_SMARTFAN_SET 44 32 32 #define LWMI_GZ_METHOD_ID_SMARTFAN_GET 45 33 33 34 - static BLOCKING_NOTIFIER_HEAD(gz_chain_head); 35 - 36 34 struct lwmi_gz_priv { 37 35 enum thermal_mode current_mode; 38 36 struct notifier_block event_nb;