On Tue, Oct 12, 2021 at 8:21 PM Maximilian Luz <luzmaximilian@xxxxxxxxx> wrote: > > On 10/12/21 19:46, Rafael J. Wysocki wrote: > > From: Rafael J. Wysocki <rafael@xxxxxxxxxx> > > > > The ACPI_HANDLE() macro is a wrapper arond the ACPI_COMPANION() > > macro and the ACPI handle produced by the former comes from the > > ACPI device object produced by the latter, so it is way more > > straightforward to evaluate the latter directly instead of passing > > the handle produced by the former to acpi_bus_get_device(). > > > > Modify mshw0011_notify() accordingly (no intentional functional > > impact). > > > > Signed-off-by: Rafael J. Wysocki <rafael@xxxxxxxxxx> > > Looks mostly good to me, small comment/question inline. > > > --- > > drivers/platform/surface/surface3_power.c | 9 ++++----- > > 1 file changed, 4 insertions(+), 5 deletions(-) > > > > Index: linux-pm/drivers/platform/surface/surface3_power.c > > =================================================================== > > --- linux-pm.orig/drivers/platform/surface/surface3_power.c > > +++ linux-pm/drivers/platform/surface/surface3_power.c > > @@ -160,15 +160,14 @@ mshw0011_notify(struct mshw0011_data *cd > > { > > union acpi_object *obj; > > struct acpi_device *adev; > > - acpi_handle handle; > > unsigned int i; > > > > - handle = ACPI_HANDLE(&cdata->adp1->dev); > > - if (!handle || acpi_bus_get_device(handle, &adev)) > > + adev = ACPI_COMPANION(&cdata->adp1->dev); > > + if (!adev) > > return -ENODEV; > > Do we need to get the ACPI device (adev) here? To me it looks like only > its handle is actually used so why not keep ACPI_HANDLE() and remove the > acpi_bus_get_device() call instead? It actually doesn't really matter, but you're right, acpi_bus_get_device() is simply redundant here, so ACPI_HANDLE() is sufficient. I'll send a v2 of this one. > > > > - obj = acpi_evaluate_dsm_typed(handle, &mshw0011_guid, arg1, arg2, NULL, > > - ACPI_TYPE_BUFFER); > > + obj = acpi_evaluate_dsm_typed(adev->handle, &mshw0011_guid, arg1, arg2, > > + NULL, ACPI_TYPE_BUFFER); > > if (!obj) { > > dev_err(&cdata->adp1->dev, "device _DSM execution failed\n"); > > return -ENODEV; > > > > > > > > Regards, > Max