drivers/video/backlight/apple_bl.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-)
From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
In all cases in which a struct acpi_driver is used for binding a driver
to an ACPI device object, a corresponding platform device is created by
the ACPI core and that device is regarded as a proper representation of
underlying hardware. Accordingly, a struct platform_driver should be
used by driver code to bind to that device. There are multiple reasons
why drivers should not bind directly to ACPI device objects [1].
Overall, it is better to bind drivers to platform devices than to their
ACPI companions, so convert the Apple Backlight ACPI driver to a
platform one.
While this is not expected to alter functionality, it changes sysfs
layout and so it will be visible to user space.
Link: https://lore.kernel.org/all/2396510.ElGaqSPkdT@rafael.j.wysocki/ [1]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/video/backlight/apple_bl.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/drivers/video/backlight/apple_bl.c b/drivers/video/backlight/apple_bl.c
index aaa824437a2a..423513d68b5b 100644
--- a/drivers/video/backlight/apple_bl.c
+++ b/drivers/video/backlight/apple_bl.c
@@ -24,6 +24,7 @@
#include <linux/pci.h>
#include <linux/acpi.h>
#include <linux/atomic.h>
+#include <linux/platform_device.h>
#include <acpi/video.h>
static struct backlight_device *apple_backlight_device;
@@ -134,7 +135,7 @@ static const struct hw_data nvidia_chipset_data = {
.set_brightness = nvidia_chipset_set_brightness,
};
-static int apple_bl_add(struct acpi_device *dev)
+static int apple_bl_probe(struct platform_device *pdev)
{
struct backlight_properties props;
struct pci_dev *host;
@@ -193,7 +194,7 @@ static int apple_bl_add(struct acpi_device *dev)
return 0;
}
-static void apple_bl_remove(struct acpi_device *dev)
+static void apple_bl_remove(struct platform_device *pdev)
{
backlight_device_unregister(apple_backlight_device);
@@ -206,12 +207,12 @@ static const struct acpi_device_id apple_bl_ids[] = {
{"", 0},
};
-static struct acpi_driver apple_bl_driver = {
- .name = "Apple backlight",
- .ids = apple_bl_ids,
- .ops = {
- .add = apple_bl_add,
- .remove = apple_bl_remove,
+static struct platform_driver apple_bl_driver = {
+ .probe = apple_bl_probe,
+ .remove = apple_bl_remove,
+ .driver = {
+ .name = "Apple backlight",
+ .acpi_match_table = apple_bl_ids,
},
};
@@ -224,12 +225,12 @@ static int __init apple_bl_init(void)
if (acpi_video_get_backlight_type() != acpi_backlight_vendor)
return -ENODEV;
- return acpi_bus_register_driver(&apple_bl_driver);
+ return platform_driver_register(&apple_bl_driver);
}
static void __exit apple_bl_exit(void)
{
- acpi_bus_unregister_driver(&apple_bl_driver);
+ platform_driver_unregister(&apple_bl_driver);
}
module_init(apple_bl_init);
--
2.51.0
On Sat, 14 Mar 2026 12:50:11 +0100, Rafael J. Wysocki wrote:
> In all cases in which a struct acpi_driver is used for binding a driver
> to an ACPI device object, a corresponding platform device is created by
> the ACPI core and that device is regarded as a proper representation of
> underlying hardware. Accordingly, a struct platform_driver should be
> used by driver code to bind to that device. There are multiple reasons
> why drivers should not bind directly to ACPI device objects [1].
>
> [...]
Applied, thanks!
[1/1] backlight: apple_bl: Convert to a platform driver
commit: 04d8f3fd0b52ead84eb722989afa094b8fca9129
--
Lee Jones [李琼斯]
On Sat, Mar 14, 2026 at 12:50:11PM +0100, Rafael J. Wysocki wrote: > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > In all cases in which a struct acpi_driver is used for binding a driver > to an ACPI device object, a corresponding platform device is created by > the ACPI core and that device is regarded as a proper representation of > underlying hardware. Accordingly, a struct platform_driver should be > used by driver code to bind to that device. There are multiple reasons > why drivers should not bind directly to ACPI device objects [1]. > > Overall, it is better to bind drivers to platform devices than to their > ACPI companions, so convert the Apple Backlight ACPI driver to a > platform one. > > While this is not expected to alter functionality, it changes sysfs > layout and so it will be visible to user space. > > Link: https://lore.kernel.org/all/2396510.ElGaqSPkdT@rafael.j.wysocki/ [1] > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org> Daniel.
On Mon, Mar 23, 2026 at 10:57 AM Daniel Thompson <danielt@kernel.org> wrote: > > On Sat, Mar 14, 2026 at 12:50:11PM +0100, Rafael J. Wysocki wrote: > > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > > > In all cases in which a struct acpi_driver is used for binding a driver > > to an ACPI device object, a corresponding platform device is created by > > the ACPI core and that device is regarded as a proper representation of > > underlying hardware. Accordingly, a struct platform_driver should be > > used by driver code to bind to that device. There are multiple reasons > > why drivers should not bind directly to ACPI device objects [1]. > > > > Overall, it is better to bind drivers to platform devices than to their > > ACPI companions, so convert the Apple Backlight ACPI driver to a > > platform one. > > > > While this is not expected to alter functionality, it changes sysfs > > layout and so it will be visible to user space. > > > > Link: https://lore.kernel.org/all/2396510.ElGaqSPkdT@rafael.j.wysocki/ [1] > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org> Thanks! Unless anyone has any objections or concerns (in which case please let me know), I'm going to queue up this one for 7.1.
On Tue, 24 Mar 2026, Rafael J. Wysocki wrote: > On Mon, Mar 23, 2026 at 10:57 AM Daniel Thompson <danielt@kernel.org> wrote: > > > > On Sat, Mar 14, 2026 at 12:50:11PM +0100, Rafael J. Wysocki wrote: > > > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > > > > > In all cases in which a struct acpi_driver is used for binding a driver > > > to an ACPI device object, a corresponding platform device is created by > > > the ACPI core and that device is regarded as a proper representation of > > > underlying hardware. Accordingly, a struct platform_driver should be > > > used by driver code to bind to that device. There are multiple reasons > > > why drivers should not bind directly to ACPI device objects [1]. > > > > > > Overall, it is better to bind drivers to platform devices than to their > > > ACPI companions, so convert the Apple Backlight ACPI driver to a > > > platform one. > > > > > > While this is not expected to alter functionality, it changes sysfs > > > layout and so it will be visible to user space. > > > > > > Link: https://lore.kernel.org/all/2396510.ElGaqSPkdT@rafael.j.wysocki/ [1] > > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > > > Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org> > > Thanks! > > Unless anyone has any objections or concerns (in which case please let > me know), I'm going to queue up this one for 7.1. Why would you queue-up a Backlight patch? I'd rather this goes in via the Backlight tree. -- Lee Jones [李琼斯]
On Tue, Mar 24, 2026 at 5:40 PM Lee Jones <lee@kernel.org> wrote: > > On Tue, 24 Mar 2026, Rafael J. Wysocki wrote: > > > On Mon, Mar 23, 2026 at 10:57 AM Daniel Thompson <danielt@kernel.org> wrote: > > > > > > On Sat, Mar 14, 2026 at 12:50:11PM +0100, Rafael J. Wysocki wrote: > > > > From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > > > > > > > > In all cases in which a struct acpi_driver is used for binding a driver > > > > to an ACPI device object, a corresponding platform device is created by > > > > the ACPI core and that device is regarded as a proper representation of > > > > underlying hardware. Accordingly, a struct platform_driver should be > > > > used by driver code to bind to that device. There are multiple reasons > > > > why drivers should not bind directly to ACPI device objects [1]. > > > > > > > > Overall, it is better to bind drivers to platform devices than to their > > > > ACPI companions, so convert the Apple Backlight ACPI driver to a > > > > platform one. > > > > > > > > While this is not expected to alter functionality, it changes sysfs > > > > layout and so it will be visible to user space. > > > > > > > > Link: https://lore.kernel.org/all/2396510.ElGaqSPkdT@rafael.j.wysocki/ [1] > > > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > > > > > Reviewed-by: Daniel Thompson (RISCstar) <danielt@kernel.org> > > > > Thanks! > > > > Unless anyone has any objections or concerns (in which case please let > > me know), I'm going to queue up this one for 7.1. > > Why would you queue-up a Backlight patch? Because I care about this change and it's mostly about ACPI. > I'd rather this goes in via the Backlight tree. Sure, no problem with that.
© 2016 - 2026 Red Hat, Inc.