Patch "hp-wmi: limit hotkey enable" has been added to the 4.1-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
hp-wmi: limit hotkey enable
to the 4.1-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
hp-wmi-limit-hotkey-enable.patch
and it can be found in the queue-4.1 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
8a1513b49321e503fd6c8b6793e3b1f9a8a3285bMon Sep 17 00:00:00 2001
From: Kyle Evans <[email protected]>
Date: Fri, 11 Sep 2015 10:40:17 -0500
Subject: hp-wmi: limit hotkey enable
From: Kyle Evans <[email protected]>
commit 8a1513b49321e503fd6c8b6793e3b1f9a8a3285b upstream.
Do not write initialize magic on systems that do not have feature query 0xb. Fixes Bug #82451.
Redefine FEATURE_QUERY to align with 0xb and FEATURE2 with 0xd for code clearity.
Add a new test function, hp_wmi_bios_2008_later() & simplify hp_wmi_bios_2009_later(), which fixes a bug in cases where an improper value is returned. Probably also fixes Bug #69131.
Add missing __init tag.
--- drivers/platform/x86/hp-wmi.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-)
drivers/platform/x86/hp-wmi.c +20 -11
@@ -54,8 +54,9 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE9#define HPWMI_HARDWARE_QUERY 0x4#define HPWMI_WIRELESS_QUERY 0x5#define HPWMI_BIOS_QUERY 0x9 +#define HPWMI_FEATURE_QUERY 0xb#define HPWMI_HOTKEY_QUERY 0xc -#define HPWMI_FEATURE_QUERY 0xd +#define HPWMI_FEATURE2_QUERY 0xd#define HPWMI_WIRELESS2_QUERY 0x1b#define HPWMI_POSTCODEERROR_QUERY 0x2a
@@ -295,25 +296,33 @@ static int hp_wmi_tablet_state(void)return (state &0x4 ) ?1 :0 ; } -static int __init hp_wmi_bios_2009_later (void ) +static int __init hp_wmi_bios_2008_later (void ) {int state =0 ;int ret =hp_wmi_perform_query (HPWMI_FEATURE_QUERY ,0 , &state,sizeof (state),sizeof (state)); -if (ret) -return ret; +if (!ret) +return 1 ; -return (state &0x10 ) ?1 :0 ; +return (ret ==HPWMI_RET_UNKNOWN_CMDTYPE ) ?0 : -ENXIO ; } -static int hp_wmi_enable_hotkeys (void ) +static int __init hp_wmi_bios_2009_later (void ) { -int ret; -int query =0x6e ; +int state =0 ; +int ret =hp_wmi_perform_query (HPWMI_FEATURE2_QUERY ,0 , &state, +sizeof (state),sizeof (state)); +if (!ret) +return 1 ; - ret =hp_wmi_perform_query (HPWMI_BIOS_QUERY ,1 , &query,sizeof (query), -0 ); +return (ret ==HPWMI_RET_UNKNOWN_CMDTYPE ) ?0 : -ENXIO ; +} +static int __init hp_wmi_enable_hotkeys (void ) +{ +int value =0x6e ; +int ret =hp_wmi_perform_query (HPWMI_BIOS_QUERY ,1 , &value, +sizeof (value),0 );if (ret)return -EINVAL ;return 0 ;
@@ -663,7 +672,7 @@ static int __init hp_wmi_input_setup(voi hp_wmi_tablet_state());input_sync (hp_wmi_input_dev); -if (hp_wmi_bios_2009_later () ==4 ) +if (!hp_wmi_bios_2009_later () &&hp_wmi_bios_2008_later ())hp_wmi_enable_hotkeys (); status =wmi_install_notify_handler (HPWMI_EVENT_GUID , hp_wmi_notify,NULL );
Patches currently in stable-queue which might be from [email protected] are
queue-4.1/hp-wmi-limit-hotkey-enable.patch