Messages in this thread | | | Subject | Re: [PATCH v2 0/2] Add a generic virtual thermal sensor | From | Daniel Lezcano <> | Date | Wed, 22 Sep 2021 10:10:29 +0200 |
| |
On 20/09/2021 15:12, Alexandre Bailon wrote: > > On 9/17/21 4:03 PM, Daniel Lezcano wrote: >> On 17/09/2021 15:33, Alexandre Bailon wrote: >>> Hi Daniel, >>> >>> On 9/17/21 2:41 PM, Daniel Lezcano wrote: >>>> On 17/09/2021 09:27, Alexandre Bailon wrote: >>>>> This series add a virtual thermal sensor. >>>>> It could be used to get a temperature using some thermal sensors. >>>>> Currently, the supported operations are max, min and avg. >>>>> The virtual sensor could be easily extended to support others >>>>> operations. >>>>> >>>>> Note: >>>>> Currently, thermal drivers must explicitly register their sensors to >>>>> make them >>>>> available to the virtual sensor. >>>>> This doesn't seem a good solution to me and I think it would be >>>>> preferable to >>>>> update the framework to register the list of each available sensors. >>>> Why must the drivers do that ? >>> Because there are no central place where thermal sensor are registered. >>> The only other way I found was to update thermal_of.c, >>> to register the thermal sensors and make them available later to the >>> virtual thermal sensor. >>> >>> To work, the virtual thermal need to get the sensor_data the ops from >>> the thermal sensor. >>> And as far I know, this is only registered in thermal_of.c, in the >>> thermal zone data >>> but I can't access it directly from the virtual thermal sensor. >>> >>> How would you do it ? >> Via the phandles when registering the virtual sensor ? > As far I know, we can't get the ops or the sensor_data from the phandle > of a thermal sensor. > The closest solution I found so far would be to aggregate the thermal > zones instead of thermal sensors. > thermal_zone_device has the data needed and a thermal zone could be find > easily using its name.
Yeah, the concept of the thermal zone and the sensor are very close.
There is the function in thermal_core.h:
-> for_each_thermal_zone()
You should be able for each 'slave' sensor, do a lookup to find the corresponding thermal_zone_device_ops.
> But, using a thermal_zone_device, I don't see how to handle module > unloading.
I think try_module_get() / module_put() are adequate for this situation as it is done on an external module and we can not rely on the exported symbols.
-- <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook | <http://twitter.com/#!/linaroorg> Twitter | <http://www.linaro.org/linaro-blog/> Blog
| |