All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Smirnov <andrew.smirnov@gmail.com>
To: linux-pm@vger.kernel.org
Cc: Andrey Smirnov <andrew.smirnov@gmail.com>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Lucas Stach <l.stach@pengutronix.de>,
	Chris Healy <cphealy@gmail.com>,
	Eduardo Valentin <edubezval@gmail.com>,
	Angus Ainslie <angus@akkea.ca>,
	linux-imx@nxp.com, linux-kernel@vger.kernel.org
Subject: [PATCH v5 06/12] thermal: qoriq: Pass data to qoriq_tmu_calibration() directly
Date: Tue, 23 Apr 2019 23:48:24 -0700	[thread overview]
Message-ID: <20190424064830.18179-7-andrew.smirnov@gmail.com> (raw)
In-Reply-To: <20190424064830.18179-1-andrew.smirnov@gmail.com>

We can simplify error cleanup code if instead of passing a "struct
platform_device *" to qoriq_tmu_calibration() and deriving a bunch of
pointers from it, we pass those pointers directly. This way we won't
be force to call platform_set_drvdata() as early in qoriq_tmu_probe()
and consequently would be able to drop the "err_iomap" error path.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Tested-by: Lucas Stach <l.stach@pengutronix.de>
Cc: Chris Healy <cphealy@gmail.com>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Angus Ainslie (Purism) <angus@akkea.ca>
Cc: linux-imx@nxp.com
Cc: linux-pm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 drivers/thermal/qoriq_thermal.c | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/drivers/thermal/qoriq_thermal.c b/drivers/thermal/qoriq_thermal.c
index 3419505a2f0a..0b6937bbc7d0 100644
--- a/drivers/thermal/qoriq_thermal.c
+++ b/drivers/thermal/qoriq_thermal.c
@@ -122,16 +122,16 @@ static int qoriq_tmu_register_tmu_zone(struct device *dev,
 	return 0;
 }
 
-static int qoriq_tmu_calibration(struct platform_device *pdev)
+static int qoriq_tmu_calibration(struct device *dev,
+				 struct qoriq_tmu_data *data)
 {
 	int i, val, len;
 	u32 range[4];
 	const u32 *calibration;
-	struct device_node *np = pdev->dev.of_node;
-	struct qoriq_tmu_data *data = platform_get_drvdata(pdev);
+	struct device_node *np = dev->of_node;
 
 	if (of_property_read_u32_array(np, "fsl,tmu-range", range, 4)) {
-		dev_err(&pdev->dev, "missing calibration range.\n");
+		dev_err(dev, "missing calibration range.\n");
 		return -ENODEV;
 	}
 
@@ -143,7 +143,7 @@ static int qoriq_tmu_calibration(struct platform_device *pdev)
 
 	calibration = of_get_property(np, "fsl,tmu-calibration", &len);
 	if (calibration == NULL || len % 8) {
-		dev_err(&pdev->dev, "invalid calibration data.\n");
+		dev_err(dev, "invalid calibration data.\n");
 		return -ENODEV;
 	}
 
@@ -181,20 +181,17 @@ static int qoriq_tmu_probe(struct platform_device *pdev)
 	if (!data)
 		return -ENOMEM;
 
-	platform_set_drvdata(pdev, data);
-
 	data->little_endian = of_property_read_bool(np, "little-endian");
 
 	data->regs = of_iomap(np, 0);
 	if (!data->regs) {
 		dev_err(dev, "Failed to get memory region\n");
-		ret = -ENODEV;
-		goto err_iomap;
+		return -ENODEV;
 	}
 
 	qoriq_tmu_init_device(data);	/* TMU initialization */
 
-	ret = qoriq_tmu_calibration(pdev);	/* TMU calibration */
+	ret = qoriq_tmu_calibration(dev, data);	/* TMU calibration */
 	if (ret < 0)
 		goto err_tmu;
 
@@ -202,17 +199,16 @@ static int qoriq_tmu_probe(struct platform_device *pdev)
 	if (ret < 0) {
 		dev_err(dev, "Failed to register sensors\n");
 		ret = -ENODEV;
-		goto err_iomap;
+		goto err_tmu;
 	}
 
+	platform_set_drvdata(pdev, data);
+
 	return 0;
 
 err_tmu:
 	iounmap(data->regs);
 
-err_iomap:
-	platform_set_drvdata(pdev, NULL);
-
 	return ret;
 }
 
-- 
2.20.1


  parent reply	other threads:[~2019-04-24  6:49 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-24  6:48 [PATCH v5 00/12] QorIQ TMU multi-sensor and HWMON support Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 01/12] thermal: qoriq: Remove unnecessary DT node is NULL check Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 02/12] thermal: qoriq: Add local struct device pointer Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 03/12] thermal: qoriq: Don't store struct thermal_zone_device reference Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 04/12] thermal: qoriq: Drop per-sensor data Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 05/12] thermal: qoriq: Pass data to qoriq_tmu_register_tmu_zone() directly Andrey Smirnov
2019-04-24  6:48 ` Andrey Smirnov [this message]
2019-04-24  6:48 ` [PATCH v5 07/12] thermal: qoriq: Convert driver to use devm_ioremap() Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 08/12] thermal: qoriq: Convert driver to use regmap API Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 09/12] thermal: qoriq: Enable all sensors before registering them Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 10/12] thermal: qoriq: Do not report invalid temperature reading Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 11/12] thermal_hwmon: Add devres wrapper for thermal_add_hwmon_sysfs() Andrey Smirnov
2019-04-24  6:48 ` [PATCH v5 12/12] thermal: qoriq: Add hwmon support Andrey Smirnov

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=20190424064830.18179-7-andrew.smirnov@gmail.com \
    --to=andrew.smirnov@gmail.com \
    --cc=angus@akkea.ca \
    --cc=cphealy@gmail.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=edubezval@gmail.com \
    --cc=l.stach@pengutronix.de \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    /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.