Hi Daniel,
On 10/12/23 11:26, Daniel Lezcano wrote:
The thermal private header has leaked all around the drivers which
interacted with the core internals. The thermal zone structure which
was part of the exported header led also to a leakage of the fields
into the different drivers, making very difficult to improve the core
code without having to change the drivers.
Now we mostly fixed how the thermal drivers were interacting with the
thermal zones (actually fixed how they should not interact). The
thermal zone structure will be moved to the private thermal core
header. This header has been removed from the different drivers and
must belong to the core code only. In order to prevent this private
header to be included again in the drivers, make explicit only the
core code can include this header by defining a THERMAL_CORE_SUBSYS
macro. The private header will contain a check against this macro.
The Tegra SoCtherm driver needs to access thermal_core.h to have the
get_thermal_instance() function definition. It is the only one
remaining driver which need to access the thermal_core.h header, so
the check will emit a warning at compilation time.
Thierry Reding is reworking the driver to get rid of this function [1]
and thus when the changes will be merged, the compilation warning will
be converted to a compilation error, closing definitively the door to
the drivers willing to play with the thermal zone device internals.
That looks like a good idea. Although, shouldn't we avoid the
compilation warnings and just first merge the fixes for drivers?