From: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
To: linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org,
netdev@vger.kernel.org, linux-wireless@vger.kernel.org,
platform-driver-x86@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-renesas-soc@vger.kernel.org,
linux-rockchip@lists.infradead.org
Cc: "Rafael J . Wysocki" <rjw@rjwysocki.net>,
"Len Brown" <lenb@kernel.org>,
"Vishal Kulkarni" <vishal@chelsio.com>,
"David S . Miller" <davem@davemloft.net>,
"Jiri Pirko" <jiri@mellanox.com>,
"Ido Schimmel" <idosch@mellanox.com>,
"Johannes Berg" <johannes.berg@intel.com>,
"Emmanuel Grumbach" <emmanuel.grumbach@intel.com>,
"Luca Coelho" <luciano.coelho@intel.com>,
"Intel Linux Wireless" <linuxwifi@intel.com>,
"Kalle Valo" <kvalo@codeaurora.org>,
"Peter Kaestle" <peter@piie.net>,
"Darren Hart" <dvhart@infradead.org>,
"Andy Shevchenko" <andy@infradead.org>,
"Sebastian Reichel" <sre@kernel.org>,
"Miquel Raynal" <miquel.raynal@bootlin.com>,
"Daniel Lezcano" <daniel.lezcano@linaro.org>,
"Amit Kucheria" <amit.kucheria@verdurent.com>,
"Support Opensource" <support.opensource@diasemi.com>,
"Shawn Guo" <shawnguo@kernel.org>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
"NXP Linux Team" <linux-imx@nxp.com>,
"Niklas Söderlund" <niklas.soderlund@ragnatech.se>,
"Heiko Stuebner" <heiko@sntech.de>,
"Orson Zhai" <orsonzhai@gmail.com>,
"Baolin Wang" <baolin.wang7@gmail.com>,
"Chunyan Zhang" <zhang.lyra@gmail.com>,
"Zhang Rui" <rui.zhang@intel.com>,
"Allison Randal" <allison@lohutok.net>,
"Enrico Weigelt" <info@metux.net>,
"Gayatri Kammela" <gayatri.kammela@intel.com>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Bartlomiej Zolnierkiewicz" <b.zolnierkie@samsung.com>,
"Andrzej Pietrasiewicz" <andrzej.p@collabora.com>,
kernel@collabora.com
Subject: [PATCH v5 02/11] thermal: Store thermal mode in a dedicated enum
Date: Fri, 26 Jun 2020 19:37:46 +0200 [thread overview]
Message-ID: <20200626173755.26379-3-andrzej.p@collabora.com> (raw)
In-Reply-To: <20200626173755.26379-1-andrzej.p@collabora.com>
Prepare for storing mode in struct thermal_zone_device.
Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com>
Reviewed-by: Guenter Roeck <linux@roeck-us.net>
[for acerhdf]
Acked-by: Peter Kaestle <peter@piie.net>
Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
---
drivers/acpi/thermal.c | 27 +++++++++----------
drivers/platform/x86/acerhdf.c | 8 ++++--
.../intel/int340x_thermal/int3400_thermal.c | 18 +++++--------
3 files changed, 25 insertions(+), 28 deletions(-)
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
index 6de8066ca1e7..fb46070c66d8 100644
--- a/drivers/acpi/thermal.c
+++ b/drivers/acpi/thermal.c
@@ -172,7 +172,7 @@ struct acpi_thermal {
struct acpi_thermal_trips trips;
struct acpi_handle_list devices;
struct thermal_zone_device *thermal_zone;
- int tz_enabled;
+ enum thermal_device_mode mode;
int kelvin_offset; /* in millidegrees */
struct work_struct thermal_check_work;
};
@@ -500,7 +500,7 @@ static void acpi_thermal_check(void *data)
{
struct acpi_thermal *tz = data;
- if (!tz->tz_enabled)
+ if (tz->mode != THERMAL_DEVICE_ENABLED)
return;
thermal_zone_device_update(tz->thermal_zone,
@@ -534,8 +534,7 @@ static int thermal_get_mode(struct thermal_zone_device *thermal,
if (!tz)
return -EINVAL;
- *mode = tz->tz_enabled ? THERMAL_DEVICE_ENABLED :
- THERMAL_DEVICE_DISABLED;
+ *mode = tz->mode;
return 0;
}
@@ -544,27 +543,25 @@ static int thermal_set_mode(struct thermal_zone_device *thermal,
enum thermal_device_mode mode)
{
struct acpi_thermal *tz = thermal->devdata;
- int enable;
if (!tz)
return -EINVAL;
+ if (mode != THERMAL_DEVICE_DISABLED &&
+ mode != THERMAL_DEVICE_ENABLED)
+ return -EINVAL;
/*
* enable/disable thermal management from ACPI thermal driver
*/
- if (mode == THERMAL_DEVICE_ENABLED)
- enable = 1;
- else if (mode == THERMAL_DEVICE_DISABLED) {
- enable = 0;
+ if (mode == THERMAL_DEVICE_DISABLED)
pr_warn("thermal zone will be disabled\n");
- } else
- return -EINVAL;
- if (enable != tz->tz_enabled) {
- tz->tz_enabled = enable;
+ if (mode != tz->mode) {
+ tz->mode = mode;
ACPI_DEBUG_PRINT((ACPI_DB_INFO,
"%s kernel ACPI thermal control\n",
- tz->tz_enabled ? "Enable" : "Disable"));
+ tz->mode == THERMAL_DEVICE_ENABLED ?
+ "Enable" : "Disable"));
acpi_thermal_check(tz);
}
return 0;
@@ -915,7 +912,7 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz)
goto remove_dev_link;
}
- tz->tz_enabled = 1;
+ tz->mode = THERMAL_DEVICE_ENABLED;
dev_info(&tz->device->dev, "registered as thermal_zone%d\n",
tz->thermal_zone->id);
diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c
index 4df7609b4aa9..9d1030b1a4f4 100644
--- a/drivers/platform/x86/acerhdf.c
+++ b/drivers/platform/x86/acerhdf.c
@@ -68,6 +68,7 @@ static int kernelmode = 1;
#else
static int kernelmode;
#endif
+static enum thermal_device_mode thermal_mode;
static unsigned int interval = 10;
static unsigned int fanon = 60000;
@@ -397,6 +398,7 @@ static inline void acerhdf_revert_to_bios_mode(void)
{
acerhdf_change_fanstate(ACERHDF_FAN_AUTO);
kernelmode = 0;
+ thermal_mode = THERMAL_DEVICE_DISABLED;
if (thz_dev)
thz_dev->polling_delay = 0;
pr_notice("kernel mode fan control OFF\n");
@@ -404,6 +406,7 @@ static inline void acerhdf_revert_to_bios_mode(void)
static inline void acerhdf_enable_kernelmode(void)
{
kernelmode = 1;
+ thermal_mode = THERMAL_DEVICE_ENABLED;
thz_dev->polling_delay = interval*1000;
thermal_zone_device_update(thz_dev, THERMAL_EVENT_UNSPECIFIED);
@@ -416,8 +419,7 @@ static int acerhdf_get_mode(struct thermal_zone_device *thermal,
if (verbose)
pr_notice("kernel mode fan control %d\n", kernelmode);
- *mode = (kernelmode) ? THERMAL_DEVICE_ENABLED
- : THERMAL_DEVICE_DISABLED;
+ *mode = thermal_mode;
return 0;
}
@@ -739,6 +741,8 @@ static int __init acerhdf_register_thermal(void)
if (IS_ERR(cl_dev))
return -EINVAL;
+ thermal_mode = kernelmode ?
+ THERMAL_DEVICE_ENABLED : THERMAL_DEVICE_DISABLED;
thz_dev = thermal_zone_device_register("acerhdf", 2, 0, NULL,
&acerhdf_dev_ops,
&acerhdf_zone_params, 0,
diff --git a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
index 0b3a62655843..e84faaadff87 100644
--- a/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
+++ b/drivers/thermal/intel/int340x_thermal/int3400_thermal.c
@@ -48,7 +48,7 @@ struct int3400_thermal_priv {
struct acpi_device *adev;
struct platform_device *pdev;
struct thermal_zone_device *thermal;
- int mode;
+ enum thermal_device_mode mode;
int art_count;
struct art *arts;
int trt_count;
@@ -395,24 +395,20 @@ static int int3400_thermal_set_mode(struct thermal_zone_device *thermal,
enum thermal_device_mode mode)
{
struct int3400_thermal_priv *priv = thermal->devdata;
- bool enable;
int result = 0;
if (!priv)
return -EINVAL;
- if (mode == THERMAL_DEVICE_ENABLED)
- enable = true;
- else if (mode == THERMAL_DEVICE_DISABLED)
- enable = false;
- else
+ if (mode != THERMAL_DEVICE_ENABLED &&
+ mode != THERMAL_DEVICE_DISABLED)
return -EINVAL;
- if (enable != priv->mode) {
- priv->mode = enable;
+ if (mode != priv->mode) {
+ priv->mode = mode;
result = int3400_thermal_run_osc(priv->adev->handle,
- priv->current_uuid_index,
- enable);
+ priv->current_uuid_index,
+ mode == THERMAL_DEVICE_ENABLED);
}
evaluate_odvp(priv);
--
2.17.1
next prev parent reply other threads:[~2020-06-26 17:38 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
[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 01/11] acpi: thermal: Fix error handling in the register function Andrzej Pietrasiewicz
2020-05-29 14:50 ` Guenter Roeck
2020-06-24 8:16 ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20 ` [PATCH v4 02/11] thermal: Store thermal mode in a dedicated enum Andrzej Pietrasiewicz
2020-05-29 14:48 ` Guenter Roeck
2020-05-29 15:13 ` Andrzej Pietrasiewicz
2020-05-29 15:34 ` Guenter Roeck
2020-06-24 9:38 ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20 ` [PATCH v4 03/11] thermal: Add current mode to thermal zone device Andrzej Pietrasiewicz
2020-05-29 14:51 ` Guenter Roeck
2020-06-24 9:39 ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20 ` [PATCH v4 04/11] thermal: Store device mode in struct thermal_zone_device Andrzej Pietrasiewicz
2020-06-24 9:40 ` Bartlomiej Zolnierkiewicz
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-05-28 19:20 ` [PATCH v4 06/11] thermal: Add mode helpers Andrzej Pietrasiewicz
2020-06-24 9:49 ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20 ` [PATCH v4 07/11] thermal: Use mode helpers in drivers Andrzej Pietrasiewicz
2020-06-24 9:51 ` Bartlomiej Zolnierkiewicz
2020-06-26 16:08 ` Andrzej Pietrasiewicz
2020-05-28 19:20 ` [PATCH v4 08/11] thermal: Explicitly enable non-changing thermal zone devices Andrzej Pietrasiewicz
2020-06-24 10:00 ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20 ` [PATCH v4 09/11] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-06-24 10:02 ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20 ` [PATCH v4 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Andrzej Pietrasiewicz
2020-06-24 10:03 ` Bartlomiej Zolnierkiewicz
2020-05-28 19:20 ` [PATCH v4 11/11] thermal: Rename set_mode() to change_mode() Andrzej Pietrasiewicz
2020-06-24 10:03 ` Bartlomiej Zolnierkiewicz
2020-06-01 11:36 ` [PATCH v4 02/11] thermal: Store thermal mode in a dedicated enum Peter Kästle
2020-06-01 11:36 ` [PATCH v4 04/11] thermal: Store device mode in struct thermal_zone_device Peter Kästle
2020-06-01 11:37 ` [PATCH v4 05/11] thermal: remove get_mode() operation of drivers Peter Kästle
2020-06-01 11:37 ` [PATCH v4 07/11] thermal: Use mode helpers in drivers Peter Kästle
2020-06-01 11:38 ` [PATCH v4 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Peter Kästle
2020-06-01 11:38 ` [PATCH v4 11/11] thermal: Rename set_mode() to change_mode() Peter Kästle
2020-06-23 14:37 ` [PATCH v4 00/11] Stop monitoring disabled devices Daniel Lezcano
2020-06-26 17:37 ` [PATCH v5 " Andrzej Pietrasiewicz
2020-06-26 17:37 ` [PATCH v5 01/11] acpi: thermal: Fix error handling in the register function Andrzej Pietrasiewicz
2020-06-29 7:19 ` Amit Kucheria
2020-06-26 17:37 ` Andrzej Pietrasiewicz [this message]
2020-06-29 7:19 ` [PATCH v5 02/11] thermal: Store thermal mode in a dedicated enum Amit Kucheria
2020-06-26 17:37 ` [PATCH v5 03/11] thermal: Add current mode to thermal zone device Andrzej Pietrasiewicz
2020-06-29 7:19 ` Amit Kucheria
2020-06-26 17:37 ` [PATCH v5 04/11] thermal: Store device mode in struct thermal_zone_device Andrzej Pietrasiewicz
2020-06-29 7:19 ` Amit Kucheria
2020-06-26 17:37 ` [PATCH v5 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
2020-06-29 7:20 ` Amit Kucheria
2020-06-26 17:37 ` [PATCH v5 06/11] thermal: Add mode helpers Andrzej Pietrasiewicz
2020-06-26 20:50 ` kernel test robot
2020-06-26 20:50 ` [RFC PATCH] thermal: thermal_zone_device_set_mode() can be static kernel test robot
2020-06-26 20:55 ` [PATCH v5 06/11] thermal: Add mode helpers kernel test robot
2020-06-29 7:04 ` Amit Kucheria
2020-06-29 11:16 ` [PATCH v6 00/11] Stop monitoring disabled devices Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 01/11] acpi: thermal: Fix error handling in the register function Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 02/11] thermal: Store thermal mode in a dedicated enum Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 03/11] thermal: Add current mode to thermal zone device Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 04/11] thermal: Store device mode in struct thermal_zone_device Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 05/11] thermal: remove get_mode() operation of drivers Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 06/11] thermal: Add mode helpers Andrzej Pietrasiewicz
2020-06-29 12:08 ` Daniel Lezcano
2020-06-29 11:16 ` [PATCH v6 07/11] thermal: Use mode helpers in drivers Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 08/11] thermal: Explicitly enable non-changing thermal zone devices Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 09/11] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Andrzej Pietrasiewicz
2020-06-29 11:16 ` [PATCH v6 11/11] thermal: Rename set_mode() to change_mode() Andrzej Pietrasiewicz
2020-06-26 17:37 ` [PATCH v5 07/11] thermal: Use mode helpers in drivers Andrzej Pietrasiewicz
2020-06-26 17:37 ` [PATCH v5 08/11] thermal: Explicitly enable non-changing thermal zone devices Andrzej Pietrasiewicz
2020-06-26 17:37 ` [PATCH v5 09/11] thermal: core: Stop polling DISABLED thermal devices Andrzej Pietrasiewicz
2020-06-26 17:37 ` [PATCH v5 10/11] thermal: Simplify or eliminate unnecessary set_mode() methods Andrzej Pietrasiewicz
2020-06-26 17:37 ` [PATCH v5 11/11] thermal: Rename set_mode() to change_mode() Andrzej Pietrasiewicz
2020-06-01 10:02 ` [PATCH v4 00/11] Stop monitoring disabled devices Peter Kästle
2020-06-01 10:20 ` Andrzej Pietrasiewicz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200626173755.26379-3-andrzej.p@collabora.com \
--to=andrzej.p@collabora.com \
--cc=allison@lohutok.net \
--cc=amit.kucheria@verdurent.com \
--cc=andy@infradead.org \
--cc=b.zolnierkie@samsung.com \
--cc=baolin.wang7@gmail.com \
--cc=daniel.lezcano@linaro.org \
--cc=davem@davemloft.net \
--cc=dvhart@infradead.org \
--cc=emmanuel.grumbach@intel.com \
--cc=festevam@gmail.com \
--cc=gayatri.kammela@intel.com \
--cc=heiko@sntech.de \
--cc=idosch@mellanox.com \
--cc=info@metux.net \
--cc=jiri@mellanox.com \
--cc=johannes.berg@intel.com \
--cc=kernel@collabora.com \
--cc=kernel@pengutronix.de \
--cc=kvalo@codeaurora.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--cc=linux-pm@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-wireless@vger.kernel.org \
--cc=linuxwifi@intel.com \
--cc=luciano.coelho@intel.com \
--cc=miquel.raynal@bootlin.com \
--cc=netdev@vger.kernel.org \
--cc=niklas.soderlund@ragnatech.se \
--cc=orsonzhai@gmail.com \
--cc=peter@piie.net \
--cc=platform-driver-x86@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=rui.zhang@intel.com \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=sre@kernel.org \
--cc=support.opensource@diasemi.com \
--cc=tglx@linutronix.de \
--cc=vishal@chelsio.com \
--cc=zhang.lyra@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).