On Fri, 18 Apr 2014, Peter Münster wrote:

> On Thu, Apr 17 2014, Peter Münster wrote:
> 
> > On Thu, Apr 17 2014, Alan Stern wrote:
> >
> >> 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.
> >
> > Yes, you're right!
> 
> Sorry, I've forgotten the logs. For which patch do you need logs?

The logs aren't necessary.  The real point of those tests was to check 
that the hardware really does behave inconsistently.

It appears that the same problem affects the front ports and the rear 
ports, but it affects them in slightly different ways.  The controller 
for the rear crashes if any ports are unsuspended, whereas the 
controller for the front crashes if some ports are unsuspended and some 
are suspended.

This means we have to try to fix the problem.  Below is a first simple 
attempt, let's call it fix1.  This should be applied to the kernel you 
have been using, with diag1 but without any of the diag3* patches.  
What happens with fix1 and with the mouse plugged into the rear?

(I'd be a little surprised if it worked, but you never know...)

Alan Stern



Index: peter/drivers/usb/core/hub.c
===================================================================
--- peter.orig/drivers/usb/core/hub.c
+++ peter/drivers/usb/core/hub.c
@@ -3197,8 +3197,6 @@ int usb_port_resume(struct usb_device *u
 
        /* Skip the initial Clear-Suspend step for a remote wakeup */
        status = hub_port_status(hub, port1, &portstatus, &portchange);
-       if (status == 0 && !port_is_suspended(hub, portstatus))
-               goto SuspendCleared;
 
        // dev_dbg(hub->intfdev, "resume port %d\n", port1);
 

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

Reply via email to