Skip to content

Commit 5e1a2fc

Browse files
ubiedakartben
authored andcommitted
sensor: adxl345: Prevent clearing SQE flags set while prepping SQEs
SQE flags are adjusted when preparing write/read ops, therefore an OR operation is required. Signed-off-by: Luis Ubieda <luisf@croxel.com>
1 parent ce2d16b commit 5e1a2fc

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

drivers/sensor/adi/adxl345/adxl345_stream.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ static void adxl345_process_fifo_samples_cb(struct rtio *r, const struct rtio_sq
211211

212212
rtio_sqe_prep_tiny_write(write_fifo_addr, data->iodev, RTIO_PRIO_NORM, &reg_addr,
213213
1, NULL);
214-
write_fifo_addr->flags = RTIO_SQE_TRANSACTION;
214+
write_fifo_addr->flags |= RTIO_SQE_TRANSACTION;
215215
rtio_sqe_prep_read(read_fifo_data, data->iodev, RTIO_PRIO_NORM,
216216
read_buf + data->fifo_total_bytes,
217217
SAMPLE_SIZE, current_sqe);
@@ -222,7 +222,7 @@ static void adxl345_process_fifo_samples_cb(struct rtio *r, const struct rtio_sq
222222
if (i == fifo_samples-1) {
223223
struct rtio_sqe *complete_op = rtio_sqe_acquire(data->rtio_ctx);
224224

225-
read_fifo_data->flags = RTIO_SQE_CHAINED;
225+
read_fifo_data->flags |= RTIO_SQE_CHAINED;
226226
rtio_sqe_prep_callback(complete_op, adxl345_fifo_read_cb, (void *)dev,
227227
current_sqe);
228228
}
@@ -341,10 +341,10 @@ static void adxl345_process_status1_cb(struct rtio *r, const struct rtio_sqe *sq
341341
const uint8_t reg_addr = ADXL345_REG_READ(ADXL345_FIFO_STATUS_REG);
342342

343343
rtio_sqe_prep_tiny_write(write_fifo_addr, data->iodev, RTIO_PRIO_NORM, &reg_addr, 1, NULL);
344-
write_fifo_addr->flags = RTIO_SQE_TRANSACTION;
344+
write_fifo_addr->flags |= RTIO_SQE_TRANSACTION;
345345
rtio_sqe_prep_read(read_fifo_data, data->iodev, RTIO_PRIO_NORM, data->fifo_ent, 1,
346346
current_sqe);
347-
read_fifo_data->flags = RTIO_SQE_CHAINED;
347+
read_fifo_data->flags |= RTIO_SQE_CHAINED;
348348
if (cfg->bus_type == ADXL345_BUS_I2C) {
349349
read_fifo_data->iodev_flags |= RTIO_IODEV_I2C_STOP | RTIO_IODEV_I2C_RESTART;
350350
}
@@ -379,9 +379,9 @@ void adxl345_stream_irq_handler(const struct device *dev)
379379
uint8_t reg = ADXL345_REG_READ(ADXL345_INT_SOURCE);
380380

381381
rtio_sqe_prep_tiny_write(write_status_addr, data->iodev, RTIO_PRIO_NORM, &reg, 1, NULL);
382-
write_status_addr->flags = RTIO_SQE_TRANSACTION;
382+
write_status_addr->flags |= RTIO_SQE_TRANSACTION;
383383
rtio_sqe_prep_read(read_status_reg, data->iodev, RTIO_PRIO_NORM, &data->status1, 1, NULL);
384-
read_status_reg->flags = RTIO_SQE_CHAINED;
384+
read_status_reg->flags |= RTIO_SQE_CHAINED;
385385

386386
if (cfg->bus_type == ADXL345_BUS_I2C) {
387387
read_status_reg->iodev_flags |= RTIO_IODEV_I2C_STOP | RTIO_IODEV_I2C_RESTART;

0 commit comments

Comments
 (0)