linux/drivers/platform/x86
Hans de Goede 5105e78e5b platform/x86: ideapad-laptop: Remove no_hw_rfkill_list
When the ideapad-laptop driver was first written it was written for laptops
which had a hardware rfkill switch. So when the first ideapad laptops
showed up without a hw rfkill switch and it turned out that in this case
the ideapad firmware interface would always report the wifi being hardware-
blocked, a DMI id list of models which lack a hw rfkill switch was started
(by yours truly). Things were done this way to avoid regressing existing
models with a hw rfkill switch. In hindsight this was a mistake.

Lenovo releases a lot of ideapad models every year and even the latest
models still use the "VPC2004" ACPI interface the ideapad-laptop driver
binds to. Having a hw rfkill switch is quite rare on modern hardware, so
all these new models need to be added to the no_hw_rfkill_list, leading
to a never ending game of whack a mole.

Worse the failure mode when not present on the list, is very bad. In this
case the ideapad-laptop driver will report the wifi as being hw-blocked,
at which points NetworkManager does not even try to use it and the user
ends up with non working wifi.

This leads to various Linux fora on the internet being filled with
wifi not working on ideapad laptops stories, which does not make Linux
look good.

The failure mode when we flip the default to assuming that a hw rfkill
switch is not present OTOH is quite benign. When we properly report the
wifi as being hw-blocked on ideapads which do have the hw-switch; and it
is in the wifi-off position, then at least when using NetworkManager +
GNOME3 the user will get a "wifi disabled in hardware" message when trying
to connect to the wifi from the UI. If OTOH we assume there is no hardware
rfkill switch, then the user will get an empty list for the list of
available networks. Although the empty list vs the "wifi disabled in
hardware" message is a regression, it is a very minor regression and it
can easily be fixed on a model by model basis by filling the new
hw_rfkill_list this commit introduces.

Therefor this commit removes the ever growing no_hw_rfkill_list, flipping
the default to assuming there is no hw rfkill switch and adding a new
hw_rfkill_list. Thereby fixing the wifi not working on all the current
ideapad and yoga models which are not on the list yet and also fixing it
for all future ideapad and yoga models using the "VPC2004" ACPI interface.

Note once this patch has been accepted upstream. I plan to write a blog
post asking for users of ideapads and yoga's with a hw rfkill switch to
step forward, so that we can populate the new hw_rfkill_list with the few
older yoga and ideapad models which actually have a hw rfkill switch.

BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1703338
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
2019-05-09 00:33:03 +03:00
..
acer-wireless.c platform/x86: Add Acer Wireless Radio Control driver 2017-11-27 13:39:11 +02:00
acer-wmi.c platform/x86: acer-wmi: Silence "unsupported" message a bit 2018-08-22 13:40:24 +03:00
acerhdf.c platform/x86: acerhdf: restructure to allow large BIOS table be __initconst 2018-09-27 12:18:08 +03:00
alienware-wmi.c platform/x86: alienware-wmi: printing the wrong error code 2019-05-09 00:33:02 +03:00
amilo-rfkill.c
apple-gmux.c platform/x86: apple-gmux: fix gmux_get_client_id()'s return type 2018-04-24 19:55:33 +03:00
asus-laptop.c platform/x86: Simplify getting .drvdata 2018-04-23 08:52:59 -07:00
asus-nb-wmi.c platform/x86: asus-nb-wmi: Drop mapping of 0x33 and 0x34 scan codes 2018-11-07 15:56:42 +02:00
asus-wireless.c platform/x86: asus-wireless: Fix uninitialized symbol usage 2018-07-02 16:48:22 +03:00
asus-wmi.c platform/x86: asus-wmi: Allow loading on systems without the Asus Management GUID 2019-02-23 09:20:14 -08:00
asus-wmi.h
classmate-laptop.c
compal-laptop.c treewide: Use DEVICE_ATTR_RW 2018-01-09 16:33:31 +01:00
dcdbas.c firmware: dcdbas: include linux/io.h 2018-10-03 11:27:22 +03:00
dcdbas.h firmware: dcdbas: Move dcdbas to drivers/platform/x86 2018-09-27 12:18:15 +03:00
dell_rbu.c platform/x86: dell_rbu: fix lock imbalance in img_update_realloc 2019-02-23 09:20:56 -08:00
dell-laptop.c platform/x86: dell-laptop: fix rfkill functionality 2019-04-16 13:18:23 -07:00
dell-rbtn.c platform/x86: dell-rbtn: Add missing #include 2019-04-08 20:12:13 +03:00
dell-rbtn.h
dell-smbios-base.c platform/x86: dell-smbios-base: Support systems without tokens 2018-06-26 15:01:52 -07:00
dell-smbios-smm.c firmware: dcdbas: Move dcdbas to drivers/platform/x86 2018-09-27 12:18:15 +03:00
dell-smbios-wmi.c platform/x86: dell-smbios-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
dell-smbios.h platform/x86: dell-smbios: Link all dell-smbios-* modules together 2018-03-09 09:35:42 -08:00
dell-smo8800.c
dell-wmi-aio.c
dell-wmi-descriptor.c platform/x86: dell-wmi-descriptor: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
dell-wmi-descriptor.h platform/x86: dell-smbios-wmi: Disable userspace interface if missing hotfix 2017-11-20 12:38:43 -08:00
dell-wmi-led.c
dell-wmi.c platform/x86: dell-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
eeepc-laptop.c PCI: hotplug: Embed hotplug_slot 2018-09-18 17:52:15 -05:00
eeepc-wmi.c
fujitsu-laptop.c platform/x86: fujitsu-laptop: Simplify soft key handling 2018-04-19 16:25:54 -07:00
fujitsu-tablet.c
gpd-pocket-fan.c platform/x86: GPD pocket fan: fix spelling mistake: "Mill-celcius" -> "millicelsius" 2018-02-15 12:21:48 +02:00
hdaps.c
hp_accel.c
hp-wireless.c
hp-wmi.c
huawei-wmi.c platform/x86: huawei-wmi: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
i2c-multi-instantiate.c ACPI / scan: Create platform device for BSG2150 ACPI nodes 2019-02-05 19:38:20 +02:00
ibm_rtl.c
ideapad-laptop.c platform/x86: ideapad-laptop: Remove no_hw_rfkill_list 2019-05-09 00:33:03 +03:00
intel_atomisp2_pm.c platform/x86: Fix config space access for intel_atomisp2_pm 2018-12-03 21:40:03 +02:00
intel_bxtwc_tmu.c platform/x86: intel_bxtwc_tmu: Convert to use SPDX identifier 2018-09-27 12:18:16 +03:00
intel_cht_int33fe.c platform/x86: intel_cht_int33fe: Remove old style mux connections 2019-02-14 10:52:25 +01:00
intel_chtdc_ti_pwrbtn.c platform/x86: intel_chtdc_ti_pwrbtn: Add SPDX identifier 2018-09-27 12:18:16 +03:00
intel_int0002_vgpio.c platform/x86: intel_int0002_vgpio: Only implement irq_set_wake on Bay Trail 2019-02-05 20:28:54 +02:00
intel_ips.c platform/x86: intel_ips: Convert to use DEFINE_SHOW_ATTRIBUTE macro 2018-12-03 21:40:03 +02:00
intel_ips.h platform/x86: intel-ips: Convert to use SPDX identifier 2018-09-27 12:18:16 +03:00
intel_menlow.c platform/x86: intel_menlow: Convert to use SPDX identifier 2018-09-27 12:18:17 +03:00
intel_mid_powerbtn.c platform-drivers-x86 for v4.20-1 2018-11-01 08:42:21 -07:00
intel_mid_thermal.c platform/x86: intel_mid_thermal: Convert to use SPDX identifier 2018-09-27 12:18:17 +03:00
intel_oaktrail.c platform/x86: intel_oaktrail: Convert to use SPDX identifier 2018-09-27 12:18:18 +03:00
intel_pmc_core.c platform/x86: intel_pmc_core: Allow to dump debug registers on S0ix failure 2019-05-06 17:54:42 +03:00
intel_pmc_core.h platform/x86: intel_pmc_core: Allow to dump debug registers on S0ix failure 2019-05-06 17:54:42 +03:00
intel_pmc_ipc.c platform/x86: intel_pmc_ipc: Don't map non-used optional resources 2019-05-06 17:54:04 +03:00
intel_punit_ipc.c platform/x86: intel_punit_ipc: Revert "Fix resource ioremap warning" 2019-05-06 17:54:13 +03:00
intel_scu_ipc.c platform/x86: intel_scu_ipc: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel_scu_ipcutil.c platform/x86: intel_scu_ipc: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel_telemetry_core.c platform/x86: intel_telemetry: Convert to use SPDX identifier 2018-09-27 12:18:20 +03:00
intel_telemetry_debugfs.c platform/x86: intel_telemetry: convert to DEFINE_SHOW_ATTRIBUTE 2018-12-10 11:31:00 +02:00
intel_telemetry_pltdrv.c platform-drivers-x86 for v4.20-1 2018-11-01 08:42:21 -07:00
intel_turbo_max_3.c platform/x86: intel_turbo_max_3: Convert to use SPDX identifier 2018-09-27 12:18:20 +03:00
intel-hid.c platform/x86: intel-hid: Missing power button release on some Dell models 2019-01-26 11:07:34 -08:00
intel-rst.c platform/x86: intel-rst: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel-smartconnect.c platform/x86: intel-smartconnect: Convert to use SPDX identifier 2018-09-27 12:18:19 +03:00
intel-vbtn.c platform/x86: intel-vbtn: Add support for dock mode detection 2018-07-02 16:48:22 +03:00
intel-wmi-thunderbolt.c platform/x86: intel-wmi-thunderbolt: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
Kconfig platform/x86: fix PCENGINES_APU2 Kconfig warning 2019-03-08 14:11:23 +01:00
lg-laptop.c platform/x86: Add LG Gram laptop special features driver 2018-10-19 19:21:57 +03:00
Makefile x86: pcengines apuv2 gpio/leds/keys platform driver 2019-02-22 17:28:08 +01:00
mlx-platform.c platform/x86: mlx-platform: Add mlx-wdt platform driver activation 2019-05-06 17:54:42 +03:00
msi-laptop.c
msi-wmi.c
mxm-wmi.c
panasonic-laptop.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
pcengines-apuv2.c x86: apuv2: remove unused variable 2019-03-08 14:11:30 +01:00
peaq-wmi.c
pmc_atom.c seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro 2018-02-07 12:50:21 +02:00
samsung-laptop.c platform/x86: Simplify getting .drvdata 2018-04-23 08:52:59 -07:00
samsung-q10.c
sony-laptop.c platform/x86: sony-laptop: Fix unintentional fall-through 2019-05-09 00:33:02 +03:00
surface3_button.c
surface3-wmi.c
surfacepro3_button.c platform/x86: surfacepro3: Support for wakeup from suspend-to-idle 2018-01-11 18:54:50 +01:00
tc1100-wmi.c
thinkpad_acpi.c platform/x86: thinkpad_acpi: cleanup for Thinkpad ACPI led 2019-05-09 00:33:03 +03:00
topstar-laptop.c platform/x86: topstar-laptop: replace licence text with SPDX tag 2018-02-23 18:43:42 +02:00
toshiba_acpi.c platform/x86: toshiba_acpi: Fix defined but not used build warnings 2018-07-21 09:26:45 -07:00
toshiba_bluetooth.c
toshiba_haps.c
toshiba-wmi.c
touchscreen_dmi.c platform/x86: touchscreen_dmi: Add info for 'jumper ezpad 6 pro b' touchscreen 2019-05-09 00:33:03 +03:00
wmi-bmof.c platform/x86: wmi-bmof: use MODULE_DEVICE_TABLE() instead of MODULE_ALIAS() 2019-03-07 08:46:29 -08:00
wmi.c platform/x86: wmi: move struct wmi_device_id to mod_devicetable.h 2019-03-07 08:46:07 -08:00
xo1-rfkill.c
xo15-ebook.c