drivers: thermal: make usage of CONFIG_THERMAL_HWMON optional
When registering a new thermal_device, the thermal framework will always add a hwmon sysfs interface. This patch adds a flag to make this behavior optional. Now when registering a new thermal device, the caller can optionally inform if hwmon interface is desirable. This can be done by means of passing a thermal_zone_params.no_hwmon == true. In order to keep same behavior as of today, all current calls will by default create the hwmon interface. Cc: David Woodhouse <dwmw2@infradead.org> Cc: linux-acpi@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: Zhang Rui <rui.zhang@intel.com> Suggested-by: Wei Ni <wni@nvidia.com> Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
This commit is contained in:
Родитель
b82715fdd4
Коммит
ccba4ffd9e
|
@ -142,6 +142,11 @@ temperature) and throttle appropriate devices.
|
|||
This is an optional feature where some platforms can choose not to
|
||||
provide this data.
|
||||
.governor_name: Name of the thermal governor used for this zone
|
||||
.no_hwmon: a boolean to indicate if the thermal to hwmon sysfs interface
|
||||
is required. when no_hwmon == false, a hwmon sysfs interface
|
||||
will be created. when no_hwmon == true, nothing will be done.
|
||||
In case the thermal_zone_params is NULL, the hwmon interface
|
||||
will be created (for backward compatibility).
|
||||
.num_tbps: Number of thermal_bind_params entries for this zone
|
||||
.tbp: thermal_bind_params entries
|
||||
|
||||
|
|
|
@ -1462,9 +1462,11 @@ struct thermal_zone_device *thermal_zone_device_register(const char *type,
|
|||
|
||||
mutex_unlock(&thermal_governor_lock);
|
||||
|
||||
result = thermal_add_hwmon_sysfs(tz);
|
||||
if (result)
|
||||
goto unregister;
|
||||
if (!tz->tzp || !tz->tzp->no_hwmon) {
|
||||
result = thermal_add_hwmon_sysfs(tz);
|
||||
if (result)
|
||||
goto unregister;
|
||||
}
|
||||
|
||||
mutex_lock(&thermal_list_lock);
|
||||
list_add_tail(&tz->node, &thermal_tz_list);
|
||||
|
|
|
@ -214,6 +214,14 @@ struct thermal_bind_params {
|
|||
/* Structure to define Thermal Zone parameters */
|
||||
struct thermal_zone_params {
|
||||
char governor_name[THERMAL_NAME_LENGTH];
|
||||
|
||||
/*
|
||||
* a boolean to indicate if the thermal to hwmon sysfs interface
|
||||
* is required. when no_hwmon == false, a hwmon sysfs interface
|
||||
* will be created. when no_hwmon == true, nothing will be done
|
||||
*/
|
||||
bool no_hwmon;
|
||||
|
||||
int num_tbps; /* Number of tbp entries */
|
||||
struct thermal_bind_params *tbp;
|
||||
};
|
||||
|
|
Загрузка…
Ссылка в новой задаче