Re: problem with resume after s2ram

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 10 Apr 2014, Alan Stern wrote:

> On Thu, 10 Apr 2014, Peter Münster wrote:
> 
> > On Tue, Apr 01 2014, Alan Stern wrote:
> > 
> > >> Should I do another git-bisect?
> > >
> > > Yes, that would be a good idea.
> > 
> > Hi Alan,
> > 
> > Here is the result:
> > 
> > e583d9db9960cf40e0bc8afee4946baa9d71596e is the first bad commit
> > commit e583d9db9960cf40e0bc8afee4946baa9d71596e
> > Author: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>
> > Date:   Thu Jul 11 14:58:04 2013 -0400
> > 
> >     USB: global suspend and remote wakeup don't mix
> 
> I should have guessed...  :-(
> 
> This is surprising, because this commit partially reverses the effect 
> of the other one.  I don't see how it would make anything worse.
> 
> At some point I'll send you two more diagnostic patches, one for 
> testing with this commit applied and one for testing with this commit 
> reverted.

... And here's the first patch for you to try out.

We've got two separate problems, so to begin with, I'd like to
concentrate on the e583d9db9960 commit and why it messes up the front
ports.  Once that's settled, we'll go back to 0aa2832dd0d9 and figure
out why it fails even though disabling CONFIG_USB_SUSPEND works.

How many diagnostic patches have you tried so far?  I've lost track.  
Let's call this one diag3.  It should be applied directly to the 
e583d9db9960 kernel; it partially reverts e583d9db9960 and prints some 
information to the kernel log.  If you like, you can also apply the 
diagnostic patch that adds stuff to ohci-hcd.

The question is: With this patch present and no devices attached to the 
rear ports, do the front ports work with system suspend?  If not, what 
does the kernel log show?

Alan Stern



Index: peter/drivers/usb/core/hub.c
===================================================================
--- peter.orig/drivers/usb/core/hub.c
+++ peter/drivers/usb/core/hub.c
@@ -2966,6 +2966,8 @@ int usb_port_suspend(struct usb_device *
 		return -ENOMEM;
 	}
 
+	dev_info(&udev->dev, "w-e-d %d\n", wakeup_enabled_descendants(udev));
+
 	/* see 7.1.7.6 */
 	if (hub_is_superspeed(hub->hdev))
 		status = hub_set_port_link_state(hub, port1, USB_SS_PORT_LS_U3);
@@ -2981,7 +2983,7 @@ int usb_port_suspend(struct usb_device *
 	 * Therefore we will turn on the suspend feature if udev or any of its
 	 * descendants is enabled for remote wakeup.
 	 */
-	else if (PMSG_IS_AUTO(msg) || wakeup_enabled_descendants(udev) > 0)
+	else if (PMSG_IS_AUTO(msg))
 		status = set_port_feature(hub->hdev, port1,
 				USB_PORT_FEAT_SUSPEND);
 	else {

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux