|
@@ -734,6 +734,7 @@ static const struct iio_event_spec bmg160_event = {
|
|
|
.sign = 's', \
|
|
|
.realbits = 16, \
|
|
|
.storagebits = 16, \
|
|
|
+ .endianness = IIO_LE, \
|
|
|
}, \
|
|
|
.event_spec = &bmg160_event, \
|
|
|
.num_event_specs = 1 \
|
|
@@ -773,20 +774,14 @@ static irqreturn_t bmg160_trigger_handler(int irq, void *p)
|
|
|
struct iio_poll_func *pf = p;
|
|
|
struct iio_dev *indio_dev = pf->indio_dev;
|
|
|
struct bmg160_data *data = iio_priv(indio_dev);
|
|
|
- int bit, ret, i = 0;
|
|
|
- unsigned int val;
|
|
|
+ int ret;
|
|
|
|
|
|
mutex_lock(&data->mutex);
|
|
|
- for (bit = 0; bit < AXIS_MAX; bit++) {
|
|
|
- ret = regmap_bulk_read(data->regmap, BMG160_AXIS_TO_REG(bit),
|
|
|
- &val, 2);
|
|
|
- if (ret < 0) {
|
|
|
- mutex_unlock(&data->mutex);
|
|
|
- goto err;
|
|
|
- }
|
|
|
- data->buffer[i++] = ret;
|
|
|
- }
|
|
|
+ ret = regmap_bulk_read(data->regmap, BMG160_REG_XOUT_L,
|
|
|
+ data->buffer, AXIS_MAX * 2);
|
|
|
mutex_unlock(&data->mutex);
|
|
|
+ if (ret < 0)
|
|
|
+ goto err;
|
|
|
|
|
|
iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
|
|
|
pf->timestamp);
|