Post Reply 
 
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
USB device not enumerated by iPXE USB stack
2016-09-30, 07:14
Post: #6
RE: USB device not enumerated by iPXE USB stack
@@ -1176,8 +1176,11 @@ static int uhci_root_enable ( struct usb_hub *hub, struct usb_port *port ) {

/* Check port status */
portsc = inw ( uhci->regs + UHCI_PORTSC ( port->address ) );
- if ( portsc & UHCI_PORTSC_PED )
+ if ( portsc & UHCI_PORTSC_PED && portsc & UHCI_PORTSC_CCS )
+ {
+ port->disconnected = 0;
return 0;
+ }

/* Delay */
mdelay ( 1 );
@@ -1245,7 +1248,7 @@ static int uhci_root_speed ( struct usb_hub *hub, struct usb_port *port ) {
port->speed = speed;

/* Record disconnections and clear changes */
- port->disconnected |= ( portsc & UHCI_PORTSC_CSC );
+ port->disconnected |= ( (portsc & UHCI_PORTSC_CCS) == 0 );
outw ( portsc, uhci->regs + UHCI_PORTSC ( port->address ) );

return 0;
@@ -1288,7 +1291,7 @@ static void uhci_root_poll ( struct usb_hub *hub, struct usb_port *port ) {
return;

/* Record disconnections and clear changes */
- port->disconnected |= ( portsc & UHCI_PORTSC_CSC );
+ port->disconnected |= ( (portsc & UHCI_PORTSC_CCS) == 0 );
outw ( portsc, uhci->regs + UHCI_PORTSC ( port->address ) );

/* Report port status change */
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: USB device not enumerated by iPXE USB stack - eugenio - 2016-09-30 07:14



User(s) browsing this thread: 1 Guest(s)