From: Bernard Blackham <bernard-4vSAtV5O1nc0n/F98K4Iww@public.gmane.org>
To: Alan Stern <stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org>
Cc: David Brownell <david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>,
ncunningham-3EexvZdKGZRWk0Htik3J/w@public.gmane.org,
Linux-pm mailing list
<linux-pm-qjLDD68F18O7TbgM5vRIOg@public.gmane.org>,
Pavel Machek <pavel-+ZI9xUNit7I@public.gmane.org>
Subject: Re: Re: uhci-hcd suspend/resume under the new driver model
Date: Thu, 17 Mar 2005 09:10:13 +0800 [thread overview]
Message-ID: <20050317011013.GD10545@blackham.com.au> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0503161336500.1040-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 1352 bytes --]
On Wed, Mar 16, 2005 at 01:44:00PM -0500, Alan Stern wrote:
> > Needed an extra patch to compile, attached.
>
> I didn't get your attachment.
D'oh. For real this time.
> > However, it still doesn't survive more than one suspend/resume
> > with devices plugged in. On the second resume, USB is dead, and
> > it enters the same suspend_hc/wakeup_hc loop. I traced this
> > back to the hcd never really being resumed, as the pci power
> > state never changes from D0 as pci_set_power_state is never
> > called here. The attached patch also addresses this - I'm not
> > sure if it's the right way, but it works(ish):
>
> Can _you_ elaborate on "never really being resumed"? Since the
> state never changes from D0 much of the code in
> usb_hcd_pci_suspend never runs, as you said above. In fact about
> the only thing that does happen is the call to
> hcd->driver->suspend. However the reverse call to
> hcd->driver->resume does get made in usb_hcd_pci_resume even
> though the state upon entry is D0.
I meant specifically in the resume path, there's an if statement to
check if the pci power state is > D0, and only acts if that's the
case. Hopefully the first hunk of the patch attached makes this more
clear. None of the code inside that if statement was being called.
Bernard
--
Bernard Blackham <bernard at blackham dot com dot au>
[-- Attachment #2: alan-usb-fixes-2-fixes.diff --]
[-- Type: text/plain, Size: 794 bytes --]
Index: linux/drivers/usb/core/hcd-pci.c
===================================================================
--- linux.orig/drivers/usb/core/hcd-pci.c 2005-03-16 23:49:50.000000000 +0800
+++ linux/drivers/usb/core/hcd-pci.c 2005-03-17 00:28:10.000000000 +0800
@@ -396,7 +396,7 @@
hcd->state = USB_STATE_RESUMING;
- if (dev->current_state > PCI_D0) {
+ if (dev->dev.power.power_state.event != EVENT_ON) {
if (has_pci_pm) {
#ifdef CONFIG_USB_SUSPEND
pci_enable_wake (dev, dev->current_state, 0);
@@ -411,7 +411,7 @@
}
dev->dev.power.power_state = PMSG_ON;
retval = request_irq (dev->irq, usb_hcd_irq, SA_SHIRQ,
- hcd->irq_descr, hcd);
+ hcd->driver->description, hcd);
if (retval < 0) {
dev_err (hcd->self.controller,
"can't restore IRQ after resume!\n");
[-- Attachment #3: Type: text/plain, Size: 0 bytes --]
next prev parent reply other threads:[~2005-03-17 1:10 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20050313101453.GA4820@blackham.com.au>
[not found] ` <20050313101453.GA4820-4vSAtV5O1nc0n/F98K4Iww@public.gmane.org>
2005-03-13 18:12 ` uhci-hcd suspend/resume under the new driver model Pavel Machek
[not found] ` <20050313181225.GC1579-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-13 22:57 ` Benjamin Herrenschmidt
2005-03-13 23:20 ` Pavel Machek
[not found] ` <20050313232002.GC22635-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-14 2:23 ` Bernard Blackham
[not found] ` <20050314022308.GD6008-4vSAtV5O1nc0n/F98K4Iww@public.gmane.org>
2005-03-14 4:03 ` David Brownell
[not found] ` <200503132003.27555.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-14 8:08 ` Pavel Machek
[not found] ` <20050314080827.GG22635-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-14 18:17 ` David Brownell
[not found] ` <200503141017.17305.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-14 18:44 ` Pavel Machek
[not found] ` <20050314184454.GL5461-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-14 18:59 ` David Brownell
[not found] ` <200503141059.26107.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-14 19:30 ` Pavel Machek
[not found] ` <20050314193054.GO5461-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2005-03-16 21:05 ` David Brownell
[not found] ` <200503161305.57698.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-16 21:44 ` Nigel Cunningham
[not found] ` <1111009442.3240.28.camel-r49W/1Cwd2ff0s6lnCXPX/uOuaPYTxhvJwvTLr3MMZM@public.gmane.org>
2005-03-16 22:12 ` David Brownell
[not found] ` <200503161412.42387.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-16 22:19 ` Pavel Machek
2005-03-16 22:48 ` Nigel Cunningham
2005-03-16 21:57 ` Pavel Machek
2005-03-14 22:22 ` Benjamin Herrenschmidt
2005-03-14 22:21 ` Benjamin Herrenschmidt
2005-03-14 22:31 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.0503141717240.620-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-14 22:38 ` Nigel Cunningham
2005-03-15 21:48 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.0503151636290.711-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-15 21:52 ` Pavel Machek
2005-03-15 22:11 ` David Brownell
2005-03-16 3:04 ` Bernard Blackham
[not found] ` <20050316030448.GA8588-4vSAtV5O1nc0n/F98K4Iww@public.gmane.org>
2005-03-16 15:45 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.0503161024360.1040-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-16 16:52 ` Bernard Blackham
[not found] ` <20050316165239.GA10545-4vSAtV5O1nc0n/F98K4Iww@public.gmane.org>
2005-03-16 18:44 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.0503161336500.1040-100000-3WpdWqXrU/qjv4eRiOYp3g@public.gmane.org>
2005-03-17 1:10 ` Bernard Blackham [this message]
[not found] ` <20050317011013.GD10545-4vSAtV5O1nc0n/F98K4Iww@public.gmane.org>
2005-03-17 3:57 ` Alan Stern
2005-03-16 21:09 ` David Brownell
[not found] ` <200503161309.34142.david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org>
2005-03-16 22:10 ` Alan Stern
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=20050317011013.GD10545@blackham.com.au \
--to=bernard-4vsatv5o1nc0n/f98k4iww@public.gmane.org \
--cc=david-b-yBeKhBN/0LDR7s880joybQ@public.gmane.org \
--cc=linux-pm-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
--cc=ncunningham-3EexvZdKGZRWk0Htik3J/w@public.gmane.org \
--cc=pavel-+ZI9xUNit7I@public.gmane.org \
--cc=stern-nwvwT67g6+6dFdvTe/nMLpVzexx5G7lz@public.gmane.org \
/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