On Mon, 30 Oct 2006, Oliver Neukum wrote:

> > Take a look at usb-skeleton.c to see how they can be used.  They are well
> > suited to the drivers which present a simple character-device interface to
> > userspace.
> 
> It seems to me that those drivers use:
> 
> if (desc->counter++) {
> ...
> }
> 
> in open()
> 
> and
> 
> if (--desc->counter) {
> ...
> }
> 
> in close()
> 
> But, this may be a matter of taste and viewpoint.
> However, it seems to me that you cannot limit the API to only
> the versions with counter and if push comes to shove the versions
> without counters are more basic and hence must be supported.

I don't understand.  A driver can simply do

        if (usb_autopm_get_interface(intf) < 0)
                goto fail;

in its open() routine and

        usb_autopm_put_interface(intf);

in its release() routine.  The driver doesn't need to maintain its own 
counter; that purpose is served by intf->pm_usage_cnt.

The difficulty arises when the driver doesn't have simple events like 
open() and release() to indicate when to autosuspend or autoresume.  It's 
for those situations that we need usb_autopm_set_interface().

Alan Stern


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to