diff options
| author | Alex Hung <alex.hung@canonical.com> | 2016-06-13 07:44:00 -0400 |
|---|---|---|
| committer | Darren Hart <dvhart@linux.intel.com> | 2016-06-29 01:18:32 -0400 |
| commit | fc8a601e1175ae351f662506030f9939cb7fdbfe (patch) | |
| tree | 15f94403a40f76c2631c3a5246fb33ffae55985f /drivers/platform | |
| parent | 95d16d816a45d52e0aecd0dd21cf7b93d88fedf7 (diff) | |
hp-wmi: Fix wifi cannot be hard-unblocked
Several users reported wifi cannot be unblocked as discussed in [1].
This patch removes the use of the 2009 flag by BIOS but uses the actual
WMI function calls - it will be skipped if WMI reports unsupported.
[1] https://bugzilla.kernel.org/show_bug.cgi?id=69131
Signed-off-by: Alex Hung <alex.hung@canonical.com>
Tested-by: Evgenii Shatokhin <eugene.shatokhin@yandex.ru>
Cc: stable@vger.kernel.org
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
Diffstat (limited to 'drivers/platform')
| -rw-r--r-- | drivers/platform/x86/hp-wmi.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c index 6f145f2d004d..96ffda493266 100644 --- a/drivers/platform/x86/hp-wmi.c +++ b/drivers/platform/x86/hp-wmi.c | |||
| @@ -718,6 +718,11 @@ static int __init hp_wmi_rfkill_setup(struct platform_device *device) | |||
| 718 | if (err) | 718 | if (err) |
| 719 | return err; | 719 | return err; |
| 720 | 720 | ||
| 721 | err = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 1, &wireless, | ||
| 722 | sizeof(wireless), 0); | ||
| 723 | if (err) | ||
| 724 | return err; | ||
| 725 | |||
| 721 | if (wireless & 0x1) { | 726 | if (wireless & 0x1) { |
| 722 | wifi_rfkill = rfkill_alloc("hp-wifi", &device->dev, | 727 | wifi_rfkill = rfkill_alloc("hp-wifi", &device->dev, |
| 723 | RFKILL_TYPE_WLAN, | 728 | RFKILL_TYPE_WLAN, |
| @@ -882,7 +887,7 @@ static int __init hp_wmi_bios_setup(struct platform_device *device) | |||
| 882 | wwan_rfkill = NULL; | 887 | wwan_rfkill = NULL; |
| 883 | rfkill2_count = 0; | 888 | rfkill2_count = 0; |
| 884 | 889 | ||
| 885 | if (hp_wmi_bios_2009_later() || hp_wmi_rfkill_setup(device)) | 890 | if (hp_wmi_rfkill_setup(device)) |
| 886 | hp_wmi_rfkill2_setup(device); | 891 | hp_wmi_rfkill2_setup(device); |
| 887 | 892 | ||
| 888 | err = device_create_file(&device->dev, &dev_attr_display); | 893 | err = device_create_file(&device->dev, &dev_attr_display); |
