linux/drivers/platform
Maciej S. Szmigiero fffcad87d4 hp-wmi: Remove GPS rfkill support via pre-2009 interface
GPS rfkill support via pre-2009 WMI interface uses hp_wmi_get_sw_state()
and hp_wmi_get_hw_state() to query its current hard and soft block state,
respectively.

In hp_wmi_get_sw_state() a mask is calculated which bit should be checked
in an int value returned by firmware to get current block state: 0x200 <<
(r * 8) which with r being 3 for GPS results in overflow and mask of zero.
The same goes for hp_wmi_get_hw_state().

This effectively means that GPS rfkill on this WMI interface is considered
always both hard and soft blocked.

Unfortunately, later when rfkill subsystem calls hp_wmi_set_block() to sync
this block to hardware firmware at least on my old nc6400 gets confused and
sets both hard and soft blocks on WiFi and BT.

This happens for example on hp-wmi module load.

Since due to overflow described above it is dubious that this ever worked
correctly and HP laptops with modems having GPS support seem to all have
been released well past year 2009 let's just remove GPS rfkill support via
pre-2009 WMI interface.

Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2016-03-23 10:05:51 -07:00
..
chrome platform/chrome: Fix i2c-designware adapter name 2015-11-09 19:43:33 -08:00
goldfish Replace module_platform_driver with builtin_platform driver in non modules. 2015-07-02 10:42:13 -07:00
mips MIPS: Loongson-3: Add chipset ACPI platform driver 2015-04-01 17:22:18 +02:00
olpc OLPC: Use %*ph specifier instead of passing direct values 2015-10-06 23:22:08 +01:00
x86 hp-wmi: Remove GPS rfkill support via pre-2009 interface 2016-03-23 10:05:51 -07:00
Kconfig MIPS: Loongson-3: Add CPU Hwmon platform driver 2015-04-01 17:22:17 +02:00
Makefile MIPS: Loongson-3: Add CPU Hwmon platform driver 2015-04-01 17:22:17 +02:00