summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2026-03-04 19:32:26 +0100
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2026-03-14 12:10:21 +0000
commit1653e0897f1526acfb6d041d4920ebc6a3c3b028 (patch)
tree83c1b42b35480c05f30613e8bf2b04583c43a976
parentaac0a51b16700b403a55b67ba495de021db78763 (diff)
iio: light: acpi-als: Register ACPI notify handler directly
To facilitate subsequent conversion of the driver to a platform one, make it install an ACPI notify handler directly instead of using a .notify() callback in struct acpi_driver. No intentional functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
-rw-r--r--drivers/iio/light/acpi-als.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/drivers/iio/light/acpi-als.c b/drivers/iio/light/acpi-als.c
index d5d1a8b9c035..2fe6b493c012 100644
--- a/drivers/iio/light/acpi-als.c
+++ b/drivers/iio/light/acpi-als.c
@@ -90,9 +90,9 @@ static int acpi_als_read_value(struct acpi_als *als, char *prop, s32 *val)
return 0;
}
-static void acpi_als_notify(struct acpi_device *device, u32 event)
+static void acpi_als_notify(acpi_handle handle, u32 event, void *data)
{
- struct iio_dev *indio_dev = acpi_driver_data(device);
+ struct iio_dev *indio_dev = data;
struct acpi_als *als = iio_priv(indio_dev);
if (iio_buffer_enabled(indio_dev) && iio_trigger_using_own(indio_dev)) {
@@ -102,7 +102,7 @@ static void acpi_als_notify(struct acpi_device *device, u32 event)
break;
default:
/* Unhandled event */
- dev_dbg(&device->dev,
+ dev_dbg(&als->device->dev,
"Unhandled ACPI ALS event (%08x)!\n",
event);
}
@@ -218,7 +218,17 @@ static int acpi_als_add(struct acpi_device *device)
if (ret)
return ret;
- return devm_iio_device_register(dev, indio_dev);
+ ret = devm_iio_device_register(dev, indio_dev);
+ if (ret)
+ return ret;
+
+ return acpi_dev_install_notify_handler(device, ACPI_DEVICE_NOTIFY,
+ acpi_als_notify, indio_dev);
+}
+
+static void acpi_als_remove(struct acpi_device *device)
+{
+ acpi_dev_remove_notify_handler(device, ACPI_DEVICE_NOTIFY, acpi_als_notify);
}
static const struct acpi_device_id acpi_als_device_ids[] = {
@@ -234,7 +244,7 @@ static struct acpi_driver acpi_als_driver = {
.ids = acpi_als_device_ids,
.ops = {
.add = acpi_als_add,
- .notify = acpi_als_notify,
+ .remove = acpi_als_remove,
},
};