On Mon, 13 Nov 2006, David Brownell wrote:

> > Well, I would argue that part of the problem has to do with the use of 
> > device_may_wakeup.  It is tied to a sysfs API 
> 
> It's a *driver model* API, which is also accessible from sysfs ... to support
> per-device policies, for example the (a) workaround.  The mechanism exists
> even on kernels that don't include sysfs ... although on such systems, there
> is no way for users to do things like say "ignore the fact that this mouse
> claims to issue wakeup events, its descriptors lie".

Yes, it is separate from sysfs -- but it is _tied_ to the sysfs API.

> > and therefore administrative  
> > in nature, but now you say it's also being used to record hardware quirks.
> 
> No; I'm saying the driver model is used to record that the hardware mechanism
> isn't available.   The fact that it's because of an implementation artifact
> (bad silicon, or board layout, etc) versus a design artifact (silicon designed
> without that feature) is immaterial ... in either case, the system can't use
> the mechanism.

But the information is being recorded in the wrong spot.  The correct test
should use device_can_wakeup, not device_may_wakeup.  The can_wakeup flag
is the one which records whether or not the hardware mechanism is actually
available.


> > > > If you think autostop should also check for device_may_wakeup(), I'll 
> > > > make 
> > > > it do so.  Remember though that autostop is intended to work even when 
> > > > CONFIG_PM is off.
> > > 
> > > The original autosuspend logic would never kick in without PM; after all,
> > > it's purely a power saving mechanism!  And testing device_may_wakeup() 
> > > will
> > > be restoring that behavior, since without PM that's always false.
> > 
> > It would restore that behavior, and it would be silly way of doing so.  
> > There are better ways to prevent autostop without PM, such as making
> > ohci_rh_suspend() and ohci_rh_resume() depend on CONFIG_PM!
> 
> ISTR they do that too.  :)

They used to, but I changed it when I added autostop.  Looks like I need 
to change it back.

> > However it was always my intention that autostop should operate without
> > PM.  It's not only about saving power, it also is about reducing load on
> > system resources -- primarily DMA, although this may be a lot less severe
> > with OHCI than with UHCI.  Does OHCI do any DMA at all when no devices are
> > plugged in and the schedule is empty?
> 
> That's not an issue at all with OHCI; it only DMAs when the relevant
> schedule is enabled.  Which it isn't, unless it has work to do.
> 
>  
> > My quick impression from the spec is that it does not, in which case 
> > there is no point in keeping autostop when CONFIG_PM is off.
> 
> Exactly.  That's why I said it's purely a power saving mechanism.

Okay.  I'll write a patch to eliminate autostop and those routines when
CONFIG_PM is off.

But that doesn't answer the question above: Should autostop check 
device_can_wakeup rather than device_may_wakeup?

Also: Does the quirk/bug detection logic clear can_wakeup, as it should?  
Or does it only affect may_wakeup?

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