OSDN Git Service

iio: st_sensors: do not always write enable_axis register
authorLorenzo Bianconi <lorenzo.bianconi83@gmail.com>
Wed, 30 Aug 2017 11:50:41 +0000 (13:50 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 9 Oct 2017 20:58:47 +0000 (21:58 +0100)
New devices (e.g. LIS2DW12) enable all axis by default and do not export
that capability in register map. Check if the enable_axis register
address has been declared in st_sensor_settings map in order to verify if
the driver needs to enable all sensor axis

Signed-off-by: Lorenzo Bianconi <lorenzo.bianconi@st.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/common/st_sensors/st_sensors_core.c

index af702fa..6657160 100644 (file)
@@ -221,11 +221,14 @@ EXPORT_SYMBOL(st_sensors_set_enable);
 int st_sensors_set_axis_enable(struct iio_dev *indio_dev, u8 axis_enable)
 {
        struct st_sensor_data *sdata = iio_priv(indio_dev);
+       int err = 0;
 
-       return st_sensors_write_data_with_mask(indio_dev,
+       if (sdata->sensor_settings->enable_axis.addr)
+               err = st_sensors_write_data_with_mask(indio_dev,
                                sdata->sensor_settings->enable_axis.addr,
                                sdata->sensor_settings->enable_axis.mask,
                                axis_enable);
+       return err;
 }
 EXPORT_SYMBOL(st_sensors_set_axis_enable);