]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/chrome: chromeos_tbmc: Register ACPI notify handler
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 5 Mar 2026 19:39:05 +0000 (20:39 +0100)
committerTzung-Bi Shih <tzungbi@kernel.org>
Fri, 6 Mar 2026 04:35:07 +0000 (04:35 +0000)
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>
Link: https://lore.kernel.org/r/3413961.aeNJFYEL58@rafael.j.wysocki
Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
drivers/platform/chrome/chromeos_tbmc.c

index e248567c0a18239ab2ebe5318722a1e9605d1fce..9c988e697d09733fc3507739bc190e3727aadad8 100644 (file)
@@ -45,8 +45,10 @@ static __maybe_unused int chromeos_tbmc_resume(struct device *dev)
        return chromeos_tbmc_query_switch(adev, adev->driver_data);
 }
 
-static void chromeos_tbmc_notify(struct acpi_device *adev, u32 event)
+static void chromeos_tbmc_notify(acpi_handle handle, u32 event, void *data)
 {
+       struct acpi_device *adev = data;
+
        acpi_pm_wakeup_event(&adev->dev);
        switch (event) {
        case 0x80:
@@ -92,11 +94,22 @@ static int chromeos_tbmc_add(struct acpi_device *adev)
                return ret;
        }
        device_init_wakeup(dev, true);
+
+       ret = acpi_dev_install_notify_handler(adev, ACPI_DEVICE_NOTIFY,
+                                             chromeos_tbmc_notify, adev);
+       if (ret) {
+               dev_err(dev, "cannot install ACPI notify handler\n");
+               device_init_wakeup(dev, false);
+               return ret;
+       }
+
        return 0;
 }
 
 static void chromeos_tbmc_remove(struct acpi_device *adev)
 {
+       acpi_dev_remove_notify_handler(adev, ACPI_DEVICE_NOTIFY,
+                                      chromeos_tbmc_notify);
        device_init_wakeup(&adev->dev, false);
 }
 
@@ -116,7 +129,6 @@ static struct acpi_driver chromeos_tbmc_driver = {
        .ops = {
                .add = chromeos_tbmc_add,
                .remove = chromeos_tbmc_remove,
-               .notify = chromeos_tbmc_notify,
        },
        .drv.pm = &chromeos_tbmc_pm_ops,
 };