iio: light: Simple conversions to iio_push_to_buffers_with_ts()
This new function allows for runtime checks on the provided source buffer being of sufficient size to accommodate the enabled channel data layout and the naturally aligned s64 timestamp (which is non obvious and a frequent source of bugs in the past). This patch includes the remaining simple cases for light sensor drivers. Cc: Mudit Sharma <muditsharma.info@gmail.com> Cc: Jiri Kosina <jikos@kernel.org> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Cc: Javier Carrasco <javier.carrasco.cruz@gmail.com> Cc: Matti Vaittinen <mazziesaccount@gmail.com> Reviewed-by: Matti Vaittinen <mazziesaccount@gmail.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Reviewed-by: Andy Shevchenko <andy@kernel.org> Link: https://patch.msgid.link/20250802164436.515988-17-jic23@kernel.org Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>pull/1354/merge
parent
2bbaf41ac9
commit
1ab10737fc
|
|
@ -755,8 +755,8 @@ static irqreturn_t bh1745_trigger_handler(int interrupt, void *p)
|
|||
scan.chans[j++] = value;
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &scan,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &scan, sizeof(scan),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
err:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -262,8 +262,9 @@ static int als_proc_event(struct hid_sensor_hub_device *hsdev,
|
|||
if (!als_state->timestamp)
|
||||
als_state->timestamp = iio_get_time_ns(indio_dev);
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &als_state->scan,
|
||||
als_state->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &als_state->scan,
|
||||
sizeof(als_state->scan),
|
||||
als_state->timestamp);
|
||||
als_state->timestamp = 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1315,8 +1315,8 @@ static irqreturn_t ltr501_trigger_handler(int irq, void *p)
|
|||
scan.channels[j++] = psdata & LTR501_PS_DATA_MASK;
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &scan,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &scan, sizeof(scan),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
done:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -1104,7 +1104,7 @@ static irqreturn_t opt4060_trigger_handler(int irq, void *p)
|
|||
}
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(idev, &raw, pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(idev, &raw, sizeof(raw), pf->timestamp);
|
||||
err_read:
|
||||
iio_trigger_notify_done(idev->trig);
|
||||
return IRQ_HANDLED;
|
||||
|
|
|
|||
|
|
@ -1193,7 +1193,8 @@ static int bu27034_buffer_thread(void *arg)
|
|||
*/
|
||||
data->scan.mlux = (u32)mlux;
|
||||
}
|
||||
iio_push_to_buffers_with_timestamp(idev, &data->scan, tstamp);
|
||||
iio_push_to_buffers_with_ts(idev, &data->scan,
|
||||
sizeof(data->scan), tstamp);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -457,8 +457,8 @@ static irqreturn_t rpr0521_trigger_consumer_handler(int irq, void *p)
|
|||
data->scan.channels,
|
||||
(3 * 2) + 1); /* 3 * 16-bit + (discarded) int clear reg. */
|
||||
if (!err)
|
||||
iio_push_to_buffers_with_timestamp(indio_dev,
|
||||
&data->scan, pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(indio_dev, &data->scan,
|
||||
sizeof(data->scan), pf->timestamp);
|
||||
else
|
||||
dev_err(&data->client->dev,
|
||||
"Trigger consumer can't read from sensor.\n");
|
||||
|
|
|
|||
|
|
@ -494,8 +494,9 @@ static irqreturn_t si1145_trigger_handler(int irq, void *private)
|
|||
goto done;
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, data->buffer,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, data->buffer,
|
||||
sizeof(data->buffer),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
done:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -1698,8 +1698,8 @@ static irqreturn_t vcnl4010_trigger_handler(int irq, void *p)
|
|||
if (!data_read)
|
||||
goto end;
|
||||
|
||||
iio_push_to_buffers_with_timestamp(indio_dev, &scan,
|
||||
iio_get_time_ns(indio_dev));
|
||||
iio_push_to_buffers_with_ts(indio_dev, &scan, sizeof(scan),
|
||||
iio_get_time_ns(indio_dev));
|
||||
|
||||
end:
|
||||
iio_trigger_notify_done(indio_dev->trig);
|
||||
|
|
|
|||
|
|
@ -903,7 +903,7 @@ static irqreturn_t veml6030_trigger_handler(int irq, void *p)
|
|||
scan.chans[i++] = reg;
|
||||
}
|
||||
|
||||
iio_push_to_buffers_with_timestamp(iio, &scan, pf->timestamp);
|
||||
iio_push_to_buffers_with_ts(iio, &scan, sizeof(scan), pf->timestamp);
|
||||
|
||||
done:
|
||||
iio_trigger_notify_done(iio->trig);
|
||||
|
|
|
|||
Loading…
Reference in New Issue