backlight: apple_bl: Use acpi_video_get_backlight_type()
authorHans de Goede <hdegoede@redhat.com>
Tue, 7 Mar 2023 12:05:40 +0000 (13:05 +0100)
committerHans de Goede <hdegoede@redhat.com>
Thu, 16 Mar 2023 12:33:11 +0000 (13:33 +0100)
commit3608a2cd818a8d97bd3d4dc32f6c0afaf09b15ec
tree456d6791cc25e151b40b9471bd7be489e6f8fdce
parentf0f2903de50418899a5e5dcecf2906da44a7a05e
backlight: apple_bl: Use acpi_video_get_backlight_type()

On some MacBooks both the apple_bl and the apple-gmux backlight drivers
may be able to export a /sys/class/backlight device.

To avoid having 2 backlight devices for one LCD panel until now
the apple-gmux driver has been calling apple_bl_unregister() to move
the apple_bl backlight device out of the way when it loads.

Similar problems exist on other x86 laptops and all backlight drivers
which may be used on x86 laptops have moved to using
acpi_video_get_backlight_type() to determine whether they should load
or not.

Switch apple_bl to this model too, so that it is consistent with all
the other x86 backlight drivers.

Besides code-simplification and consistency this has 2 other benefits:

1) It removes a race during boot where userspace will briefly see
   an apple_bl backlight and then have it disappear again, leading to e.g.:
   https://bbs.archlinux.org/viewtopic.php?id=269920

2) This allows user to switch between the drivers by passing
   acpi_backlight=apple_gmux or acpi_backlight=vendor on the kernel
   commandline.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230307120540.389920-1-hdegoede@redhat.com
drivers/platform/x86/Kconfig
drivers/platform/x86/apple-gmux.c
drivers/video/backlight/Kconfig
drivers/video/backlight/apple_bl.c
include/linux/apple_bl.h [deleted file]