Skip to content

Commit 9528d5c

Browse files
committed
Merge tag 'platform-drivers-x86-v6.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
Pull x86 platform driver fixes from Ilpo Järvinen: - alienware-wmi-wmax: Area-51, x16, and 16X Aurora laptops support - asus-armoury: - Fix FA507R PPT data - Add TDP data for more laptop models - asus-nb-wmi: Asus Zenbook 14 display toggle key support - dell-lis3lv02d: Dell Latitude 5400 support - hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing - ibm_rtl: Fix EBDA signature search pointer arithmetic - ideapad-laptop: Reassign KEY_CUT to KEY_SELECTIVE_SCREENSHOT - intel/pmt: - Fix kobject memory leak on init failure - Use valid pointers on error handling path - intel/vsec: Correct kernel doc comments - mellanox: mlxbf-pmc: Fix event names - msi-laptop: Add sysfs_remove_group() - samsumg-galaxybook: Do not cast pointer to a shorter type - think-lmi: WMI certificate thumbprint support for ThinkCenter - uniwill: Tuxedo Book BA15 Gen10 support * tag 'platform-drivers-x86-v6.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (22 commits) platform/x86: asus-armoury: add support for G835LW platform/x86: asus-armoury: fix ppt data for FA507R platform/x86/intel/pmt/discovery: use valid device pointer in dev_err_probe platform/x86: hp-bioscfg: Fix out-of-bounds array access in ACPI package parsing platform/x86: asus-armoury: add support for G615LR platform/x86: asus-armoury: add support for FA608UM platform/x86: asus-armoury: add support for GA403WR platform/x86: asus-armoury: add support for GU605CR platform/x86: ideapad-laptop: Reassign KEY_CUT to KEY_SELECTIVE_SCREENSHOT platform/x86: samsung-galaxybook: Fix problematic pointer cast platform/x86/intel/pmt: Fix kobject memory leak on init failure platform/x86/intel/vsec: correct kernel-doc comments platform/x86: ibm_rtl: fix EBDA signature search pointer arithmetic platform/x86: msi-laptop: add missing sysfs_remove_group() platform/x86: think-lmi: Add WMI certificate thumbprint support for ThinkCenter platform/x86: dell-lis3lv02d: Add Latitude 5400 platform/mellanox: mlxbf-pmc: Remove trailing whitespaces from event names platform/x86: asus-nb-wmi: Add keymap for display toggle platform/x86/uniwill: Add TUXEDO Book BA15 Gen10 platform/x86: alienware-wmi-wmax: Add support for Alienware 16X Aurora ...
2 parents 349bd28 + c6703f1 commit 9528d5c

18 files changed

Lines changed: 265 additions & 31 deletions

drivers/platform/mellanox/mlxbf-pmc.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -801,18 +801,18 @@ static const struct mlxbf_pmc_events mlxbf_pmc_llt_miss_events[] = {
801801
{11, "GDC_MISS_MACHINE_CHI_TXDAT"},
802802
{12, "GDC_MISS_MACHINE_CHI_RXDAT"},
803803
{13, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC0_0"},
804-
{14, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC0_1 "},
804+
{14, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC0_1"},
805805
{15, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC0_2"},
806-
{16, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC0_3 "},
807-
{17, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_0 "},
808-
{18, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_1 "},
809-
{19, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_2 "},
810-
{20, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_3 "},
806+
{16, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC0_3"},
807+
{17, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_0"},
808+
{18, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_1"},
809+
{19, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_2"},
810+
{20, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC1_3"},
811811
{21, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE0_0"},
812812
{22, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE0_1"},
813813
{23, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE0_2"},
814814
{24, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE0_3"},
815-
{25, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE1_0 "},
815+
{25, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE1_0"},
816816
{26, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE1_1"},
817817
{27, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE1_2"},
818818
{28, "GDC_MISS_MACHINE_G_FIFO_FF_EXEC_DONE1_3"},

drivers/platform/x86/asus-armoury.h

Lines changed: 173 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -449,12 +449,27 @@ static const struct dmi_system_id power_limits[] = {
449449
.ac_data = &(struct power_limits) {
450450
.ppt_pl1_spl_min = 15,
451451
.ppt_pl1_spl_max = 80,
452-
.ppt_pl2_sppt_min = 25,
452+
.ppt_pl2_sppt_min = 35,
453453
.ppt_pl2_sppt_max = 80,
454454
.ppt_pl3_fppt_min = 35,
455-
.ppt_pl3_fppt_max = 80
455+
.ppt_pl3_fppt_max = 80,
456+
.nv_dynamic_boost_min = 5,
457+
.nv_dynamic_boost_max = 25,
458+
.nv_temp_target_min = 75,
459+
.nv_temp_target_max = 87,
460+
},
461+
.dc_data = &(struct power_limits) {
462+
.ppt_pl1_spl_min = 15,
463+
.ppt_pl1_spl_def = 45,
464+
.ppt_pl1_spl_max = 65,
465+
.ppt_pl2_sppt_min = 35,
466+
.ppt_pl2_sppt_def = 54,
467+
.ppt_pl2_sppt_max = 65,
468+
.ppt_pl3_fppt_min = 35,
469+
.ppt_pl3_fppt_max = 65,
470+
.nv_temp_target_min = 75,
471+
.nv_temp_target_max = 87,
456472
},
457-
.dc_data = NULL,
458473
},
459474
},
460475
{
@@ -552,6 +567,42 @@ static const struct dmi_system_id power_limits[] = {
552567
},
553568
},
554569
},
570+
{
571+
.matches = {
572+
DMI_MATCH(DMI_BOARD_NAME, "FA608UM"),
573+
},
574+
.driver_data = &(struct power_data) {
575+
.ac_data = &(struct power_limits) {
576+
.ppt_pl1_spl_min = 15,
577+
.ppt_pl1_spl_def = 45,
578+
.ppt_pl1_spl_max = 90,
579+
.ppt_pl2_sppt_min = 35,
580+
.ppt_pl2_sppt_def = 54,
581+
.ppt_pl2_sppt_max = 90,
582+
.ppt_pl3_fppt_min = 35,
583+
.ppt_pl3_fppt_def = 90,
584+
.ppt_pl3_fppt_max = 65,
585+
.nv_dynamic_boost_min = 10,
586+
.nv_dynamic_boost_max = 15,
587+
.nv_temp_target_min = 75,
588+
.nv_temp_target_max = 87,
589+
.nv_tgp_min = 55,
590+
.nv_tgp_max = 100,
591+
},
592+
.dc_data = &(struct power_limits) {
593+
.ppt_pl1_spl_min = 15,
594+
.ppt_pl1_spl_def = 45,
595+
.ppt_pl1_spl_max = 65,
596+
.ppt_pl2_sppt_min = 35,
597+
.ppt_pl2_sppt_def = 54,
598+
.ppt_pl2_sppt_max = 65,
599+
.ppt_pl3_fppt_min = 35,
600+
.ppt_pl3_fppt_max = 65,
601+
.nv_temp_target_min = 75,
602+
.nv_temp_target_max = 87,
603+
},
604+
},
605+
},
555606
{
556607
.matches = {
557608
DMI_MATCH(DMI_BOARD_NAME, "FA608WI"),
@@ -822,6 +873,38 @@ static const struct dmi_system_id power_limits[] = {
822873
.requires_fan_curve = true,
823874
},
824875
},
876+
{
877+
.matches = {
878+
DMI_MATCH(DMI_BOARD_NAME, "GA403WR"),
879+
},
880+
.driver_data = &(struct power_data) {
881+
.ac_data = &(struct power_limits) {
882+
.ppt_pl1_spl_min = 15,
883+
.ppt_pl1_spl_max = 80,
884+
.ppt_pl2_sppt_min = 25,
885+
.ppt_pl2_sppt_max = 80,
886+
.ppt_pl3_fppt_min = 35,
887+
.ppt_pl3_fppt_max = 80,
888+
.nv_dynamic_boost_min = 0,
889+
.nv_dynamic_boost_max = 25,
890+
.nv_temp_target_min = 75,
891+
.nv_temp_target_max = 87,
892+
.nv_tgp_min = 80,
893+
.nv_tgp_max = 95,
894+
},
895+
.dc_data = &(struct power_limits) {
896+
.ppt_pl1_spl_min = 15,
897+
.ppt_pl1_spl_max = 35,
898+
.ppt_pl2_sppt_min = 25,
899+
.ppt_pl2_sppt_max = 35,
900+
.ppt_pl3_fppt_min = 35,
901+
.ppt_pl3_fppt_max = 65,
902+
.nv_temp_target_min = 75,
903+
.nv_temp_target_max = 87,
904+
},
905+
.requires_fan_curve = true,
906+
},
907+
},
825908
{
826909
.matches = {
827910
DMI_MATCH(DMI_BOARD_NAME, "GA503QR"),
@@ -950,6 +1033,35 @@ static const struct dmi_system_id power_limits[] = {
9501033
},
9511034
},
9521035
},
1036+
{
1037+
.matches = {
1038+
DMI_MATCH(DMI_BOARD_NAME, "GU605CR"),
1039+
},
1040+
.driver_data = &(struct power_data) {
1041+
.ac_data = &(struct power_limits) {
1042+
.ppt_pl1_spl_min = 30,
1043+
.ppt_pl1_spl_max = 85,
1044+
.ppt_pl2_sppt_min = 38,
1045+
.ppt_pl2_sppt_max = 110,
1046+
.nv_dynamic_boost_min = 5,
1047+
.nv_dynamic_boost_max = 20,
1048+
.nv_temp_target_min = 75,
1049+
.nv_temp_target_max = 87,
1050+
.nv_tgp_min = 80,
1051+
.nv_tgp_def = 90,
1052+
.nv_tgp_max = 105,
1053+
},
1054+
.dc_data = &(struct power_limits) {
1055+
.ppt_pl1_spl_min = 30,
1056+
.ppt_pl1_spl_max = 85,
1057+
.ppt_pl2_sppt_min = 38,
1058+
.ppt_pl2_sppt_max = 110,
1059+
.nv_temp_target_min = 75,
1060+
.nv_temp_target_max = 87,
1061+
},
1062+
.requires_fan_curve = true,
1063+
},
1064+
},
9531065
{
9541066
.matches = {
9551067
DMI_MATCH(DMI_BOARD_NAME, "GU605CW"),
@@ -1260,6 +1372,35 @@ static const struct dmi_system_id power_limits[] = {
12601372
.requires_fan_curve = true,
12611373
},
12621374
},
1375+
{
1376+
.matches = {
1377+
DMI_MATCH(DMI_BOARD_NAME, "G615LR"),
1378+
},
1379+
.driver_data = &(struct power_data) {
1380+
.ac_data = &(struct power_limits) {
1381+
.ppt_pl1_spl_min = 28,
1382+
.ppt_pl1_spl_def = 140,
1383+
.ppt_pl1_spl_max = 175,
1384+
.ppt_pl2_sppt_min = 28,
1385+
.ppt_pl2_sppt_max = 175,
1386+
.nv_temp_target_min = 75,
1387+
.nv_temp_target_max = 87,
1388+
.nv_dynamic_boost_min = 5,
1389+
.nv_dynamic_boost_max = 25,
1390+
.nv_tgp_min = 65,
1391+
.nv_tgp_max = 115,
1392+
},
1393+
.dc_data = &(struct power_limits) {
1394+
.ppt_pl1_spl_min = 25,
1395+
.ppt_pl1_spl_max = 55,
1396+
.ppt_pl2_sppt_min = 25,
1397+
.ppt_pl2_sppt_max = 70,
1398+
.nv_temp_target_min = 75,
1399+
.nv_temp_target_max = 87,
1400+
},
1401+
.requires_fan_curve = true,
1402+
},
1403+
},
12631404
{
12641405
.matches = {
12651406
DMI_MATCH(DMI_BOARD_NAME, "G634J"),
@@ -1426,6 +1567,35 @@ static const struct dmi_system_id power_limits[] = {
14261567
.requires_fan_curve = true,
14271568
},
14281569
},
1570+
{
1571+
.matches = {
1572+
DMI_MATCH(DMI_BOARD_NAME, "G835LW"),
1573+
},
1574+
.driver_data = &(struct power_data) {
1575+
.ac_data = &(struct power_limits) {
1576+
.ppt_pl1_spl_min = 28,
1577+
.ppt_pl1_spl_def = 140,
1578+
.ppt_pl1_spl_max = 175,
1579+
.ppt_pl2_sppt_min = 28,
1580+
.ppt_pl2_sppt_max = 175,
1581+
.nv_dynamic_boost_min = 5,
1582+
.nv_dynamic_boost_max = 25,
1583+
.nv_temp_target_min = 75,
1584+
.nv_temp_target_max = 87,
1585+
.nv_tgp_min = 80,
1586+
.nv_tgp_max = 150,
1587+
},
1588+
.dc_data = &(struct power_limits) {
1589+
.ppt_pl1_spl_min = 25,
1590+
.ppt_pl1_spl_max = 55,
1591+
.ppt_pl2_sppt_min = 25,
1592+
.ppt_pl2_sppt_max = 70,
1593+
.nv_temp_target_min = 75,
1594+
.nv_temp_target_max = 87,
1595+
},
1596+
.requires_fan_curve = true,
1597+
},
1598+
},
14291599
{
14301600
.matches = {
14311601
DMI_MATCH(DMI_BOARD_NAME, "H7606W"),

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -580,6 +580,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
580580
{ KE_KEY, 0x2a, { KEY_SELECTIVE_SCREENSHOT } },
581581
{ KE_IGNORE, 0x2b, }, /* PrintScreen (also send via PS/2) on newer models */
582582
{ KE_IGNORE, 0x2c, }, /* CapsLock (also send via PS/2) on newer models */
583+
{ KE_KEY, 0x2d, { KEY_DISPLAYTOGGLE } },
583584
{ KE_KEY, 0x30, { KEY_VOLUMEUP } },
584585
{ KE_KEY, 0x31, { KEY_VOLUMEDOWN } },
585586
{ KE_KEY, 0x32, { KEY_MUTE } },

drivers/platform/x86/dell/alienware-wmi-wmax.c

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,30 @@ static struct awcc_quirks generic_quirks = {
8989
static struct awcc_quirks empty_quirks;
9090

9191
static const struct dmi_system_id awcc_dmi_table[] __initconst = {
92+
{
93+
.ident = "Alienware 16 Area-51",
94+
.matches = {
95+
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
96+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware 16 Area-51"),
97+
},
98+
.driver_data = &g_series_quirks,
99+
},
100+
{
101+
.ident = "Alienware 16X Aurora",
102+
.matches = {
103+
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
104+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware 16X Aurora"),
105+
},
106+
.driver_data = &g_series_quirks,
107+
},
108+
{
109+
.ident = "Alienware 18 Area-51",
110+
.matches = {
111+
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
112+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware 18 Area-51"),
113+
},
114+
.driver_data = &g_series_quirks,
115+
},
92116
{
93117
.ident = "Alienware 16 Aurora",
94118
.matches = {
@@ -161,6 +185,14 @@ static const struct dmi_system_id awcc_dmi_table[] __initconst = {
161185
},
162186
.driver_data = &generic_quirks,
163187
},
188+
{
189+
.ident = "Alienware x16",
190+
.matches = {
191+
DMI_MATCH(DMI_SYS_VENDOR, "Alienware"),
192+
DMI_MATCH(DMI_PRODUCT_NAME, "Alienware x16"),
193+
},
194+
.driver_data = &g_series_quirks,
195+
},
164196
{
165197
.ident = "Alienware x17",
166198
.matches = {

drivers/platform/x86/dell/dell-lis3lv02d.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ static const struct dmi_system_id lis3lv02d_devices[] __initconst = {
4444
/*
4545
* Additional individual entries were added after verification.
4646
*/
47+
DELL_LIS3LV02D_DMI_ENTRY("Latitude 5400", 0x29),
4748
DELL_LIS3LV02D_DMI_ENTRY("Latitude 5480", 0x29),
4849
DELL_LIS3LV02D_DMI_ENTRY("Latitude 5500", 0x29),
4950
DELL_LIS3LV02D_DMI_ENTRY("Latitude E6330", 0x29),

drivers/platform/x86/hp/hp-bioscfg/enum-attributes.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ static int hp_populate_enumeration_elements_from_package(union acpi_object *enum
207207
case PREREQUISITES:
208208
size = min_t(u32, enum_data->common.prerequisites_size, MAX_PREREQUISITES_SIZE);
209209
for (reqs = 0; reqs < size; reqs++) {
210-
if (elem >= enum_obj_count) {
210+
if (elem + reqs >= enum_obj_count) {
211211
pr_err("Error enum-objects package is too small\n");
212212
return -EINVAL;
213213
}
@@ -255,7 +255,7 @@ static int hp_populate_enumeration_elements_from_package(union acpi_object *enum
255255

256256
for (pos_values = 0; pos_values < size && pos_values < MAX_VALUES_SIZE;
257257
pos_values++) {
258-
if (elem >= enum_obj_count) {
258+
if (elem + pos_values >= enum_obj_count) {
259259
pr_err("Error enum-objects package is too small\n");
260260
return -EINVAL;
261261
}

drivers/platform/x86/hp/hp-bioscfg/int-attributes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ static int hp_populate_integer_elements_from_package(union acpi_object *integer_
227227
size = min_t(u32, integer_data->common.prerequisites_size, MAX_PREREQUISITES_SIZE);
228228

229229
for (reqs = 0; reqs < size; reqs++) {
230-
if (elem >= integer_obj_count) {
230+
if (elem + reqs >= integer_obj_count) {
231231
pr_err("Error elem-objects package is too small\n");
232232
return -EINVAL;
233233
}

drivers/platform/x86/hp/hp-bioscfg/order-list-attributes.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,11 @@ static int hp_populate_ordered_list_elements_from_package(union acpi_object *ord
216216
size = min_t(u32, ordered_list_data->common.prerequisites_size,
217217
MAX_PREREQUISITES_SIZE);
218218
for (reqs = 0; reqs < size; reqs++) {
219+
if (elem + reqs >= order_obj_count) {
220+
pr_err("Error elem-objects package is too small\n");
221+
return -EINVAL;
222+
}
223+
219224
ret = hp_convert_hexstr_to_str(order_obj[elem + reqs].string.pointer,
220225
order_obj[elem + reqs].string.length,
221226
&str_value, &value_len);

drivers/platform/x86/hp/hp-bioscfg/passwdobj-attributes.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,11 @@ static int hp_populate_password_elements_from_package(union acpi_object *passwor
303303
MAX_PREREQUISITES_SIZE);
304304

305305
for (reqs = 0; reqs < size; reqs++) {
306+
if (elem + reqs >= password_obj_count) {
307+
pr_err("Error elem-objects package is too small\n");
308+
return -EINVAL;
309+
}
310+
306311
ret = hp_convert_hexstr_to_str(password_obj[elem + reqs].string.pointer,
307312
password_obj[elem + reqs].string.length,
308313
&str_value, &value_len);

drivers/platform/x86/hp/hp-bioscfg/string-attributes.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ static int hp_populate_string_elements_from_package(union acpi_object *string_ob
217217
MAX_PREREQUISITES_SIZE);
218218

219219
for (reqs = 0; reqs < size; reqs++) {
220-
if (elem >= string_obj_count) {
220+
if (elem + reqs >= string_obj_count) {
221221
pr_err("Error elem-objects package is too small\n");
222222
return -EINVAL;
223223
}

0 commit comments

Comments
 (0)