When configuring gpio, we need to read initial values for activity and
step count. This function may fail due to i2c read errors.

Check the error code returned by mma9553_read_activity_stepcnt
and return the appropriate error in gpio config function.

Signed-off-by: Irina Tirdea <[email protected]>
Reported-by: Hartmut Knaack <[email protected]>
---
 drivers/iio/accel/mma9553.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/accel/mma9553.c b/drivers/iio/accel/mma9553.c
index 365a109..6f0a14b 100644
--- a/drivers/iio/accel/mma9553.c
+++ b/drivers/iio/accel/mma9553.c
@@ -363,9 +363,12 @@ static int mma9553_conf_gpio(struct mma9553_data *data)
                return 0;
 
        /* Save initial values for activity and stepcnt */
-       if (activity_enabled || ev_step_detect->enabled)
-               mma9553_read_activity_stepcnt(data, &data->activity,
-                                             &data->stepcnt);
+       if (activity_enabled || ev_step_detect->enabled) {
+               ret = mma9553_read_activity_stepcnt(data, &data->activity,
+                                                   &data->stepcnt);
+               if (ret < 0)
+                       return ret;
+       }
 
        ret = mma9551_gpio_config(data->client,
                                  MMA9553_DEFAULT_GPIO_PIN,
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to