mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 23:13:01 +02:00
iio: adc: dln2-adc: zero full struct instead of just the padding
Drop a minor optimization of zeroing the padding between data and timestamp and zero the whole structure. This is done in favor of simpler code, and in order to drop the usage of the internal private variable "scan_timestamp" of the struct iio_dev. Signed-off-by: Vasileios Amoiridis <vassilisamir@gmail.com> Link: https://patch.msgid.link/20241214191421.94172-2-vassilisamir@gmail.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
88ff5304f6
commit
6fcabe62de
|
@ -66,8 +66,6 @@ struct dln2_adc {
|
||||||
/* Demux table */
|
/* Demux table */
|
||||||
unsigned int demux_count;
|
unsigned int demux_count;
|
||||||
struct dln2_adc_demux_table demux[DLN2_ADC_MAX_CHANNELS];
|
struct dln2_adc_demux_table demux[DLN2_ADC_MAX_CHANNELS];
|
||||||
/* Precomputed timestamp padding offset and length */
|
|
||||||
unsigned int ts_pad_offset, ts_pad_length;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct dln2_adc_port_chan {
|
struct dln2_adc_port_chan {
|
||||||
|
@ -111,8 +109,6 @@ static void dln2_adc_update_demux(struct dln2_adc *dln2)
|
||||||
if (iio_get_masklength(indio_dev) &&
|
if (iio_get_masklength(indio_dev) &&
|
||||||
(*indio_dev->active_scan_mask & 0xff) == 0xff) {
|
(*indio_dev->active_scan_mask & 0xff) == 0xff) {
|
||||||
dln2_adc_add_demux(dln2, 0, 0, 16);
|
dln2_adc_add_demux(dln2, 0, 0, 16);
|
||||||
dln2->ts_pad_offset = 0;
|
|
||||||
dln2->ts_pad_length = 0;
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,16 +123,6 @@ static void dln2_adc_update_demux(struct dln2_adc *dln2)
|
||||||
out_loc += 2;
|
out_loc += 2;
|
||||||
in_loc += 2;
|
in_loc += 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (indio_dev->scan_timestamp) {
|
|
||||||
size_t ts_offset = indio_dev->scan_bytes / sizeof(int64_t) - 1;
|
|
||||||
|
|
||||||
dln2->ts_pad_offset = out_loc;
|
|
||||||
dln2->ts_pad_length = ts_offset * sizeof(int64_t) - out_loc;
|
|
||||||
} else {
|
|
||||||
dln2->ts_pad_offset = 0;
|
|
||||||
dln2->ts_pad_length = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int dln2_adc_get_chan_count(struct dln2_adc *dln2)
|
static int dln2_adc_get_chan_count(struct dln2_adc *dln2)
|
||||||
|
@ -494,6 +480,8 @@ static irqreturn_t dln2_adc_trigger_h(int irq, void *p)
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
|
memset(&data, 0, sizeof(data));
|
||||||
|
|
||||||
/* Demux operation */
|
/* Demux operation */
|
||||||
for (i = 0; i < dln2->demux_count; ++i) {
|
for (i = 0; i < dln2->demux_count; ++i) {
|
||||||
t = &dln2->demux[i];
|
t = &dln2->demux[i];
|
||||||
|
@ -501,11 +489,6 @@ static irqreturn_t dln2_adc_trigger_h(int irq, void *p)
|
||||||
(void *)dev_data.values + t->from, t->length);
|
(void *)dev_data.values + t->from, t->length);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Zero padding space between values and timestamp */
|
|
||||||
if (dln2->ts_pad_length)
|
|
||||||
memset((void *)data.values + dln2->ts_pad_offset,
|
|
||||||
0, dln2->ts_pad_length);
|
|
||||||
|
|
||||||
iio_push_to_buffers_with_timestamp(indio_dev, &data,
|
iio_push_to_buffers_with_timestamp(indio_dev, &data,
|
||||||
iio_get_time_ns(indio_dev));
|
iio_get_time_ns(indio_dev));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user