linux/drivers/platform/x86
Michał Kępień 4f62568c1f fujitsu-laptop: Support radio LED
Lifebook E734/E744/E754 has a LED which the manual calls "radio
components indicator".  It should be lit when any radio transmitter is
enabled.  Its state can be read and set using ACPI (FUNC interface,
RFKILL method).

Since the Lifebook E734/E744/E754 only has a button (as compared to a
slider) for enabling/disabling radio transmitters, I believe the LED in
question is meant to indicate whether all radio transmitters are
currently on or off.  However, pressing the radio toggle button does not
automatically change the hardware state of the transmitters: it looks
like this machine relies on soft rfkill.

As for detecting whether the LED is present on a given machine, I had to
resort to educated guesswork.  I assumed this LED is present on all
devices which have a radio toggle button instead of a slider.  My
Lifebook E744 holds 0x01010001 in BTNI.  By comparing the bits and
buttons with those of a Lifebook E8420 (BTNI=0x000F0101, has a slider),
I put my money on bit 24 as the indicator of the radio toggle button
being present.  Furthermore, bit 24 is also clear on the S7020 which
does not have the toggle button or an RF LED.

Figuring out how the LED is controlled was more deterministic as all it
took was decompiling the DSDT and taking a look at method S000 (the
RFKILL method of the FUNC interface).

The LED control method implemented here is unsuitable for use with
"heavy" LED triggers, like phy0rx.  Once blinking frequency achieves a
certain level, the system hangs.

Signed-off-by: Michał Kępień <kernel@kempniu.pl>
[jwoithe: Comment on bit 24 in BTNI, expanded commit msg]
Signed-off-by: Jonathan Woithe <jwoithe@just42.net>
[dvhart: Minor style and commit log adjustments]
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
2016-04-15 00:31:09 -07:00
..
acer-wmi.c acer-wmi: remove threeg and interface sysfs interfaces 2015-10-06 23:38:08 +01:00
acerhdf.c thermal: consistently use int for temperatures 2015-08-03 23:15:50 +08:00
alienware-wmi.c alienware-wmi: whitespace improvements 2016-02-07 12:01:33 -08:00
amilo-rfkill.c platform: x86: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
apple-gmux.c apple-gmux: Add helper for presence detect 2016-02-09 11:21:11 +01:00
asus-laptop.c asus-laptop: Add key found on Asus F3M 2015-08-10 21:24:23 -07:00
asus-nb-wmi.c asus-nb-wmi: add wapf=4 quirk for ASUS X75VD 2016-03-23 10:05:46 -07:00
asus-wireless.c asus-wireless: Add ACPI HID ATK4001 2016-01-19 17:35:46 -08:00
asus-wmi.c asus-wmi: drop to_platform_driver macro 2016-01-19 17:35:45 -08:00
asus-wmi.h asus-wmi: always report brightness key events 2013-02-27 08:30:37 -05:00
classmate-laptop.c classmate-laptop: Fix sparse warning (0 as NULL) 2015-02-07 12:12:00 -08:00
compal-laptop.c compal-laptop: Add charge control limit 2015-10-03 08:44:57 -07:00
dell-laptop.c dell-smbios: rename dell_smi_error() to dell_smbios_error() 2016-03-23 10:05:49 -07:00
dell-rbtn.c dell-rbtn: Add a comment about the XPS 13 9350 2016-03-23 10:05:46 -07:00
dell-rbtn.h dell-rbtn: Export notifier for other kernel modules 2015-06-10 22:04:11 -07:00
dell-smbios.c dell-smbios: rename dell_smi_error() to dell_smbios_error() 2016-03-23 10:05:49 -07:00
dell-smbios.h dell-smbios: rename dell_smi_error() to dell_smbios_error() 2016-03-23 10:05:49 -07:00
dell-smo8800.c dell-smo8800: Add more ACPI ids and change description of driver 2014-12-03 10:10:19 -08:00
dell-wmi-aio.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
dell-wmi.c dell-wmi: support Dell Inspiron M5110 2016-03-23 10:05:51 -07:00
eeepc-laptop.c eeepc-laptop: Port to new backlight interface selection API 2015-06-19 01:11:56 +02:00
eeepc-wmi.c eeepc-wmi: Constify asus_quirks[] DMI table 2014-08-16 01:23:52 -07:00
fujitsu-laptop.c fujitsu-laptop: Support radio LED 2016-04-15 00:31:09 -07:00
fujitsu-tablet.c Input: use more descriptive KEY_ROTATE_DISPLAY instead of KEY_DIRECTION 2015-03-06 17:18:16 -08:00
hdaps.c platform: x86: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
hp_accel.c hp_accel: Add support for HP ZBook 15 2014-12-03 10:10:12 -08:00
hp-wireless.c hp-wireless: remove unneeded goto/label in hpwl_init 2015-08-25 23:34:15 -07:00
hp-wmi.c hp-wmi: Remove GPS rfkill support via pre-2009 interface 2016-03-23 10:05:51 -07:00
ibm_rtl.c move io-64-nonatomic*.h out of asm-generic 2015-10-15 00:21:07 +02:00
ideapad-laptop.c ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list 2016-03-23 10:05:49 -07:00
intel_ips.c move io-64-nonatomic*.h out of asm-generic 2015-10-15 00:21:07 +02:00
intel_ips.h
intel_menlow.c linux/thermal.h: rename KELVIN_TO_CELSIUS to DECI_KELVIN_TO_CELSIUS 2015-10-10 11:32:30 +08:00
intel_mid_powerbtn.c intel_mid_powerbtn: Remove misuse of IRQF_NO_SUSPEND flag 2015-10-03 09:40:30 -07:00
intel_mid_thermal.c thermal: consistently use int for temperatures 2015-08-03 23:15:50 +08:00
intel_oaktrail.c intel-oaktrail: Port to new backlight interface selection API 2015-06-19 01:12:11 +02:00
intel_pmc_ipc.c intel_pmc_ipc: Avoid pending IPC1 command during legacy suspend 2016-03-23 10:05:47 -07:00
intel_pmic_gpio.c gpio: change member .dev to .parent 2015-11-19 09:24:35 +01:00
intel_punit_ipc.c intel_punit_ipc: add NULL check for input parameters 2016-01-19 17:35:49 -08:00
intel_scu_ipc.c platform/x86: Make intel_scu_ipc explicitly non-modular 2016-03-23 10:05:47 -07:00
intel_scu_ipcutil.c intel_scu_ipcutil: underflow in scu_reg_access() 2016-01-30 09:40:35 -08:00
intel_telemetry_core.c platform/x86: Add Intel Telemetry Core Driver 2016-01-19 17:35:50 -08:00
intel_telemetry_debugfs.c intel_telemetry_debugfs: Fix unused warnings in telemetry debugfs 2016-01-24 10:14:53 -08:00
intel_telemetry_pltdrv.c intel_telemetry_pltdrv: Change verbosity control bits 2016-03-23 10:05:46 -07:00
intel-hid.c platform-drivers-x86 for 4.6-1 2016-03-23 17:20:59 -07:00
intel-rst.c intel-rst: Clean up ACPI add function 2014-09-17 13:55:54 -07:00
intel-smartconnect.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00
Kconfig dell-wmi: enable receiving WMI events on Dell Vostro V131 2016-03-23 10:05:50 -07:00
Makefile dell-laptop: extract SMBIOS-related code to a separate module 2016-03-23 10:05:38 -07:00
msi-laptop.c msi-laptop: Port to new backlight interface selection API 2015-06-19 01:12:16 +02:00
msi-wmi.c msi-wmi: Port to new backlight interface selection API 2015-06-19 01:12:20 +02:00
mxm-wmi.c Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 2014-01-29 18:54:05 -08:00
panasonic-laptop.c Fix sleep / suspend keys for Toughbook CF-51 2014-04-06 12:58:11 -04:00
pvpanic.c pvpanic: handle missing _STA correctly 2015-06-07 21:30:12 -07:00
samsung-laptop.c samsung-laptop: Port to new backlight interface selection API 2015-06-19 01:12:25 +02:00
samsung-q10.c platform: x86: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
sony-laptop.c Keyboard backlight control for some Vaio Fit models 2016-01-19 15:49:37 -08:00
surfacepro3_button.c surface pro 4: fix compare_const_fl.cocci warnings 2016-01-19 17:35:52 -08:00
tc1100-wmi.c tc1100-wmi: fix build warning when CONFIG_PM not enabled 2016-01-19 17:35:47 -08:00
thinkpad_acpi.c thinkpad_acpi: Remove ambiguous logging for "Unsupported brightness interface" 2016-03-23 10:05:25 -07:00
topstar-laptop.c platform:x86: Remove OOM message after input_allocate_device 2013-11-20 18:51:03 -05:00
toshiba_acpi.c toshiba_acpi: Add a module parameter to disable hotkeys registration 2016-03-23 10:05:37 -07:00
toshiba_bluetooth.c toshiba_bluetooth: Add missing newline in toshiba_bluetooth_present function 2015-11-20 15:20:08 -08:00
toshiba_haps.c toshiba_haps: Make use of DEVICE_ATTR_{RW, WO} macros 2015-05-11 10:38:22 -07:00
toshiba-wmi.c platform/x86: Toshiba WMI Hotkey Driver 2015-10-03 10:07:08 -07:00
wmi.c wmi: Remove private %pUL implementation 2015-09-10 09:07:04 -07:00
xo1-rfkill.c platform: x86: drop owner assignment from platform_drivers 2014-10-20 16:21:27 +02:00
xo15-ebook.c ACPI: Clean up inclusions of ACPI header files 2013-12-07 01:03:14 +01:00