[usb] Do not attempt to disable USB3 hub ports

The USB3 specification removes PORT_ENABLE from the list of features
that may be cleared via a CLEAR_FEATURE request.  Experimentation
shows that omitting the attempt to clear PORT_ENABLE seems to result
in the correct hotplug behaviour.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/119/head
Michael Brown 2020-07-02 16:48:17 +01:00
parent 8ff5babb47
commit 761ed4365a
1 changed files with 4 additions and 2 deletions

View File

@ -247,8 +247,10 @@ static int hub_disable ( struct usb_hub *hub, struct usb_port *port ) {
int rc;
/* Disable port */
if ( ( rc = usb_hub_clear_port_feature ( usb, port->address,
USB_HUB_PORT_ENABLE, 0 ) )!=0){
if ( ( hub->protocol < USB_PROTO_3_0 ) &&
( ( rc = usb_hub_clear_port_feature ( usb, port->address,
USB_HUB_PORT_ENABLE,
0 ) ) != 0 ) ) {
DBGC ( hubdev, "HUB %s port %d could not disable: %s\n",
hubdev->name, port->address, strerror ( rc ) );
return rc;