Re: problem with resume after s2ram

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

 



On Wed, 16 Apr 2014, Peter Münster wrote:

> On Mon, Apr 14 2014, Alan Stern wrote:
> 
> > How many diagnostic patches have you tried so far?  I've lost track.  
> 
> Hi Alan,
> 
> diag1: the one with the alan-timer
> diag2: reverts commit 0aa2832dd0d9d860 and instead, prints
>        out information showing what the commit would do
> diag3: 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.
> 
> Yes, I've applied diag1 and diag3.
> 
> 
> > The question is: With this patch present and no devices attached to the 
> > rear ports, do the front ports work with system suspend?
> 
> Yes. Please find attached the log.

This is really crazy.  It appears to indicate that the OHCI controller 
for your bus 6 works okay when both the connected ports are in suspend 
or neither of them is, but not when one is and one isn't!

Just to verify, please try replacing diag3 with each of the two patches 
below (one at a time).  If my guess is right, diag3a will work and 
diag3b will fail.

Alan Stern



diag3a
------

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 (1)
 		status = set_port_feature(hub->hdev, port1,
 				USB_PORT_FEAT_SUSPEND);
 	else {


diag3b
------

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);

--
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