Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccba4ffd authored by Eduardo Valentin's avatar Eduardo Valentin
Browse files

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: default avatarWei Ni <wni@nvidia.com>
Signed-off-by: default avatarEduardo Valentin <eduardo.valentin@ti.com>
parent b82715fd
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -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


+5 −3
Original line number Original line Diff line number Diff line
@@ -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);


	if (!tz->tzp || !tz->tzp->no_hwmon) {
		result = thermal_add_hwmon_sysfs(tz);
		result = thermal_add_hwmon_sysfs(tz);
		if (result)
		if (result)
			goto unregister;
			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);
+8 −0
Original line number Original line Diff line number Diff line
@@ -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;
};
};