Re: [PATCH v1 07/10] ACPI: thermal: Use cooling device parent for thermal zone binding

From: Andy Shevchenko

Date: Fri Sep 11 2026 - 12:43:12 EST


On Fri, Sep 11, 2026 at 03:05:07PM +0200, Rafael J. Wysocki wrote:

> The ACPI thermal zone .should_bind() callback function,
> acpi_thermal_should_bind_cdev(), expects the given cooling device's
> devdata to point to an ACPI device object whose ACPI handle should be
> compared with ACPI handles in a list associated with the given trip
> point. That is not particularly straightforward and it effectively
> requires the drivers of ACPI cooling devices to populate the devdata
> with addresses of the ACPI companions of the devices they bind to.
> Consequently, the devdata cannot be used by the driver for its own
> needs which is its intended purpose.
>
> That can be overcome with the help of the observation that the
> ACPI device objects to be matched against the lists of ACPI handles
> associated with trip points are in fact the ACPI companions of the
> parents of cooling devices. Thus instead of using the given cooling
> device's devdata, it is sufficient to obtain the ACPI handle of its
> parent and compare that ACPI handle with the ones in the list
> associated with the given trip point.

...

> + parent_handle = ACPI_HANDLE(parent);
>
> - if (acpi_fetch_acpi_dev(handle) == cdev_adev)
> + for (i = 0; i < acpi_trip->devices.count; i++) {
> + if (acpi_trip->devices.handles[i] == parent_handle)

device_match_acpi_handle() ?

if (device_match_acpi_handle(parent, acpi_trip->devices.handles[i]))

> return true;
> }

--
With Best Regards,
Andy Shevchenko