All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Amit Kucheria <amitk@kernel.org>, Zhang Rui <rui.zhang@intel.com>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	Fabien Parent <fparent@baylibre.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno 
	<angelogioacchino.delregno@collabora.com>,
	Rob Herring <robh@kernel.org>,
	Markus Schneider-Pargmann <msp@baylibre.com>,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	Amjad Ouled-Ameur <aouledameur@baylibre.com>,
	Michael Kao <michael.kao@mediatek.com>
Subject: [PATCH v9 4/5] thermal: mediatek: add callback for raw to mcelsius conversion
Date: Fri, 27 Jan 2023 16:44:45 +0100	[thread overview]
Message-ID: <20221018-up-i350-thermal-bringup-v9-4-55a1ae14af74@baylibre.com> (raw)
In-Reply-To: <20221018-up-i350-thermal-bringup-v9-0-55a1ae14af74@baylibre.com>

Set a callback at probe time instead of checking the version at
each get_sensor_temp().

Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 drivers/thermal/mtk_thermal.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/thermal/mtk_thermal.c b/drivers/thermal/mtk_thermal.c
index 3a5df1440822..b8e06f6c7c42 100644
--- a/drivers/thermal/mtk_thermal.c
+++ b/drivers/thermal/mtk_thermal.c
@@ -307,6 +307,8 @@ struct mtk_thermal {
 
 	const struct mtk_thermal_data *conf;
 	struct mtk_thermal_bank banks[MAX_NUM_ZONES];
+
+	int (*raw_to_mcelsius)(struct mtk_thermal *mt, int sensno, s32 raw);
 };
 
 /* MT8183 thermal sensor data */
@@ -726,13 +728,7 @@ static int mtk_thermal_bank_temperature(struct mtk_thermal_bank *bank)
 	for (i = 0; i < conf->bank_data[bank->id].num_sensors; i++) {
 		raw = readl(mt->thermal_base + conf->msr[i]);
 
-		if (mt->conf->version == MTK_THERMAL_V1) {
-			temp = raw_to_mcelsius_v1(
-				mt, conf->bank_data[bank->id].sensors[i], raw);
-		} else {
-			temp = raw_to_mcelsius_v2(
-				mt, conf->bank_data[bank->id].sensors[i], raw);
-		}
+		temp = mt->raw_to_mcelsius(mt, i, raw);
 
 		/*
 		 * The first read of a sensor often contains very high bogus
@@ -1150,6 +1146,9 @@ static int mtk_thermal_probe(struct platform_device *pdev)
 
 	mtk_thermal_turn_on_buffer(mt, apmixed_base);
 
+	mt->raw_to_mcelsius = (mt->conf->version == MTK_THERMAL_V1) ?
+				raw_to_mcelsius_v1 : raw_to_mcelsius_v2;
+
 	if (mt->conf->version == MTK_THERMAL_V2) {
 		mtk_thermal_release_periodic_ts(mt, auxadc_base);
 	}

-- 
2.39.1

WARNING: multiple messages have this Message-ID (diff)
From: Amjad Ouled-Ameur <aouledameur@baylibre.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Amit Kucheria <amitk@kernel.org>, Zhang Rui <rui.zhang@intel.com>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Cc: linux-pm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org,
	Fabien Parent <fparent@baylibre.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno
	<angelogioacchino.delregno@collabora.com>,
	Rob Herring <robh@kernel.org>,
	Markus Schneider-Pargmann <msp@baylibre.com>,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	Amjad Ouled-Ameur <aouledameur@baylibre.com>,
	Michael Kao <michael.kao@mediatek.com>
Subject: [PATCH v9 4/5] thermal: mediatek: add callback for raw to mcelsius conversion
Date: Fri, 27 Jan 2023 16:44:45 +0100	[thread overview]
Message-ID: <20221018-up-i350-thermal-bringup-v9-4-55a1ae14af74@baylibre.com> (raw)
In-Reply-To: <20221018-up-i350-thermal-bringup-v9-0-55a1ae14af74@baylibre.com>

Set a callback at probe time instead of checking the version at
each get_sensor_temp().

Signed-off-by: Amjad Ouled-Ameur <aouledameur@baylibre.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 drivers/thermal/mtk_thermal.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/drivers/thermal/mtk_thermal.c b/drivers/thermal/mtk_thermal.c
index 3a5df1440822..b8e06f6c7c42 100644
--- a/drivers/thermal/mtk_thermal.c
+++ b/drivers/thermal/mtk_thermal.c
@@ -307,6 +307,8 @@ struct mtk_thermal {
 
 	const struct mtk_thermal_data *conf;
 	struct mtk_thermal_bank banks[MAX_NUM_ZONES];
+
+	int (*raw_to_mcelsius)(struct mtk_thermal *mt, int sensno, s32 raw);
 };
 
 /* MT8183 thermal sensor data */
@@ -726,13 +728,7 @@ static int mtk_thermal_bank_temperature(struct mtk_thermal_bank *bank)
 	for (i = 0; i < conf->bank_data[bank->id].num_sensors; i++) {
 		raw = readl(mt->thermal_base + conf->msr[i]);
 
-		if (mt->conf->version == MTK_THERMAL_V1) {
-			temp = raw_to_mcelsius_v1(
-				mt, conf->bank_data[bank->id].sensors[i], raw);
-		} else {
-			temp = raw_to_mcelsius_v2(
-				mt, conf->bank_data[bank->id].sensors[i], raw);
-		}
+		temp = mt->raw_to_mcelsius(mt, i, raw);
 
 		/*
 		 * The first read of a sensor often contains very high bogus
@@ -1150,6 +1146,9 @@ static int mtk_thermal_probe(struct platform_device *pdev)
 
 	mtk_thermal_turn_on_buffer(mt, apmixed_base);
 
+	mt->raw_to_mcelsius = (mt->conf->version == MTK_THERMAL_V1) ?
+				raw_to_mcelsius_v1 : raw_to_mcelsius_v2;
+
 	if (mt->conf->version == MTK_THERMAL_V2) {
 		mtk_thermal_release_periodic_ts(mt, auxadc_base);
 	}

-- 
2.39.1

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2023-01-27 15:46 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-27 15:44 [PATCH v9 0/5] thermal: mediatek: Add support for MT8365 SoC Amjad Ouled-Ameur
2023-01-27 15:44 ` Amjad Ouled-Ameur
2023-01-27 15:44 ` [PATCH v9 1/5] dt-bindings: thermal: mediatek: add binding documentation " Amjad Ouled-Ameur
2023-01-27 15:44   ` Amjad Ouled-Ameur
2023-01-27 15:44 ` [PATCH v9 2/5] thermal: mediatek: control buffer enablement tweaks Amjad Ouled-Ameur
2023-01-27 15:44   ` Amjad Ouled-Ameur
2023-01-27 21:48   ` Daniel Lezcano
2023-01-27 21:48     ` Daniel Lezcano
2023-01-27 22:21     ` Amjad Ouled-Ameur
2023-01-27 22:21       ` Amjad Ouled-Ameur
2023-01-28  7:52       ` Daniel Lezcano
2023-01-28  7:52         ` Daniel Lezcano
2023-03-09 17:14     ` Amjad Ouled-Ameur
2023-03-09 17:14       ` Amjad Ouled-Ameur
2023-01-27 15:44 ` [PATCH v9 3/5] thermal: mediatek: add support for MT8365 SoC Amjad Ouled-Ameur
2023-01-27 15:44   ` Amjad Ouled-Ameur
2023-01-27 15:44 ` Amjad Ouled-Ameur [this message]
2023-01-27 15:44   ` [PATCH v9 4/5] thermal: mediatek: add callback for raw to mcelsius conversion Amjad Ouled-Ameur
2023-01-27 21:56   ` Daniel Lezcano
2023-01-27 21:56     ` Daniel Lezcano
2023-01-27 15:44 ` [PATCH v9 5/5] thermal: mediatek: add delay after thermal banks initialization Amjad Ouled-Ameur
2023-01-27 15:44   ` Amjad Ouled-Ameur
2023-01-27 21:03   ` Daniel Lezcano
2023-01-27 21:03     ` Daniel Lezcano
2023-01-27 21:59 ` [PATCH v9 0/5] thermal: mediatek: Add support for MT8365 SoC Daniel Lezcano
2023-01-27 21:59   ` Daniel Lezcano
2023-01-27 22:23   ` Amjad Ouled-Ameur
2023-01-27 22:23     ` Amjad Ouled-Ameur
2023-03-06 10:13   ` Amjad Ouled-Ameur
2023-03-06 10:13     ` Amjad Ouled-Ameur
2023-03-08 18:00     ` Daniel Lezcano
2023-03-08 18:00       ` 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=20221018-up-i350-thermal-bringup-v9-4-55a1ae14af74@baylibre.com \
    --to=aouledameur@baylibre.com \
    --cc=amitk@kernel.org \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=fparent@baylibre.com \
    --cc=hsinyi@chromium.org \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=michael.kao@mediatek.com \
    --cc=msp@baylibre.com \
    --cc=rafael@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=rui.zhang@intel.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.