Changeset a501aaba in mainline for uspace/drv/bus/usb/xhci/trb_ring.c


Ignore:
Timestamp:
2017-10-26T22:21:30Z (6 years ago)
Author:
Ondřej Hlavatý <aearsis@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5bc8250
Parents:
928afc8d
Message:

xhci trb_ring: fix ring wrapping

The Toggle Cycle of the Link TRB must be set, not the Cycle flag.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/xhci/trb_ring.c

    r928afc8d ra501aaba  
    107107        xhci_trb_t *last = segment_end(segment) - 1;
    108108        xhci_trb_link_fill(last, segment->phys);
    109         xhci_trb_set_cycle(last, true);
     109        TRB_LINK_SET_TC(*last, true);
    110110
    111111        ring->enqueue_segment = segment;
     
    219219        trb = first_trb;
    220220        for (size_t i = 0; i < trbs; ++i, ++trb) {
    221                 xhci_trb_set_cycle(trb, ring->pcs);
     221                TRB_SET_CYCLE(*trb, ring->pcs);
    222222                xhci_trb_copy(ring->enqueue_trb, trb);
    223223
     
    226226
    227227                if (TRB_TYPE(*ring->enqueue_trb) == XHCI_TRB_TYPE_LINK) {
    228                         // XXX: Check, whether the order here is correct (ambiguous instructions in 4.11.5.1)
    229                         xhci_trb_set_cycle(ring->enqueue_trb, ring->pcs);
     228                        TRB_SET_CYCLE(*ring->enqueue_trb, ring->pcs);
    230229
    231230                        if (TRB_LINK_TC(*ring->enqueue_trb)) {
Note: See TracChangeset for help on using the changeset viewer.