Changeset bd41ac52 in mainline for uspace/drv/bus/usb/xhci
- Timestamp:
- 2018-08-25T22:21:25Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- cca80a2
- Parents:
- e2625b1a
- Location:
- uspace/drv/bus/usb/xhci
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/xhci/hc.c
re2625b1a rbd41ac52 229 229 hc->max_slots = XHCI_REG_RD(hc->cap_regs, XHCI_CAP_MAX_SLOTS); 230 230 231 struct time val tv;232 getuptime(&t v);233 hc->wrap_time = tv.tv_sec * 1000000 + tv.tv_usec;231 struct timespec ts; 232 getuptime(&ts); 233 hc->wrap_time = SEC2USEC(ts.tv_sec) + NSEC2USEC(ts.tv_nsec); 234 234 hc->wrap_count = 0; 235 235 … … 591 591 static errno_t xhci_handle_mfindex_wrap_event(xhci_hc_t *hc, xhci_trb_t *trb) 592 592 { 593 struct time val tv;594 getuptime(&t v);595 usb_log_debug("Microframe index wrapped (@%l u.%li, %" PRIu64 " total).",596 t v.tv_sec, tv.tv_usec, hc->wrap_count);597 hc->wrap_time = ((uint64_t) tv.tv_sec) * 1000000 + ((uint64_t) tv.tv_usec);593 struct timespec ts; 594 getuptime(&ts); 595 usb_log_debug("Microframe index wrapped (@%lld.%lld, %" PRIu64 " total).", 596 ts.tv_sec, NSEC2USEC(ts.tv_nsec), hc->wrap_count); 597 hc->wrap_time = SEC2USEC(ts.tv_sec) + NSEC2USEC(ts.tv_nsec); 598 598 ++hc->wrap_count; 599 599 return EOK; -
uspace/drv/bus/usb/xhci/isoch.c
re2625b1a rbd41ac52 113 113 { 114 114 xhci_isoch_t *const isoch = ep->isoch; 115 const suseconds_t delay = isoch->buffer_count * ep->interval * 125 +115 const usec_t delay = isoch->buffer_count * ep->interval * 125 + 116 116 RESET_TIMER_DELAY; 117 117 … … 210 210 static inline uint64_t get_system_time() 211 211 { 212 struct time val tv;213 getuptime(&t v);214 return ((uint64_t) tv.tv_sec) * 1000000 + ((uint64_t) tv.tv_usec);212 struct timespec ts; 213 getuptime(&ts); 214 return SEC2USEC(ts.tv_sec) + NSEC2USEC(ts.tv_nsec); 215 215 } 216 216 … … 314 314 while (isoch->transfers[isoch->hw_enqueue].state == ISOCH_FILLED) { 315 315 xhci_isoch_transfer_t *const it = &isoch->transfers[isoch->hw_enqueue]; 316 suseconds_t delay;316 usec_t delay; 317 317 318 318 assert(it->state == ISOCH_FILLED); … … 324 324 case WINDOW_TOO_SOON: 325 325 delay = wd.offset * 125; 326 usb_log_debug("[isoch] delaying feeding buffer %zu for %l dus",326 usb_log_debug("[isoch] delaying feeding buffer %zu for %lldus", 327 327 it - isoch->transfers, delay); 328 328 fibril_timer_set_locked(isoch->feeding_timer, delay, … … 400 400 while (isoch->transfers[isoch->enqueue].state <= ISOCH_FILLED) { 401 401 xhci_isoch_transfer_t *const it = &isoch->transfers[isoch->enqueue]; 402 suseconds_t delay;402 usec_t delay; 403 403 404 404 /* IN buffers are "filled" with free space */ … … 416 416 /* Not allowed to feed yet. Defer to later. */ 417 417 delay = wd.offset * 125; 418 usb_log_debug("[isoch] delaying feeding buffer %zu for %l dus",418 usb_log_debug("[isoch] delaying feeding buffer %zu for %lldus", 419 419 it - isoch->transfers, delay); 420 420 fibril_timer_set_locked(isoch->feeding_timer, delay,
Note:
See TracChangeset
for help on using the changeset viewer.
