platform-drivers-x86 for v6.19-3
Fixes and New HW Support
- 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
- docs:
- alienware-wmi: Typo fix
- amd_hsmp: Fix document link
- 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
The following is an automated shortlog grouped by driver:
acer-wmi:
- Extend support for Acer Nitro AN515-58
- Fix missing capability check
amd:
- Fix memory leak in wbrf_record()
asus-armoury:
- Add power limits for Asus G513QY
- add support for FA401UV
- add support for FA617XT
- add support for G835L
- add support for GA403UV
- add support for GA403WM
- add support for GA403WW
- add support for GV302XV
- fix ppt data for FA608UM
- fix ppt data for GA403U* renaming to GA403UI
- keep the list ordered alphabetically
asus-wmi:
- fix sending OOBE at probe
docs: alienware-wmi:
- fix typo
docs:
- fix PPR for AMD EPYC broken link
hp-bioscfg:
- Fix automatic module loading
- Fix kernel panic in GET_INSTANCE_ID macro
- Fix kobject warnings for empty attribute names
mellanox:
- Fix SN5640/SN5610 LED platform data
-----BEGIN PGP SIGNATURE-----
iHUEABYIAB0WIQSCSUwRdwTNL2MhaBlZrE9hU+XOMQUCaXOZ7AAKCRBZrE9hU+XO
MRyUAP4m5mllFdMRFeuLKq76tZPuXS0qTE/5KJ0YD+ytSoM8FAEAhpQkZ/hF4lV9
5i/ANXjkOkeWRblguPuBwJ+8UNOa2AY=
=chCU
-----END PGP SIGNATURE-----
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
...
master
commit
2a4d91142e
|
|
@ -105,7 +105,7 @@ information.
|
|||
|
||||
Manual fan control on the other hand, is not exposed directly by the AWCC
|
||||
interface. Instead it let's us control a fan `boost` value. This `boost` value
|
||||
has the following aproximate behavior over the fan pwm:
|
||||
has the following approximate behavior over the fan pwm:
|
||||
|
||||
::
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ set of mailbox registers.
|
|||
|
||||
More details on the interface can be found in chapter
|
||||
"7 Host System Management Port (HSMP)" of the family/model PPR
|
||||
Eg: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
|
||||
Eg: https://docs.amd.com/v/u/en-US/55898_B1_pub_0_50
|
||||
|
||||
|
||||
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.
|
|||
|
||||
More details on the interface and message definitions can be found in chapter
|
||||
"7 Host System Management Port (HSMP)" of the respective family/model PPR
|
||||
eg: https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
|
||||
eg: https://docs.amd.com/v/u/en-US/55898_B1_pub_0_50
|
||||
|
||||
User space C-APIs are made available by linking against the esmi library,
|
||||
which is provided by the E-SMS project https://www.amd.com/en/developer/e-sms.html.
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ and SB Temperature Sensor Interface (SB-TSI)).
|
|||
More details on the interface can be found in chapter
|
||||
"5 Advanced Platform Management Link (APML)" of the family/model PPR [1]_.
|
||||
|
||||
.. [1] https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/programmer-references/55898_B1_pub_0_50.zip
|
||||
.. [1] https://docs.amd.com/v/u/en-US/55898_B1_pub_0_50
|
||||
|
||||
|
||||
SBRMI device
|
||||
|
|
|
|||
|
|
@ -7381,7 +7381,7 @@ static int __init mlxplat_dmi_ng400_hi171_matched(const struct dmi_system_id *dm
|
|||
mlxplat_hotplug = &mlxplat_mlxcpld_ng800_hi171_data;
|
||||
mlxplat_hotplug->deferred_nr =
|
||||
mlxplat_msn21xx_channels[MLXPLAT_CPLD_GRP_CHNL_NUM - 1];
|
||||
mlxplat_led = &mlxplat_default_ng_led_data;
|
||||
mlxplat_led = &mlxplat_xdr_led_data;
|
||||
mlxplat_regs_io = &mlxplat_default_ng_regs_io_data;
|
||||
mlxplat_fan = &mlxplat_xdr_fan_data;
|
||||
|
||||
|
|
|
|||
|
|
@ -455,6 +455,11 @@ static struct quirk_entry quirk_acer_travelmate_2490 = {
|
|||
.mailled = 1,
|
||||
};
|
||||
|
||||
static struct quirk_entry quirk_acer_nitro_an515_58 = {
|
||||
.predator_v4 = 1,
|
||||
.pwm = 1,
|
||||
};
|
||||
|
||||
static struct quirk_entry quirk_acer_predator_ph315_53 = {
|
||||
.turbo = 1,
|
||||
.cpu_fans = 1,
|
||||
|
|
@ -655,7 +660,7 @@ static const struct dmi_system_id acer_quirks[] __initconst = {
|
|||
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
|
||||
DMI_MATCH(DMI_PRODUCT_NAME, "Nitro AN515-58"),
|
||||
},
|
||||
.driver_data = &quirk_acer_predator_v4,
|
||||
.driver_data = &quirk_acer_nitro_an515_58,
|
||||
},
|
||||
{
|
||||
.callback = dmi_matched,
|
||||
|
|
@ -2065,7 +2070,8 @@ static int acer_toggle_turbo(void)
|
|||
WMID_gaming_set_u64(0x1, ACER_CAP_TURBO_LED);
|
||||
|
||||
/* Set FAN mode to auto */
|
||||
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_AUTO);
|
||||
if (has_cap(ACER_CAP_TURBO_FAN))
|
||||
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_AUTO);
|
||||
|
||||
/* Set OC to normal */
|
||||
if (has_cap(ACER_CAP_TURBO_OC)) {
|
||||
|
|
@ -2079,7 +2085,8 @@ static int acer_toggle_turbo(void)
|
|||
WMID_gaming_set_u64(0x10001, ACER_CAP_TURBO_LED);
|
||||
|
||||
/* Set FAN mode to turbo */
|
||||
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_TURBO);
|
||||
if (has_cap(ACER_CAP_TURBO_FAN))
|
||||
WMID_gaming_set_fan_mode(ACER_WMID_FAN_MODE_TURBO);
|
||||
|
||||
/* Set OC to turbo mode */
|
||||
if (has_cap(ACER_CAP_TURBO_OC)) {
|
||||
|
|
|
|||
|
|
@ -104,8 +104,10 @@ static int wbrf_record(struct acpi_device *adev, uint8_t action, struct wbrf_ran
|
|||
obj = acpi_evaluate_dsm(adev->handle, &wifi_acpi_dsm_guid,
|
||||
WBRF_REVISION, WBRF_RECORD, &argv4);
|
||||
|
||||
if (!obj)
|
||||
if (!obj) {
|
||||
kfree(tmp);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (obj->type != ACPI_TYPE_INTEGER) {
|
||||
ret = -EINVAL;
|
||||
|
|
|
|||
|
|
@ -346,6 +346,37 @@ struct power_data {
|
|||
* _def is not required and will be assumed to be default == max if missing.
|
||||
*/
|
||||
static const struct dmi_system_id power_limits[] = {
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "FA401UV"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 80,
|
||||
.ppt_pl2_sppt_min = 35,
|
||||
.ppt_pl2_sppt_max = 80,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 80,
|
||||
.nv_dynamic_boost_min = 5,
|
||||
.nv_dynamic_boost_max = 25,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
.nv_tgp_min = 55,
|
||||
.nv_tgp_max = 75,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 25,
|
||||
.ppt_pl1_spl_max = 35,
|
||||
.ppt_pl2_sppt_min = 31,
|
||||
.ppt_pl2_sppt_max = 44,
|
||||
.ppt_pl3_fppt_min = 45,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "FA401W"),
|
||||
|
|
@ -580,8 +611,8 @@ static const struct dmi_system_id power_limits[] = {
|
|||
.ppt_pl2_sppt_def = 54,
|
||||
.ppt_pl2_sppt_max = 90,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_def = 90,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.ppt_pl3_fppt_def = 65,
|
||||
.ppt_pl3_fppt_max = 90,
|
||||
.nv_dynamic_boost_min = 10,
|
||||
.nv_dynamic_boost_max = 15,
|
||||
.nv_temp_target_min = 75,
|
||||
|
|
@ -701,6 +732,25 @@ static const struct dmi_system_id power_limits[] = {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "FA617XT"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_apu_sppt_min = 15,
|
||||
.ppt_apu_sppt_max = 80,
|
||||
.ppt_platform_sppt_min = 30,
|
||||
.ppt_platform_sppt_max = 145,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_apu_sppt_min = 25,
|
||||
.ppt_apu_sppt_max = 35,
|
||||
.ppt_platform_sppt_min = 45,
|
||||
.ppt_platform_sppt_max = 100,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "FX507VI"),
|
||||
|
|
@ -843,7 +893,7 @@ static const struct dmi_system_id power_limits[] = {
|
|||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GA403U"),
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GA403UI"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
|
|
@ -873,6 +923,70 @@ static const struct dmi_system_id power_limits[] = {
|
|||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GA403UV"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 80,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 80,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 80,
|
||||
.nv_dynamic_boost_min = 5,
|
||||
.nv_dynamic_boost_max = 25,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
.nv_tgp_min = 55,
|
||||
.nv_tgp_max = 65,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 35,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 35,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GA403WM"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 80,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 80,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 80,
|
||||
.nv_dynamic_boost_min = 0,
|
||||
.nv_dynamic_boost_max = 15,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
.nv_tgp_min = 55,
|
||||
.nv_tgp_max = 85,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 35,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 35,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GA403WR"),
|
||||
|
|
@ -905,6 +1019,38 @@ static const struct dmi_system_id power_limits[] = {
|
|||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GA403WW"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 80,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 80,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 80,
|
||||
.nv_dynamic_boost_min = 0,
|
||||
.nv_dynamic_boost_max = 25,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
.nv_tgp_min = 80,
|
||||
.nv_tgp_max = 95,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 35,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 35,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GA503QR"),
|
||||
|
|
@ -1187,6 +1333,33 @@ static const struct dmi_system_id power_limits[] = {
|
|||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GV302XV"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 55,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 60,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 15,
|
||||
.ppt_pl1_spl_max = 35,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 35,
|
||||
.ppt_pl3_fppt_min = 35,
|
||||
.ppt_pl3_fppt_max = 65,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "GV601R"),
|
||||
|
|
@ -1316,6 +1489,22 @@ static const struct dmi_system_id power_limits[] = {
|
|||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "G513QY"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
/* Advantage Edition Laptop, no PL1 or PL2 limits */
|
||||
.ppt_apu_sppt_min = 15,
|
||||
.ppt_apu_sppt_max = 100,
|
||||
.ppt_platform_sppt_min = 70,
|
||||
.ppt_platform_sppt_max = 190,
|
||||
},
|
||||
.dc_data = NULL,
|
||||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "G513R"),
|
||||
|
|
@ -1567,6 +1756,35 @@ static const struct dmi_system_id power_limits[] = {
|
|||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "G835LR"),
|
||||
},
|
||||
.driver_data = &(struct power_data) {
|
||||
.ac_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 28,
|
||||
.ppt_pl1_spl_def = 140,
|
||||
.ppt_pl1_spl_max = 175,
|
||||
.ppt_pl2_sppt_min = 28,
|
||||
.ppt_pl2_sppt_max = 175,
|
||||
.nv_dynamic_boost_min = 5,
|
||||
.nv_dynamic_boost_max = 25,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
.nv_tgp_min = 65,
|
||||
.nv_tgp_max = 115,
|
||||
},
|
||||
.dc_data = &(struct power_limits) {
|
||||
.ppt_pl1_spl_min = 25,
|
||||
.ppt_pl1_spl_max = 55,
|
||||
.ppt_pl2_sppt_min = 25,
|
||||
.ppt_pl2_sppt_max = 70,
|
||||
.nv_temp_target_min = 75,
|
||||
.nv_temp_target_max = 87,
|
||||
},
|
||||
.requires_fan_curve = true,
|
||||
},
|
||||
},
|
||||
{
|
||||
.matches = {
|
||||
DMI_MATCH(DMI_BOARD_NAME, "G835LW"),
|
||||
|
|
|
|||
|
|
@ -4889,7 +4889,6 @@ static int asus_wmi_add(struct platform_device *pdev)
|
|||
asus->egpu_enable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_EGPU);
|
||||
asus->dgpu_disable_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_DGPU);
|
||||
asus->kbd_rgb_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_TUF_RGB_STATE);
|
||||
asus->oobe_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_OOBE);
|
||||
|
||||
if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_MINI_LED_MODE))
|
||||
asus->mini_led_dev_id = ASUS_WMI_DEVID_MINI_LED_MODE;
|
||||
|
|
@ -4902,6 +4901,8 @@ static int asus_wmi_add(struct platform_device *pdev)
|
|||
asus->gpu_mux_dev = ASUS_WMI_DEVID_GPU_MUX_VIVO;
|
||||
#endif /* IS_ENABLED(CONFIG_ASUS_WMI_DEPRECATED_ATTRS) */
|
||||
|
||||
asus->oobe_state_available = asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_OOBE);
|
||||
|
||||
if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY))
|
||||
asus->throttle_thermal_policy_dev = ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY;
|
||||
else if (asus_wmi_dev_is_present(asus, ASUS_WMI_DEVID_THROTTLE_THERMAL_POLICY_VIVO))
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
#include <linux/fs.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/wmi.h>
|
||||
#include "bioscfg.h"
|
||||
#include "../../firmware_attributes_class.h"
|
||||
|
|
@ -781,6 +783,12 @@ static int hp_init_bios_buffer_attribute(enum hp_wmi_data_type attr_type,
|
|||
if (ret < 0)
|
||||
goto buff_attr_exit;
|
||||
|
||||
if (strlen(str) == 0) {
|
||||
pr_debug("Ignoring attribute with empty name\n");
|
||||
ret = 0;
|
||||
goto buff_attr_exit;
|
||||
}
|
||||
|
||||
if (attr_type == HPWMI_PASSWORD_TYPE ||
|
||||
attr_type == HPWMI_SECURE_PLATFORM_TYPE)
|
||||
temp_kset = bioscfg_drv.authentication_dir_kset;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
#include <linux/wmi.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/kernel.h>
|
||||
|
|
@ -56,14 +57,14 @@ enum mechanism_values {
|
|||
|
||||
#define PASSWD_MECHANISM_TYPES "password"
|
||||
|
||||
#define HP_WMI_BIOS_GUID "5FB7F034-2C63-45e9-BE91-3D44E2C707E4"
|
||||
#define HP_WMI_BIOS_GUID "5FB7F034-2C63-45E9-BE91-3D44E2C707E4"
|
||||
|
||||
#define HP_WMI_BIOS_STRING_GUID "988D08E3-68F4-4c35-AF3E-6A1B8106F83C"
|
||||
#define HP_WMI_BIOS_STRING_GUID "988D08E3-68F4-4C35-AF3E-6A1B8106F83C"
|
||||
#define HP_WMI_BIOS_INTEGER_GUID "8232DE3D-663D-4327-A8F4-E293ADB9BF05"
|
||||
#define HP_WMI_BIOS_ENUMERATION_GUID "2D114B49-2DFB-4130-B8FE-4A3C09E75133"
|
||||
#define HP_WMI_BIOS_ORDERED_LIST_GUID "14EA9746-CE1F-4098-A0E0-7045CB4DA745"
|
||||
#define HP_WMI_BIOS_PASSWORD_GUID "322F2028-0F84-4901-988E-015176049E2D"
|
||||
#define HP_WMI_SET_BIOS_SETTING_GUID "1F4C91EB-DC5C-460b-951D-C7CB9B4B8D5E"
|
||||
#define HP_WMI_SET_BIOS_SETTING_GUID "1F4C91EB-DC5C-460B-951D-C7CB9B4B8D5E"
|
||||
|
||||
enum hp_wmi_spm_commandtype {
|
||||
HPWMI_SECUREPLATFORM_GET_STATE = 0x10,
|
||||
|
|
@ -285,8 +286,9 @@ enum hp_wmi_data_elements {
|
|||
{ \
|
||||
int i; \
|
||||
\
|
||||
for (i = 0; i <= bioscfg_drv.type##_instances_count; i++) { \
|
||||
if (!strcmp(kobj->name, bioscfg_drv.type##_data[i].attr_name_kobj->name)) \
|
||||
for (i = 0; i < bioscfg_drv.type##_instances_count; i++) { \
|
||||
if (bioscfg_drv.type##_data[i].attr_name_kobj && \
|
||||
!strcmp(kobj->name, bioscfg_drv.type##_data[i].attr_name_kobj->name)) \
|
||||
return i; \
|
||||
} \
|
||||
return -EIO; \
|
||||
|
|
|
|||
Loading…
Reference in New Issue