Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 37495660 authored by Lars-Peter Clausen's avatar Lars-Peter Clausen Committed by Jonathan Cameron
Browse files

iio: buffer: Drop get_length callback



We already do have the length field in the struct iio_buffer which is
expected to be in sync with the current size of the buffer. And currently
all implementations of the get_length callback either return this field or a
constant number.

This patch removes the get_length callback and replaces all occurrences in
the IIO core with directly accessing the length field of the buffer.

Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 8d92db28
Loading
Loading
Loading
Loading
+3 −8
Original line number Diff line number Diff line
@@ -390,11 +390,7 @@ static ssize_t iio_buffer_read_length(struct device *dev,
	struct iio_dev *indio_dev = dev_to_iio_dev(dev);
	struct iio_buffer *buffer = indio_dev->buffer;

	if (buffer->access->get_length)
		return sprintf(buf, "%d\n",
			       buffer->access->get_length(buffer));

	return 0;
	return sprintf(buf, "%d\n", buffer->length);
}

static ssize_t iio_buffer_write_length(struct device *dev,
@@ -410,8 +406,7 @@ static ssize_t iio_buffer_write_length(struct device *dev,
	if (ret)
		return ret;

	if (buffer->access->get_length)
		if (val == buffer->access->get_length(buffer))
	if (val == buffer->length)
		return len;

	mutex_lock(&indio_dev->mlock);
+0 −6
Original line number Diff line number Diff line
@@ -47,11 +47,6 @@ static int iio_request_update_kfifo(struct iio_buffer *r)
	return ret;
}

static int iio_get_length_kfifo(struct iio_buffer *r)
{
	return r->length;
}

static int iio_mark_update_needed_kfifo(struct iio_buffer *r)
{
	struct iio_kfifo *kf = iio_to_kfifo(r);
@@ -141,7 +136,6 @@ static const struct iio_buffer_access_funcs kfifo_access_funcs = {
	.data_available = iio_kfifo_buf_data_available,
	.request_update = &iio_request_update_kfifo,
	.set_bytes_per_datum = &iio_set_bytes_per_datum_kfifo,
	.get_length = &iio_get_length_kfifo,
	.set_length = &iio_set_length_kfifo,
	.release = &iio_kfifo_buffer_release,
};
+2 −2
Original line number Diff line number Diff line
@@ -42,6 +42,6 @@ request_update
set_bytes_per_datum
  Set the number of bytes for a complete scan. (All samples + timestamp)

get_length / set_length
  Get/set the number of complete scans that may be held by the buffer.
set_length
  Set the number of complete scans that may be held by the buffer.
+1 −7
Original line number Diff line number Diff line
@@ -129,12 +129,6 @@ static int sca3000_read_first_n_hw_rb(struct iio_buffer *r,
	return ret ? ret : num_read;
}

/* This is only valid with all 3 elements enabled */
static int sca3000_ring_get_length(struct iio_buffer *r)
{
	return 64;
}

static bool sca3000_ring_buf_data_available(struct iio_buffer *r)
{
	return r->stufftoread;
@@ -248,6 +242,7 @@ static struct iio_buffer *sca3000_rb_allocate(struct iio_dev *indio_dev)
	ring->private = indio_dev;
	buf = &ring->buf;
	buf->stufftoread = 0;
	buf->length = 64;
	buf->attrs = sca3000_ring_attributes;
	iio_buffer_init(buf);

@@ -261,7 +256,6 @@ static void sca3000_ring_release(struct iio_buffer *r)

static const struct iio_buffer_access_funcs sca3000_ring_access_funcs = {
	.read_first_n = &sca3000_read_first_n_hw_rb,
	.get_length = &sca3000_ring_get_length,
	.data_available = sca3000_ring_buf_data_available,
	.release = sca3000_ring_release,
};
+0 −2
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ struct iio_buffer;
 * @request_update:	if a parameter change has been marked, update underlying
 *			storage.
 * @set_bytes_per_datum:set number of bytes per datum
 * @get_length:		get number of datums in buffer
 * @set_length:		set number of datums in buffer
 * @release:		called when the last reference to the buffer is dropped,
 *			should free all resources allocated by the buffer.
@@ -49,7 +48,6 @@ struct iio_buffer_access_funcs {
	int (*request_update)(struct iio_buffer *buffer);

	int (*set_bytes_per_datum)(struct iio_buffer *buffer, size_t bpd);
	int (*get_length)(struct iio_buffer *buffer);
	int (*set_length)(struct iio_buffer *buffer, int length);

	void (*release)(struct iio_buffer *buffer);