iio: adc: sun4i-gpadc-iio: do not fail probing when no thermal DT node
authorQuentin Schulz <quentin.schulz@free-electrons.com>
Tue, 26 Sep 2017 12:52:19 +0000 (14:52 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 9 Oct 2017 19:49:47 +0000 (20:49 +0100)
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>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/sun4i-gpadc-iio.c

index 430b06ceb625cfbe77f57287a035aa5694ae94ce..c4e70f1cad79a731741f160ec1c84facb5af257b 100644 (file)
@@ -651,7 +651,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));