Changeset 615abda in mainline for uspace/drv/bus/usb/ehci/hc.c
- Timestamp:
- 2014-01-19T01:34:03Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 4ee5272
- Parents:
- c9e954c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/hc.c
rc9e954c r615abda 280 280 void hc_start(hc_t *instance) 281 281 { 282 assert(instance); 283 /* 284 * TURN OFF EHCI FOR NOW 285 */ 286 287 usb_log_debug("USBCMD value: %x.\n", 288 EHCI_RD(instance->registers->usbcmd)); 289 if (EHCI_RD(instance->registers->usbcmd) & USB_CMD_RUN_FLAG) { 290 /* disable all interrupts */ 291 EHCI_WR(instance->registers->usbintr, 0); 292 /* ack all interrupts */ 293 EHCI_WR(instance->registers->usbsts, 0x3f); 294 /* release RH ports */ 295 EHCI_WR(instance->registers->configflag, 0); 296 EHCI_WR(instance->registers->usbcmd, 0); 297 /* Wait until hc is halted */ 298 while ((EHCI_RD(instance->registers->usbsts) & USB_STS_HC_HALTED_FLAG) == 0); 299 usb_log_info("EHCI turned off.\n"); 300 } else { 301 usb_log_info("EHCI was not running.\n"); 302 } 303 usb_log_debug("Registers: \n" 304 "\t USBCMD(%p): %x(0x00080000 = at least 1ms between interrupts)\n" 305 "\t USBSTS(%p): %x(0x00001000 = HC halted)\n" 306 "\t USBINT(%p): %x(0x0 = no interrupts).\n" 307 "\t CONFIG(%p): %x(0x0 = ports controlled by companion hc).\n", 308 &instance->registers->usbcmd, EHCI_RD(instance->registers->usbcmd), 309 &instance->registers->usbsts, EHCI_RD(instance->registers->usbsts), 310 &instance->registers->usbintr, EHCI_RD(instance->registers->usbintr), 311 &instance->registers->configflag, EHCI_RD(instance->registers->configflag)); 282 312 } 283 313
Note:
See TracChangeset
for help on using the changeset viewer.