* Re: [PATCH v4 05/11] thermal: remove get_mode() operation of drivers
@ 2020-05-29 15:49 Guenter Roeck
2020-05-29 17:22 ` Andrzej Pietrasiewicz
0 siblings, 1 reply; 7+ messages in thread
From: Guenter Roeck @ 2020-05-29 15:49 UTC (permalink / raw)
To: Andrzej Pietrasiewicz
Cc: linux-pm, linux-acpi, netdev, linux-wireless,
platform-driver-x86, linux-arm-kernel, linux-renesas-soc,
linux-rockchip, Emmanuel Grumbach, Heiko Stuebner,
Rafael J . Wysocki, Vishal Kulkarni, Luca Coelho, Miquel Raynal,
kernel, Fabio Estevam, Amit Kucheria, Chunyan Zhang,
Daniel Lezcano, Allison Randal, NXP Linux Team, Darren Hart,
Zhang Rui, Gayatri Kammela, Len Brown, Johannes Berg,
Intel Linux Wireless, Sascha Hauer, Ido Schimmel, Baolin Wang,
Jiri Pirko, Orson Zhai, Thomas Gleixner, Kalle Valo,
Support Opensource, Enrico Weigelt, Peter Kaestle,
Sebastian Reichel, Bartlomiej Zolnierkiewicz,
Pengutronix Kernel Team, Niklas Söderlund, Shawn Guo,
David S . Miller, Andy Shevchenko
On Thu, May 28, 2020 at 09:20:45PM +0200, Andrzej Pietrasiewicz wrote:
> 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>
There is a slight semantic change for the two drivers which still have
a local copy of enum thermal_device_mode: Previously trying to read the
mode for those would return -EPERM since they don't have a get_mode
function. Now the global value for mode is returned, but I am not sure
if it matches the local value.
Guenter
> ---
> drivers/acpi/thermal.c | 9 ------
> .../ethernet/mellanox/mlxsw/core_thermal.c | 19 ------------
> drivers/platform/x86/acerhdf.c | 12 --------
> drivers/thermal/da9062-thermal.c | 8 -----
> drivers/thermal/imx_thermal.c | 9 ------
> .../intel/int340x_thermal/int3400_thermal.c | 9 ------
> .../thermal/intel/intel_quark_dts_thermal.c | 8 -----
> drivers/thermal/thermal_core.c | 7 +----
> drivers/thermal/thermal_of.c | 9 ------
> drivers/thermal/thermal_sysfs.c | 30 ++-----------------
> include/linux/thermal.h | 2 --
> 11 files changed, 3 insertions(+), 119 deletions(-)
>
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 4ba273f49d87..592be97c4456 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -525,14 +525,6 @@ static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
> 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,
> 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,
> .unbind = acpi_thermal_unbind_cooling_device,
> .get_temp = thermal_get_temp,
> - .get_mode = thermal_get_mode,
> .set_mode = thermal_set_mode,
> .get_trip_type = thermal_get_trip_type,
> .get_trip_temp = thermal_get_trip_temp,
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> index aa082e8a0b13..6e26678ac312 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> @@ -275,14 +275,6 @@ static int mlxsw_thermal_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -403,7 +395,6 @@ static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_ops = {
> .bind = mlxsw_thermal_bind,
> .unbind = mlxsw_thermal_unbind,
> - .get_mode = mlxsw_thermal_get_mode,
> .set_mode = mlxsw_thermal_set_mode,
> .get_temp = mlxsw_thermal_get_temp,
> .get_trip_type = mlxsw_thermal_get_trip_type,
> @@ -462,14 +453,6 @@ static int mlxsw_thermal_module_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -591,7 +574,6 @@ mlxsw_thermal_module_trip_hyst_set(struct thermal_zone_device *tzdev, int trip,
> static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_module_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> @@ -630,7 +612,6 @@ static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_gearbox_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_gearbox_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
> index 97b288485837..32c5fe16b7f7 100644
> --- a/drivers/platform/x86/acerhdf.c
> +++ b/drivers/platform/x86/acerhdf.c
> @@ -413,17 +413,6 @@ static inline void acerhdf_enable_kernelmode(void)
> 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;
> * 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,
> .unbind = acerhdf_unbind,
> .get_temp = acerhdf_get_ec_temp,
> - .get_mode = acerhdf_get_mode,
> .set_mode = acerhdf_set_mode,
> .get_trip_type = acerhdf_get_trip_type,
> .get_trip_hyst = acerhdf_get_trip_hyst,
> diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
> index a14c7981c7c7..a7ac8afb063e 100644
> --- a/drivers/thermal/da9062-thermal.c
> +++ b/drivers/thermal/da9062-thermal.c
> @@ -120,13 +120,6 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data)
> 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,
> int trip,
> 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 = {
> .get_temp = da9062_thermal_get_temp,
> - .get_mode = da9062_thermal_get_mode,
> .get_trip_type = da9062_thermal_get_trip_type,
> .get_trip_temp = da9062_thermal_get_trip_temp,
> };
> diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
> index 9a1114d721b6..2c7ee5da608a 100644
> --- a/drivers/thermal/imx_thermal.c
> +++ b/drivers/thermal/imx_thermal.c
> @@ -330,14 +330,6 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
> 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,
> enum thermal_device_mode mode)
> {
> @@ -464,7 +456,6 @@ static struct thermal_zone_device_ops imx_tz_ops = {
> .bind = imx_bind,
> .unbind = imx_unbind,
> .get_temp = imx_get_temp,
> - .get_mode = imx_get_mode,
> .set_mode = imx_set_mode,
> .get_trip_type = imx_get_trip_type,
> .get_trip_temp = imx_get_trip_temp,
> diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> index f65b2fc09198..9a622aaf29dd 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> @@ -377,14 +377,6 @@ static int int3400_thermal_get_temp(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> .get_temp = int3400_thermal_get_temp,
> - .get_mode = int3400_thermal_get_mode,
> .set_mode = int3400_thermal_set_mode,
> };
>
> diff --git a/drivers/thermal/intel/intel_quark_dts_thermal.c b/drivers/thermal/intel/intel_quark_dts_thermal.c
> index d77cb3df5ade..c4879b4bfbf1 100644
> --- a/drivers/thermal/intel/intel_quark_dts_thermal.c
> +++ b/drivers/thermal/intel/intel_quark_dts_thermal.c
> @@ -308,13 +308,6 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -336,7 +329,6 @@ static struct thermal_zone_device_ops tzone_ops = {
> .get_trip_type = sys_get_trip_type,
> .set_trip_temp = sys_set_trip_temp,
> .get_crit_temp = sys_get_crit_temp,
> - .get_mode = sys_get_mode,
> .set_mode = sys_set_mode,
> };
>
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index b71196eaf90e..14d3b1b94c4f 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -1456,7 +1456,6 @@ static int thermal_pm_notify(struct notifier_block *nb,
> unsigned long mode, void *_unused)
> {
> struct thermal_zone_device *tz;
> - enum thermal_device_mode tz_mode;
>
> switch (mode) {
> case PM_HIBERNATION_PREPARE:
> @@ -1469,11 +1468,7 @@ static int thermal_pm_notify(struct notifier_block *nb,
> case PM_POST_SUSPEND:
> atomic_set(&in_suspend, 0);
> list_for_each_entry(tz, &thermal_tz_list, node) {
> - tz_mode = THERMAL_DEVICE_ENABLED;
> - if (tz->ops->get_mode)
> - tz->ops->get_mode(tz, &tz_mode);
> -
> - if (tz_mode == THERMAL_DEVICE_DISABLED)
> + if (tz->mode == THERMAL_DEVICE_DISABLED)
> continue;
>
> thermal_zone_device_init(tz);
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index c495b1e48ef2..ba65d48a48cb 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
> @@ -267,14 +267,6 @@ static int of_thermal_unbind(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> - .get_mode = of_thermal_get_mode,
> .set_mode = of_thermal_set_mode,
>
> .get_trip_type = of_thermal_get_trip_type,
> diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c
> index aa99edb4dff7..096370977068 100644
> --- a/drivers/thermal/thermal_sysfs.c
> +++ b/drivers/thermal/thermal_sysfs.c
> @@ -49,18 +49,9 @@ static ssize_t
> mode_show(struct device *dev, struct device_attribute *attr, char *buf)
> {
> struct thermal_zone_device *tz = to_thermal_zone(dev);
> - enum thermal_device_mode mode;
> - int result;
> -
> - if (!tz->ops->get_mode)
> - return -EPERM;
>
> - result = tz->ops->get_mode(tz, &mode);
> - if (result)
> - return result;
> -
> - return sprintf(buf, "%s\n", mode == THERMAL_DEVICE_ENABLED ? "enabled"
> - : "disabled");
> + return sprintf(buf, "%s\n", tz->mode == THERMAL_DEVICE_ENABLED ?
> + "enabled" : "disabled");
> }
>
> static ssize_t
> @@ -428,30 +419,13 @@ static struct attribute_group thermal_zone_attribute_group = {
> .attrs = thermal_zone_dev_attrs,
> };
>
> -/* We expose mode only if .get_mode is present */
> static struct attribute *thermal_zone_mode_attrs[] = {
> &dev_attr_mode.attr,
> 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 = {
> .attrs = thermal_zone_mode_attrs,
> - .is_visible = thermal_zone_mode_is_visible,
> };
>
> /* We expose passive only if passive trips are present */
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index 5f91d7f04512..a808f6fa2777 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -76,8 +76,6 @@ struct thermal_zone_device_ops {
> struct thermal_cooling_device *);
> int (*get_temp) (struct thermal_zone_device *, 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 *,
> enum thermal_device_mode);
> int (*get_trip_type) (struct thermal_zone_device *, int,
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 05/11] thermal: remove get_mode() operation of drivers
2020-05-29 15:49 [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Guenter Roeck
@ 2020-05-29 17:22 ` Andrzej Pietrasiewicz
0 siblings, 0 replies; 7+ messages in thread
From: Andrzej Pietrasiewicz @ 2020-05-29 17:22 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-pm, linux-acpi, netdev, linux-wireless,
platform-driver-x86, linux-arm-kernel, linux-renesas-soc,
linux-rockchip, Emmanuel Grumbach, Heiko Stuebner,
Rafael J . Wysocki, Vishal Kulkarni, Luca Coelho, Miquel Raynal,
kernel, Fabio Estevam, Amit Kucheria, Chunyan Zhang,
Daniel Lezcano, Allison Randal, NXP Linux Team, Darren Hart,
Zhang Rui, Gayatri Kammela, Len Brown, Johannes Berg,
Intel Linux Wireless, Sascha Hauer, Ido Schimmel, Baolin Wang,
Jiri Pirko, Orson Zhai, Thomas Gleixner, Kalle Valo,
Support Opensource, Enrico Weigelt, Peter Kaestle,
Sebastian Reichel, Bartlomiej Zolnierkiewicz,
Pengutronix Kernel Team, Niklas Söderlund, Shawn Guo,
David S . Miller, Andy Shevchenko
Hi Guenter,
W dniu 29.05.2020 o 17:49, Guenter Roeck pisze:
> On Thu, May 28, 2020 at 09:20:45PM +0200, Andrzej Pietrasiewicz wrote:
>> 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>
>
> There is a slight semantic change for the two drivers which still have
> a local copy of enum thermal_device_mode: Previously trying to read the
> mode for those would return -EPERM since they don't have a get_mode
> function. Now the global value for mode is returned, but I am not sure
> if it matches the local value.
Please see my replies to your comment about patch 4/11.
Regards,
Andrzej
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 05/11] thermal: remove get_mode() operation of drivers
@ 2020-05-29 19:10 Guenter Roeck
0 siblings, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2020-05-29 19:10 UTC (permalink / raw)
To: Andrzej Pietrasiewicz
Cc: linux-pm, linux-acpi, netdev, linux-wireless,
platform-driver-x86, linux-arm-kernel, linux-renesas-soc,
linux-rockchip, Emmanuel Grumbach, Heiko Stuebner,
Rafael J . Wysocki, Vishal Kulkarni, Luca Coelho, Miquel Raynal,
kernel, Fabio Estevam, Amit Kucheria, Chunyan Zhang,
Daniel Lezcano, Allison Randal, NXP Linux Team, Darren Hart,
Zhang Rui, Gayatri Kammela, Len Brown, Johannes Berg,
Intel Linux Wireless, Sascha Hauer, Ido Schimmel, Baolin Wang,
Jiri Pirko, Orson Zhai, Thomas Gleixner, Kalle Valo,
Support Opensource, Enrico Weigelt, Peter Kaestle,
Sebastian Reichel, Bartlomiej Zolnierkiewicz,
Pengutronix Kernel Team, Niklas Söderlund, Shawn Guo,
David S . Miller, Andy Shevchenko
On Thu, May 28, 2020 at 09:20:45PM +0200, Andrzej Pietrasiewicz wrote:
> 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>
Based on separate feedback/dscussion:
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Guenter
> ---
> drivers/acpi/thermal.c | 9 ------
> .../ethernet/mellanox/mlxsw/core_thermal.c | 19 ------------
> drivers/platform/x86/acerhdf.c | 12 --------
> drivers/thermal/da9062-thermal.c | 8 -----
> drivers/thermal/imx_thermal.c | 9 ------
> .../intel/int340x_thermal/int3400_thermal.c | 9 ------
> .../thermal/intel/intel_quark_dts_thermal.c | 8 -----
> drivers/thermal/thermal_core.c | 7 +----
> drivers/thermal/thermal_of.c | 9 ------
> drivers/thermal/thermal_sysfs.c | 30 ++-----------------
> include/linux/thermal.h | 2 --
> 11 files changed, 3 insertions(+), 119 deletions(-)
>
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 4ba273f49d87..592be97c4456 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -525,14 +525,6 @@ static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
> 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,
> 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,
> .unbind = acpi_thermal_unbind_cooling_device,
> .get_temp = thermal_get_temp,
> - .get_mode = thermal_get_mode,
> .set_mode = thermal_set_mode,
> .get_trip_type = thermal_get_trip_type,
> .get_trip_temp = thermal_get_trip_temp,
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> index aa082e8a0b13..6e26678ac312 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> @@ -275,14 +275,6 @@ static int mlxsw_thermal_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -403,7 +395,6 @@ static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_ops = {
> .bind = mlxsw_thermal_bind,
> .unbind = mlxsw_thermal_unbind,
> - .get_mode = mlxsw_thermal_get_mode,
> .set_mode = mlxsw_thermal_set_mode,
> .get_temp = mlxsw_thermal_get_temp,
> .get_trip_type = mlxsw_thermal_get_trip_type,
> @@ -462,14 +453,6 @@ static int mlxsw_thermal_module_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -591,7 +574,6 @@ mlxsw_thermal_module_trip_hyst_set(struct thermal_zone_device *tzdev, int trip,
> static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_module_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> @@ -630,7 +612,6 @@ static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_gearbox_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_gearbox_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
> index 97b288485837..32c5fe16b7f7 100644
> --- a/drivers/platform/x86/acerhdf.c
> +++ b/drivers/platform/x86/acerhdf.c
> @@ -413,17 +413,6 @@ static inline void acerhdf_enable_kernelmode(void)
> 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;
> * 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,
> .unbind = acerhdf_unbind,
> .get_temp = acerhdf_get_ec_temp,
> - .get_mode = acerhdf_get_mode,
> .set_mode = acerhdf_set_mode,
> .get_trip_type = acerhdf_get_trip_type,
> .get_trip_hyst = acerhdf_get_trip_hyst,
> diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
> index a14c7981c7c7..a7ac8afb063e 100644
> --- a/drivers/thermal/da9062-thermal.c
> +++ b/drivers/thermal/da9062-thermal.c
> @@ -120,13 +120,6 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data)
> 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,
> int trip,
> 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 = {
> .get_temp = da9062_thermal_get_temp,
> - .get_mode = da9062_thermal_get_mode,
> .get_trip_type = da9062_thermal_get_trip_type,
> .get_trip_temp = da9062_thermal_get_trip_temp,
> };
> diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
> index 9a1114d721b6..2c7ee5da608a 100644
> --- a/drivers/thermal/imx_thermal.c
> +++ b/drivers/thermal/imx_thermal.c
> @@ -330,14 +330,6 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
> 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,
> enum thermal_device_mode mode)
> {
> @@ -464,7 +456,6 @@ static struct thermal_zone_device_ops imx_tz_ops = {
> .bind = imx_bind,
> .unbind = imx_unbind,
> .get_temp = imx_get_temp,
> - .get_mode = imx_get_mode,
> .set_mode = imx_set_mode,
> .get_trip_type = imx_get_trip_type,
> .get_trip_temp = imx_get_trip_temp,
> diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> index f65b2fc09198..9a622aaf29dd 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> @@ -377,14 +377,6 @@ static int int3400_thermal_get_temp(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> .get_temp = int3400_thermal_get_temp,
> - .get_mode = int3400_thermal_get_mode,
> .set_mode = int3400_thermal_set_mode,
> };
>
> diff --git a/drivers/thermal/intel/intel_quark_dts_thermal.c b/drivers/thermal/intel/intel_quark_dts_thermal.c
> index d77cb3df5ade..c4879b4bfbf1 100644
> --- a/drivers/thermal/intel/intel_quark_dts_thermal.c
> +++ b/drivers/thermal/intel/intel_quark_dts_thermal.c
> @@ -308,13 +308,6 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -336,7 +329,6 @@ static struct thermal_zone_device_ops tzone_ops = {
> .get_trip_type = sys_get_trip_type,
> .set_trip_temp = sys_set_trip_temp,
> .get_crit_temp = sys_get_crit_temp,
> - .get_mode = sys_get_mode,
> .set_mode = sys_set_mode,
> };
>
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index b71196eaf90e..14d3b1b94c4f 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -1456,7 +1456,6 @@ static int thermal_pm_notify(struct notifier_block *nb,
> unsigned long mode, void *_unused)
> {
> struct thermal_zone_device *tz;
> - enum thermal_device_mode tz_mode;
>
> switch (mode) {
> case PM_HIBERNATION_PREPARE:
> @@ -1469,11 +1468,7 @@ static int thermal_pm_notify(struct notifier_block *nb,
> case PM_POST_SUSPEND:
> atomic_set(&in_suspend, 0);
> list_for_each_entry(tz, &thermal_tz_list, node) {
> - tz_mode = THERMAL_DEVICE_ENABLED;
> - if (tz->ops->get_mode)
> - tz->ops->get_mode(tz, &tz_mode);
> -
> - if (tz_mode == THERMAL_DEVICE_DISABLED)
> + if (tz->mode == THERMAL_DEVICE_DISABLED)
> continue;
>
> thermal_zone_device_init(tz);
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index c495b1e48ef2..ba65d48a48cb 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
> @@ -267,14 +267,6 @@ static int of_thermal_unbind(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> - .get_mode = of_thermal_get_mode,
> .set_mode = of_thermal_set_mode,
>
> .get_trip_type = of_thermal_get_trip_type,
> diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c
> index aa99edb4dff7..096370977068 100644
> --- a/drivers/thermal/thermal_sysfs.c
> +++ b/drivers/thermal/thermal_sysfs.c
> @@ -49,18 +49,9 @@ static ssize_t
> mode_show(struct device *dev, struct device_attribute *attr, char *buf)
> {
> struct thermal_zone_device *tz = to_thermal_zone(dev);
> - enum thermal_device_mode mode;
> - int result;
> -
> - if (!tz->ops->get_mode)
> - return -EPERM;
>
> - result = tz->ops->get_mode(tz, &mode);
> - if (result)
> - return result;
> -
> - return sprintf(buf, "%s\n", mode == THERMAL_DEVICE_ENABLED ? "enabled"
> - : "disabled");
> + return sprintf(buf, "%s\n", tz->mode == THERMAL_DEVICE_ENABLED ?
> + "enabled" : "disabled");
> }
>
> static ssize_t
> @@ -428,30 +419,13 @@ static struct attribute_group thermal_zone_attribute_group = {
> .attrs = thermal_zone_dev_attrs,
> };
>
> -/* We expose mode only if .get_mode is present */
> static struct attribute *thermal_zone_mode_attrs[] = {
> &dev_attr_mode.attr,
> 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 = {
> .attrs = thermal_zone_mode_attrs,
> - .is_visible = thermal_zone_mode_is_visible,
> };
>
> /* We expose passive only if passive trips are present */
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index 5f91d7f04512..a808f6fa2777 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -76,8 +76,6 @@ struct thermal_zone_device_ops {
> struct thermal_cooling_device *);
> int (*get_temp) (struct thermal_zone_device *, 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 *,
> enum thermal_device_mode);
> int (*get_trip_type) (struct thermal_zone_device *, int,
^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <Message-ID: <4493c0e4-51aa-3907-810c-74949ff27ca4@samsung.com>]
* [PATCH v4 00/11] Stop monitoring disabled devices
[not found] <Message-ID: <4493c0e4-51aa-3907-810c-74949ff27ca4@samsung.com>
@ 2020-05-28 19:20 ` Andrzej Pietrasiewicz
2020-05-28 19:20 ` [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
2020-06-01 11:37 ` Peter Kästle
0 siblings, 2 replies; 7+ messages in thread
From: Andrzej Pietrasiewicz @ 2020-05-28 19:20 UTC (permalink / raw)
To: linux-pm, linux-acpi, netdev, linux-wireless,
platform-driver-x86, linux-arm-kernel, linux-renesas-soc,
linux-rockchip
Cc: Rafael J . Wysocki, Len Brown, Vishal Kulkarni, David S . Miller,
Jiri Pirko, Ido Schimmel, Johannes Berg, Emmanuel Grumbach,
Luca Coelho, Intel Linux Wireless, Kalle Valo, Peter Kaestle,
Darren Hart, Andy Shevchenko, Sebastian Reichel, Miquel Raynal,
Daniel Lezcano, Amit Kucheria, Support Opensource, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Niklas Söderlund, Heiko Stuebner,
Orson Zhai, Baolin Wang, Chunyan Zhang, Zhang Rui,
Allison Randal, Enrico Weigelt, Gayatri Kammela, Thomas Gleixner,
Bartlomiej Zolnierkiewicz, Andrzej Pietrasiewicz, kernel
There is already a reviewed v3 (not to be confused with RFC v3), which can
be considered for merging:
https://lore.kernel.org/linux-pm/20200423165705.13585-2-andrzej.p@collabora.com/
Let me cite Bartlomiej Zolnierkiewicz:
"I couldn't find the problems with the patch itself (no new issues
being introduced, all changes seem to be improvements over the current
situation).
Also the patch is not small but it also not that big and it mostly
removes the code:
17 files changed, 105 insertions(+), 244 deletions(-)"
There have been raised some concerns about bisectability and about
introducing "initial_mode" member in struct thermal_zone_params.
This v4 series addresses those concerns: it takes a more gradual
approach and uses explicit tzd state initialization, hence there are more
insertions than in v3, and the net effect is -63 lines versus -139 lines
in v3.
Patch 2/11 converts the 3 drivers which don't store their mode in
enum thermal_device_mode to do so. Once that is cleared,
struct thermal_zone_device gains its "mode" member (patch 3/11) and then
all interested drivers change the location where they store their
state: instead of storing it in some variable in a driver, they store it
in struct thermal_zone_device (patch 4/11). Patch 4/11 does not introduce
other changes. Then get_mode() driver method becomes redundant, and so
it is removed (patch 5/11). This is the first part of the groundwork.
The second part of the groundwork is to add (patch 6/11) and use (patch
7/11) helpers for accessing tzd's state from drivers. From this moment
on the drivers don't access tzd->mode directly. Please note that after
patch 4/11 all thermal zone devices have their mode implicitly initialized
to DISABLED, as a result of kzalloc and THERMAL_DEVICE_DISABLED == 0.
This is not a problem from the point of view of polling them, because
their state is not considered when deciding to poll or to cease polling.
In preparation for considering tzd's state when deciding to poll or to
cease polling it ensured (patch 8/11 and some in patch 7/11) that all the
drivers are explicitly initialized with regard to their state.
With all that groundwork in place now it makes sense to modify thermal_core
so that it stops polling DISABLED devices (patch 9/11), which is the
ultimate purpose of this work.
While at it, some set_mode() implementations only change the polling
variables to make the core stop polling their drivers, but that is now
unnecessary and those set_mode() implementations are removed. In other
implementations polling variables modifications are removed. Some other
set_mode() implementations are simplified or removed (patch 10/11).
set_mode() is now only called when tzd's mode is about to change. Actual
setting is performed in thermal_core, in thermal_zone_device_set_mode().
The meaning of set_mode() callback is actually to notify the driver about
the mode being changed and giving the driver a chance to oppose such
a change. To better reflect the purpose of the method it is renamed to
change_mode() (patch 11/11).
Andrzej Pietrasiewicz (11):
acpi: thermal: Fix error handling in the register function
thermal: Store thermal mode in a dedicated enum
thermal: Add current mode to thermal zone device
thermal: Store device mode in struct thermal_zone_device
thermal: remove get_mode() operation of drivers
thermal: Add mode helpers
thermal: Use mode helpers in drivers
thermal: Explicitly enable non-changing thermal zone devices
thermal: core: Stop polling DISABLED thermal devices
thermal: Simplify or eliminate unnecessary set_mode() methods
thermal: Rename set_mode() to change_mode()
drivers/acpi/thermal.c | 75 +++++----------
.../ethernet/chelsio/cxgb4/cxgb4_thermal.c | 8 ++
.../ethernet/mellanox/mlxsw/core_thermal.c | 91 ++++---------------
drivers/net/wireless/intel/iwlwifi/mvm/tt.c | 9 +-
drivers/platform/x86/acerhdf.c | 33 +++----
drivers/platform/x86/intel_mid_thermal.c | 6 ++
drivers/power/supply/power_supply_core.c | 9 +-
drivers/thermal/armada_thermal.c | 6 ++
drivers/thermal/da9062-thermal.c | 16 +---
drivers/thermal/dove_thermal.c | 6 ++
drivers/thermal/hisi_thermal.c | 6 +-
drivers/thermal/imx_thermal.c | 57 ++++--------
.../intel/int340x_thermal/int3400_thermal.c | 43 +++------
.../int340x_thermal/int340x_thermal_zone.c | 5 +
drivers/thermal/intel/intel_pch_thermal.c | 5 +
.../thermal/intel/intel_quark_dts_thermal.c | 34 ++-----
drivers/thermal/intel/intel_soc_dts_iosf.c | 3 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 6 ++
drivers/thermal/kirkwood_thermal.c | 7 ++
drivers/thermal/rcar_thermal.c | 9 +-
drivers/thermal/rockchip_thermal.c | 6 +-
drivers/thermal/spear_thermal.c | 7 ++
drivers/thermal/sprd_thermal.c | 6 +-
drivers/thermal/st/st_thermal.c | 5 +
drivers/thermal/thermal_core.c | 76 ++++++++++++++--
drivers/thermal/thermal_of.c | 51 ++---------
drivers/thermal/thermal_sysfs.c | 37 +-------
include/linux/thermal.h | 19 +++-
28 files changed, 289 insertions(+), 352 deletions(-)
base-commit: 351f4911a477ae01239c42f771f621d85b06ea10
--
2.17.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v4 05/11] thermal: remove get_mode() operation of drivers
2020-05-28 19:20 ` [PATCH v4 00/11] Stop monitoring disabled devices Andrzej Pietrasiewicz
@ 2020-05-28 19:20 ` Andrzej Pietrasiewicz
2020-06-24 9:47 ` Bartlomiej Zolnierkiewicz
2020-06-01 11:37 ` Peter Kästle
1 sibling, 1 reply; 7+ messages in thread
From: Andrzej Pietrasiewicz @ 2020-05-28 19:20 UTC (permalink / raw)
To: linux-pm, linux-acpi, netdev, linux-wireless,
platform-driver-x86, linux-arm-kernel, linux-renesas-soc,
linux-rockchip
Cc: Rafael J . Wysocki, Len Brown, Vishal Kulkarni, David S . Miller,
Jiri Pirko, Ido Schimmel, Johannes Berg, Emmanuel Grumbach,
Luca Coelho, Intel Linux Wireless, Kalle Valo, Peter Kaestle,
Darren Hart, Andy Shevchenko, Sebastian Reichel, Miquel Raynal,
Daniel Lezcano, Amit Kucheria, Support Opensource, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Niklas Söderlund, Heiko Stuebner,
Orson Zhai, Baolin Wang, Chunyan Zhang, Zhang Rui,
Allison Randal, Enrico Weigelt, Gayatri Kammela, Thomas Gleixner,
Bartlomiej Zolnierkiewicz, Andrzej Pietrasiewicz, kernel
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>
---
drivers/acpi/thermal.c | 9 ------
.../ethernet/mellanox/mlxsw/core_thermal.c | 19 ------------
drivers/platform/x86/acerhdf.c | 12 --------
drivers/thermal/da9062-thermal.c | 8 -----
drivers/thermal/imx_thermal.c | 9 ------
.../intel/int340x_thermal/int3400_thermal.c | 9 ------
.../thermal/intel/intel_quark_dts_thermal.c | 8 -----
drivers/thermal/thermal_core.c | 7 +----
drivers/thermal/thermal_of.c | 9 ------
drivers/thermal/thermal_sysfs.c | 30 ++-----------------
include/linux/thermal.h | 2 --
11 files changed, 3 insertions(+), 119 deletions(-)
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 4ba273f49d87..592be97c4456 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -525,14 +525,6 @@ static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
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,
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,
.unbind = acpi_thermal_unbind_cooling_device,
.get_temp = thermal_get_temp,
- .get_mode = thermal_get_mode,
.set_mode = thermal_set_mode,
.get_trip_type = thermal_get_trip_type,
.get_trip_temp = thermal_get_trip_temp,
diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
index aa082e8a0b13..6e26678ac312 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
@@ -275,14 +275,6 @@ static int mlxsw_thermal_unbind(struct thermal_zone_device *tzdev,
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,
enum thermal_device_mode mode)
{
@@ -403,7 +395,6 @@ static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
static struct thermal_zone_device_ops mlxsw_thermal_ops = {
.bind = mlxsw_thermal_bind,
.unbind = mlxsw_thermal_unbind,
- .get_mode = mlxsw_thermal_get_mode,
.set_mode = mlxsw_thermal_set_mode,
.get_temp = mlxsw_thermal_get_temp,
.get_trip_type = mlxsw_thermal_get_trip_type,
@@ -462,14 +453,6 @@ static int mlxsw_thermal_module_unbind(struct thermal_zone_device *tzdev,
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,
enum thermal_device_mode mode)
{
@@ -591,7 +574,6 @@ mlxsw_thermal_module_trip_hyst_set(struct thermal_zone_device *tzdev, int trip,
static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
.bind = mlxsw_thermal_module_bind,
.unbind = mlxsw_thermal_module_unbind,
- .get_mode = mlxsw_thermal_module_mode_get,
.set_mode = mlxsw_thermal_module_mode_set,
.get_temp = mlxsw_thermal_module_temp_get,
.get_trip_type = mlxsw_thermal_module_trip_type_get,
@@ -630,7 +612,6 @@ static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
static struct thermal_zone_device_ops mlxsw_thermal_gearbox_ops = {
.bind = mlxsw_thermal_module_bind,
.unbind = mlxsw_thermal_module_unbind,
- .get_mode = mlxsw_thermal_module_mode_get,
.set_mode = mlxsw_thermal_module_mode_set,
.get_temp = mlxsw_thermal_gearbox_temp_get,
.get_trip_type = mlxsw_thermal_module_trip_type_get,
diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
index 97b288485837..32c5fe16b7f7 100644
--- a/drivers/platform/x86/acerhdf.c
+++ b/drivers/platform/x86/acerhdf.c
@@ -413,17 +413,6 @@ static inline void acerhdf_enable_kernelmode(void)
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;
* 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,
.unbind = acerhdf_unbind,
.get_temp = acerhdf_get_ec_temp,
- .get_mode = acerhdf_get_mode,
.set_mode = acerhdf_set_mode,
.get_trip_type = acerhdf_get_trip_type,
.get_trip_hyst = acerhdf_get_trip_hyst,
diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
index a14c7981c7c7..a7ac8afb063e 100644
--- a/drivers/thermal/da9062-thermal.c
+++ b/drivers/thermal/da9062-thermal.c
@@ -120,13 +120,6 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data)
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,
int trip,
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 = {
.get_temp = da9062_thermal_get_temp,
- .get_mode = da9062_thermal_get_mode,
.get_trip_type = da9062_thermal_get_trip_type,
.get_trip_temp = da9062_thermal_get_trip_temp,
};
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 9a1114d721b6..2c7ee5da608a 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -330,14 +330,6 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
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,
enum thermal_device_mode mode)
{
@@ -464,7 +456,6 @@ static struct thermal_zone_device_ops imx_tz_ops = {
.bind = imx_bind,
.unbind = imx_unbind,
.get_temp = imx_get_temp,
- .get_mode = imx_get_mode,
.set_mode = imx_set_mode,
.get_trip_type = imx_get_trip_type,
.get_trip_temp = imx_get_trip_temp,
diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
index f65b2fc09198..9a622aaf29dd 100644
--- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
+++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
@@ -377,14 +377,6 @@ static int int3400_thermal_get_temp(struct thermal_zone_device *thermal,
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,
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 = {
.get_temp = int3400_thermal_get_temp,
- .get_mode = int3400_thermal_get_mode,
.set_mode = int3400_thermal_set_mode,
};
diff --git a/drivers/thermal/intel/intel_quark_dts_thermal.c b/drivers/thermal/intel/intel_quark_dts_thermal.c
index d77cb3df5ade..c4879b4bfbf1 100644
--- a/drivers/thermal/intel/intel_quark_dts_thermal.c
+++ b/drivers/thermal/intel/intel_quark_dts_thermal.c
@@ -308,13 +308,6 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd,
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,
enum thermal_device_mode mode)
{
@@ -336,7 +329,6 @@ static struct thermal_zone_device_ops tzone_ops = {
.get_trip_type = sys_get_trip_type,
.set_trip_temp = sys_set_trip_temp,
.get_crit_temp = sys_get_crit_temp,
- .get_mode = sys_get_mode,
.set_mode = sys_set_mode,
};
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index b71196eaf90e..14d3b1b94c4f 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -1456,7 +1456,6 @@ static int thermal_pm_notify(struct notifier_block *nb,
unsigned long mode, void *_unused)
{
struct thermal_zone_device *tz;
- enum thermal_device_mode tz_mode;
switch (mode) {
case PM_HIBERNATION_PREPARE:
@@ -1469,11 +1468,7 @@ static int thermal_pm_notify(struct notifier_block *nb,
case PM_POST_SUSPEND:
atomic_set(&in_suspend, 0);
list_for_each_entry(tz, &thermal_tz_list, node) {
- tz_mode = THERMAL_DEVICE_ENABLED;
- if (tz->ops->get_mode)
- tz->ops->get_mode(tz, &tz_mode);
-
- if (tz_mode == THERMAL_DEVICE_DISABLED)
+ if (tz->mode == THERMAL_DEVICE_DISABLED)
continue;
thermal_zone_device_init(tz);
diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
index c495b1e48ef2..ba65d48a48cb 100644
--- a/drivers/thermal/thermal_of.c
+++ b/drivers/thermal/thermal_of.c
@@ -267,14 +267,6 @@ static int of_thermal_unbind(struct thermal_zone_device *thermal,
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,
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 = {
- .get_mode = of_thermal_get_mode,
.set_mode = of_thermal_set_mode,
.get_trip_type = of_thermal_get_trip_type,
diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c
index aa99edb4dff7..096370977068 100644
--- a/drivers/thermal/thermal_sysfs.c
+++ b/drivers/thermal/thermal_sysfs.c
@@ -49,18 +49,9 @@ static ssize_t
mode_show(struct device *dev, struct device_attribute *attr, char *buf)
{
struct thermal_zone_device *tz = to_thermal_zone(dev);
- enum thermal_device_mode mode;
- int result;
-
- if (!tz->ops->get_mode)
- return -EPERM;
- result = tz->ops->get_mode(tz, &mode);
- if (result)
- return result;
-
- return sprintf(buf, "%s\n", mode == THERMAL_DEVICE_ENABLED ? "enabled"
- : "disabled");
+ return sprintf(buf, "%s\n", tz->mode == THERMAL_DEVICE_ENABLED ?
+ "enabled" : "disabled");
}
static ssize_t
@@ -428,30 +419,13 @@ static struct attribute_group thermal_zone_attribute_group = {
.attrs = thermal_zone_dev_attrs,
};
-/* We expose mode only if .get_mode is present */
static struct attribute *thermal_zone_mode_attrs[] = {
&dev_attr_mode.attr,
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 = {
.attrs = thermal_zone_mode_attrs,
- .is_visible = thermal_zone_mode_is_visible,
};
/* We expose passive only if passive trips are present */
diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 5f91d7f04512..a808f6fa2777 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -76,8 +76,6 @@ struct thermal_zone_device_ops {
struct thermal_cooling_device *);
int (*get_temp) (struct thermal_zone_device *, 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 *,
enum thermal_device_mode);
int (*get_trip_type) (struct thermal_zone_device *, int,
--
2.17.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v4 05/11] thermal: remove get_mode() operation of drivers
2020-05-28 19:20 ` [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
@ 2020-06-24 9:47 ` Bartlomiej Zolnierkiewicz
0 siblings, 0 replies; 7+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2020-06-24 9:47 UTC (permalink / raw)
To: Andrzej Pietrasiewicz
Cc: linux-pm, linux-acpi, netdev, linux-wireless,
platform-driver-x86, linux-arm-kernel, linux-renesas-soc,
linux-rockchip, Rafael J . Wysocki, Len Brown, Vishal Kulkarni,
David S . Miller, Jiri Pirko, Ido Schimmel, Johannes Berg,
Emmanuel Grumbach, Luca Coelho, Intel Linux Wireless, Kalle Valo,
Peter Kaestle, Darren Hart, Andy Shevchenko, Sebastian Reichel,
Miquel Raynal, Daniel Lezcano, Amit Kucheria, Support Opensource,
Shawn Guo, Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Niklas Söderlund, Heiko Stuebner,
Orson Zhai, Baolin Wang, Chunyan Zhang, Zhang Rui,
Allison Randal, Enrico Weigelt, Gayatri Kammela, Thomas Gleixner,
kernel
On 5/28/20 9:20 PM, Andrzej Pietrasiewicz wrote:
> 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>
The side-effect of splitting the v3 is that some devices will be
marked in sysfs as disabled (however they are in reality enabled)
after applying this patch (it gets fixed by patch #08).
I think that we can live with that so:
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
> ---
> drivers/acpi/thermal.c | 9 ------
> .../ethernet/mellanox/mlxsw/core_thermal.c | 19 ------------
> drivers/platform/x86/acerhdf.c | 12 --------
> drivers/thermal/da9062-thermal.c | 8 -----
> drivers/thermal/imx_thermal.c | 9 ------
> .../intel/int340x_thermal/int3400_thermal.c | 9 ------
> .../thermal/intel/intel_quark_dts_thermal.c | 8 -----
> drivers/thermal/thermal_core.c | 7 +----
> drivers/thermal/thermal_of.c | 9 ------
> drivers/thermal/thermal_sysfs.c | 30 ++-----------------
> include/linux/thermal.h | 2 --
> 11 files changed, 3 insertions(+), 119 deletions(-)
>
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 4ba273f49d87..592be97c4456 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -525,14 +525,6 @@ static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
> 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,
> 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,
> .unbind = acpi_thermal_unbind_cooling_device,
> .get_temp = thermal_get_temp,
> - .get_mode = thermal_get_mode,
> .set_mode = thermal_set_mode,
> .get_trip_type = thermal_get_trip_type,
> .get_trip_temp = thermal_get_trip_temp,
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> index aa082e8a0b13..6e26678ac312 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> @@ -275,14 +275,6 @@ static int mlxsw_thermal_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -403,7 +395,6 @@ static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_ops = {
> .bind = mlxsw_thermal_bind,
> .unbind = mlxsw_thermal_unbind,
> - .get_mode = mlxsw_thermal_get_mode,
> .set_mode = mlxsw_thermal_set_mode,
> .get_temp = mlxsw_thermal_get_temp,
> .get_trip_type = mlxsw_thermal_get_trip_type,
> @@ -462,14 +453,6 @@ static int mlxsw_thermal_module_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -591,7 +574,6 @@ mlxsw_thermal_module_trip_hyst_set(struct thermal_zone_device *tzdev, int trip,
> static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_module_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> @@ -630,7 +612,6 @@ static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_gearbox_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_gearbox_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
> index 97b288485837..32c5fe16b7f7 100644
> --- a/drivers/platform/x86/acerhdf.c
> +++ b/drivers/platform/x86/acerhdf.c
> @@ -413,17 +413,6 @@ static inline void acerhdf_enable_kernelmode(void)
> 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;
> * 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,
> .unbind = acerhdf_unbind,
> .get_temp = acerhdf_get_ec_temp,
> - .get_mode = acerhdf_get_mode,
> .set_mode = acerhdf_set_mode,
> .get_trip_type = acerhdf_get_trip_type,
> .get_trip_hyst = acerhdf_get_trip_hyst,
> diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
> index a14c7981c7c7..a7ac8afb063e 100644
> --- a/drivers/thermal/da9062-thermal.c
> +++ b/drivers/thermal/da9062-thermal.c
> @@ -120,13 +120,6 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data)
> 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,
> int trip,
> 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 = {
> .get_temp = da9062_thermal_get_temp,
> - .get_mode = da9062_thermal_get_mode,
> .get_trip_type = da9062_thermal_get_trip_type,
> .get_trip_temp = da9062_thermal_get_trip_temp,
> };
> diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
> index 9a1114d721b6..2c7ee5da608a 100644
> --- a/drivers/thermal/imx_thermal.c
> +++ b/drivers/thermal/imx_thermal.c
> @@ -330,14 +330,6 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
> 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,
> enum thermal_device_mode mode)
> {
> @@ -464,7 +456,6 @@ static struct thermal_zone_device_ops imx_tz_ops = {
> .bind = imx_bind,
> .unbind = imx_unbind,
> .get_temp = imx_get_temp,
> - .get_mode = imx_get_mode,
> .set_mode = imx_set_mode,
> .get_trip_type = imx_get_trip_type,
> .get_trip_temp = imx_get_trip_temp,
> diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> index f65b2fc09198..9a622aaf29dd 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> @@ -377,14 +377,6 @@ static int int3400_thermal_get_temp(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> .get_temp = int3400_thermal_get_temp,
> - .get_mode = int3400_thermal_get_mode,
> .set_mode = int3400_thermal_set_mode,
> };
>
> diff --git a/drivers/thermal/intel/intel_quark_dts_thermal.c b/drivers/thermal/intel/intel_quark_dts_thermal.c
> index d77cb3df5ade..c4879b4bfbf1 100644
> --- a/drivers/thermal/intel/intel_quark_dts_thermal.c
> +++ b/drivers/thermal/intel/intel_quark_dts_thermal.c
> @@ -308,13 +308,6 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -336,7 +329,6 @@ static struct thermal_zone_device_ops tzone_ops = {
> .get_trip_type = sys_get_trip_type,
> .set_trip_temp = sys_set_trip_temp,
> .get_crit_temp = sys_get_crit_temp,
> - .get_mode = sys_get_mode,
> .set_mode = sys_set_mode,
> };
>
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index b71196eaf90e..14d3b1b94c4f 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -1456,7 +1456,6 @@ static int thermal_pm_notify(struct notifier_block *nb,
> unsigned long mode, void *_unused)
> {
> struct thermal_zone_device *tz;
> - enum thermal_device_mode tz_mode;
>
> switch (mode) {
> case PM_HIBERNATION_PREPARE:
> @@ -1469,11 +1468,7 @@ static int thermal_pm_notify(struct notifier_block *nb,
> case PM_POST_SUSPEND:
> atomic_set(&in_suspend, 0);
> list_for_each_entry(tz, &thermal_tz_list, node) {
> - tz_mode = THERMAL_DEVICE_ENABLED;
> - if (tz->ops->get_mode)
> - tz->ops->get_mode(tz, &tz_mode);
> -
> - if (tz_mode == THERMAL_DEVICE_DISABLED)
> + if (tz->mode == THERMAL_DEVICE_DISABLED)
> continue;
>
> thermal_zone_device_init(tz);
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index c495b1e48ef2..ba65d48a48cb 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
> @@ -267,14 +267,6 @@ static int of_thermal_unbind(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> - .get_mode = of_thermal_get_mode,
> .set_mode = of_thermal_set_mode,
>
> .get_trip_type = of_thermal_get_trip_type,
> diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c
> index aa99edb4dff7..096370977068 100644
> --- a/drivers/thermal/thermal_sysfs.c
> +++ b/drivers/thermal/thermal_sysfs.c
> @@ -49,18 +49,9 @@ static ssize_t
> mode_show(struct device *dev, struct device_attribute *attr, char *buf)
> {
> struct thermal_zone_device *tz = to_thermal_zone(dev);
> - enum thermal_device_mode mode;
> - int result;
> -
> - if (!tz->ops->get_mode)
> - return -EPERM;
>
> - result = tz->ops->get_mode(tz, &mode);
> - if (result)
> - return result;
> -
> - return sprintf(buf, "%s\n", mode == THERMAL_DEVICE_ENABLED ? "enabled"
> - : "disabled");
> + return sprintf(buf, "%s\n", tz->mode == THERMAL_DEVICE_ENABLED ?
> + "enabled" : "disabled");
> }
>
> static ssize_t
> @@ -428,30 +419,13 @@ static struct attribute_group thermal_zone_attribute_group = {
> .attrs = thermal_zone_dev_attrs,
> };
>
> -/* We expose mode only if .get_mode is present */
> static struct attribute *thermal_zone_mode_attrs[] = {
> &dev_attr_mode.attr,
> 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 = {
> .attrs = thermal_zone_mode_attrs,
> - .is_visible = thermal_zone_mode_is_visible,
> };
>
> /* We expose passive only if passive trips are present */
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index 5f91d7f04512..a808f6fa2777 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -76,8 +76,6 @@ struct thermal_zone_device_ops {
> struct thermal_cooling_device *);
> int (*get_temp) (struct thermal_zone_device *, 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 *,
> enum thermal_device_mode);
> int (*get_trip_type) (struct thermal_zone_device *, int,
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 05/11] thermal: remove get_mode() operation of drivers
2020-05-28 19:20 ` [PATCH v4 00/11] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-05-28 19:20 ` [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
@ 2020-06-01 11:37 ` Peter Kästle
1 sibling, 0 replies; 7+ messages in thread
From: Peter Kästle @ 2020-06-01 11:37 UTC (permalink / raw)
To: Andrzej Pietrasiewicz, linux-pm, linux-acpi, netdev,
linux-wireless, platform-driver-x86, linux-arm-kernel,
linux-renesas-soc, linux-rockchip
Cc: Rafael J . Wysocki, Len Brown, Vishal Kulkarni, David S . Miller,
Jiri Pirko, Ido Schimmel, Johannes Berg, Emmanuel Grumbach,
Luca Coelho, Intel Linux Wireless, Kalle Valo, Darren Hart,
Andy Shevchenko, Sebastian Reichel, Miquel Raynal,
Daniel Lezcano, Amit Kucheria, Support Opensource, Shawn Guo,
Sascha Hauer, Pengutronix Kernel Team, Fabio Estevam,
NXP Linux Team, Niklas Söderlund, Heiko Stuebner,
Orson Zhai, Baolin Wang, Chunyan Zhang, Zhang Rui,
Allison Randal, Enrico Weigelt, Gayatri Kammela, Thomas Gleixner,
Bartlomiej Zolnierkiewicz, kernel
28. Mai 2020 21:21, "Andrzej Pietrasiewicz" <andrzej.p@collabora.com> schrieb:
> 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>
> ---
[...]
> drivers/platform/x86/acerhdf.c | 12 --------
Acked-by: Peter Kaestle <peter@piie.net>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v4 05/11] thermal: remove get_mode() operation of drivers
@ 2020-06-02 15:01 Guenter Roeck
0 siblings, 0 replies; 7+ messages in thread
From: Guenter Roeck @ 2020-06-02 15:01 UTC (permalink / raw)
To: Andrzej Pietrasiewicz
Cc: linux-pm, linux-acpi, netdev, linux-wireless,
platform-driver-x86, linux-arm-kernel, linux-renesas-soc,
linux-rockchip, Emmanuel Grumbach, Heiko Stuebner,
Rafael J . Wysocki, Vishal Kulkarni, Luca Coelho, Miquel Raynal,
kernel, Fabio Estevam, Amit Kucheria, Chunyan Zhang,
Daniel Lezcano, Allison Randal, NXP Linux Team, Darren Hart,
Zhang Rui, Gayatri Kammela, Len Brown, Johannes Berg,
Intel Linux Wireless, Sascha Hauer, Ido Schimmel, Baolin Wang,
Jiri Pirko, Orson Zhai, Thomas Gleixner, Kalle Valo,
Support Opensource, Enrico Weigelt, Peter Kaestle,
Sebastian Reichel, Bartlomiej Zolnierkiewicz,
Pengutronix Kernel Team, Niklas Söderlund, Shawn Guo,
David S . Miller, Andy Shevchenko
On Thu, May 28, 2020 at 09:20:45PM +0200, Andrzej Pietrasiewicz wrote:
> 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>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> ---
> drivers/acpi/thermal.c | 9 ------
> .../ethernet/mellanox/mlxsw/core_thermal.c | 19 ------------
> drivers/platform/x86/acerhdf.c | 12 --------
> drivers/thermal/da9062-thermal.c | 8 -----
> drivers/thermal/imx_thermal.c | 9 ------
> .../intel/int340x_thermal/int3400_thermal.c | 9 ------
> .../thermal/intel/intel_quark_dts_thermal.c | 8 -----
> drivers/thermal/thermal_core.c | 7 +----
> drivers/thermal/thermal_of.c | 9 ------
> drivers/thermal/thermal_sysfs.c | 30 ++-----------------
> include/linux/thermal.h | 2 --
> 11 files changed, 3 insertions(+), 119 deletions(-)
>
> diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
> index 4ba273f49d87..592be97c4456 100644
> --- a/drivers/acpi/thermal.c
> +++ b/drivers/acpi/thermal.c
> @@ -525,14 +525,6 @@ static int thermal_get_temp(struct thermal_zone_device *thermal, int *temp)
> 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,
> 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,
> .unbind = acpi_thermal_unbind_cooling_device,
> .get_temp = thermal_get_temp,
> - .get_mode = thermal_get_mode,
> .set_mode = thermal_set_mode,
> .get_trip_type = thermal_get_trip_type,
> .get_trip_temp = thermal_get_trip_temp,
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> index aa082e8a0b13..6e26678ac312 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/core_thermal.c
> @@ -275,14 +275,6 @@ static int mlxsw_thermal_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -403,7 +395,6 @@ static int mlxsw_thermal_trend_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_ops = {
> .bind = mlxsw_thermal_bind,
> .unbind = mlxsw_thermal_unbind,
> - .get_mode = mlxsw_thermal_get_mode,
> .set_mode = mlxsw_thermal_set_mode,
> .get_temp = mlxsw_thermal_get_temp,
> .get_trip_type = mlxsw_thermal_get_trip_type,
> @@ -462,14 +453,6 @@ static int mlxsw_thermal_module_unbind(struct thermal_zone_device *tzdev,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -591,7 +574,6 @@ mlxsw_thermal_module_trip_hyst_set(struct thermal_zone_device *tzdev, int trip,
> static struct thermal_zone_device_ops mlxsw_thermal_module_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_module_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> @@ -630,7 +612,6 @@ static int mlxsw_thermal_gearbox_temp_get(struct thermal_zone_device *tzdev,
> static struct thermal_zone_device_ops mlxsw_thermal_gearbox_ops = {
> .bind = mlxsw_thermal_module_bind,
> .unbind = mlxsw_thermal_module_unbind,
> - .get_mode = mlxsw_thermal_module_mode_get,
> .set_mode = mlxsw_thermal_module_mode_set,
> .get_temp = mlxsw_thermal_gearbox_temp_get,
> .get_trip_type = mlxsw_thermal_module_trip_type_get,
> diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
> index 97b288485837..32c5fe16b7f7 100644
> --- a/drivers/platform/x86/acerhdf.c
> +++ b/drivers/platform/x86/acerhdf.c
> @@ -413,17 +413,6 @@ static inline void acerhdf_enable_kernelmode(void)
> 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;
> * 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,
> .unbind = acerhdf_unbind,
> .get_temp = acerhdf_get_ec_temp,
> - .get_mode = acerhdf_get_mode,
> .set_mode = acerhdf_set_mode,
> .get_trip_type = acerhdf_get_trip_type,
> .get_trip_hyst = acerhdf_get_trip_hyst,
> diff --git a/drivers/thermal/da9062-thermal.c b/drivers/thermal/da9062-thermal.c
> index a14c7981c7c7..a7ac8afb063e 100644
> --- a/drivers/thermal/da9062-thermal.c
> +++ b/drivers/thermal/da9062-thermal.c
> @@ -120,13 +120,6 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data)
> 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,
> int trip,
> 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 = {
> .get_temp = da9062_thermal_get_temp,
> - .get_mode = da9062_thermal_get_mode,
> .get_trip_type = da9062_thermal_get_trip_type,
> .get_trip_temp = da9062_thermal_get_trip_temp,
> };
> diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
> index 9a1114d721b6..2c7ee5da608a 100644
> --- a/drivers/thermal/imx_thermal.c
> +++ b/drivers/thermal/imx_thermal.c
> @@ -330,14 +330,6 @@ static int imx_get_temp(struct thermal_zone_device *tz, int *temp)
> 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,
> enum thermal_device_mode mode)
> {
> @@ -464,7 +456,6 @@ static struct thermal_zone_device_ops imx_tz_ops = {
> .bind = imx_bind,
> .unbind = imx_unbind,
> .get_temp = imx_get_temp,
> - .get_mode = imx_get_mode,
> .set_mode = imx_set_mode,
> .get_trip_type = imx_get_trip_type,
> .get_trip_temp = imx_get_trip_temp,
> diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> index f65b2fc09198..9a622aaf29dd 100644
> --- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> +++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
> @@ -377,14 +377,6 @@ static int int3400_thermal_get_temp(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> .get_temp = int3400_thermal_get_temp,
> - .get_mode = int3400_thermal_get_mode,
> .set_mode = int3400_thermal_set_mode,
> };
>
> diff --git a/drivers/thermal/intel/intel_quark_dts_thermal.c b/drivers/thermal/intel/intel_quark_dts_thermal.c
> index d77cb3df5ade..c4879b4bfbf1 100644
> --- a/drivers/thermal/intel/intel_quark_dts_thermal.c
> +++ b/drivers/thermal/intel/intel_quark_dts_thermal.c
> @@ -308,13 +308,6 @@ static int sys_get_curr_temp(struct thermal_zone_device *tzd,
> 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,
> enum thermal_device_mode mode)
> {
> @@ -336,7 +329,6 @@ static struct thermal_zone_device_ops tzone_ops = {
> .get_trip_type = sys_get_trip_type,
> .set_trip_temp = sys_set_trip_temp,
> .get_crit_temp = sys_get_crit_temp,
> - .get_mode = sys_get_mode,
> .set_mode = sys_set_mode,
> };
>
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index b71196eaf90e..14d3b1b94c4f 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -1456,7 +1456,6 @@ static int thermal_pm_notify(struct notifier_block *nb,
> unsigned long mode, void *_unused)
> {
> struct thermal_zone_device *tz;
> - enum thermal_device_mode tz_mode;
>
> switch (mode) {
> case PM_HIBERNATION_PREPARE:
> @@ -1469,11 +1468,7 @@ static int thermal_pm_notify(struct notifier_block *nb,
> case PM_POST_SUSPEND:
> atomic_set(&in_suspend, 0);
> list_for_each_entry(tz, &thermal_tz_list, node) {
> - tz_mode = THERMAL_DEVICE_ENABLED;
> - if (tz->ops->get_mode)
> - tz->ops->get_mode(tz, &tz_mode);
> -
> - if (tz_mode == THERMAL_DEVICE_DISABLED)
> + if (tz->mode == THERMAL_DEVICE_DISABLED)
> continue;
>
> thermal_zone_device_init(tz);
> diff --git a/drivers/thermal/thermal_of.c b/drivers/thermal/thermal_of.c
> index c495b1e48ef2..ba65d48a48cb 100644
> --- a/drivers/thermal/thermal_of.c
> +++ b/drivers/thermal/thermal_of.c
> @@ -267,14 +267,6 @@ static int of_thermal_unbind(struct thermal_zone_device *thermal,
> 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,
> 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 = {
> - .get_mode = of_thermal_get_mode,
> .set_mode = of_thermal_set_mode,
>
> .get_trip_type = of_thermal_get_trip_type,
> diff --git a/drivers/thermal/thermal_sysfs.c b/drivers/thermal/thermal_sysfs.c
> index aa99edb4dff7..096370977068 100644
> --- a/drivers/thermal/thermal_sysfs.c
> +++ b/drivers/thermal/thermal_sysfs.c
> @@ -49,18 +49,9 @@ static ssize_t
> mode_show(struct device *dev, struct device_attribute *attr, char *buf)
> {
> struct thermal_zone_device *tz = to_thermal_zone(dev);
> - enum thermal_device_mode mode;
> - int result;
> -
> - if (!tz->ops->get_mode)
> - return -EPERM;
>
> - result = tz->ops->get_mode(tz, &mode);
> - if (result)
> - return result;
> -
> - return sprintf(buf, "%s\n", mode == THERMAL_DEVICE_ENABLED ? "enabled"
> - : "disabled");
> + return sprintf(buf, "%s\n", tz->mode == THERMAL_DEVICE_ENABLED ?
> + "enabled" : "disabled");
> }
>
> static ssize_t
> @@ -428,30 +419,13 @@ static struct attribute_group thermal_zone_attribute_group = {
> .attrs = thermal_zone_dev_attrs,
> };
>
> -/* We expose mode only if .get_mode is present */
> static struct attribute *thermal_zone_mode_attrs[] = {
> &dev_attr_mode.attr,
> 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 = {
> .attrs = thermal_zone_mode_attrs,
> - .is_visible = thermal_zone_mode_is_visible,
> };
>
> /* We expose passive only if passive trips are present */
> diff --git a/include/linux/thermal.h b/include/linux/thermal.h
> index 5f91d7f04512..a808f6fa2777 100644
> --- a/include/linux/thermal.h
> +++ b/include/linux/thermal.h
> @@ -76,8 +76,6 @@ struct thermal_zone_device_ops {
> struct thermal_cooling_device *);
> int (*get_temp) (struct thermal_zone_device *, 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 *,
> enum thermal_device_mode);
> int (*get_trip_type) (struct thermal_zone_device *, int,
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-06-24 9:47 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-29 15:49 [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Guenter Roeck
2020-05-29 17:22 ` Andrzej Pietrasiewicz
2020-05-29 19:10 Guenter Roeck
[not found] <Message-ID: <4493c0e4-51aa-3907-810c-74949ff27ca4@samsung.com>
2020-05-28 19:20 ` [PATCH v4 00/11] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-05-28 19:20 ` [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
2020-06-24 9:47 ` Bartlomiej Zolnierkiewicz
2020-06-01 11:37 ` Peter Kästle
2020-06-02 15:01 Guenter Roeck
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).