Re: USB disk speed regression WD Elements - with bisect result 22547c4cc4fe20698a6a85a55b8788859134b8e4

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

 



On Thu, 27 Jul 2017, Zdenek Kabelac wrote:

> > Zdenek, you check this explanation by commenting out these last two
> > lines at the end of hub_port_connect() in drivers/usb/core/hub.c:
> > 
> > 	if (hcd->driver->relinquish_port && !hub->hdev->parent)
> > 		hcd->driver->relinquish_port(hcd, port1);
> > 
> > That should prevent the connection from being handed over to the UHCI
> > companion, allowing the device to operate at high speed.
> >
> 
> Hi
> 
> Yep - seems this helped - I've dropped revert and commented those 2 lines
> and I've used the very same kernel - and speed was all good:
> 
> usb 2-2: new high-speed USB device number 2 using ehci-pci
> usb 2-2: new high-speed USB device number 3 using ehci-pci
> usb 2-2: New USB device found, idVendor=1058, idProduct=10a8
> usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
> 
> 
> So while I'm not sure if this is final fix for USB - this solution surely 
> solved my WD Element disk attachment issue.

Great!  Here's a real patch to test; I think this will be acceptable if 
it fixes your problem.

Alan Stern



Index: usb-4.x/drivers/usb/core/hub.c
===================================================================
--- usb-4.x.orig/drivers/usb/core/hub.c
+++ usb-4.x/drivers/usb/core/hub.c
@@ -4934,9 +4934,10 @@ loop:
 
 done:
 	hub_port_disable(hub, port1, 1);
-	if (hcd->driver->relinquish_port && !hub->hdev->parent)
-		hcd->driver->relinquish_port(hcd, port1);
-
+	if (hcd->driver->relinquish_port && !hub->hdev->parent) {
+		if (status != -ENOTCONN && status != -ENODEV)
+			hcd->driver->relinquish_port(hcd, port1);
+	}
 }
 
 /* Handle physical or logical connection change events.

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