]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
iio: light: pa12203001: Poweroff chip if register fails
authorAdriana Reus <adriana.reus@intel.com>
Fri, 6 Nov 2015 09:10:37 +0000 (11:10 +0200)
committerJonathan Cameron <jic23@kernel.org>
Sun, 8 Nov 2015 15:34:40 +0000 (15:34 +0000)
Make sure we poweroff the chip if for any reason iio_register
returns an error.

Signed-off-by: Adriana Reus <adriana.reus@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/light/pa12203001.c

index 45f7bde02bbf7fc78c7887f0b4a27adb078f035b..76a9e12b46bc45e50896b2abfb1513b577560667 100644 (file)
@@ -381,17 +381,23 @@ static int pa12203001_probe(struct i2c_client *client,
                return ret;
 
        ret = pm_runtime_set_active(&client->dev);
-       if (ret < 0) {
-               pa12203001_power_chip(indio_dev, PA12203001_CHIP_DISABLE);
-               return ret;
-       }
+       if (ret < 0)
+               goto out_err;
 
        pm_runtime_enable(&client->dev);
        pm_runtime_set_autosuspend_delay(&client->dev,
                                         PA12203001_SLEEP_DELAY_MS);
        pm_runtime_use_autosuspend(&client->dev);
 
-       return iio_device_register(indio_dev);
+       ret = iio_device_register(indio_dev);
+       if (ret < 0)
+               goto out_err;
+
+       return 0;
+
+out_err:
+       pa12203001_power_chip(indio_dev, PA12203001_CHIP_DISABLE);
+       return ret;
 }
 
 static int pa12203001_remove(struct i2c_client *client)