Fork us on GitHub Follow us on Facebook Follow us on Twitter

Changeset f543804 in mainline


Ignore:
Timestamp:
2017-12-21T13:49:38Z (4 years ago)
Author:
Ondřej Hlavatý <aearsis@…>
Branches:
lfn, master
Children:
74c0de0
Parents:
503086d8
git-author:
Ondřej Hlavatý <aearsis@…> (2017-12-21 13:48:36)
git-committer:
Ondřej Hlavatý <aearsis@…> (2017-12-21 13:49:38)
Message:

xhci: fix 32-bit write of EHB not being noticed

File:
1 edited

Legend:

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

    r503086d8 rf543804  
    514514                        head = new_queue + (head - queue);
    515515                }
     516
     517                uint64_t erdp = hc->event_ring.dequeue_ptr;
     518                XHCI_REG_WR(intr, XHCI_INTR_ERDP_LO, LOWER32(erdp));
     519                XHCI_REG_WR(intr, XHCI_INTR_ERDP_HI, UPPER32(erdp));
    516520        }
    517521
     
    519523        usb_log_debug2("Copying from ring finished, updating ERDP.");
    520524        uint64_t erdp = hc->event_ring.dequeue_ptr;
     525        erdp |= XHCI_REG_MASK(XHCI_INTR_ERDP_EHB);
    521526        XHCI_REG_WR(intr, XHCI_INTR_ERDP_LO, LOWER32(erdp));
    522527        XHCI_REG_WR(intr, XHCI_INTR_ERDP_HI, UPPER32(erdp));
    523         XHCI_REG_SET(intr, XHCI_INTR_ERDP_EHB, 1);
    524528
    525529        /* Handle all of the collected events if possible. */
Note: See TracChangeset for help on using the changeset viewer.