Changeset dcf0597 in mainline for uspace/drv/bus/usb/xhci/hc.c
- Timestamp:
- 2017-10-13T17:40:48Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2297fab
- Parents:
- 063dfe8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/xhci/hc.c
r063dfe8 rdcf0597 425 425 XHCI_REG_SET(hc->op_regs, XHCI_OP_RS, 1); 426 426 427 /* The reset changed status of all ports, and SW originated reason does 428 * not cause an interrupt. 429 */ 430 xhci_rh_handle_port_change(&hc->rh); 431 427 432 return EOK; 428 433 } … … 451 456 { 452 457 assert(batch); 453 454 /* Check for root hub communication */455 if (batch->ep->target.address == xhci_rh_get_address(&hc->rh)) {456 usb_log_debug("XHCI root hub request.\n");457 return xhci_rh_schedule(&hc->rh, batch);458 }459 458 460 459 usb_log_debug2("EP(%d:%d) started %s transfer of size %lu.", … … 488 487 static event_handler event_handlers [] = { 489 488 [XHCI_TRB_TYPE_COMMAND_COMPLETION_EVENT] = &xhci_handle_command_completion, 490 [XHCI_TRB_TYPE_PORT_STATUS_CHANGE_EVENT] = &xhci_ handle_port_status_change_event,489 [XHCI_TRB_TYPE_PORT_STATUS_CHANGE_EVENT] = &xhci_rh_handle_port_status_change_event, 491 490 [XHCI_TRB_TYPE_TRANSFER_EVENT] = &xhci_handle_transfer_event, 492 491 }; … … 559 558 status = xhci2host(32, status); 560 559 561 /* TODO: Figure out how root hub interrupts work. */562 560 if (status & XHCI_REG_MASK(XHCI_OP_PCD)) { 563 561 usb_log_debug2("Root hub interrupt."); 564 xhci_rh_interrupt(&hc->rh); 565 562 xhci_rh_handle_port_change(&hc->rh); 566 563 status &= ~XHCI_REG_MASK(XHCI_OP_PCD); 567 564 }
Note:
See TracChangeset
for help on using the changeset viewer.