Changeset eaf1e3d in mainline
- Timestamp:
- 2011-04-10T21:42:14Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7628050
- Parents:
- 78d4e1f
- Location:
- uspace/drv/ohci
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/ohci/hc.c
r78d4e1f reaf1e3d 160 160 { 161 161 assert(instance); 162 //if ((status & ~IS_SF) == 0) /* ignore sof status */163 //return;162 if ((status & ~IS_SF) == 0) /* ignore sof status */ 163 return; 164 164 if (status & IS_RHSC) 165 165 rh_interrupt(&instance->rh); 166 166 167 usb_log_fatal("OHCI interrupt: %x.\n", status); 168 169 170 LIST_INITIALIZE(done); 171 transfer_list_remove_finished(&instance->transfers_interrupt, &done); 172 transfer_list_remove_finished(&instance->transfers_isochronous, &done); 173 transfer_list_remove_finished(&instance->transfers_control, &done); 174 transfer_list_remove_finished(&instance->transfers_bulk, &done); 175 176 while (!list_empty(&done)) { 177 link_t *item = done.next; 178 list_remove(item); 179 usb_transfer_batch_t *batch = 180 list_get_instance(item, usb_transfer_batch_t, link); 181 usb_transfer_batch_finish(batch); 167 usb_log_debug("OHCI interrupt: %x.\n", status); 168 169 170 if (status & IS_WDH) { 171 LIST_INITIALIZE(done); 172 transfer_list_remove_finished( 173 &instance->transfers_interrupt, &done); 174 transfer_list_remove_finished( 175 &instance->transfers_isochronous, &done); 176 transfer_list_remove_finished( 177 &instance->transfers_control, &done); 178 transfer_list_remove_finished( 179 &instance->transfers_bulk, &done); 180 181 while (!list_empty(&done)) { 182 link_t *item = done.next; 183 list_remove(item); 184 usb_transfer_batch_t *batch = 185 list_get_instance(item, usb_transfer_batch_t, link); 186 usb_transfer_batch_finish(batch); 187 } 182 188 } 183 189 } … … 191 197 instance->registers->interrupt_status = status; 192 198 hc_interrupt(instance, status); 193 async_usleep( 2000000);199 async_usleep(10000); 194 200 } 195 201 return EOK; -
uspace/drv/ohci/hw_struct/transfer_descriptor.h
r78d4e1f reaf1e3d 50 50 #define TD_STATUS_DP_SHIFT (19) 51 51 #define TD_STATUS_DP_SETUP (0x0) 52 #define TD_STATUS_DP_ IN(0x1)53 #define TD_STATUS_DP_ OUT(0x2)52 #define TD_STATUS_DP_OUT (0x1) 53 #define TD_STATUS_DP_IN (0x2) 54 54 #define TD_STATUS_DI_MASK (0x7) /* delay interrupt, wait DI frames before int */ 55 55 #define TD_STATUS_DI_SHIFT (21)
Note:
See TracChangeset
for help on using the changeset viewer.