Linux Kernel
3.7.1
|
#include <xhci.h>
Data Fields | |
__le32 | irq_pending |
__le32 | irq_control |
__le32 | erst_size |
__le32 | rsvd |
__le64 | erst_base |
__le64 | erst_dequeue |
struct xhci_intr_reg - Interrupt Register Set : IMAN - Interrupt Management Register. Used to enable interrupts and check for pending interrupts. : IMOD - Interrupt Moderation Register. Used to throttle interrupts. : Number of segments in the Event Ring Segment Table (ERST). : ERST base address. : Event ring dequeue pointer.
Each interrupter (defined by a MSI-X vector) has an event ring and an Event Ring Segment Table (ERST) associated with it. The event ring is comprised of multiple segments of the same size. The HC places events on the ring and "updates the Cycle bit in the TRBs to indicate to software the current position of the Enqueue Pointer." The HCD (Linux) processes those events and updates the dequeue pointer.