[PATCH v1 02/17] ACPI: NFIT: core: Use devm_acpi_install_notify_handler()

Rafael J. Wysocki posted 1 patch 3 weeks, 2 days ago
drivers/acpi/nfit/core.c | 24 +++---------------------
1 file changed, 3 insertions(+), 21 deletions(-)
[PATCH v1 02/17] ACPI: NFIT: core: Use devm_acpi_install_notify_handler()
Posted by Rafael J. Wysocki 3 weeks, 2 days ago
From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>

Now that devm_acpi_install_notify_handler() is available, use it in
acpi_nfit_probe() instead of a custom devm action removing an ACPI
notify handler installed via acpi_dev_install_notify_handler().

Also drop the explicit ACPI_COMPANION() check against NULL that is
not necessary any more becuase devm_acpi_install_notify_handler()
carries out an equivalent check internally and use ACPI_HANDLE() to
retrieve the platform device's ACPI handle.

No intentional functional impact.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/acpi/nfit/core.c | 24 +++---------------------
 1 file changed, 3 insertions(+), 21 deletions(-)

diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
index 9304ac996d41..5cab62f618c8 100644
--- a/drivers/acpi/nfit/core.c
+++ b/drivers/acpi/nfit/core.c
@@ -3298,14 +3298,6 @@ static void acpi_nfit_notify(acpi_handle handle, u32 event, void *data)
 	device_unlock(dev);
 }
 
-static void acpi_nfit_remove_notify_handler(void *data)
-{
-	struct acpi_device *adev = data;
-
-	acpi_dev_remove_notify_handler(adev, ACPI_DEVICE_NOTIFY,
-				       acpi_nfit_notify);
-}
-
 void acpi_nfit_shutdown(void *data)
 {
 	struct acpi_nfit_desc *acpi_desc = data;
@@ -3342,22 +3334,12 @@ static int acpi_nfit_probe(struct platform_device *pdev)
 	struct acpi_nfit_desc *acpi_desc;
 	struct device *dev = &pdev->dev;
 	struct acpi_table_header *tbl;
-	struct acpi_device *adev;
 	acpi_status status = AE_OK;
 	acpi_size sz;
 	int rc = 0;
 
-	adev = ACPI_COMPANION(&pdev->dev);
-	if (!adev)
-		return -ENODEV;
-
-	rc = acpi_dev_install_notify_handler(adev, ACPI_DEVICE_NOTIFY,
-					     acpi_nfit_notify, dev);
-	if (rc)
-		return rc;
-
-	rc = devm_add_action_or_reset(dev, acpi_nfit_remove_notify_handler,
-					adev);
+	rc = devm_acpi_install_notify_handler(dev, ACPI_DEVICE_NOTIFY,
+					      acpi_nfit_notify, dev);
 	if (rc)
 		return rc;
 
@@ -3388,7 +3370,7 @@ static int acpi_nfit_probe(struct platform_device *pdev)
 	acpi_desc->acpi_header = *tbl;
 
 	/* Evaluate _FIT and override with that if present */
-	status = acpi_evaluate_object(adev->handle, "_FIT", NULL, &buf);
+	status = acpi_evaluate_object(ACPI_HANDLE(dev), "_FIT", NULL, &buf);
 	if (ACPI_SUCCESS(status) && buf.length > 0) {
 		union acpi_object *obj = buf.pointer;
 
-- 
2.51.0
Re: [PATCH v1 02/17] ACPI: NFIT: core: Use devm_acpi_install_notify_handler()
Posted by Rafael J. Wysocki 2 weeks, 5 days ago
On Thu, May 21, 2026 at 4:13 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
>
> From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
>
> Now that devm_acpi_install_notify_handler() is available, use it in
> acpi_nfit_probe() instead of a custom devm action removing an ACPI
> notify handler installed via acpi_dev_install_notify_handler().
>
> Also drop the explicit ACPI_COMPANION() check against NULL that is
> not necessary any more becuase devm_acpi_install_notify_handler()
> carries out an equivalent check internally and use ACPI_HANDLE() to
> retrieve the platform device's ACPI handle.
>
> No intentional functional impact.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
>  drivers/acpi/nfit/core.c | 24 +++---------------------
>  1 file changed, 3 insertions(+), 21 deletions(-)
>
> diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
> index 9304ac996d41..5cab62f618c8 100644
> --- a/drivers/acpi/nfit/core.c
> +++ b/drivers/acpi/nfit/core.c
> @@ -3298,14 +3298,6 @@ static void acpi_nfit_notify(acpi_handle handle, u32 event, void *data)
>         device_unlock(dev);
>  }
>
> -static void acpi_nfit_remove_notify_handler(void *data)
> -{
> -       struct acpi_device *adev = data;
> -
> -       acpi_dev_remove_notify_handler(adev, ACPI_DEVICE_NOTIFY,
> -                                      acpi_nfit_notify);
> -}
> -
>  void acpi_nfit_shutdown(void *data)
>  {
>         struct acpi_nfit_desc *acpi_desc = data;
> @@ -3342,22 +3334,12 @@ static int acpi_nfit_probe(struct platform_device *pdev)
>         struct acpi_nfit_desc *acpi_desc;
>         struct device *dev = &pdev->dev;
>         struct acpi_table_header *tbl;
> -       struct acpi_device *adev;
>         acpi_status status = AE_OK;
>         acpi_size sz;
>         int rc = 0;
>
> -       adev = ACPI_COMPANION(&pdev->dev);
> -       if (!adev)
> -               return -ENODEV;
> -
> -       rc = acpi_dev_install_notify_handler(adev, ACPI_DEVICE_NOTIFY,
> -                                            acpi_nfit_notify, dev);
> -       if (rc)
> -               return rc;
> -
> -       rc = devm_add_action_or_reset(dev, acpi_nfit_remove_notify_handler,
> -                                       adev);
> +       rc = devm_acpi_install_notify_handler(dev, ACPI_DEVICE_NOTIFY,
> +                                             acpi_nfit_notify, dev);
>         if (rc)
>                 return rc;
>
> @@ -3388,7 +3370,7 @@ static int acpi_nfit_probe(struct platform_device *pdev)
>         acpi_desc->acpi_header = *tbl;
>
>         /* Evaluate _FIT and override with that if present */
> -       status = acpi_evaluate_object(adev->handle, "_FIT", NULL, &buf);
> +       status = acpi_evaluate_object(ACPI_HANDLE(dev), "_FIT", NULL, &buf);
>         if (ACPI_SUCCESS(status) && buf.length > 0) {
>                 union acpi_object *obj = buf.pointer;
>
> --

I would appreciate feedback on this, but the change is
straightforward, so in the absence of any I'll pick it up assuming no
objections.