iio: accel: STK8BA50: suspend sensor on init errors
authorTiberiu Breana <tiberiu.a.breana@intel.com>
Fri, 19 Jun 2015 14:56:37 +0000 (17:56 +0300)
committerJonathan Cameron <jic23@kernel.org>
Sun, 21 Jun 2015 12:53:03 +0000 (13:53 +0100)
Put chip in 'suspend' mode in case something goes wrong
during probe.

Signed-off-by: Tiberiu Breana <tiberiu.a.breana@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/accel/stk8ba50.c

index 92229bd..9836880 100644 (file)
@@ -265,7 +265,7 @@ static int stk8ba50_probe(struct i2c_client *client,
                        STK8BA50_REG_SWRST, STK8BA50_RESET_CMD);
        if (ret < 0) {
                dev_err(&client->dev, "failed to reset sensor\n");
-               return ret;
+               goto err_power_off;
        }
 
        /* The default range is +/-2g */
@@ -277,10 +277,14 @@ static int stk8ba50_probe(struct i2c_client *client,
        ret = iio_device_register(indio_dev);
        if (ret < 0) {
                dev_err(&client->dev, "device_register failed\n");
-               stk8ba50_set_power(data, STK8BA50_MODE_SUSPEND);
+               goto err_power_off;
        }
 
        return ret;
+
+err_power_off:
+       stk8ba50_set_power(data, STK8BA50_MODE_SUSPEND);
+       return ret;
 }
 
 static int stk8ba50_remove(struct i2c_client *client)