All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Gregory Clement <gregory.clement@bootlin.com>,
	Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Zhang Rui <rui.zhang@intel.com>,
	Eduardo Valentin <edubezval@gmail.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, Baruch Siach <baruch@tkos.co.il>,
	linux-pm@vger.kernel.org,
	Antoine Tenart <antoine.tenart@bootlin.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Maxime Chevallier <maxime.chevallier@bootlin.com>,
	Nadav Haklai <nadavh@marvell.com>,
	David Sniatkiwicz <davidsn@marvell.com>,
	Rob Herring <robh+dt@kernel.org>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 12/23] thermal: armada: get rid of the ->is_valid() pointer
Date: Thu,  5 Jul 2018 18:04:26 +0200	[thread overview]
Message-ID: <20180705160437.12325-13-miquel.raynal@bootlin.com> (raw)
In-Reply-To: <20180705160437.12325-1-miquel.raynal@bootlin.com>

The implementation of armada_is_valid() is very simple and is the same
across all the versions of the IP since the ->is_valid_bit has been
introduced. Simplify the structure by getting rid of the function
pointer and calling directly the function.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
 drivers/thermal/armada_thermal.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/thermal/armada_thermal.c b/drivers/thermal/armada_thermal.c
index 7f8185e5816e..a05ec01d6848 100644
--- a/drivers/thermal/armada_thermal.c
+++ b/drivers/thermal/armada_thermal.c
@@ -82,9 +82,6 @@ struct armada_thermal_data {
 	void (*init)(struct platform_device *pdev,
 		     struct armada_thermal_priv *priv);
 
-	/* Test for a valid sensor value (optional) */
-	bool (*is_valid)(struct armada_thermal_priv *);
-
 	/* Formula coeficients: temp = (b - m * reg) / div */
 	s64 coef_b;
 	s64 coef_m;
@@ -266,6 +263,9 @@ static bool armada_is_valid(struct armada_thermal_priv *priv)
 {
 	u32 reg;
 
+	if (!priv->data->is_valid_bit)
+		return true;
+
 	regmap_read(priv->syscon, priv->data->syscon_status_off, &reg);
 
 	return reg & priv->data->is_valid_bit;
@@ -356,7 +356,7 @@ static int armada_get_temp_legacy(struct thermal_zone_device *thermal,
 	int ret;
 
 	/* Valid check */
-	if (priv->data->is_valid && !priv->data->is_valid(priv)) {
+	if (armada_is_valid(priv)) {
 		dev_err(priv->dev,
 			"Temperature sensor reading not valid\n");
 		return -EIO;
@@ -410,7 +410,6 @@ static const struct armada_thermal_data armadaxp_data = {
 };
 
 static const struct armada_thermal_data armada370_data = {
-	.is_valid = armada_is_valid,
 	.init = armada370_init,
 	.is_valid_bit = BIT(9),
 	.temp_shift = 10,
@@ -423,7 +422,6 @@ static const struct armada_thermal_data armada370_data = {
 };
 
 static const struct armada_thermal_data armada375_data = {
-	.is_valid = armada_is_valid,
 	.init = armada375_init,
 	.is_valid_bit = BIT(10),
 	.temp_shift = 0,
@@ -437,7 +435,6 @@ static const struct armada_thermal_data armada375_data = {
 };
 
 static const struct armada_thermal_data armada380_data = {
-	.is_valid = armada_is_valid,
 	.init = armada380_init,
 	.is_valid_bit = BIT(10),
 	.temp_shift = 0,
@@ -452,7 +449,6 @@ static const struct armada_thermal_data armada380_data = {
 };
 
 static const struct armada_thermal_data armada_ap806_data = {
-	.is_valid = armada_is_valid,
 	.init = armada_ap806_init,
 	.is_valid_bit = BIT(16),
 	.temp_shift = 0,
@@ -469,7 +465,6 @@ static const struct armada_thermal_data armada_ap806_data = {
 };
 
 static const struct armada_thermal_data armada_cp110_data = {
-	.is_valid = armada_is_valid,
 	.init = armada_cp110_init,
 	.is_valid_bit = BIT(10),
 	.temp_shift = 0,
-- 
2.14.1

WARNING: multiple messages have this Message-ID (diff)
From: miquel.raynal@bootlin.com (Miquel Raynal)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 12/23] thermal: armada: get rid of the ->is_valid() pointer
Date: Thu,  5 Jul 2018 18:04:26 +0200	[thread overview]
Message-ID: <20180705160437.12325-13-miquel.raynal@bootlin.com> (raw)
In-Reply-To: <20180705160437.12325-1-miquel.raynal@bootlin.com>

The implementation of armada_is_valid() is very simple and is the same
across all the versions of the IP since the ->is_valid_bit has been
introduced. Simplify the structure by getting rid of the function
pointer and calling directly the function.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
 drivers/thermal/armada_thermal.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/thermal/armada_thermal.c b/drivers/thermal/armada_thermal.c
index 7f8185e5816e..a05ec01d6848 100644
--- a/drivers/thermal/armada_thermal.c
+++ b/drivers/thermal/armada_thermal.c
@@ -82,9 +82,6 @@ struct armada_thermal_data {
 	void (*init)(struct platform_device *pdev,
 		     struct armada_thermal_priv *priv);
 
-	/* Test for a valid sensor value (optional) */
-	bool (*is_valid)(struct armada_thermal_priv *);
-
 	/* Formula coeficients: temp = (b - m * reg) / div */
 	s64 coef_b;
 	s64 coef_m;
@@ -266,6 +263,9 @@ static bool armada_is_valid(struct armada_thermal_priv *priv)
 {
 	u32 reg;
 
+	if (!priv->data->is_valid_bit)
+		return true;
+
 	regmap_read(priv->syscon, priv->data->syscon_status_off, &reg);
 
 	return reg & priv->data->is_valid_bit;
@@ -356,7 +356,7 @@ static int armada_get_temp_legacy(struct thermal_zone_device *thermal,
 	int ret;
 
 	/* Valid check */
-	if (priv->data->is_valid && !priv->data->is_valid(priv)) {
+	if (armada_is_valid(priv)) {
 		dev_err(priv->dev,
 			"Temperature sensor reading not valid\n");
 		return -EIO;
@@ -410,7 +410,6 @@ static const struct armada_thermal_data armadaxp_data = {
 };
 
 static const struct armada_thermal_data armada370_data = {
-	.is_valid = armada_is_valid,
 	.init = armada370_init,
 	.is_valid_bit = BIT(9),
 	.temp_shift = 10,
@@ -423,7 +422,6 @@ static const struct armada_thermal_data armada370_data = {
 };
 
 static const struct armada_thermal_data armada375_data = {
-	.is_valid = armada_is_valid,
 	.init = armada375_init,
 	.is_valid_bit = BIT(10),
 	.temp_shift = 0,
@@ -437,7 +435,6 @@ static const struct armada_thermal_data armada375_data = {
 };
 
 static const struct armada_thermal_data armada380_data = {
-	.is_valid = armada_is_valid,
 	.init = armada380_init,
 	.is_valid_bit = BIT(10),
 	.temp_shift = 0,
@@ -452,7 +449,6 @@ static const struct armada_thermal_data armada380_data = {
 };
 
 static const struct armada_thermal_data armada_ap806_data = {
-	.is_valid = armada_is_valid,
 	.init = armada_ap806_init,
 	.is_valid_bit = BIT(16),
 	.temp_shift = 0,
@@ -469,7 +465,6 @@ static const struct armada_thermal_data armada_ap806_data = {
 };
 
 static const struct armada_thermal_data armada_cp110_data = {
-	.is_valid = armada_is_valid,
 	.init = armada_cp110_init,
 	.is_valid_bit = BIT(10),
 	.temp_shift = 0,
-- 
2.14.1

  parent reply	other threads:[~2018-07-05 16:04 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-05 16:04 [PATCH v3 00/23] Add multi-channel support to Armada thermal driver Miquel Raynal
2018-07-05 16:04 ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 01/23] thermal: armada: add a function that sanitizes the thermal zone name Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 02/23] thermal: armada: remove useless register accesses Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 03/23] thermal: armada: remove misleading comments Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 04/23] thermal: armada: rename the initialization routine Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 05/23] thermal: armada: dissociate a380 and cp110 ->init() hooks Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 06/23] thermal: armada: average over samples to avoid glitches Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 07/23] thermal: armada: convert driver to syscon register accesses Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 08/23] thermal: armada: use the resource managed registration helper alternative Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 09/23] thermal: armada: add multi-channel sensors support Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 10/23] thermal: armada: remove sensors validity from the IP initialization Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 11/23] thermal: armada: move validity check out of the read function Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` Miquel Raynal [this message]
2018-07-05 16:04   ` [PATCH v3 12/23] thermal: armada: get rid of the ->is_valid() pointer Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 13/23] dt-bindings: cp110: rename cp110 syscon file Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 14/23] dt-bindings: ap806: prepare the syscon file to list other syscons nodes Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 15/23] dt-bindings: cp110: " Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 16/23] dt-bindings: ap806: add the thermal node in the syscon file Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 17/23] dt-bindings: cp110: update documentation since DT de-duplication Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 18/23] dt-bindings: cp110: add the thermal node in the syscon file Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 19/23] dt-bindings: thermal: armada: add reference to new bindings Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 20/23] arm64: dts: marvell: move AP806/CP110 thermal nodes into a new syscon Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 21/23] arm64: dts: marvell: add thermal-zone node in ap806 DTSI file Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 22/23] arm64: dts: marvell: add macro to make distinction between node names Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-05 16:04 ` [PATCH v3 23/23] arm64: dts: marvell: add thermal-zone node in cp110 DTSI file Miquel Raynal
2018-07-05 16:04   ` Miquel Raynal
2018-07-16 14:41 [PATCH v3 00/23] Add multi-channel support to Armada thermal driver Miquel Raynal
2018-07-16 14:41 ` [PATCH v3 12/23] thermal: armada: get rid of the ->is_valid() pointer Miquel Raynal
2018-07-16 14:41   ` Miquel Raynal

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=20180705160437.12325-13-miquel.raynal@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=andrew@lunn.ch \
    --cc=antoine.tenart@bootlin.com \
    --cc=baruch@tkos.co.il \
    --cc=catalin.marinas@arm.com \
    --cc=davidsn@marvell.com \
    --cc=devicetree@vger.kernel.org \
    --cc=edubezval@gmail.com \
    --cc=gregory.clement@bootlin.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=maxime.chevallier@bootlin.com \
    --cc=nadavh@marvell.com \
    --cc=robh+dt@kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=will.deacon@arm.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.