From: Rafael J. Wysocki Date: Thu, 5 Mar 2026 19:39:05 +0000 (+0100) Subject: platform/chrome: chromeos_tbmc: Register ACPI notify handler X-Git-Tag: v7.1-rc1~159^2~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de1260139dbd7610a2f25343c962569b8fe23f8f;p=thirdparty%2Fkernel%2Fstable.git platform/chrome: chromeos_tbmc: Register ACPI notify handler 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 Link: https://lore.kernel.org/r/3413961.aeNJFYEL58@rafael.j.wysocki Signed-off-by: Tzung-Bi Shih --- diff --git a/drivers/platform/chrome/chromeos_tbmc.c b/drivers/platform/chrome/chromeos_tbmc.c index e248567c0a182..9c988e697d097 100644 --- a/drivers/platform/chrome/chromeos_tbmc.c +++ b/drivers/platform/chrome/chromeos_tbmc.c @@ -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, };