All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Lezcano <daniel.lezcano@linexp.org>
To: daniel.lezcano@linaro.org, rafael@kernel.org
Cc: rui.zhang@intel.com, linux-pm@vger.kernel.org,
	linux-kernel@vger.kernel.org, khilman@baylibre.com,
	abailon@baylibre.com, lukasz.luba@arm.com, broonie@kernel.org,
	damien.lemoal@opensource.wdc.com, heiko@sntech.de,
	hayashi.kunihiko@socionext.com, mhiramat@kernel.org,
	talel@amazon.com, thierry.reding@gmail.com, digetx@gmail.com,
	jonathanh@nvidia.com, anarsoul@gmail.com, tiny.windzz@gmail.com,
	baolin.wang7@gmail.com, f.fainelli@gmail.com,
	bjorn.andersson@linaro.org, mcoquelin.stm32@gmail.com,
	glaroque@baylibre.com, miquel.raynal@bootlin.com,
	shawnguo@kernel.org, niklas.soderlund@ragnatech.se,
	matthias.bgg@gmail.com, j-keerthy@ti.com,
	Amit Kucheria <amitk@kernel.org>,
	Mikko Perttunen <mperttunen@nvidia.com>,
	linux-tegra@vger.kernel.org (open list:TEGRA ARCHITECTURE
	SUPPORT)
Subject: [PATCH v4 07/32] thermal/drivers/tegra: Switch to new of API
Date: Mon,  1 Aug 2022 23:22:19 +0200	[thread overview]
Message-ID: <20220801212244.1124867-8-daniel.lezcano@linexp.org> (raw)
In-Reply-To: <20220801212244.1124867-1-daniel.lezcano@linexp.org>

The thermal OF code has a new API allowing to migrate the OF
initialization to a simpler approach. The ops are no longer device
tree specific and are the generic ones provided by the core code.

Convert the ops to the thermal_zone_device_ops format and use the new
API to register the thermal zone with these generic ops.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linexp.org>
---
 drivers/thermal/tegra/soctherm.c           | 21 ++++++++++-----------
 drivers/thermal/tegra/tegra-bpmp-thermal.c | 19 ++++++++++++-------
 drivers/thermal/tegra/tegra30-tsensor.c    | 12 ++++++------
 3 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/drivers/thermal/tegra/soctherm.c b/drivers/thermal/tegra/soctherm.c
index 825eab526619..1efe470f31e9 100644
--- a/drivers/thermal/tegra/soctherm.c
+++ b/drivers/thermal/tegra/soctherm.c
@@ -421,9 +421,9 @@ static int translate_temp(u16 val)
 	return t;
 }
 
-static int tegra_thermctl_get_temp(void *data, int *out_temp)
+static int tegra_thermctl_get_temp(struct thermal_zone_device *tz, int *out_temp)
 {
-	struct tegra_thermctl_zone *zone = data;
+	struct tegra_thermctl_zone *zone = tz->devdata;
 	u32 val;
 
 	val = readl(zone->reg);
@@ -582,10 +582,9 @@ static int tsensor_group_thermtrip_get(struct tegra_soctherm *ts, int id)
 	return temp;
 }
 
-static int tegra_thermctl_set_trip_temp(void *data, int trip, int temp)
+static int tegra_thermctl_set_trip_temp(struct thermal_zone_device *tz, int trip, int temp)
 {
-	struct tegra_thermctl_zone *zone = data;
-	struct thermal_zone_device *tz = zone->tz;
+	struct tegra_thermctl_zone *zone = tz->devdata;
 	struct tegra_soctherm *ts = zone->ts;
 	const struct tegra_tsensor_group *sg = zone->sg;
 	struct device *dev = zone->dev;
@@ -657,9 +656,9 @@ static void thermal_irq_disable(struct tegra_thermctl_zone *zn)
 	mutex_unlock(&zn->ts->thermctl_lock);
 }
 
-static int tegra_thermctl_set_trips(void *data, int lo, int hi)
+static int tegra_thermctl_set_trips(struct thermal_zone_device *tz, int lo, int hi)
 {
-	struct tegra_thermctl_zone *zone = data;
+	struct tegra_thermctl_zone *zone = tz->devdata;
 	u32 r;
 
 	thermal_irq_disable(zone);
@@ -682,7 +681,7 @@ static int tegra_thermctl_set_trips(void *data, int lo, int hi)
 	return 0;
 }
 
-static const struct thermal_zone_of_device_ops tegra_of_thermal_ops = {
+static const struct thermal_zone_device_ops tegra_of_thermal_ops = {
 	.get_temp = tegra_thermctl_get_temp,
 	.set_trip_temp = tegra_thermctl_set_trip_temp,
 	.set_trips = tegra_thermctl_set_trips,
@@ -2194,9 +2193,9 @@ static int tegra_soctherm_probe(struct platform_device *pdev)
 		zone->sg = soc->ttgs[i];
 		zone->ts = tegra;
 
-		z = devm_thermal_zone_of_sensor_register(&pdev->dev,
-							 soc->ttgs[i]->id, zone,
-							 &tegra_of_thermal_ops);
+		z = devm_thermal_of_zone_register(&pdev->dev,
+						  soc->ttgs[i]->id, zone,
+						  &tegra_of_thermal_ops);
 		if (IS_ERR(z)) {
 			err = PTR_ERR(z);
 			dev_err(&pdev->dev, "failed to register sensor: %d\n",
diff --git a/drivers/thermal/tegra/tegra-bpmp-thermal.c b/drivers/thermal/tegra/tegra-bpmp-thermal.c
index 5affc3d196be..eb84f0b9dc7c 100644
--- a/drivers/thermal/tegra/tegra-bpmp-thermal.c
+++ b/drivers/thermal/tegra/tegra-bpmp-thermal.c
@@ -30,9 +30,9 @@ struct tegra_bpmp_thermal {
 	struct tegra_bpmp_thermal_zone **zones;
 };
 
-static int tegra_bpmp_thermal_get_temp(void *data, int *out_temp)
+static int __tegra_bpmp_thermal_get_temp(struct tegra_bpmp_thermal_zone *zone,
+					 int *out_temp)
 {
-	struct tegra_bpmp_thermal_zone *zone = data;
 	struct mrq_thermal_host_to_bpmp_request req;
 	union mrq_thermal_bpmp_to_host_response reply;
 	struct tegra_bpmp_message msg;
@@ -60,9 +60,14 @@ static int tegra_bpmp_thermal_get_temp(void *data, int *out_temp)
 	return 0;
 }
 
-static int tegra_bpmp_thermal_set_trips(void *data, int low, int high)
+static int tegra_bpmp_thermal_get_temp(struct thermal_zone_device *tz, int *out_temp)
 {
-	struct tegra_bpmp_thermal_zone *zone = data;
+	return __tegra_bpmp_thermal_get_temp(tz->devdata, out_temp);
+}
+
+static int tegra_bpmp_thermal_set_trips(struct thermal_zone_device *tz, int low, int high)
+{
+	struct tegra_bpmp_thermal_zone *zone = tz->devdata;
 	struct mrq_thermal_host_to_bpmp_request req;
 	struct tegra_bpmp_message msg;
 	int err;
@@ -157,7 +162,7 @@ static int tegra_bpmp_thermal_get_num_zones(struct tegra_bpmp *bpmp,
 	return 0;
 }
 
-static const struct thermal_zone_of_device_ops tegra_bpmp_of_thermal_ops = {
+static const struct thermal_zone_device_ops tegra_bpmp_of_thermal_ops = {
 	.get_temp = tegra_bpmp_thermal_get_temp,
 	.set_trips = tegra_bpmp_thermal_set_trips,
 };
@@ -200,13 +205,13 @@ static int tegra_bpmp_thermal_probe(struct platform_device *pdev)
 		zone->idx = i;
 		zone->tegra = tegra;
 
-		err = tegra_bpmp_thermal_get_temp(zone, &temp);
+		err = __tegra_bpmp_thermal_get_temp(zone, &temp);
 		if (err < 0) {
 			devm_kfree(&pdev->dev, zone);
 			continue;
 		}
 
-		tzd = devm_thermal_zone_of_sensor_register(
+		tzd = devm_thermal_of_zone_register(
 			&pdev->dev, i, zone, &tegra_bpmp_of_thermal_ops);
 		if (IS_ERR(tzd)) {
 			if (PTR_ERR(tzd) == -EPROBE_DEFER)
diff --git a/drivers/thermal/tegra/tegra30-tsensor.c b/drivers/thermal/tegra/tegra30-tsensor.c
index 05886684f429..c34501287e96 100644
--- a/drivers/thermal/tegra/tegra30-tsensor.c
+++ b/drivers/thermal/tegra/tegra30-tsensor.c
@@ -159,9 +159,9 @@ static void devm_tegra_tsensor_hw_disable(void *data)
 	tegra_tsensor_hw_disable(ts);
 }
 
-static int tegra_tsensor_get_temp(void *data, int *temp)
+static int tegra_tsensor_get_temp(struct thermal_zone_device *tz, int *temp)
 {
-	const struct tegra_tsensor_channel *tsc = data;
+	const struct tegra_tsensor_channel *tsc = tz->devdata;
 	const struct tegra_tsensor *ts = tsc->ts;
 	int err, c1, c2, c3, c4, counter;
 	u32 val;
@@ -217,9 +217,9 @@ static int tegra_tsensor_temp_to_counter(const struct tegra_tsensor *ts, int tem
 	return DIV_ROUND_CLOSEST(c2 * 1000000 - ts->calib.b, ts->calib.a);
 }
 
-static int tegra_tsensor_set_trips(void *data, int low, int high)
+static int tegra_tsensor_set_trips(struct thermal_zone_device *tz, int low, int high)
 {
-	const struct tegra_tsensor_channel *tsc = data;
+	const struct tegra_tsensor_channel *tsc = tz->devdata;
 	const struct tegra_tsensor *ts = tsc->ts;
 	u32 val;
 
@@ -240,7 +240,7 @@ static int tegra_tsensor_set_trips(void *data, int low, int high)
 	return 0;
 }
 
-static const struct thermal_zone_of_device_ops ops = {
+static const struct thermal_zone_device_ops ops = {
 	.get_temp = tegra_tsensor_get_temp,
 	.set_trips = tegra_tsensor_set_trips,
 };
@@ -516,7 +516,7 @@ static int tegra_tsensor_register_channel(struct tegra_tsensor *ts,
 	tsc->id = id;
 	tsc->regs = ts->regs + 0x40 * (hw_id + 1);
 
-	tsc->tzd = devm_thermal_zone_of_sensor_register(ts->dev, id, tsc, &ops);
+	tsc->tzd = devm_thermal_of_zone_register(ts->dev, id, tsc, &ops);
 	if (IS_ERR(tsc->tzd)) {
 		if (PTR_ERR(tsc->tzd) != -ENODEV)
 			return dev_err_probe(ts->dev, PTR_ERR(tsc->tzd),
-- 
2.25.1


  parent reply	other threads:[~2022-08-01 21:23 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-01 21:22 [PATCH v4] New thermal OF code Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 01/32] thermal/of: Rework the thermal device tree initialization Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 02/32] thermal/of: Make new code and old code co-exist Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 03/32] thermal/drivers/rockchip: Switch to new of API Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 04/32] thermal/drivers/uniphier: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 05/32] thermal/drivers/generic-adc: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 06/32] thermal/drivers/mmio: " Daniel Lezcano
2022-08-01 21:22 ` Daniel Lezcano [this message]
2022-08-01 21:22 ` [PATCH v4 08/32] thermal/drivers/sun8i: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 09/32] thermal/drivers/sprd: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 10/32] thermal/drivers/broadcom: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 11/32] thermal/drivers/qcom: " Daniel Lezcano
2022-08-02  7:17   ` Dmitry Baryshkov
2022-08-01 21:22 ` [PATCH v4 12/32] thermal/drivers/st: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 13/32] thermal/drivers/amlogic: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 14/32] thermal/drivers/armada: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 15/32] thermal/drivers/db8500: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 16/32] thermal/drivers/imx: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 17/32] thermal/drivers/rcar: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 18/32] thermal/drivers/rzg2l: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 19/32] thermal/drivers/qoriq: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 20/32] thermal/drivers/mtk: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 21/32] thermal/drivers/banggap: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 22/32] thermal/drivers/maxim: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 23/32] thermal/drivers/hisilicon: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 24/32] thermal/drivers/ti-soc: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 25/32] ata/drivers/ahci_imx: Switch to new of thermal API Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 26/32] hwmon/drivers: " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 27/32] iio/drivers/sun4i_gpadc: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 28/32] Input: sun4i-ts - switch " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 29/32] regulator/drivers/max8976: Switch " Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 30/32] thermal/drivers/samsung: " Daniel Lezcano
2022-08-01 21:22   ` Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 31/32] thermal/core: Move set_trip_temp ops to the sysfs code Daniel Lezcano
2022-08-01 21:22 ` [PATCH v4 32/32] thermal/of: Remove old OF code Daniel Lezcano

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=20220801212244.1124867-8-daniel.lezcano@linexp.org \
    --to=daniel.lezcano@linexp.org \
    --cc=abailon@baylibre.com \
    --cc=amitk@kernel.org \
    --cc=anarsoul@gmail.com \
    --cc=baolin.wang7@gmail.com \
    --cc=bjorn.andersson@linaro.org \
    --cc=broonie@kernel.org \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=digetx@gmail.com \
    --cc=f.fainelli@gmail.com \
    --cc=glaroque@baylibre.com \
    --cc=hayashi.kunihiko@socionext.com \
    --cc=heiko@sntech.de \
    --cc=j-keerthy@ti.com \
    --cc=jonathanh@nvidia.com \
    --cc=khilman@baylibre.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=lukasz.luba@arm.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=mhiramat@kernel.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=mperttunen@nvidia.com \
    --cc=niklas.soderlund@ragnatech.se \
    --cc=rafael@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=shawnguo@kernel.org \
    --cc=talel@amazon.com \
    --cc=thierry.reding@gmail.com \
    --cc=tiny.windzz@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.