Skip to content

Commit 51088b9

Browse files
committed
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
2 parents bbeb83d + fbddf68 commit 51088b9

9 files changed

Lines changed: 113 additions & 8 deletions

File tree

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3986,7 +3986,7 @@ F: drivers/hwmon/asus-ec-sensors.c
39863986
ASUS NOTEBOOKS AND EEEPC ACPI/WMI EXTRAS DRIVERS
39873987
M: Corentin Chary <[email protected]>
39883988
M: Luke D. Jones <[email protected]>
3989-
M: Denis Benato <[email protected]>
3989+
M: Denis Benato <[email protected]>
39903990
39913991
S: Maintained
39923992
W: https://asus-linux.org/

drivers/platform/olpc/olpc-xo175-ec.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ static int olpc_xo175_ec_cmd(u8 cmd, u8 *inbuf, size_t inlen, u8 *resp,
482482
dev_dbg(dev, "CMD %x, %zd bytes expected\n", cmd, resp_len);
483483

484484
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);
486486
return -EOVERFLOW;
487487
}
488488

drivers/platform/x86/amd/hsmp/hsmp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ static int __hsmp_send_message(struct hsmp_socket *sock, struct hsmp_message *ms
117117
}
118118

119119
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",
121121
msg->msg_id, mbox_status);
122122
return -ETIMEDOUT;
123123
} else if (unlikely(mbox_status == HSMP_ERR_INVALID_MSG)) {

drivers/platform/x86/asus-armoury.h

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1080,6 +1080,20 @@ static const struct dmi_system_id power_limits[] = {
10801080
.requires_fan_curve = true,
10811081
},
10821082
},
1083+
{
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+
},
10831097
{
10841098
.matches = {
10851099
DMI_MATCH(DMI_BOARD_NAME, "GA503QR"),
@@ -1518,6 +1532,35 @@ static const struct dmi_system_id power_limits[] = {
15181532
},
15191533
},
15201534
},
1535+
{
1536+
.matches = {
1537+
DMI_MATCH(DMI_BOARD_NAME, "GZ302EA"),
1538+
},
1539+
.driver_data = &(struct power_data) {
1540+
.ac_data = &(struct power_limits) {
1541+
.ppt_pl1_spl_min = 28,
1542+
.ppt_pl1_spl_def = 60,
1543+
.ppt_pl1_spl_max = 80,
1544+
.ppt_pl2_sppt_min = 32,
1545+
.ppt_pl2_sppt_def = 75,
1546+
.ppt_pl2_sppt_max = 92,
1547+
.ppt_pl3_fppt_min = 45,
1548+
.ppt_pl3_fppt_def = 86,
1549+
.ppt_pl3_fppt_max = 93,
1550+
},
1551+
.dc_data = &(struct power_limits) {
1552+
.ppt_pl1_spl_min = 28,
1553+
.ppt_pl1_spl_def = 45,
1554+
.ppt_pl1_spl_max = 80,
1555+
.ppt_pl2_sppt_min = 32,
1556+
.ppt_pl2_sppt_def = 52,
1557+
.ppt_pl2_sppt_max = 92,
1558+
.ppt_pl3_fppt_min = 45,
1559+
.ppt_pl3_fppt_def = 71,
1560+
.ppt_pl3_fppt_max = 93,
1561+
},
1562+
},
1563+
},
15211564
{
15221565
.matches = {
15231566
DMI_MATCH(DMI_BOARD_NAME, "G513I"),
@@ -1596,6 +1639,40 @@ static const struct dmi_system_id power_limits[] = {
15961639
.requires_fan_curve = true,
15971640
},
15981641
},
1642+
{
1643+
.matches = {
1644+
DMI_MATCH(DMI_BOARD_NAME, "G614FP"),
1645+
},
1646+
.driver_data = &(struct power_data) {
1647+
.ac_data = &(struct power_limits) {
1648+
.ppt_pl1_spl_min = 30,
1649+
.ppt_pl1_spl_max = 120,
1650+
.ppt_pl2_sppt_min = 65,
1651+
.ppt_pl2_sppt_def = 140,
1652+
.ppt_pl2_sppt_max = 165,
1653+
.ppt_pl3_fppt_min = 65,
1654+
.ppt_pl3_fppt_def = 140,
1655+
.ppt_pl3_fppt_max = 165,
1656+
.nv_temp_target_min = 75,
1657+
.nv_temp_target_max = 87,
1658+
.nv_dynamic_boost_min = 5,
1659+
.nv_dynamic_boost_max = 15,
1660+
.nv_tgp_min = 50,
1661+
.nv_tgp_max = 100,
1662+
},
1663+
.dc_data = &(struct power_limits) {
1664+
.ppt_pl1_spl_min = 25,
1665+
.ppt_pl1_spl_max = 65,
1666+
.ppt_pl2_sppt_min = 25,
1667+
.ppt_pl2_sppt_max = 65,
1668+
.ppt_pl3_fppt_min = 35,
1669+
.ppt_pl3_fppt_max = 75,
1670+
.nv_temp_target_min = 75,
1671+
.nv_temp_target_max = 87,
1672+
},
1673+
.requires_fan_curve = true,
1674+
},
1675+
},
15991676
{
16001677
.matches = {
16011678
DMI_MATCH(DMI_BOARD_NAME, "G614J"),

drivers/platform/x86/asus-nb-wmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ static const struct dmi_system_id asus_quirks[] = {
548548
.callback = dmi_matched,
549549
.ident = "ASUS ROG Z13",
550550
.matches = {
551-
DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
551+
DMI_MATCH(DMI_SYS_VENDOR, "ASUS"),
552552
DMI_MATCH(DMI_PRODUCT_NAME, "ROG Flow Z13"),
553553
},
554554
.driver_data = &quirk_asus_z13,

drivers/platform/x86/hp/hp-wmi.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,13 @@ static const struct thermal_profile_params omen_v1_thermal_params = {
120120
.ec_tp_offset = HP_VICTUS_S_EC_THERMAL_PROFILE_OFFSET,
121121
};
122122

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+
123130
/*
124131
* A generic pointer for the currently-active board's thermal profile
125132
* parameters.
@@ -175,6 +182,10 @@ static const char * const victus_thermal_profile_boards[] = {
175182

176183
/* DMI Board names of Victus 16-r and Victus 16-s laptops */
177184
static const struct dmi_system_id victus_s_thermal_profile_boards[] __initconst = {
185+
{
186+
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8A4D") },
187+
.driver_data = (void *)&omen_v1_legacy_thermal_params,
188+
},
178189
{
179190
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8BAB") },
180191
.driver_data = (void *)&omen_v1_thermal_params,
@@ -183,6 +194,10 @@ static const struct dmi_system_id victus_s_thermal_profile_boards[] __initconst
183194
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8BBE") },
184195
.driver_data = (void *)&victus_s_thermal_params,
185196
},
197+
{
198+
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8BCA") },
199+
.driver_data = (void *)&omen_v1_thermal_params,
200+
},
186201
{
187202
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8BCD") },
188203
.driver_data = (void *)&omen_v1_thermal_params,
@@ -195,6 +210,10 @@ static const struct dmi_system_id victus_s_thermal_profile_boards[] __initconst
195210
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8BD5") },
196211
.driver_data = (void *)&victus_s_thermal_params,
197212
},
213+
{
214+
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8C76") },
215+
.driver_data = (void *)&omen_v1_thermal_params,
216+
},
198217
{
199218
.matches = { DMI_MATCH(DMI_BOARD_NAME, "8C78") },
200219
.driver_data = (void *)&omen_v1_thermal_params,

drivers/platform/x86/intel/hid.c

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,14 @@ static int intel_hid_pl_suspend_handler(struct device *device)
438438
return 0;
439439
}
440440

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+
441449
static int intel_hid_pl_resume_handler(struct device *device)
442450
{
443451
intel_hid_pm_complete(device);
@@ -452,7 +460,7 @@ static int intel_hid_pl_resume_handler(struct device *device)
452460
static const struct dev_pm_ops intel_hid_pl_pm_ops = {
453461
.prepare = intel_hid_pm_prepare,
454462
.complete = intel_hid_pm_complete,
455-
.freeze = intel_hid_pl_suspend_handler,
463+
.freeze = intel_hid_pl_freeze_handler,
456464
.thaw = intel_hid_pl_resume_handler,
457465
.restore = intel_hid_pl_resume_handler,
458466
.suspend = intel_hid_pl_suspend_handler,

drivers/platform/x86/intel/speed_select_if/isst_tpmi_core.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -558,6 +558,9 @@ static bool disable_dynamic_sst_features(void)
558558
{
559559
u64 value;
560560

561+
if (!static_cpu_has(X86_FEATURE_HWP))
562+
return true;
563+
561564
rdmsrq(MSR_PM_ENABLE, value);
562565
return !(value & 0x1);
563566
}
@@ -869,7 +872,7 @@ static int isst_if_get_perf_level(void __user *argp)
869872
_read_pp_info("current_level", perf_level.current_level, SST_PP_STATUS_OFFSET,
870873
SST_PP_LEVEL_START, SST_PP_LEVEL_WIDTH, SST_MUL_FACTOR_NONE)
871874
_read_pp_info("locked", perf_level.locked, SST_PP_STATUS_OFFSET,
872-
SST_PP_LOCK_START, SST_PP_LEVEL_WIDTH, SST_MUL_FACTOR_NONE)
875+
SST_PP_LOCK_START, SST_PP_LOCK_WIDTH, SST_MUL_FACTOR_NONE)
873876
_read_pp_info("feature_state", perf_level.feature_state, SST_PP_STATUS_OFFSET,
874877
SST_PP_FEATURE_STATE_START, SST_PP_FEATURE_STATE_WIDTH, SST_MUL_FACTOR_NONE)
875878
perf_level.enabled = !!(power_domain_info->sst_header.cap_mask & BIT(1));

drivers/platform/x86/lenovo/wmi-gamezone.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131
#define LWMI_GZ_METHOD_ID_SMARTFAN_SET 44
3232
#define LWMI_GZ_METHOD_ID_SMARTFAN_GET 45
3333

34-
static BLOCKING_NOTIFIER_HEAD(gz_chain_head);
35-
3634
struct lwmi_gz_priv {
3735
enum thermal_mode current_mode;
3836
struct notifier_block event_nb;

0 commit comments

Comments
 (0)