linux/drivers/platform/x86
Michał Kępień 81f6821f3f platform/x86: fujitsu-laptop: switch to managed LED class devices
Use devm_led_classdev_register() for registering LED class devices in
order to simplify cleanup and remove LED-related fields with the
"_registered" suffix from struct fujitsu_laptop.  This also fixes a
cleanup bug: with non-managed LED class devices, if e.g. two supported
LEDs are detected, the first one gets registered successfully but the
second one does not, acpi_fujitsu_laptop_add() will return an error, but
the successfully registered LED will never get unregistered.

Change the parent device for LED class devices to the FUJ02E3 ACPI
device due to this being the logically correct relationship as LED class
devices do not depend on any facility provided by the platform device
registered by fujitsu-laptop, which was their parent until now.

Each managed LED class device is automatically unregistered when the
last reference to its parent device is dropped.  Taking the parent
change described above into account, LED class devices registered by
fujitsu-laptop will be unregistered after acpi_fujitsu_laptop_remove()
is called.  During unregistration, LED brightness is reset to LED_OFF by
LED core, so do not set the acpi_handle field of struct fujitsu_laptop
to NULL inside acpi_fujitsu_laptop_remove() to prevent call_fext_func()
from generating errors upon module removal.

Signed-off-by: Michał Kępień <kernel@kempniu.pl>
Reviewed-by: Jonathan Woithe <jwoithe@just42.net>
Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
2017-04-19 12:57:19 -07:00
..
acer-wmi.c platform/x86: acer-wmi: remove sparse_keymap_free() calls 2017-03-14 22:58:02 -07:00
acerhdf.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
alienware-wmi.c platform/x86: alienware-wmi: Remove header duplicate 2017-02-24 23:48:46 -08:00
amilo-rfkill.c
apple-gmux.c apple-gmux: Sphinxify docs 2016-07-28 10:04:03 +02:00
asus-laptop.c platform/x86: asus-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:02 -07:00
asus-nb-wmi.c platform/x86: asus-nb-wmi: Add wapf4 quirk for the X302UA 2017-04-13 10:14:37 -07:00
asus-wireless.c platform/x86: asus-wireless: Fix indentation 2017-02-24 23:48:48 -08:00
asus-wmi.c platform/x86: asus-wmi: remove sparse_keymap_free() calls 2017-03-14 22:58:03 -07:00
asus-wmi.h platform/x86: asus-wmi: Remove quirk_no_rfkill 2017-03-12 16:41:55 -07: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 Merge branch 'linux-leds/dell-laptop-changes-for-4.12' 2017-04-13 10:14:09 -07:00
dell-rbtn.c dell-rbtn: Ignore ACPI notifications if device is suspended 2016-05-27 11:47:56 -07:00
dell-rbtn.h dell-rbtn: Export notifier for other kernel modules 2015-06-10 22:04:11 -07:00
dell-smbios.c platform/x86: dell-*: Add a generic dell-laptop notifier chain 2017-04-13 10:12:19 -07:00
dell-smbios.h platform/x86: dell-*: Add a generic dell-laptop notifier chain 2017-04-13 10:12:19 -07:00
dell-smo8800.c x86: separate extable.h, switch sections.h to it 2016-09-27 21:15:23 -04:00
dell-wmi-aio.c platform/x86: dell-wmi-aio: remove sparse_keymap_free() calls 2017-03-14 22:58:04 -07:00
dell-wmi-led.c platform/x86: dell-wmi-led: fix coding style issues 2017-03-06 22:07:12 +01:00
dell-wmi.c platform/x86: dell-*: Call new led hw_changed API on kbd brightness change 2017-04-13 10:12:46 -07:00
eeepc-laptop.c platform/x86: eeepc-laptop: Skip unknown key messages 0x50 0x51 2017-03-23 09:01:35 -07:00
eeepc-wmi.c eeepc-wmi: Use acpi_dev_found() 2016-04-09 03:12:58 +02:00
fujitsu-laptop.c platform/x86: fujitsu-laptop: switch to managed LED class devices 2017-04-19 12:57:19 -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
hp_accel.c platform/x86: hp_accel: Add support for HP ZBook 17 2017-02-03 14:04:53 +02:00
hp-wireless.c platform/x86: hp-wireless: add Xiaomi's hardware id to the supported list 2017-04-13 11:34:26 -07:00
hp-wmi.c platform/x86: hp-wmi: Fix detection for dock and tablet mode 2017-04-14 08:26:35 -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 platform/x86: ideapad-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:07 -07:00
intel_bxtwc_tmu.c platform/x86: Add Whiskey Cove PMIC TMU support 2016-12-18 14:56:37 -08:00
intel_cht_int33fe.c platform/x86: Add Intel Cherry Trail ACPI INT33FE device driver 2017-04-17 15:39:04 -07:00
intel_ips.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/loadavg.h> 2017-03-02 08:42:27 +01:00
intel_ips.h
intel_menlow.c intel_menlow: reduce code duplication 2016-05-27 11:47:55 -07:00
intel_mid_powerbtn.c platform/x86: intel_mid_powerbtn: Use SCU IPC directly 2017-02-24 23:48:45 -08:00
intel_mid_thermal.c platform/x86: intel_mid_thermal: Fix module autoload 2017-02-03 14:04:53 +02:00
intel_oaktrail.c intel-oaktrail: Port to new backlight interface selection API 2015-06-19 01:12:11 +02:00
intel_pmc_core.c platform/x86: intel_pmc_core: fix out-of-bounds accesses on stack 2017-02-14 00:39:48 +02:00
intel_pmc_core.h platform/x86: intel_pmc_core: Add LTR IGNORE debug feature 2016-12-13 09:28:58 -08:00
intel_pmc_ipc.c platform/x86: intel_pmc_ipc: Add APL PMC PCI Id 2017-02-24 23:48:47 -08:00
intel_punit_ipc.c platform:x86 decouple telemetry driver from the optional IPC resources 2016-04-19 13:51:41 -07:00
intel_scu_ipc.c platform/x86: intel_scu_ipc: Introduce intel_scu_ipc_raw_command() 2017-04-13 10:16:04 -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 intel_telemetry: Constify telemetry_core_ops structures 2016-05-05 13:58:55 -07:00
intel_telemetry_debugfs.c platform-drivers-x86 for 4.8-1 2016-07-26 17:23:08 -07:00
intel_telemetry_pltdrv.c platform-drivers-x86 for 4.8-1 2016-07-26 17:23:08 -07:00
intel_turbo_max_3.c platform/x86: intel_turbo_max_3: make it explicitly non-modular 2017-02-24 23:48:54 -08:00
intel-hid.c platform/x86: intel-hid: Add missing ->thaw callback 2017-04-18 09:04:03 -07:00
intel-rst.c
intel-smartconnect.c platform/x86: Use ACPI_FAILURE at appropriate places 2016-12-13 09:29:01 -08:00
intel-vbtn.c platform-drivers-x86 for 4.10-1 2016-12-15 13:31:25 -08:00
Kconfig platform/x86: fujitsu-laptop: select LEDS_CLASS 2017-04-19 12:56:54 -07:00
Makefile platform/x86: Add Intel Cherry Trail ACPI INT33FE device driver 2017-04-17 15:39:04 -07:00
mlx-platform.c platform/x86: mlx-platform: mlxcpld-hotplug driver style fixes 2017-02-03 14:04:53 +02:00
mlxcpld-hotplug.c platform/x86: Introduce support for Mellanox hotplug driver 2016-10-23 07:52:57 -07:00
msi-laptop.c platform/x86: msi-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:07 -07:00
msi-wmi.c platform/x86: msi-wmi: remove sparse_keymap_free() calls 2017-03-14 22:58:08 -07:00
mxm-wmi.c
panasonic-laptop.c platform/x86: panasonic-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:09 -07:00
pmc_atom.c platform/x86: Enable Atom PMC platform clocks 2017-01-26 16:21:59 -08: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
silead_dmi.c platform/x86: silead_dmi: Add touchscreen info for Surftab Wintron 7.0 2017-04-13 11:23:46 -07:00
sony-laptop.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
surface3_button.c platform/x86: Introduce button support for the Surface 3 2016-12-16 23:30:26 +02:00
surface3-wmi.c platform/x86: surface3-wmi: fix uninitialized symbol 2017-01-21 01:43:42 +02:00
surfacepro3_button.c surfacepro3_button: Add a warning when switching to tablet mode 2016-05-27 11:47:53 -07: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 platform/x86: thinkpad_acpi: add mapping for new hotkeys 2017-03-14 22:57:13 -07:00
topstar-laptop.c platform/x86: topstar-laptop: remove sparse_keymap_free() calls 2017-03-14 22:58:10 -07:00
toshiba_acpi.c platform/x86: toshiba_acpi: remove sparse_keymap_free() calls 2017-03-14 22:58:11 -07:00
toshiba_bluetooth.c platform/x86: toshiba_bluetooth: Decouple an error checking status code 2016-09-23 16:21:06 -07:00
toshiba_haps.c platform/x86: toshiba_haps: Change logging level from info to debug 2016-09-23 16:21:05 -07:00
toshiba-wmi.c platform/x86: toshiba-wmi: remove sparse_keymap_free() calls 2017-03-14 22:58:11 -07:00
wmi.c drivers/platform/x86/wmi.c: use generic UUID library 2016-05-20 17:58:30 -07:00
xo1-rfkill.c
xo15-ebook.c