Changes in uspace/drv/ohci/hc.c [5d07f54:c8eddf4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/hc.c
r5d07f54 rc8eddf4 49 49 static int interrupt_emulator(hc_t *instance); 50 50 static void hc_gain_control(hc_t *instance); 51 static void hc_init_hw(hc_t *instance); 51 52 static int hc_init_transfer_lists(hc_t *instance); 52 53 static int hc_init_memory(hc_t *instance); … … 91 92 usb_log_error("Failed add root hub match-id.\n"); 92 93 } 93 ret = ddf_fun_bind(hub_fun);94 94 return ret; 95 95 } … … 111 111 ret, str_error(ret)); 112 112 113 list_initialize(&instance->pending_batches);114 113 usb_device_keeper_init(&instance->manager); 115 114 ret = usb_endpoint_manager_init(&instance->ep_manager, … … 118 117 str_error(ret)); 119 118 119 hc_gain_control(instance); 120 120 ret = hc_init_memory(instance); 121 121 CHECK_RET_RETURN(ret, "Failed to create OHCI memory structures: %s.\n", 122 122 str_error(ret)); 123 #undef CHECK_RET_RETURN 124 125 126 // hc_init_hw(instance); 127 hc_gain_control(instance); 123 hc_init_hw(instance); 128 124 fibril_mutex_initialize(&instance->guard); 129 125 … … 136 132 } 137 133 134 list_initialize(&instance->pending_batches); 135 #undef CHECK_RET_RETURN 138 136 return EOK; 139 137 } … … 289 287 { 290 288 assert(instance); 291 usb_log_debug("OHCI (%p) interrupt: %x.\n", instance, status);289 usb_log_debug("OHCI interrupt: %x.\n", status); 292 290 if ((status & ~I_SF) == 0) /* ignore sof status */ 293 291 return; … … 341 339 (uint32_t*)((char*)instance->registers + 0x100); 342 340 usb_log_debug("OHCI legacy register %p: %x.\n", 343 ohci_emulation_reg, *ohci_emulation_reg); 344 /* Do not change A20 state */ 345 *ohci_emulation_reg &= 0x100; 346 usb_log_debug("OHCI legacy register %p: %x.\n", 347 ohci_emulation_reg, *ohci_emulation_reg); 341 ohci_emulation_reg, *ohci_emulation_reg); 342 *ohci_emulation_reg &= ~0x1; 348 343 349 344 /* Interrupt routing enabled => smm driver is active */ … … 355 350 } 356 351 usb_log_info("SMM driver: Ownership taken.\n"); 357 instance->registers->control &= (C_HCFS_RESET << C_HCFS_SHIFT);358 async_usleep(50000);359 352 return; 360 353 } … … 382 375 } 383 376 /*----------------------------------------------------------------------------*/ 384 void hc_ start_hw(hc_t *instance)377 void hc_init_hw(hc_t *instance) 385 378 { 386 379 /* OHCI guide page 42 */ … … 481 474 { 482 475 assert(instance); 483 484 bzero(&instance->rh, sizeof(instance->rh));485 476 /* Init queues */ 486 477 hc_init_transfer_lists(instance);
Note:
See TracChangeset
for help on using the changeset viewer.