From: David Brownell <david-b@pacbell.net>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: arvidjaar@mail.ru, linux-usb-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org
Subject: Re: [linux-usb-devel] 2.6.19-rc5 regression: can't disable OHCI wakeup via sysfs
Date: Mon, 13 Nov 2006 08:39:11 -0800 [thread overview]
Message-ID: <200611130839.11459.david-b@pacbell.net> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0611131040590.2260-100000@iolanthe.rowland.org>
On Monday 13 November 2006 7:57 am, Alan Stern wrote:
> On Sun, 12 Nov 2006, David Brownell wrote:
>
> > > Or are you trying to say that the original device_may_wakeup() value would
> > > be 0 if the bug were detected?
> >
> > The latter: device_may_wakeup() never returns true. There are three paths
> > for that:
> >
> > (a) userspace workaround, which is the regression that was reported;
> > (b) the AMD 756 workaround, and
> > (c) that board-specific quirk code.
> >
> > Of course (c) hasn't been submitted yet because it didn't work ... evidently
> > because of the regression where device_may_wakeup(root_hub) was ignored.
>
> 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".
> 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.
> > > 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. :)
> 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.
- Dave
next prev parent reply other threads:[~2006-11-13 16:39 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-18 15:19 2.6.17: dmesg flooded with "ohci_hcd 0000:00:02.0: wakeup" Andrey Borzenkov
2006-06-18 16:29 ` [linux-usb-devel] " David Brownell
2006-06-18 17:29 ` Andrey Borzenkov
2006-06-18 18:16 ` David Brownell
2006-06-18 19:22 ` Andrey Borzenkov
2006-06-19 18:39 ` Andrey Borzenkov
2006-06-19 20:12 ` David Brownell
2006-11-11 11:29 ` 2.6.19-rc5 regression: can't disable OHCI wakeup via sysfs Andrey Borzenkov
2006-11-12 16:31 ` [linux-usb-devel] " Alan Stern
2006-11-12 18:00 ` David Brownell
2006-11-12 21:59 ` Alan Stern
2006-11-12 23:21 ` David Brownell
2006-11-13 15:57 ` Alan Stern
2006-11-13 16:39 ` David Brownell [this message]
2006-11-13 17:15 ` Alan Stern
2006-11-14 21:18 ` David Brownell
2006-11-14 21:42 ` Alan Stern
2006-11-14 22:56 ` David Brownell
2006-11-13 19:58 ` Alan Stern
2006-11-14 20:48 ` Andrey Borzenkov
2006-11-14 20:54 ` [Bulk] " David Brownell
2006-09-22 18:53 ` [linux-usb-devel] 2.6.17: dmesg flooded with "ohci_hcd 0000:00:02.0: wakeup" Andrey Borzenkov
2006-09-22 20:52 ` Alan Stern
2006-11-11 11:27 ` Andrey Borzenkov
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=200611130839.11459.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=arvidjaar@mail.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb-devel@lists.sourceforge.net \
--cc=stern@rowland.harvard.edu \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.