diff mbox series

i2c: ACPI: Replace acpi_bus_get_device()

Message ID 4374434.LvFx2qVVIh@kreacher
State New
Headers show
Series i2c: ACPI: Replace acpi_bus_get_device() | expand

Commit Message

Rafael J. Wysocki Feb. 1, 2022, 6 p.m. UTC
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Replace acpi_bus_get_device() that is going to be dropped with
acpi_fetch_acpi_dev().

No intentional functional impact.

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

Comments

Andy Shevchenko Feb. 1, 2022, 8:18 p.m. UTC | #1
On Tue, Feb 01, 2022 at 08:01:46PM +0100, Rafael J. Wysocki wrote:
> On Tue, Feb 1, 2022 at 7:44 PM Andy Shevchenko
> <andriy.shevchenko@linux.intel.com> wrote:
> >
> > On Tue, Feb 01, 2022 at 07:00:42PM +0100, Rafael J. Wysocki wrote:
> > > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > >
> > > Replace acpi_bus_get_device() that is going to be dropped with
> > > acpi_fetch_acpi_dev().
> > >
> > > No intentional functional impact.
> >
> > ...
> >
> > > +     if (!adev || i2c_acpi_get_info(adev, &info, adapter, NULL))
> >
> > AFAICS the !adev check is redundant since acpi_device_enumerated() does it.
> 
> No.
> 
> acpi_device_enumerated() returns false if adev is NULL, so without
> this extra check i2c_acpi_get_info() will end up passing NULL to
> i2c_acpi_do_lookup().

I see now.

The patch LGTM,
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

> > >               return AE_OK;
> >
> > ...
> >
> > > +     struct acpi_device *adev = acpi_fetch_acpi_dev(handle);
> > >
> > > -     if (i2c_acpi_do_lookup(adev, lookup))
> > > +     if (!adev || i2c_acpi_do_lookup(adev, lookup))
> > >               return AE_OK;
> >
> > Here we need it indeed.
> > Dunno, if acpi_dev_ready_for_enumeration() can gain the check itself.
> 
> Well, acpi_bus_get_status() would need it too.
Mika Westerberg Feb. 2, 2022, 2:46 p.m. UTC | #2
On Tue, Feb 01, 2022 at 07:00:42PM +0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> Replace acpi_bus_get_device() that is going to be dropped with
> acpi_fetch_acpi_dev().
> 
> No intentional functional impact.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Wolfram Sang Feb. 7, 2022, 4:01 p.m. UTC | #3
On Tue, Feb 01, 2022 at 07:00:42PM +0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> Replace acpi_bus_get_device() that is going to be dropped with
> acpi_fetch_acpi_dev().
> 
> No intentional functional impact.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Applied to for-next, thanks! Let me know if you need it in for-current
instead to get rid of the to-be-deprecated function earlier.
diff mbox series

Patch

Index: linux-pm/drivers/i2c/i2c-core-acpi.c
===================================================================
--- linux-pm.orig/drivers/i2c/i2c-core-acpi.c
+++ linux-pm/drivers/i2c/i2c-core-acpi.c
@@ -236,7 +236,8 @@  static int i2c_acpi_get_info(struct acpi
 		struct acpi_device *adapter_adev;
 
 		/* The adapter must be present */
-		if (acpi_bus_get_device(lookup.adapter_handle, &adapter_adev))
+		adapter_adev = acpi_fetch_acpi_dev(lookup.adapter_handle);
+		if (!adapter_adev)
 			return -ENODEV;
 		if (acpi_bus_get_status(adapter_adev) ||
 		    !adapter_adev->status.present)
@@ -275,13 +276,10 @@  static acpi_status i2c_acpi_add_device(a
 				       void *data, void **return_value)
 {
 	struct i2c_adapter *adapter = data;
-	struct acpi_device *adev;
+	struct acpi_device *adev = acpi_fetch_acpi_dev(handle);
 	struct i2c_board_info info;
 
-	if (acpi_bus_get_device(handle, &adev))
-		return AE_OK;
-
-	if (i2c_acpi_get_info(adev, &info, adapter, NULL))
+	if (!adev || i2c_acpi_get_info(adev, &info, adapter, NULL))
 		return AE_OK;
 
 	i2c_acpi_register_device(adapter, adev, &info);
@@ -341,12 +339,9 @@  static acpi_status i2c_acpi_lookup_speed
 					   void *data, void **return_value)
 {
 	struct i2c_acpi_lookup *lookup = data;
-	struct acpi_device *adev;
-
-	if (acpi_bus_get_device(handle, &adev))
-		return AE_OK;
+	struct acpi_device *adev = acpi_fetch_acpi_dev(handle);
 
-	if (i2c_acpi_do_lookup(adev, lookup))
+	if (!adev || i2c_acpi_do_lookup(adev, lookup))
 		return AE_OK;
 
 	if (lookup->search_handle != lookup->adapter_handle)