Skip to content

Commit 2a4d911

Browse files
committed
Merge tag 'platform-drivers-x86-v6.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
Pull x86 platform driver fixes from Ilpo Järvinen: - acer-wmi: - Extend support for Acer Nitro AN515-58 - Fix missing capability check - amd/wbrf: Fix memory leak in wbrf_record() - asus-armoury: - Fix GA403U* matching - Fix FA608UM TDP data - Add many models - asus-wmi: Move OOBE presence check outside deprecation ifdef - hp-bioscfg: - Fix kernel panic in GET_INSTANCE_ID macro - Fix kobject warnings for empty attribute names - Correct GUID to uppercase (lowercase letter prevented autoloading the module) - mellanox: Fix SN5640/SN5610 LED platform data - docs: - alienware-wmi: Typo fix - amd_hsmp: Fix document link * tag 'platform-drivers-x86-v6.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (21 commits) platform/x86: acer-wmi: Fix missing capability check platform/x86: acer-wmi: Extend support for Acer Nitro AN515-58 platform/x86: asus-armoury: add support for GA403WW platform/x86: asus-armoury: keep the list ordered alphabetically platform/x86: asus-armoury: add support for G835L platform/x86: asus-armoury: fix ppt data for FA608UM platform/x86: hp-bioscfg: Fix automatic module loading platform/x86: hp-bioscfg: Fix kernel panic in GET_INSTANCE_ID macro platform/x86: hp-bioscfg: Fix kobject warnings for empty attribute names platform/x86: asus-wmi: fix sending OOBE at probe platform/x86: asus-armoury: add support for FA617XT platform/x86: asus-armoury: add support for FA401UV platform/x86: asus-armoury: add support for GV302XV platform/x86: asus-armoury: Add power limits for Asus G513QY platform/x86/amd: Fix memory leak in wbrf_record() platform/mellanox: Fix SN5640/SN5610 LED platform data docs: fix PPR for AMD EPYC broken link docs: alienware-wmi: fix typo platform/x86: asus-armoury: add support for GA403UV asus-armoury: fix ppt data for GA403U* renaming to GA403UI ...
2 parents 9731fa4 + 4b11f23 commit 2a4d911

10 files changed

Lines changed: 256 additions & 18 deletions

File tree

Documentation/admin-guide/laptops/alienware-wmi.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ information.
105105

106106
Manual fan control on the other hand, is not exposed directly by the AWCC
107107
interface. Instead it let's us control a fan `boost` value. This `boost` value
108-
has the following aproximate behavior over the fan pwm:
108+
has the following approximate behavior over the fan pwm:
109109

110110
::
111111

Documentation/arch/x86/amd_hsmp.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ set of mailbox registers.
1414

1515
More details on the interface can be found in chapter
1616
"7 Host System Management Port (HSMP)" of the family/model PPR
17-
Eg: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
17+
Eg: https://docs.amd.com/v/u/en-US/55898_B1_pub_0_50
1818

1919

2020
HSMP interface is supported on EPYC line of server CPUs and MI300A (APU).
@@ -185,7 +185,7 @@ what happened. The transaction returns 0 on success.
185185

186186
More details on the interface and message definitions can be found in chapter
187187
"7 Host System Management Port (HSMP)" of the respective family/model PPR
188-
eg: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
188+
eg: https://docs.amd.com/v/u/en-US/55898_B1_pub_0_50
189189

190190
User space C-APIs are made available by linking against the esmi library,
191191
which is provided by the E-SMS project https://www.amd.com/en/developer/e-sms.html.

Documentation/misc-devices/amd-sbi.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ and SB Temperature Sensor Interface (SB-TSI)).
1515
More details on the interface can be found in chapter
1616
"5 Advanced Platform Management Link (APML)" of the family/model PPR [1]_.
1717

18-
.. [1] https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
18+
.. [1] https://docs.amd.com/v/u/en-US/55898_B1_pub_0_50
1919
2020
2121
SBRMI device

drivers/platform/mellanox/mlx-platform.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7381,7 +7381,7 @@ static int __init mlxplat_dmi_ng400_hi171_matched(const struct dmi_system_id *dm
73817381
mlxplat_hotplug = &mlxplat_mlxcpld_ng800_hi171_data;
73827382
mlxplat_hotplug->deferred_nr =
73837383
mlxplat_msn21xx_channels[MLXPLAT_CPLD_GRP_CHNL_NUM - 1];
7384-
mlxplat_led = &mlxplat_default_ng_led_data;
7384+
mlxplat_led = &mlxplat_xdr_led_data;
73857385
mlxplat_regs_io = &mlxplat_default_ng_regs_io_data;
73867386
mlxplat_fan = &mlxplat_xdr_fan_data;
73877387

drivers/platform/x86/acer-wmi.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -455,6 +455,11 @@ static struct quirk_entry quirk_acer_travelmate_2490 = {
455455
.mailled = 1,
456456
};
457457

458+
static struct quirk_entry quirk_acer_nitro_an515_58 = {
459+
.predator_v4 = 1,
460+
.pwm = 1,
461+
};
462+
458463
static struct quirk_entry quirk_acer_predator_ph315_53 = {
459464
.turbo = 1,
460465
.cpu_fans = 1,
@@ -655,7 +660,7 @@ static const struct dmi_system_id acer_quirks[] __initconst = {
655660
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
656661
DMI_MATCH(DMI_PRODUCT_NAME, "Nitro AN515-58"),
657662
},
658-
.driver_data = &quirk_acer_predator_v4,
663+
.driver_data = &quirk_acer_nitro_an515_58,
659664
},
660665
{
661666
.callback = dmi_matched,
@@ -2065,7 +2070,8 @@ static int acer_toggle_turbo(void)
20652070
WMID_gaming_set_u64(0x1, ACER_CAP_TURBO_LED);
20662071

20672072
/* Set FAN mode to auto */
2068-
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_AUTO);
2073+
if (has_cap(ACER_CAP_TURBO_FAN))
2074+
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_AUTO);
20692075

20702076
/* Set OC to normal */
20712077
if (has_cap(ACER_CAP_TURBO_OC)) {
@@ -2079,7 +2085,8 @@ static int acer_toggle_turbo(void)
20792085
WMID_gaming_set_u64(0x10001, ACER_CAP_TURBO_LED);
20802086

20812087
/* Set FAN mode to turbo */
2082-
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_TURBO);
2088+
if (has_cap(ACER_CAP_TURBO_FAN))
2089+
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_TURBO);
20832090

20842091
/* Set OC to turbo mode */
20852092
if (has_cap(ACER_CAP_TURBO_OC)) {

drivers/platform/x86/amd/wbrf.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,10 @@ static int wbrf_record(struct acpi_device *adev, uint8_t action, struct wbrf_ran
104104
obj = acpi_evaluate_dsm(adev->handle, &wifi_acpi_dsm_guid,
105105
WBRF_REVISION, WBRF_RECORD, &argv4);
106106

107-
if (!obj)
107+
if (!obj) {
108+
kfree(tmp);
108109
return -EINVAL;
110+
}
109111

110112
if (obj->type != ACPI_TYPE_INTEGER) {
111113
ret = -EINVAL;

drivers/platform/x86/asus-armoury.h

Lines changed: 221 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,37 @@ struct power_data {
346346
* _def is not required and will be assumed to be default == max if missing.
347347
*/
348348
static const struct dmi_system_id power_limits[] = {
349+
{
350+
.matches = {
351+
DMI_MATCH(DMI_BOARD_NAME, "FA401UV"),
352+
},
353+
.driver_data = &(struct power_data) {
354+
.ac_data = &(struct power_limits) {
355+
.ppt_pl1_spl_min = 15,
356+
.ppt_pl1_spl_max = 80,
357+
.ppt_pl2_sppt_min = 35,
358+
.ppt_pl2_sppt_max = 80,
359+
.ppt_pl3_fppt_min = 35,
360+
.ppt_pl3_fppt_max = 80,
361+
.nv_dynamic_boost_min = 5,
362+
.nv_dynamic_boost_max = 25,
363+
.nv_temp_target_min = 75,
364+
.nv_temp_target_max = 87,
365+
.nv_tgp_min = 55,
366+
.nv_tgp_max = 75,
367+
},
368+
.dc_data = &(struct power_limits) {
369+
.ppt_pl1_spl_min = 25,
370+
.ppt_pl1_spl_max = 35,
371+
.ppt_pl2_sppt_min = 31,
372+
.ppt_pl2_sppt_max = 44,
373+
.ppt_pl3_fppt_min = 45,
374+
.ppt_pl3_fppt_max = 65,
375+
.nv_temp_target_min = 75,
376+
.nv_temp_target_max = 87,
377+
},
378+
},
379+
},
349380
{
350381
.matches = {
351382
DMI_MATCH(DMI_BOARD_NAME, "FA401W"),
@@ -580,8 +611,8 @@ static const struct dmi_system_id power_limits[] = {
580611
.ppt_pl2_sppt_def = 54,
581612
.ppt_pl2_sppt_max = 90,
582613
.ppt_pl3_fppt_min = 35,
583-
.ppt_pl3_fppt_def = 90,
584-
.ppt_pl3_fppt_max = 65,
614+
.ppt_pl3_fppt_def = 65,
615+
.ppt_pl3_fppt_max = 90,
585616
.nv_dynamic_boost_min = 10,
586617
.nv_dynamic_boost_max = 15,
587618
.nv_temp_target_min = 75,
@@ -701,6 +732,25 @@ static const struct dmi_system_id power_limits[] = {
701732
},
702733
},
703734
},
735+
{
736+
.matches = {
737+
DMI_MATCH(DMI_BOARD_NAME, "FA617XT"),
738+
},
739+
.driver_data = &(struct power_data) {
740+
.ac_data = &(struct power_limits) {
741+
.ppt_apu_sppt_min = 15,
742+
.ppt_apu_sppt_max = 80,
743+
.ppt_platform_sppt_min = 30,
744+
.ppt_platform_sppt_max = 145,
745+
},
746+
.dc_data = &(struct power_limits) {
747+
.ppt_apu_sppt_min = 25,
748+
.ppt_apu_sppt_max = 35,
749+
.ppt_platform_sppt_min = 45,
750+
.ppt_platform_sppt_max = 100,
751+
},
752+
},
753+
},
704754
{
705755
.matches = {
706756
DMI_MATCH(DMI_BOARD_NAME, "FX507VI"),
@@ -843,7 +893,7 @@ static const struct dmi_system_id power_limits[] = {
843893
},
844894
{
845895
.matches = {
846-
DMI_MATCH(DMI_BOARD_NAME, "GA403U"),
896+
DMI_MATCH(DMI_BOARD_NAME, "GA403UI"),
847897
},
848898
.driver_data = &(struct power_data) {
849899
.ac_data = &(struct power_limits) {
@@ -873,6 +923,70 @@ static const struct dmi_system_id power_limits[] = {
873923
.requires_fan_curve = true,
874924
},
875925
},
926+
{
927+
.matches = {
928+
DMI_MATCH(DMI_BOARD_NAME, "GA403UV"),
929+
},
930+
.driver_data = &(struct power_data) {
931+
.ac_data = &(struct power_limits) {
932+
.ppt_pl1_spl_min = 15,
933+
.ppt_pl1_spl_max = 80,
934+
.ppt_pl2_sppt_min = 25,
935+
.ppt_pl2_sppt_max = 80,
936+
.ppt_pl3_fppt_min = 35,
937+
.ppt_pl3_fppt_max = 80,
938+
.nv_dynamic_boost_min = 5,
939+
.nv_dynamic_boost_max = 25,
940+
.nv_temp_target_min = 75,
941+
.nv_temp_target_max = 87,
942+
.nv_tgp_min = 55,
943+
.nv_tgp_max = 65,
944+
},
945+
.dc_data = &(struct power_limits) {
946+
.ppt_pl1_spl_min = 15,
947+
.ppt_pl1_spl_max = 35,
948+
.ppt_pl2_sppt_min = 25,
949+
.ppt_pl2_sppt_max = 35,
950+
.ppt_pl3_fppt_min = 35,
951+
.ppt_pl3_fppt_max = 65,
952+
.nv_temp_target_min = 75,
953+
.nv_temp_target_max = 87,
954+
},
955+
.requires_fan_curve = true,
956+
},
957+
},
958+
{
959+
.matches = {
960+
DMI_MATCH(DMI_BOARD_NAME, "GA403WM"),
961+
},
962+
.driver_data = &(struct power_data) {
963+
.ac_data = &(struct power_limits) {
964+
.ppt_pl1_spl_min = 15,
965+
.ppt_pl1_spl_max = 80,
966+
.ppt_pl2_sppt_min = 25,
967+
.ppt_pl2_sppt_max = 80,
968+
.ppt_pl3_fppt_min = 35,
969+
.ppt_pl3_fppt_max = 80,
970+
.nv_dynamic_boost_min = 0,
971+
.nv_dynamic_boost_max = 15,
972+
.nv_temp_target_min = 75,
973+
.nv_temp_target_max = 87,
974+
.nv_tgp_min = 55,
975+
.nv_tgp_max = 85,
976+
},
977+
.dc_data = &(struct power_limits) {
978+
.ppt_pl1_spl_min = 15,
979+
.ppt_pl1_spl_max = 35,
980+
.ppt_pl2_sppt_min = 25,
981+
.ppt_pl2_sppt_max = 35,
982+
.ppt_pl3_fppt_min = 35,
983+
.ppt_pl3_fppt_max = 65,
984+
.nv_temp_target_min = 75,
985+
.nv_temp_target_max = 87,
986+
},
987+
.requires_fan_curve = true,
988+
},
989+
},
876990
{
877991
.matches = {
878992
DMI_MATCH(DMI_BOARD_NAME, "GA403WR"),
@@ -905,6 +1019,38 @@ static const struct dmi_system_id power_limits[] = {
9051019
.requires_fan_curve = true,
9061020
},
9071021
},
1022+
{
1023+
.matches = {
1024+
DMI_MATCH(DMI_BOARD_NAME, "GA403WW"),
1025+
},
1026+
.driver_data = &(struct power_data) {
1027+
.ac_data = &(struct power_limits) {
1028+
.ppt_pl1_spl_min = 15,
1029+
.ppt_pl1_spl_max = 80,
1030+
.ppt_pl2_sppt_min = 25,
1031+
.ppt_pl2_sppt_max = 80,
1032+
.ppt_pl3_fppt_min = 35,
1033+
.ppt_pl3_fppt_max = 80,
1034+
.nv_dynamic_boost_min = 0,
1035+
.nv_dynamic_boost_max = 25,
1036+
.nv_temp_target_min = 75,
1037+
.nv_temp_target_max = 87,
1038+
.nv_tgp_min = 80,
1039+
.nv_tgp_max = 95,
1040+
},
1041+
.dc_data = &(struct power_limits) {
1042+
.ppt_pl1_spl_min = 15,
1043+
.ppt_pl1_spl_max = 35,
1044+
.ppt_pl2_sppt_min = 25,
1045+
.ppt_pl2_sppt_max = 35,
1046+
.ppt_pl3_fppt_min = 35,
1047+
.ppt_pl3_fppt_max = 65,
1048+
.nv_temp_target_min = 75,
1049+
.nv_temp_target_max = 87,
1050+
},
1051+
.requires_fan_curve = true,
1052+
},
1053+
},
9081054
{
9091055
.matches = {
9101056
DMI_MATCH(DMI_BOARD_NAME, "GA503QR"),
@@ -1187,6 +1333,33 @@ static const struct dmi_system_id power_limits[] = {
11871333
},
11881334
},
11891335
},
1336+
{
1337+
.matches = {
1338+
DMI_MATCH(DMI_BOARD_NAME, "GV302XV"),
1339+
},
1340+
.driver_data = &(struct power_data) {
1341+
.ac_data = &(struct power_limits) {
1342+
.ppt_pl1_spl_min = 15,
1343+
.ppt_pl1_spl_max = 55,
1344+
.ppt_pl2_sppt_min = 25,
1345+
.ppt_pl2_sppt_max = 60,
1346+
.ppt_pl3_fppt_min = 35,
1347+
.ppt_pl3_fppt_max = 65,
1348+
.nv_temp_target_min = 75,
1349+
.nv_temp_target_max = 87,
1350+
},
1351+
.dc_data = &(struct power_limits) {
1352+
.ppt_pl1_spl_min = 15,
1353+
.ppt_pl1_spl_max = 35,
1354+
.ppt_pl2_sppt_min = 25,
1355+
.ppt_pl2_sppt_max = 35,
1356+
.ppt_pl3_fppt_min = 35,
1357+
.ppt_pl3_fppt_max = 65,
1358+
.nv_temp_target_min = 75,
1359+
.nv_temp_target_max = 87,
1360+
},
1361+
},
1362+
},
11901363
{
11911364
.matches = {
11921365
DMI_MATCH(DMI_BOARD_NAME, "GV601R"),
@@ -1316,6 +1489,22 @@ static const struct dmi_system_id power_limits[] = {
13161489
.requires_fan_curve = true,
13171490
},
13181491
},
1492+
{
1493+
.matches = {
1494+
DMI_MATCH(DMI_BOARD_NAME, "G513QY"),
1495+
},
1496+
.driver_data = &(struct power_data) {
1497+
.ac_data = &(struct power_limits) {
1498+
/* Advantage Edition Laptop, no PL1 or PL2 limits */
1499+
.ppt_apu_sppt_min = 15,
1500+
.ppt_apu_sppt_max = 100,
1501+
.ppt_platform_sppt_min = 70,
1502+
.ppt_platform_sppt_max = 190,
1503+
},
1504+
.dc_data = NULL,
1505+
.requires_fan_curve = true,
1506+
},
1507+
},
13191508
{
13201509
.matches = {
13211510
DMI_MATCH(DMI_BOARD_NAME, "G513R"),
@@ -1567,6 +1756,35 @@ static const struct dmi_system_id power_limits[] = {
15671756
.requires_fan_curve = true,
15681757
},
15691758
},
1759+
{
1760+
.matches = {
1761+
DMI_MATCH(DMI_BOARD_NAME, "G835LR"),
1762+
},
1763+
.driver_data = &(struct power_data) {
1764+
.ac_data = &(struct power_limits) {
1765+
.ppt_pl1_spl_min = 28,
1766+
.ppt_pl1_spl_def = 140,
1767+
.ppt_pl1_spl_max = 175,
1768+
.ppt_pl2_sppt_min = 28,
1769+
.ppt_pl2_sppt_max = 175,
1770+
.nv_dynamic_boost_min = 5,
1771+
.nv_dynamic_boost_max = 25,
1772+
.nv_temp_target_min = 75,
1773+
.nv_temp_target_max = 87,
1774+
.nv_tgp_min = 65,
1775+
.nv_tgp_max = 115,
1776+
},
1777+
.dc_data = &(struct power_limits) {
1778+
.ppt_pl1_spl_min = 25,
1779+
.ppt_pl1_spl_max = 55,
1780+
.ppt_pl2_sppt_min = 25,
1781+
.ppt_pl2_sppt_max = 70,
1782+
.nv_temp_target_min = 75,
1783+
.nv_temp_target_max = 87,
1784+
},
1785+
.requires_fan_curve = true,
1786+
},
1787+
},
15701788
{
15711789
.matches = {
15721790
DMI_MATCH(DMI_BOARD_NAME, "G835LW"),

0 commit comments

Comments
 (0)