diff mbox series

[2/2] iio: adc: sun4i-gpadc-iio: do not fail probing when no thermal DT node

Message ID 160cf183a167ef841c96c5626f42e23b7195effa.1506430136.git-series.quentin.schulz@free-electrons.com
State Accepted
Commit 3b455cdc49e8d91e84184e60e01a390c7eb23134
Headers show
Series [1/2] iio: adc: sun4i-gpadc-iio: register in the thermal after registering in pm | expand

Commit Message

Quentin Schulz Sept. 26, 2017, 12:52 p.m. UTC
Before this patch, forgetting to put a thermal-zones DT node would
result in the driver failing to probe.

It should be perfectly acceptable to have the driver probe even if no
thermal-zones DT is found. However, it shouldn't want to fail if the
thermal registering fail for any other reason (waiting for other drivers
for example) so check on ENODEV only.

Signed-off-by: Quentin Schulz <quentin.schulz@free-electrons.com>

---
 drivers/iio/adc/sun4i-gpadc-iio.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

-- 
git-series 0.9.1

Comments

Maxime Ripard Sept. 26, 2017, 1:20 p.m. UTC | #1
On Tue, Sep 26, 2017 at 12:52:19PM +0000, Quentin Schulz wrote:
> Before this patch, forgetting to put a thermal-zones DT node would

> result in the driver failing to probe.

> 

> It should be perfectly acceptable to have the driver probe even if no

> thermal-zones DT is found. However, it shouldn't want to fail if the

> thermal registering fail for any other reason (waiting for other drivers

> for example) so check on ENODEV only.

> 

> Signed-off-by: Quentin Schulz <quentin.schulz@free-electrons.com>


For both patches:
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>


Thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
diff mbox series

Patch

diff --git a/drivers/iio/adc/sun4i-gpadc-iio.c b/drivers/iio/adc/sun4i-gpadc-iio.c
index 392d47f..46fe0b5 100644
--- a/drivers/iio/adc/sun4i-gpadc-iio.c
+++ b/drivers/iio/adc/sun4i-gpadc-iio.c
@@ -652,7 +652,11 @@  static int sun4i_gpadc_probe(struct platform_device *pdev)
 		info->tzd = thermal_zone_of_sensor_register(info->sensor_device,
 							    0, info,
 							    &sun4i_ts_tz_ops);
-		if (IS_ERR(info->tzd)) {
+		/*
+		 * Do not fail driver probing when failing to register in
+		 * thermal because no thermal DT node is found.
+		 */
+		if (IS_ERR(info->tzd) && PTR_ERR(info->tzd) != -ENODEV) {
 			dev_err(&pdev->dev,
 				"could not register thermal sensor: %ld\n",
 				PTR_ERR(info->tzd));