diff mbox

Enable async suspend/resume on industrial IO devices

Message ID 1302057915-13549-1-git-send-email-sonnyrao@chromium.org (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Sonny Rao April 6, 2011, 2:45 a.m. UTC
Industrial I/O devices can sometimes take a long time to resume,
allowing them to be asynchronus saves 50ms on one light sensor

Signed-off-by: Sonny Rao <sonnyrao@chromium.org>

---
 drivers/staging/iio/industrialio-core.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

Comments

Jonathan Cameron April 6, 2011, 10:59 a.m. UTC | #1
On 04/06/11 03:45, Sonny Rao wrote:
> Industrial I/O devices can sometimes take a long time to resume,
> allowing them to be asynchronus saves 50ms on one light sensor
> 
Hi Sonny,

cc'd linux-iio

I'm not particularly familiar with this.  Are there any disadvantages?
I just wonder if it would be better to push this into individual drivers
rather than the core?

Jonathan
> Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
> 
> ---
>  drivers/staging/iio/industrialio-core.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
> index 768f448..a4b099f 100644
> --- a/drivers/staging/iio/industrialio-core.c
> +++ b/drivers/staging/iio/industrialio-core.c
> @@ -811,6 +811,8 @@ int iio_device_register(struct iio_dev *dev_info)
>  	if (dev_info->modes & INDIO_RING_TRIGGERED)
>  		iio_device_register_trigger_consumer(dev_info);
>  
> +	device_enable_async_suspend(&dev_info->dev);
> +
>  	return 0;
>  
>  error_free_sysfs:
Sonny Rao April 6, 2011, 10:47 p.m. UTC | #2
On Wed, Apr 6, 2011 at 3:59 AM, Jonathan Cameron <jic23@cam.ac.uk> wrote:
> On 04/06/11 03:45, Sonny Rao wrote:
>> Industrial I/O devices can sometimes take a long time to resume,
>> allowing them to be asynchronus saves 50ms on one light sensor
>>
> Hi Sonny,
>
> cc'd linux-iio
>
> I'm not particularly familiar with this.  Are there any disadvantages?
> I just wonder if it would be better to push this into individual drivers
> rather than the core?

Yeah we could do it that way too, I sent out a similar patch for i2c
and people were asking if it was entirely safe.  It sounds like it may
depend on dependencies between devices.

Do you know if any of the devices in iio have inter-device dependencies?
I was under the impression they were mostly stand-alone sensors that
ordinarily wouldn't, but I haven't tried to audit all of them or anything.

Sonny
Jonathan Cameron April 7, 2011, 11:29 a.m. UTC | #3
On 04/06/11 23:47, Sonny Rao wrote:
> On Wed, Apr 6, 2011 at 3:59 AM, Jonathan Cameron <jic23@cam.ac.uk> wrote:
>> On 04/06/11 03:45, Sonny Rao wrote:
>>> Industrial I/O devices can sometimes take a long time to resume,
>>> allowing them to be asynchronus saves 50ms on one light sensor
>>>
>> Hi Sonny,
>>
>> cc'd linux-iio
>>
>> I'm not particularly familiar with this.  Are there any disadvantages?
>> I just wonder if it would be better to push this into individual drivers
>> rather than the core?
> 
> Yeah we could do it that way too, I sent out a similar patch for i2c
> and people were asking if it was entirely safe.  It sounds like it may
> depend on dependencies between devices.
> 
> Do you know if any of the devices in iio have inter-device dependencies?
> I was under the impression they were mostly stand-alone sensors that
> ordinarily wouldn't, but I haven't tried to audit all of them or anything.
Mostly I think is the key word here.  Right now I don't think we have anything
that would have a problem, but putting something like that in the core is
liable to bite sometime in the future.  For now at least I think I'd prefer
to see it in an individual driver.
Sonny Rao April 8, 2011, 3:26 a.m. UTC | #4
On Thu, Apr 7, 2011 at 4:29 AM, Jonathan Cameron <jic23@cam.ac.uk> wrote:
> On 04/06/11 23:47, Sonny Rao wrote:
>> On Wed, Apr 6, 2011 at 3:59 AM, Jonathan Cameron <jic23@cam.ac.uk> wrote:
>>> On 04/06/11 03:45, Sonny Rao wrote:
>>>> Industrial I/O devices can sometimes take a long time to resume,
>>>> allowing them to be asynchronus saves 50ms on one light sensor
>>>>
>>> Hi Sonny,
>>>
>>> cc'd linux-iio
>>>
>>> I'm not particularly familiar with this.  Are there any disadvantages?
>>> I just wonder if it would be better to push this into individual drivers
>>> rather than the core?
>>
>> Yeah we could do it that way too, I sent out a similar patch for i2c
>> and people were asking if it was entirely safe.  It sounds like it may
>> depend on dependencies between devices.
>>
>> Do you know if any of the devices in iio have inter-device dependencies?
>> I was under the impression they were mostly stand-alone sensors that
>> ordinarily wouldn't, but I haven't tried to audit all of them or anything.
> Mostly I think is the key word here.  Right now I don't think we have anything
> that would have a problem, but putting something like that in the core is
> liable to bite sometime in the future.  For now at least I think I'd prefer
> to see it in an individual driver.
>
Ok sure, FYI, I had a similar discussion with the i2c folks and I
think the consensus was to do it per-driver as well.
The driver I was interested in was the tsl258x which isn't in staging
yet.  When it goes in, I shall submit my patch on top of that.


Thanks,
Sonny
diff mbox

Patch

diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c
index 768f448..a4b099f 100644
--- a/drivers/staging/iio/industrialio-core.c
+++ b/drivers/staging/iio/industrialio-core.c
@@ -811,6 +811,8 @@  int iio_device_register(struct iio_dev *dev_info)
 	if (dev_info->modes & INDIO_RING_TRIGGERED)
 		iio_device_register_trigger_consumer(dev_info);
 
+	device_enable_async_suspend(&dev_info->dev);
+
 	return 0;
 
 error_free_sysfs: