Changeset aa9ccf7 in mainline for uspace/drv/ohci/hc.c
- Timestamp:
- 2011-04-11T13:15:25Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 9f104af4
- Parents:
- fd153d3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/hc.c
rfd153d3 raa9ccf7 113 113 ret, str_error(ret)); 114 114 hc_init_hw(instance); 115 fibril_mutex_initialize(&instance->guard); 115 116 116 117 rh_init(&instance->rh, dev, instance->registers); … … 135 136 } 136 137 138 fibril_mutex_lock(&instance->guard); 137 139 switch (batch->transfer_type) { 138 140 case USB_TRANSFER_CONTROL: … … 157 159 case USB_TRANSFER_INTERRUPT: 158 160 case USB_TRANSFER_ISOCHRONOUS: 159 instance->registers->control &= ~C_PLE;161 instance->registers->control &= (~C_PLE & ~C_IE); 160 162 transfer_list_add_batch( 161 163 instance->transfers[batch->transfer_type], batch); 162 instance->registers->control |= C_PLE; 164 instance->registers->control |= C_PLE | C_IE; 165 usb_log_debug2("Added periodic transfer: %x.\n", 166 instance->registers->periodic_current); 163 167 break; 164 168 default: 165 169 break; 166 170 } 171 fibril_mutex_unlock(&instance->guard); 167 172 return EOK; 168 173 } … … 178 183 usb_log_debug("OHCI interrupt: %x.\n", status); 179 184 180 181 185 if (status & IS_WDH) { 186 fibril_mutex_lock(&instance->guard); 187 usb_log_debug2("HCCA: %p-%p(%p).\n", instance->hcca, 188 instance->registers->hcca, addr_to_phys(instance->hcca)); 189 usb_log_debug2("Periodic current: %p.\n", 190 instance->registers->periodic_current); 182 191 LIST_INITIALIZE(done); 183 192 transfer_list_remove_finished( … … 197 206 usb_transfer_batch_finish(batch); 198 207 } 208 fibril_mutex_unlock(&instance->guard); 199 209 } 200 210 } … … 208 218 instance->registers->interrupt_status = status; 209 219 hc_interrupt(instance, status); 210 async_usleep( 10000);220 async_usleep(50000); 211 221 } 212 222 return EOK; … … 345 355 SETUP_TRANSFER_LIST(transfers_control, "CONTROL"); 346 356 SETUP_TRANSFER_LIST(transfers_bulk, "BULK"); 347 357 #undef SETUP_TRANSFER_LIST 348 358 transfer_list_set_next(&instance->transfers_interrupt, 349 359 &instance->transfers_isochronous); … … 360 370 361 371 return EOK; 362 #undef CHECK_RET_CLEAR_RETURN363 372 } 364 373 /*----------------------------------------------------------------------------*/
Note:
See TracChangeset
for help on using the changeset viewer.