linux-iio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Lars-Peter Clausen <lars@metafoo.de>
Cc: Jonathan Cameron <jic23@cam.ac.uk>,
	Michael Hennerich <michael.hennerich@analog.com>,
	linux-iio@vger.kernel.org,
	device-drivers-devel@blackfin.uclinux.org, drivers@analog.com
Subject: Re: [PATCH 05/10] staging:iio:gyro:adis16260: Use new ringbuffer setup helper function
Date: Sun, 04 Dec 2011 17:21:13 +0000	[thread overview]
Message-ID: <4EDBAC09.30704@kernel.org> (raw)
In-Reply-To: <4ED9FD99.8030704@metafoo.de>

On 12/03/2011 10:44 AM, Lars-Peter Clausen wrote:
> On 12/01/2011 09:55 PM, Jonathan Cameron wrote:
>> On 12/01/2011 02:19 PM, Lars-Peter Clausen wrote:
>>> Use the new ringbuffer setup helper function to allocate and register buffer and
>>> pollfunc.
>> Obviously it's unrelated to this patch, but why do we enable the
>> timestamp by default for these?
> 
> I have actually no idea. Probably makes sens to not bother keeping it.
Indeed. I guess these are left over from when we moved to a bitmap for
the scan mask (and hence removed almost defaults for channels in buffers
to make the code simpler).  Lets clear them out.

As ever I'm happy if someone else does this or anything else before I
get round to it!
> 
>>>
>>> Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
>> Acked-by: Jonathan Cameron <jic23@kernel.org>
> 
> Thanks.
> 
> Whats your plan for your buffer cleanup patches? They looked fine to me, except
> the ones where I commented.
Will post a v2 shortly.  Please ack any that you are happy to do so.
Obviously I can cheat a bit and send things on to Greg if they haven't
had an Ack from anyone, but I only do that once they have been on list
for a decent period of time, or if they are urgent bug fixes.

Hence, if anyone has gone to the effort of reading a patch and checking
it is sensible, please let me know via ack or reviewed by tags!

Thanks,

Jonathan
> 
>>> ---
>>>  drivers/staging/iio/gyro/adis16260_core.c |   10 -------
>>>  drivers/staging/iio/gyro/adis16260_ring.c |   39 ++++------------------------
>>>  2 files changed, 6 insertions(+), 43 deletions(-)
>>>
>>> diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c
>>> index 871f76b..1e77eae 100644
>>> --- a/drivers/staging/iio/gyro/adis16260_core.c
>>> +++ b/drivers/staging/iio/gyro/adis16260_core.c
>>> @@ -623,13 +623,6 @@ static int __devinit adis16260_probe(struct spi_device *spi)
>>>  	if (ret)
>>>  		goto error_free_dev;
>>>  
>>> -	ret = iio_buffer_register(indio_dev,
>>> -				  indio_dev->channels,
>>> -				  ARRAY_SIZE(adis16260_channels_x));
>>> -	if (ret) {
>>> -		printk(KERN_ERR "failed to initialize the ring\n");
>>> -		goto error_unreg_ring_funcs;
>>> -	}
>>>  	if (indio_dev->buffer) {
>>>  		/* Set default scan mode */
>>>  		iio_scan_mask_set(indio_dev, indio_dev->buffer,
>>> @@ -662,8 +655,6 @@ static int __devinit adis16260_probe(struct spi_device *spi)
>>>  error_remove_trigger:
>>>  	adis16260_remove_trigger(indio_dev);
>>>  error_uninitialize_ring:
>>> -	iio_buffer_unregister(indio_dev);
>>> -error_unreg_ring_funcs:
>>>  	adis16260_unconfigure_ring(indio_dev);
>>>  error_free_dev:
>>>  	iio_free_device(indio_dev);
>>> @@ -685,7 +676,6 @@ static int adis16260_remove(struct spi_device *spi)
>>>  	flush_scheduled_work();
>>>  
>>>  	adis16260_remove_trigger(indio_dev);
>>> -	iio_buffer_unregister(indio_dev);
>>>  	adis16260_unconfigure_ring(indio_dev);
>>>  	iio_free_device(indio_dev);
>>>  
>>> diff --git a/drivers/staging/iio/gyro/adis16260_ring.c b/drivers/staging/iio/gyro/adis16260_ring.c
>>> index 711f151..c2f5022 100644
>>> --- a/drivers/staging/iio/gyro/adis16260_ring.c
>>> +++ b/drivers/staging/iio/gyro/adis16260_ring.c
>>> @@ -94,45 +94,18 @@ static irqreturn_t adis16260_trigger_handler(int irq, void *p)
>>>  
>>>  void adis16260_unconfigure_ring(struct iio_dev *indio_dev)
>>>  {
>>> -	iio_dealloc_pollfunc(indio_dev->pollfunc);
>>> -	iio_sw_rb_free(indio_dev->buffer);
>>> +	iio_sw_rb_simple_cleanup(indio_dev);
>>>  }
>>>  
>>> -static const struct iio_buffer_setup_ops adis16260_ring_setup_ops = {
>>> -	.preenable = &iio_sw_buffer_preenable,
>>> -	.postenable = &iio_triggered_buffer_postenable,
>>> -	.predisable = &iio_triggered_buffer_predisable,
>>> -};
>>> -
>>>  int adis16260_configure_ring(struct iio_dev *indio_dev)
>>>  {
>>> -	int ret = 0;
>>> -	struct iio_buffer *ring;
>>> +	int ret;
>>>  
>>> -	ring = iio_sw_rb_allocate(indio_dev);
>>> -	if (!ring) {
>>> -		ret = -ENOMEM;
>>> +	ret = iio_sw_rb_simple_setup(indio_dev, &iio_pollfunc_store_time,
>>> +		&adis16260_trigger_handler);
>>> +	if (ret)
>>>  		return ret;
>>> -	}
>>> -	indio_dev->buffer = ring;
>>> -	ring->scan_timestamp = true;
>>> -	indio_dev->setup_ops = &adis16260_ring_setup_ops;
>>> -
>>> -	indio_dev->pollfunc = iio_alloc_pollfunc(&iio_pollfunc_store_time,
>>> -						 &adis16260_trigger_handler,
>>> -						 IRQF_ONESHOT,
>>> -						 indio_dev,
>>> -						 "adis16260_consumer%d",
>>> -						 indio_dev->id);
>>> -	if (indio_dev->pollfunc == NULL) {
>>> -		ret = -ENOMEM;
>>> -		goto error_iio_sw_rb_free;
>>> -	}
>>>  
>>> -	indio_dev->modes |= INDIO_BUFFER_TRIGGERED;
>>> +	indio_dev->buffer->scan_timestamp = true;
>>>  	return 0;
>>> -
>>> -error_iio_sw_rb_free:
>>> -	iio_sw_rb_free(indio_dev->buffer);
>>> -	return ret;
>>>  }
>>
> 

  reply	other threads:[~2011-12-04 17:21 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-01 14:19 [PATCH 01/10] staging:iio: Add wrapper functions around buffer access ops Lars-Peter Clausen
2011-12-01 14:19 ` [PATCH 02/10] staging:iio: Setup buffer access functions when allocating the buffer Lars-Peter Clausen
2011-12-01 20:48   ` Jonathan Cameron
2011-12-01 14:19 ` [PATCH 03/10] staging:iio:ring_sw: Add helper function for initializing simple setups Lars-Peter Clausen
2011-12-01 20:51   ` Jonathan Cameron
2011-12-01 14:19 ` [PATCH 04/10] staging:iio:imu:adis16400: Use new ringbuffer setup helper function Lars-Peter Clausen
2011-12-01 20:53   ` Jonathan Cameron
2011-12-01 14:19 ` [PATCH 05/10] staging:iio:gyro:adis16260: " Lars-Peter Clausen
2011-12-01 20:55   ` Jonathan Cameron
2011-12-03 10:44     ` Lars-Peter Clausen
2011-12-04 17:21       ` Jonathan Cameron [this message]
2011-12-01 14:19 ` [PATCH 06/10] staging:iio:accel:adis16201: " Lars-Peter Clausen
2011-12-01 20:56   ` Jonathan Cameron
2011-12-01 14:19 ` [PATCH 07/10] staging:iio:adc:max1363: " Lars-Peter Clausen
2011-12-01 20:58   ` Jonathan Cameron
2011-12-01 14:19 ` [PATCH 08/10] staging:iio:adc:ad7476: " Lars-Peter Clausen
2011-12-01 20:59   ` Jonathan Cameron
2011-12-01 14:19 ` [PATCH 09/10] staging:iio:adc:ad799x: " Lars-Peter Clausen
2011-12-01 21:00   ` Jonathan Cameron
2011-12-01 14:19 ` [PATCH 10/10] staging:iio:adc:ad7298: " Lars-Peter Clausen
2011-12-01 21:02   ` Jonathan Cameron
2011-12-01 20:40 ` [PATCH 01/10] staging:iio: Add wrapper functions around buffer access ops Jonathan Cameron

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EDBAC09.30704@kernel.org \
    --to=jic23@kernel.org \
    --cc=device-drivers-devel@blackfin.uclinux.org \
    --cc=drivers@analog.com \
    --cc=jic23@cam.ac.uk \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=michael.hennerich@analog.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).