From: Andrew Morton <akpm@osdl.org>
To: Greg KH <greg@kroah.com>
Cc: linux-kernel@vger.kernel.org, pavel@suse.cz, linux-pm@osdl.org,
stern@rowland.harvard.edu
Subject: Re: [linux-pm] swsusp regression [Was: 2.6.17-mm1]
Date: Thu, 22 Jun 2006 00:46:48 -0700 [thread overview]
Message-ID: <20060622004648.f1912e34.akpm@osdl.org> (raw)
In-Reply-To: <20060622061905.GD15834@kroah.com>
On Wed, 21 Jun 2006 23:19:05 -0700
Greg KH <greg@kroah.com> wrote:
> > I have the same problems also with suspend to disk. BTW I can't resume
> > from disk since 2.6.17-rc5-mm1, but I'll try to be more precise
> > tomorrow, as it seems removing the usb stuff makes it do some more steps
> > toward resumimg (eg: with usb modules this laptop immediately reboots
> > after reading all pages, without them I can reach "resuming device.."
> > stage).
>
> Removing uhci-hcd causes all USB devices to be removed from the system.
>
> Alan, you've been working in the "generic usb" section lately, any ideas
> why we can't suspend that kind of device now?
My laptop has the same problem.
This:
--- a/drivers/usb/core/usb.c~usb-more-suspend-debugging
+++ a/drivers/usb/core/usb.c
@@ -991,7 +991,11 @@ void usb_buffer_unmap_sg (struct usb_dev
static int verify_suspended(struct device *dev, void *unused)
{
- return (dev->power.power_state.event == PM_EVENT_ON) ? -EBUSY : 0;
+ if (dev->power.power_state.event == PM_EVENT_ON) {
+ dev_printk(KERN_ERR, dev, "not suspended\n");
+ return -EBUSY;
+ }
+ return 0;
}
static int usb_generic_suspend(struct device *dev, pm_message_t message)
@@ -1005,13 +1009,18 @@ static int usb_generic_suspend(struct de
* But those semantics are useless, so we equate the two (sigh).
*/
if (dev->driver == &usb_generic_driver) {
+ int ret;
+
if (dev->power.power_state.event == message.event)
return 0;
/* we need to rule out bogus requests through sysfs */
status = device_for_each_child(dev, NULL, verify_suspended);
+ suspend_report_result(verify_suspended, status);
if (status)
return status;
- return usb_suspend_device (to_usb_device(dev));
+ ret = usb_suspend_device(to_usb_device(dev));
+ suspend_report_result(usb_suspend_device, ret);
+ return ret;
}
if ((dev->driver == NULL) ||
@@ -1027,6 +1036,7 @@ static int usb_generic_suspend(struct de
if (driver->suspend && driver->resume) {
status = driver->suspend(intf, message);
+ suspend_report_result(driver->suspend, status);
if (status)
dev_err(dev, "%s error %d\n", "suspend", status);
else
diff -puN drivers/usb/core/hub.c~usb-more-suspend-debugging drivers/usb/core/hub.c
--- a/drivers/usb/core/hub.c~usb-more-suspend-debugging
+++ a/drivers/usb/core/hub.c
@@ -1638,6 +1638,7 @@ static int hub_port_suspend(struct usb_h
USB_DEVICE_REMOTE_WAKEUP, 0,
NULL, 0,
USB_CTRL_SET_TIMEOUT);
+ suspend_report_result(usb_control_msg, status);
if (status)
dev_dbg(&udev->dev,
"won't remote wakeup, status %d\n",
@@ -1646,6 +1647,7 @@ static int hub_port_suspend(struct usb_h
/* see 7.1.7.6 */
status = set_port_feature(hub->hdev, port1, USB_PORT_FEAT_SUSPEND);
+ suspend_report_result(set_port_feature, status);
if (status) {
dev_dbg(hub->intfdev,
"can't suspend port %d, status %d\n",
@@ -1706,6 +1708,8 @@ static int __usb_suspend_device (struct
intf = udev->actconfig->interface[i];
if (is_active(intf)) {
dev_dbg(&intf->dev, "nyet suspended\n");
+ suspend_report_result(__usb_suspend_device,
+ -EBUSY);
return -EBUSY;
}
}
@@ -1714,9 +1718,11 @@ static int __usb_suspend_device (struct
/* we only change a device's upstream USB link.
* root hubs have no upstream USB link.
*/
- if (udev->parent)
+ if (udev->parent) {
status = hub_port_suspend(hdev_to_hub(udev->parent), port1,
udev);
+ suspend_report_result(hub_port_suspend, status);
+ }
if (status == 0)
udev->dev.power.power_state = PMSG_SUSPEND;
_
Says:
Shrinking memory... done (0 pages freed)
hci_usb 3-1:1.1: no suspend for driver hci_usb?
hci_usb 3-1:1.0: no suspend for driver hci_usb?
usbdev3.2_ep00: not suspended
usb_generic_suspend(): verify_suspended+0x0/0x3c() returns -16
suspend_device(): usb_generic_suspend+0x0/0x134() returns -16
Could not suspend device 3-1: error -16
hci_usb 3-1:1.0: no resume for driver hci_usb?
hci_usb 3-1:1.1: no resume for driver hci_usb?
Some devices failed to suspend
Restarting tasks... done
What's a usbdev3.2_ep00?
sony:/home/akpm> lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 002: ID 044e:300c Alps Electric Co., Ltd
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 003: ID 045e:00e1 Microsoft Corp.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000
sony:/home/akpm> l /sys/bus/usb/devices
total 0
lrwxrwxrwx 1 root root 0 Jun 22 00:32 1-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.0/usb1/1-0:1.0
lrwxrwxrwx 1 root root 0 Jun 22 00:32 2-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.1/usb2/2-0:1.0
lrwxrwxrwx 1 root root 0 Jun 22 00:32 2-1 -> ../../../devices/pci0000:00/0000:00:1d.1/usb2/2-1
lrwxrwxrwx 1 root root 0 Jun 22 00:32 2-1:1.0 -> ../../../devices/pci0000:00/0000:00:1d.1/usb2/2-1/2-1:1.0
lrwxrwxrwx 1 root root 0 Jun 22 00:32 3-0:1.0 -> ../../../devices/pci0000:00/0000:00:1d.2/usb3/3-0:1.0
lrwxrwxrwx 1 root root 0 Jun 22 00:32 3-1 -> ../../../devices/pci0000:00/0000:00:1d.2/usb3/3-1
lrwxrwxrwx 1 root root 0 Jun 22 00:32 3-1:1.0 -> ../../../devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.0
lrwxrwxrwx 1 root root 0 Jun 22 00:32 3-1:1.1 -> ../../../devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.1
lrwxrwxrwx 1 root root 0 Jun 22 00:32 3-1:1.2 -> ../../../devices/pci0000:00/0000:00:1d.2/usb3/3-1/3-1:1.2
Seems to be this:
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03) (prog-if 00 [UHCI])
Subsystem: Sony Corporation Unknown device 81b9
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 16
Region 4: I/O ports at 1860 [size=32]
00: 86 80 5a 26 05 00 80 02 03 00 03 0c 00 00 00 00
10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20: 61 18 00 00 00 00 00 00 00 00 00 00 4d 10 b9 81
30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 03 00 00
I don't see anything in this patchpile which would break the bluetooth driver,
and drivers/usb/core/usb.c is effectively unchanged.
I can bisect it if we're stuck, but that'll require beer or something.
next prev parent reply other threads:[~2006-06-22 7:46 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20060621034857.35cfe36f.akpm@osdl.org>
2006-06-21 21:48 ` swsusp regression [Was: 2.6.17-mm1] Jiri Slaby
2006-06-21 22:14 ` Mattia Dongili
2006-06-21 22:18 ` Mattia Dongili
2006-06-22 6:19 ` Greg KH
2006-06-22 7:46 ` Andrew Morton [this message]
2006-06-22 8:25 ` [linux-pm] " Jeremy Fitzhardinge
2006-06-22 15:51 ` Alan Stern
2006-06-22 17:17 ` Jeremy Fitzhardinge
2006-06-22 18:46 ` Greg KH
2006-06-22 19:07 ` [linux-pm] " Greg KH
2006-06-22 19:57 ` Alan Stern
2006-06-22 20:22 ` Greg KH
2006-06-22 20:38 ` Jiri Slaby
2006-06-22 21:09 ` Alan Stern
2006-06-22 21:11 ` Greg KH
2006-06-22 16:04 ` [linux-pm] " Frederik Deweerdt
2006-06-22 16:25 ` Andrew Morton
2006-06-22 19:07 ` [linux-pm] " Frederik Deweerdt
2006-06-23 9:02 ` Frederik Deweerdt
2006-06-23 9:10 ` [linux-pm] " Pavel Machek
2006-06-23 9:31 ` Andrew Morton
2006-06-23 12:12 ` Frederik Deweerdt
2006-06-23 12:57 ` Pavel Machek
2006-06-23 13:47 ` Frederik Deweerdt
2006-06-23 19:57 ` Andrew Morton
2006-06-26 9:00 ` [linux-pm] " Frederik Deweerdt
2006-06-23 19:41 ` Russell King
2006-06-23 20:22 ` Dave Jones
2006-06-23 21:10 ` Rafael J. Wysocki
2006-06-23 22:11 ` Pavel Machek
2006-06-23 23:53 ` [linux-pm] " Frederik Deweerdt
2006-06-24 17:16 ` Rafael J. Wysocki
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=20060622004648.f1912e34.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@osdl.org \
--cc=pavel@suse.cz \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox