* [PATCH V3] thermal: imx: fix for dependency on cpu-freq
@ 2018-11-21 2:40 Anson Huang
2018-11-21 3:54 ` Viresh Kumar
0 siblings, 1 reply; 3+ messages in thread
From: Anson Huang @ 2018-11-21 2:40 UTC (permalink / raw)
To: rui.zhang, edubezval, daniel.lezcano, linux-pm, linux-kernel,
viresh.kumar, l.stach
Cc: dl-linux-imx
The thermal driver is a standalone driver for monitoring SoC temperature
by enabling thermal sensor, so it can be enabled even when CONFIG_CPU_FREQ
is NOT set. So remove the dependency with CPU_THERMAL.
Introduce dummy function of legacy cooling register/unregister to make
thermal driver probe successfully when CONFIG_CPU_FREQ is NOT set.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
changes since V2:
fix build warning of no return value for imx_thermal_unregister_legacy_cooling.
drivers/thermal/Kconfig | 2 +-
drivers/thermal/imx_thermal.c | 38 +++++++++++++++++++++++++++++---------
2 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig
index 5422523..93bd3bb 100644
--- a/drivers/thermal/Kconfig
+++ b/drivers/thermal/Kconfig
@@ -212,7 +212,7 @@ config HISI_THERMAL
config IMX_THERMAL
tristate "Temperature sensor driver for Freescale i.MX SoCs"
- depends on (ARCH_MXC && CPU_THERMAL) || COMPILE_TEST
+ depends on ARCH_MXC || COMPILE_TEST
depends on NVMEM || !NVMEM
depends on MFD_SYSCON
depends on OF
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
index 1566154..518e5a0 100644
--- a/drivers/thermal/imx_thermal.c
+++ b/drivers/thermal/imx_thermal.c
@@ -648,15 +648,24 @@ static const struct of_device_id of_imx_thermal_match[] = {
};
MODULE_DEVICE_TABLE(of, of_imx_thermal_match);
+#ifdef CONFIG_CPU_FREQ
/*
* Create cooling device in case no #cooling-cells property is available in
* CPU node
*/
static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data)
{
- struct device_node *np = of_get_cpu_node(data->policy->cpu, NULL);
+ struct device_node *np;
int ret;
+ data->policy = cpufreq_cpu_get(0);
+ if (!data->policy) {
+ pr_debug("%s: CPUFreq policy not found\n", __func__);
+ return -EPROBE_DEFER;
+ }
+
+ np = of_get_cpu_node(data->policy->cpu, NULL);
+
if (!np || !of_find_property(np, "#cooling-cells", NULL)) {
data->cdev = cpufreq_cooling_register(data->policy);
if (IS_ERR(data->cdev)) {
@@ -669,6 +678,22 @@ static int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data)
return 0;
}
+static void imx_thermal_unregister_legacy_cooling(struct imx_thermal_data *data)
+{
+ cpufreq_cooling_unregister(data->cdev);
+ cpufreq_cpu_put(data->policy);
+}
+#else
+static inline int imx_thermal_register_legacy_cooling(struct imx_thermal_data *data)
+{
+ return 0;
+}
+
+static inline void imx_thermal_unregister_legacy_cooling(struct imx_thermal_data *data)
+{
+}
+#endif
+
static int imx_thermal_probe(struct platform_device *pdev)
{
struct imx_thermal_data *data;
@@ -743,13 +768,9 @@ static int imx_thermal_probe(struct platform_device *pdev)
regmap_write(map, data->socdata->sensor_ctrl + REG_SET,
data->socdata->power_down_mask);
- data->policy = cpufreq_cpu_get(0);
- if (!data->policy) {
- pr_debug("%s: CPUFreq policy not found\n", __func__);
- return -EPROBE_DEFER;
- }
-
ret = imx_thermal_register_legacy_cooling(data);
+ if (ret == -EPROBE_DEFER)
+ return ret;
if (ret) {
dev_err(&pdev->dev,
"failed to register cpufreq cooling device: %d\n", ret);
@@ -830,8 +851,7 @@ static int imx_thermal_probe(struct platform_device *pdev)
clk_disable:
clk_disable_unprepare(data->thermal_clk);
cpufreq_put:
- cpufreq_cooling_unregister(data->cdev);
- cpufreq_cpu_put(data->policy);
+ imx_thermal_unregister_legacy_cooling(data);
return ret;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH V3] thermal: imx: fix for dependency on cpu-freq
2018-11-21 2:40 [PATCH V3] thermal: imx: fix for dependency on cpu-freq Anson Huang
@ 2018-11-21 3:54 ` Viresh Kumar
2018-11-21 5:08 ` Anson Huang
0 siblings, 1 reply; 3+ messages in thread
From: Viresh Kumar @ 2018-11-21 3:54 UTC (permalink / raw)
To: anson.huang
Cc: Zhang Rui, Eduardo Valentin, Daniel Lezcano, Linux PM list,
Linux Kernel Mailing List, l.stach, linux-imx
On Wed, Nov 21, 2018 at 8:11 AM Anson Huang <anson.huang@nxp.com> wrote:
> @@ -830,8 +851,7 @@ static int imx_thermal_probe(struct platform_device *pdev)
> clk_disable:
> clk_disable_unprepare(data->thermal_clk);
> cpufreq_put:
While at it, rename this label as well to something like legacy_cleanup.
> - cpufreq_cooling_unregister(data->cdev);
> - cpufreq_cpu_put(data->policy);
> + imx_thermal_unregister_legacy_cooling(data);
>
> return ret;
> }
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH V3] thermal: imx: fix for dependency on cpu-freq
2018-11-21 3:54 ` Viresh Kumar
@ 2018-11-21 5:08 ` Anson Huang
0 siblings, 0 replies; 3+ messages in thread
From: Anson Huang @ 2018-11-21 5:08 UTC (permalink / raw)
To: Viresh Kumar
Cc: Zhang Rui, Eduardo Valentin, Daniel Lezcano, Linux PM list,
Linux Kernel Mailing List, l.stach, dl-linux-imx
Best Regards!
Anson Huang
> -----Original Message-----
> From: Viresh Kumar [mailto:viresh.kumar@linaro.org]
> Sent: 2018年11月21日 11:54
> To: Anson Huang <anson.huang@nxp.com>
> Cc: Zhang Rui <rui.zhang@intel.com>; Eduardo Valentin
> <edubezval@gmail.com>; Daniel Lezcano <daniel.lezcano@linaro.org>; Linux
> PM list <linux-pm@vger.kernel.org>; Linux Kernel Mailing List
> <linux-kernel@vger.kernel.org>; l.stach@pengutronix.de; dl-linux-imx
> <linux-imx@nxp.com>
> Subject: Re: [PATCH V3] thermal: imx: fix for dependency on cpu-freq
>
> On Wed, Nov 21, 2018 at 8:11 AM Anson Huang <anson.huang@nxp.com>
> wrote:
>
> > @@ -830,8 +851,7 @@ static int imx_thermal_probe(struct platform_device
> *pdev)
> > clk_disable:
> > clk_disable_unprepare(data->thermal_clk);
> > cpufreq_put:
>
> While at it, rename this label as well to something like legacy_cleanup.
Done with V4 patch, thanks.
Anson.
>
> > - cpufreq_cooling_unregister(data->cdev);
> > - cpufreq_cpu_put(data->policy);
> > + imx_thermal_unregister_legacy_cooling(data);
> >
> > return ret;
> > }
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-11-21 5:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-21 2:40 [PATCH V3] thermal: imx: fix for dependency on cpu-freq Anson Huang
2018-11-21 3:54 ` Viresh Kumar
2018-11-21 5:08 ` Anson Huang
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).