thermal: remove get_mode() operation of drivers
get_mode() is now redundant, as the state is stored in struct thermal_zone_device. Consequently the "mode" attribute in sysfs can always be visible, because it is always possible to get the mode from struct tzd. Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> [for acerhdf] Acked-by: Peter Kaestle <peter@piie.net> Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com> Reviewed-by: Amit Kucheria <amit.kucheria@linaro.org> Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Link: https://lore.kernel.org/r/20200629122925.21729-6-andrzej.p@collabora.com
This commit is contained in:
Родитель
5a3506657f
Коммит
1ee14820fd
|
@ -525,14 +525,6 @@ static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int thermal_get_mode(struct thermal_zone_device *thermal,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = thermal->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int thermal_set_mode(struct thermal_zone_device *thermal,
|
static int thermal_set_mode(struct thermal_zone_device *thermal,
|
||||||
enum thermal_device_mode mode)
|
enum thermal_device_mode mode)
|
||||||
{
|
{
|
||||||
|
@ -847,7 +839,6 @@ static struct thermal_zone_device_ops acpi_thermal_zone_ops = {
|
||||||
.bind = acpi_thermal_bind_cooling_device,
|
.bind = acpi_thermal_bind_cooling_device,
|
||||||
.unbind = acpi_thermal_unbind_cooling_device,
|
.unbind = acpi_thermal_unbind_cooling_device,
|
||||||
.get_temp = thermal_get_temp,
|
.get_temp = thermal_get_temp,
|
||||||
.get_mode = thermal_get_mode,
|
|
||||||
.set_mode = thermal_set_mode,
|
.set_mode = thermal_set_mode,
|
||||||
.get_trip_type = thermal_get_trip_type,
|
.get_trip_type = thermal_get_trip_type,
|
||||||
.get_trip_temp = thermal_get_trip_temp,
|
.get_trip_temp = thermal_get_trip_temp,
|
||||||
|
|
|
@ -275,14 +275,6 @@ static int mlxsw_thermal_unbind(struct thermal_zone_device *tzdev,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mlxsw_thermal_get_mode(struct thermal_zone_device *tzdev,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = tzdev->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int mlxsw_thermal_set_mode(struct thermal_zone_device *tzdev,
|
static int mlxsw_thermal_set_mode(struct thermal_zone_device *tzdev,
|
||||||
enum thermal_device_mode mode)
|
enum thermal_device_mode mode)
|
||||||
{
|
{
|
||||||
|
@ -402,7 +394,6 @@ static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
|
||||||
static struct thermal_zone_device_ops mlxsw_thermal_ops = {
|
static struct thermal_zone_device_ops mlxsw_thermal_ops = {
|
||||||
.bind = mlxsw_thermal_bind,
|
.bind = mlxsw_thermal_bind,
|
||||||
.unbind = mlxsw_thermal_unbind,
|
.unbind = mlxsw_thermal_unbind,
|
||||||
.get_mode = mlxsw_thermal_get_mode,
|
|
||||||
.set_mode = mlxsw_thermal_set_mode,
|
.set_mode = mlxsw_thermal_set_mode,
|
||||||
.get_temp = mlxsw_thermal_get_temp,
|
.get_temp = mlxsw_thermal_get_temp,
|
||||||
.get_trip_type = mlxsw_thermal_get_trip_type,
|
.get_trip_type = mlxsw_thermal_get_trip_type,
|
||||||
|
@ -461,14 +452,6 @@ static int mlxsw_thermal_module_unbind(struct thermal_zone_device *tzdev,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mlxsw_thermal_module_mode_get(struct thermal_zone_device *tzdev,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = tzdev->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int mlxsw_thermal_module_mode_set(struct thermal_zone_device *tzdev,
|
static int mlxsw_thermal_module_mode_set(struct thermal_zone_device *tzdev,
|
||||||
enum thermal_device_mode mode)
|
enum thermal_device_mode mode)
|
||||||
{
|
{
|
||||||
|
@ -606,7 +589,6 @@ static int mlxsw_thermal_module_trend_get(struct thermal_zone_device *tzdev,
|
||||||
static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
|
static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
|
||||||
.bind = mlxsw_thermal_module_bind,
|
.bind = mlxsw_thermal_module_bind,
|
||||||
.unbind = mlxsw_thermal_module_unbind,
|
.unbind = mlxsw_thermal_module_unbind,
|
||||||
.get_mode = mlxsw_thermal_module_mode_get,
|
|
||||||
.set_mode = mlxsw_thermal_module_mode_set,
|
.set_mode = mlxsw_thermal_module_mode_set,
|
||||||
.get_temp = mlxsw_thermal_module_temp_get,
|
.get_temp = mlxsw_thermal_module_temp_get,
|
||||||
.get_trip_type = mlxsw_thermal_module_trip_type_get,
|
.get_trip_type = mlxsw_thermal_module_trip_type_get,
|
||||||
|
@ -645,7 +627,6 @@ static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
|
||||||
static struct thermal_zone_device_ops mlxsw_thermal_gearbox_ops = {
|
static struct thermal_zone_device_ops mlxsw_thermal_gearbox_ops = {
|
||||||
.bind = mlxsw_thermal_module_bind,
|
.bind = mlxsw_thermal_module_bind,
|
||||||
.unbind = mlxsw_thermal_module_unbind,
|
.unbind = mlxsw_thermal_module_unbind,
|
||||||
.get_mode = mlxsw_thermal_module_mode_get,
|
|
||||||
.set_mode = mlxsw_thermal_module_mode_set,
|
.set_mode = mlxsw_thermal_module_mode_set,
|
||||||
.get_temp = mlxsw_thermal_gearbox_temp_get,
|
.get_temp = mlxsw_thermal_gearbox_temp_get,
|
||||||
.get_trip_type = mlxsw_thermal_module_trip_type_get,
|
.get_trip_type = mlxsw_thermal_module_trip_type_get,
|
||||||
|
|
|
@ -413,17 +413,6 @@ static inline void acerhdf_enable_kernelmode(void)
|
||||||
pr_notice("kernel mode fan control ON\n");
|
pr_notice("kernel mode fan control ON\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
static int acerhdf_get_mode(struct thermal_zone_device *thermal,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
if (verbose)
|
|
||||||
pr_notice("kernel mode fan control %d\n", kernelmode);
|
|
||||||
|
|
||||||
*mode = thermal->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* set operation mode;
|
* set operation mode;
|
||||||
* enabled: the thermal layer of the kernel takes care about
|
* enabled: the thermal layer of the kernel takes care about
|
||||||
|
@ -490,7 +479,6 @@ static struct thermal_zone_device_ops acerhdf_dev_ops = {
|
||||||
.bind = acerhdf_bind,
|
.bind = acerhdf_bind,
|
||||||
.unbind = acerhdf_unbind,
|
.unbind = acerhdf_unbind,
|
||||||
.get_temp = acerhdf_get_ec_temp,
|
.get_temp = acerhdf_get_ec_temp,
|
||||||
.get_mode = acerhdf_get_mode,
|
|
||||||
.set_mode = acerhdf_set_mode,
|
.set_mode = acerhdf_set_mode,
|
||||||
.get_trip_type = acerhdf_get_trip_type,
|
.get_trip_type = acerhdf_get_trip_type,
|
||||||
.get_trip_hyst = acerhdf_get_trip_hyst,
|
.get_trip_hyst = acerhdf_get_trip_hyst,
|
||||||
|
|
|
@ -120,13 +120,6 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data)
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int da9062_thermal_get_mode(struct thermal_zone_device *z,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = z->mode;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int da9062_thermal_get_trip_type(struct thermal_zone_device *z,
|
static int da9062_thermal_get_trip_type(struct thermal_zone_device *z,
|
||||||
int trip,
|
int trip,
|
||||||
enum thermal_trip_type *type)
|
enum thermal_trip_type *type)
|
||||||
|
@ -179,7 +172,6 @@ static int da9062_thermal_get_temp(struct thermal_zone_device *z,
|
||||||
|
|
||||||
static struct thermal_zone_device_ops da9062_thermal_ops = {
|
static struct thermal_zone_device_ops da9062_thermal_ops = {
|
||||||
.get_temp = da9062_thermal_get_temp,
|
.get_temp = da9062_thermal_get_temp,
|
||||||
.get_mode = da9062_thermal_get_mode,
|
|
||||||
.get_trip_type = da9062_thermal_get_trip_type,
|
.get_trip_type = da9062_thermal_get_trip_type,
|
||||||
.get_trip_temp = da9062_thermal_get_trip_temp,
|
.get_trip_temp = da9062_thermal_get_trip_temp,
|
||||||
};
|
};
|
||||||
|
|
|
@ -330,14 +330,6 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int imx_get_mode(struct thermal_zone_device *tz,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = tz->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int imx_set_mode(struct thermal_zone_device *tz,
|
static int imx_set_mode(struct thermal_zone_device *tz,
|
||||||
enum thermal_device_mode mode)
|
enum thermal_device_mode mode)
|
||||||
{
|
{
|
||||||
|
@ -464,7 +456,6 @@ static struct thermal_zone_device_ops imx_tz_ops = {
|
||||||
.bind = imx_bind,
|
.bind = imx_bind,
|
||||||
.unbind = imx_unbind,
|
.unbind = imx_unbind,
|
||||||
.get_temp = imx_get_temp,
|
.get_temp = imx_get_temp,
|
||||||
.get_mode = imx_get_mode,
|
|
||||||
.set_mode = imx_set_mode,
|
.set_mode = imx_set_mode,
|
||||||
.get_trip_type = imx_get_trip_type,
|
.get_trip_type = imx_get_trip_type,
|
||||||
.get_trip_temp = imx_get_trip_temp,
|
.get_trip_temp = imx_get_trip_temp,
|
||||||
|
|
|
@ -377,14 +377,6 @@ static int int3400_thermal_get_temp(struct thermal_zone_device *thermal,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int int3400_thermal_get_mode(struct thermal_zone_device *thermal,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = thermal->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int int3400_thermal_set_mode(struct thermal_zone_device *thermal,
|
static int int3400_thermal_set_mode(struct thermal_zone_device *thermal,
|
||||||
enum thermal_device_mode mode)
|
enum thermal_device_mode mode)
|
||||||
{
|
{
|
||||||
|
@ -412,7 +404,6 @@ static int int3400_thermal_set_mode(struct thermal_zone_device *thermal,
|
||||||
|
|
||||||
static struct thermal_zone_device_ops int3400_thermal_ops = {
|
static struct thermal_zone_device_ops int3400_thermal_ops = {
|
||||||
.get_temp = int3400_thermal_get_temp,
|
.get_temp = int3400_thermal_get_temp,
|
||||||
.get_mode = int3400_thermal_get_mode,
|
|
||||||
.set_mode = int3400_thermal_set_mode,
|
.set_mode = int3400_thermal_set_mode,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -308,13 +308,6 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int sys_get_mode(struct thermal_zone_device *tzd,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = tzd->mode;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int sys_set_mode(struct thermal_zone_device *tzd,
|
static int sys_set_mode(struct thermal_zone_device *tzd,
|
||||||
enum thermal_device_mode mode)
|
enum thermal_device_mode mode)
|
||||||
{
|
{
|
||||||
|
@ -336,7 +329,6 @@ static struct thermal_zone_device_ops tzone_ops = {
|
||||||
.get_trip_type = sys_get_trip_type,
|
.get_trip_type = sys_get_trip_type,
|
||||||
.set_trip_temp = sys_set_trip_temp,
|
.set_trip_temp = sys_set_trip_temp,
|
||||||
.get_crit_temp = sys_get_crit_temp,
|
.get_crit_temp = sys_get_crit_temp,
|
||||||
.get_mode = sys_get_mode,
|
|
||||||
.set_mode = sys_set_mode,
|
.set_mode = sys_set_mode,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1456,7 +1456,6 @@ static int thermal_pm_notify(struct notifier_block *nb,
|
||||||
unsigned long mode, void *_unused)
|
unsigned long mode, void *_unused)
|
||||||
{
|
{
|
||||||
struct thermal_zone_device *tz;
|
struct thermal_zone_device *tz;
|
||||||
enum thermal_device_mode tz_mode;
|
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case PM_HIBERNATION_PREPARE:
|
case PM_HIBERNATION_PREPARE:
|
||||||
|
@ -1469,11 +1468,7 @@ static int thermal_pm_notify(struct notifier_block *nb,
|
||||||
case PM_POST_SUSPEND:
|
case PM_POST_SUSPEND:
|
||||||
atomic_set(&in_suspend, 0);
|
atomic_set(&in_suspend, 0);
|
||||||
list_for_each_entry(tz, &thermal_tz_list, node) {
|
list_for_each_entry(tz, &thermal_tz_list, node) {
|
||||||
tz_mode = THERMAL_DEVICE_ENABLED;
|
if (tz->mode == THERMAL_DEVICE_DISABLED)
|
||||||
if (tz->ops->get_mode)
|
|
||||||
tz->ops->get_mode(tz, &tz_mode);
|
|
||||||
|
|
||||||
if (tz_mode == THERMAL_DEVICE_DISABLED)
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
thermal_zone_device_init(tz);
|
thermal_zone_device_init(tz);
|
||||||
|
|
|
@ -267,14 +267,6 @@ static int of_thermal_unbind(struct thermal_zone_device *thermal,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int of_thermal_get_mode(struct thermal_zone_device *tz,
|
|
||||||
enum thermal_device_mode *mode)
|
|
||||||
{
|
|
||||||
*mode = tz->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int of_thermal_set_mode(struct thermal_zone_device *tz,
|
static int of_thermal_set_mode(struct thermal_zone_device *tz,
|
||||||
enum thermal_device_mode mode)
|
enum thermal_device_mode mode)
|
||||||
{
|
{
|
||||||
|
@ -389,7 +381,6 @@ static int of_thermal_get_crit_temp(struct thermal_zone_device *tz,
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct thermal_zone_device_ops of_thermal_ops = {
|
static struct thermal_zone_device_ops of_thermal_ops = {
|
||||||
.get_mode = of_thermal_get_mode,
|
|
||||||
.set_mode = of_thermal_set_mode,
|
.set_mode = of_thermal_set_mode,
|
||||||
|
|
||||||
.get_trip_type = of_thermal_get_trip_type,
|
.get_trip_type = of_thermal_get_trip_type,
|
||||||
|
|
|
@ -49,18 +49,9 @@ static ssize_t
|
||||||
mode_show(struct device *dev, struct device_attribute *attr, char *buf)
|
mode_show(struct device *dev, struct device_attribute *attr, char *buf)
|
||||||
{
|
{
|
||||||
struct thermal_zone_device *tz = to_thermal_zone(dev);
|
struct thermal_zone_device *tz = to_thermal_zone(dev);
|
||||||
enum thermal_device_mode mode;
|
|
||||||
int result;
|
|
||||||
|
|
||||||
if (!tz->ops->get_mode)
|
return sprintf(buf, "%s\n", tz->mode == THERMAL_DEVICE_ENABLED ?
|
||||||
return -EPERM;
|
"enabled" : "disabled");
|
||||||
|
|
||||||
result = tz->ops->get_mode(tz, &mode);
|
|
||||||
if (result)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
return sprintf(buf, "%s\n", mode == THERMAL_DEVICE_ENABLED ? "enabled"
|
|
||||||
: "disabled");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t
|
static ssize_t
|
||||||
|
@ -428,30 +419,13 @@ static struct attribute_group thermal_zone_attribute_group = {
|
||||||
.attrs = thermal_zone_dev_attrs,
|
.attrs = thermal_zone_dev_attrs,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* We expose mode only if .get_mode is present */
|
|
||||||
static struct attribute *thermal_zone_mode_attrs[] = {
|
static struct attribute *thermal_zone_mode_attrs[] = {
|
||||||
&dev_attr_mode.attr,
|
&dev_attr_mode.attr,
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static umode_t thermal_zone_mode_is_visible(struct kobject *kobj,
|
|
||||||
struct attribute *attr,
|
|
||||||
int attrno)
|
|
||||||
{
|
|
||||||
struct device *dev = container_of(kobj, struct device, kobj);
|
|
||||||
struct thermal_zone_device *tz;
|
|
||||||
|
|
||||||
tz = container_of(dev, struct thermal_zone_device, device);
|
|
||||||
|
|
||||||
if (tz->ops->get_mode)
|
|
||||||
return attr->mode;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct attribute_group thermal_zone_mode_attribute_group = {
|
static struct attribute_group thermal_zone_mode_attribute_group = {
|
||||||
.attrs = thermal_zone_mode_attrs,
|
.attrs = thermal_zone_mode_attrs,
|
||||||
.is_visible = thermal_zone_mode_is_visible,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* We expose passive only if passive trips are present */
|
/* We expose passive only if passive trips are present */
|
||||||
|
|
|
@ -76,8 +76,6 @@ struct thermal_zone_device_ops {
|
||||||
struct thermal_cooling_device *);
|
struct thermal_cooling_device *);
|
||||||
int (*get_temp) (struct thermal_zone_device *, int *);
|
int (*get_temp) (struct thermal_zone_device *, int *);
|
||||||
int (*set_trips) (struct thermal_zone_device *, int, int);
|
int (*set_trips) (struct thermal_zone_device *, int, int);
|
||||||
int (*get_mode) (struct thermal_zone_device *,
|
|
||||||
enum thermal_device_mode *);
|
|
||||||
int (*set_mode) (struct thermal_zone_device *,
|
int (*set_mode) (struct thermal_zone_device *,
|
||||||
enum thermal_device_mode);
|
enum thermal_device_mode);
|
||||||
int (*get_trip_type) (struct thermal_zone_device *, int,
|
int (*get_trip_type) (struct thermal_zone_device *, int,
|
||||||
|
|
Загрузка…
Ссылка в новой задаче