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:
parent
b82715fdd4
commit
ccba4ffd9e
|
@ -142,6 +142,11 @@ temperature) and throttle appropriate devices.
|
||||||
This is an optional feature where some platforms can choose not to
|
This is an optional feature where some platforms can choose not to
|
||||||
provide this data.
|
provide this data.
|
||||||
.governor_name: Name of the thermal governor used for this zone
|
.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
|
.num_tbps: Number of thermal_bind_params entries for this zone
|
||||||
.tbp: thermal_bind_params entries
|
.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);
|
mutex_unlock(&thermal_governor_lock);
|
||||||
|
|
||||||
result = thermal_add_hwmon_sysfs(tz);
|
if (!tz->tzp || !tz->tzp->no_hwmon) {
|
||||||
if (result)
|
result = thermal_add_hwmon_sysfs(tz);
|
||||||
goto unregister;
|
if (result)
|
||||||
|
goto unregister;
|
||||||
|
}
|
||||||
|
|
||||||
mutex_lock(&thermal_list_lock);
|
mutex_lock(&thermal_list_lock);
|
||||||
list_add_tail(&tz->node, &thermal_tz_list);
|
list_add_tail(&tz->node, &thermal_tz_list);
|
||||||
|
|
|
@ -214,6 +214,14 @@ struct thermal_bind_params {
|
||||||
/* Structure to define Thermal Zone parameters */
|
/* Structure to define Thermal Zone parameters */
|
||||||
struct thermal_zone_params {
|
struct thermal_zone_params {
|
||||||
char governor_name[THERMAL_NAME_LENGTH];
|
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 */
|
int num_tbps; /* Number of tbp entries */
|
||||||
struct thermal_bind_params *tbp;
|
struct thermal_bind_params *tbp;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue