On Thu, 6 Jan 2005, Oliver Neukum wrote: > > I'm just suggesting that in ehci-hub.c, you add code to ehci_hub_suspend > > to print the values of port and t1 inside the loop. Similarly, in > > ehci_hub_resume print the values of i and temp in the two loops. > > Here we go:
> Jan 6 23:42:52 macbeth kernel: usb usb4: no poweroff yet, suspending instead > Jan 6 23:42:52 macbeth kernel: Port is 5. t1 is 00001000 > Jan 6 23:42:52 macbeth kernel: Port is 4. t1 is 00001000 > Jan 6 23:42:52 macbeth kernel: Port is 3. t1 is 00001000 > Jan 6 23:42:52 macbeth kernel: Port is 2. t1 is 00001000 > Jan 6 23:42:52 macbeth kernel: Port is 1. t1 is 00001000 > Jan 6 23:42:52 macbeth kernel: Port is 0. t1 is 00003002 So before the suspend, PORT_OWNER is on for port 0 (the bit value is 0x2000). As we expect since the companion controller owns the port. I'm not clear on why the 0x0002 bit (connect status change) is set. > Jan 6 23:42:53 macbeth kernel: ehci_hcd 0000:00:1d.7: resume root hub > Jan 6 23:42:53 macbeth kernel: Port: 5, Status: 00001000 > Jan 6 23:42:53 macbeth kernel: Port: 4, Status: 00001000 > Jan 6 23:42:53 macbeth kernel: Port: 3, Status: 00001000 > Jan 6 23:42:53 macbeth kernel: Port: 2, Status: 00001000 > Jan 6 23:42:53 macbeth kernel: Port: 1, Status: 00001000 > Jan 6 23:42:53 macbeth kernel: Port: 0, Status: 00001403 And during the resume, PORT_OWNER is off, thus changing the flip-flop. Confirmed by 0x0400 (full/low speed device) and 0x0001 (device connected). Someone, probably the BIOS, must have made this change. > lspci: > 0000:00:1d.0 USB Controller: Intel Corp. 82801DB USB (Hub #1) (rev 03) > c0: 00 2f 00 00 03 00 00 00 00 00 00 00 00 00 00 00 The LEGSUP register is 16 bits (little-endian) at offset 0xc0, so its value is 0x2f00. The default value is 0x2000, and that's the value written by uhci-hcd during initialization. So again, someone (presumably the BIOS) has changed it. It looks like Dave and I were both right! :-) Just to be certain, you could try verifying the LEGSUP value: After loading uhci-hcd and before doing the suspend (should be 0x2000), After the resume with BIOS legacy support turned off; maybe the BIOS won't change the value. Although the log of your test with legacy support off indicates that nothing much changes. > I've noticed during writing out the image there are several wake_up,resume > cycles from uhci. They don't show up in your log, for obvious reasons. It may be perfectly innocuous; before writing out the image the PM core awakens every device. So you would expect to see some activity. Does it look like anything more than that? Alan Stern ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel