Changeset 19f0048 in mainline for uspace/drv/bus/usb/xhci/trb_ring.c
- Timestamp:
- 2018-02-01T02:13:34Z (6 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 17d34a8
- Parents:
- 53fdf8c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/xhci/trb_ring.c
r53fdf8c r19f0048 188 188 static uintptr_t trb_ring_enqueue_phys(xhci_trb_ring_t *ring) 189 189 { 190 uintptr_t trb_id = ring->enqueue_trb - segment_begin(ring->enqueue_segment);190 size_t trb_id = ring->enqueue_trb - segment_begin(ring->enqueue_segment); 191 191 return ring->enqueue_segment->phys + trb_id * sizeof(xhci_trb_t); 192 192 } … … 346 346 } 347 347 348 fibril_mutex_initialize(&ring->guard); 349 350 usb_log_debug("Initialized event ring."); 351 return EOK; 352 } 353 354 void xhci_event_ring_reset(xhci_event_ring_t *ring) 355 { 356 list_foreach(ring->segments, segments_link, trb_segment_t, segment) 357 memset(segment->trb_storage, 0, sizeof(segment->trb_storage)); 358 348 359 trb_segment_t * const segment = get_first_segment(&ring->segments); 349 360 ring->dequeue_segment = segment; … … 351 362 ring->dequeue_ptr = segment->phys; 352 363 ring->ccs = 1; 353 354 fibril_mutex_initialize(&ring->guard);355 356 usb_log_debug("Initialized event ring.");357 return EOK;358 364 } 359 365 … … 432 438 ring->end = ring->begin + size; 433 439 434 ring->enqueue = ring->dequeue = ring->begin;435 436 440 fibril_mutex_initialize(&ring->guard); 437 441 fibril_condvar_initialize(&ring->enqueued_cv); 438 442 fibril_condvar_initialize(&ring->dequeued_cv); 439 443 440 ring->running = true;444 xhci_sw_ring_restart(ring); 441 445 } 442 446 … … 486 490 } 487 491 492 void xhci_sw_ring_restart(xhci_sw_ring_t *ring) 493 { 494 ring->enqueue = ring->dequeue = ring->begin; 495 memset(ring->begin, 0, sizeof(xhci_trb_t) * (ring->end - ring->begin)); 496 ring->running = true; 497 } 498 488 499 void xhci_sw_ring_fini(xhci_sw_ring_t *ring) 489 500 {
Note:
See TracChangeset
for help on using the changeset viewer.