tb_ring
struct tb_ring *ring;
static void tbnet_tx_callback(struct tb_ring *ring, struct ring_frame *frame,
struct tb_ring *ring;
static void tb_ctl_tx_callback(struct tb_ring *ring, struct ring_frame *frame,
struct tb_ring *tx;
struct tb_ring *rx;
static void tb_ctl_rx_callback(struct tb_ring *ring, struct ring_frame *frame,
struct tb_ring *ring;
static void dma_test_rx_callback(struct tb_ring *ring, struct ring_frame *frame,
static void dma_test_tx_callback(struct tb_ring *ring, struct ring_frame *frame,
struct tb_ring *rx_ring;
struct tb_ring *tx_ring;
static void __iomem *ring_desc_base(struct tb_ring *ring)
static void __iomem *ring_options_base(struct tb_ring *ring)
static void ring_iowrite_cons(struct tb_ring *ring, u16 cons)
static void ring_iowrite_prod(struct tb_ring *ring, u16 prod)
static void ring_iowrite32desc(struct tb_ring *ring, u32 value, u32 offset)
static void ring_iowrite64desc(struct tb_ring *ring, u64 value, u32 offset)
static void ring_iowrite32options(struct tb_ring *ring, u32 value, u32 offset)
static bool ring_full(struct tb_ring *ring)
static bool ring_empty(struct tb_ring *ring)
static void ring_write_descriptors(struct tb_ring *ring)
struct tb_ring *ring = container_of(work, typeof(*ring), work);
int __tb_ring_enqueue(struct tb_ring *ring, struct ring_frame *frame)
struct ring_frame *tb_ring_poll(struct tb_ring *ring)
static void __ring_interrupt_mask(struct tb_ring *ring, bool mask)
static void __ring_interrupt(struct tb_ring *ring)
void tb_ring_poll_complete(struct tb_ring *ring)
static void ring_clear_msix(const struct tb_ring *ring)
static int ring_interrupt_index(const struct tb_ring *ring)
struct tb_ring *ring = data;
static int nhi_alloc_hop(struct tb_nhi *nhi, struct tb_ring *ring)
static struct tb_ring *tb_ring_alloc(struct tb_nhi *nhi, u32 hop, int size,
struct tb_ring *ring = NULL;
struct tb_ring *tb_ring_alloc_tx(struct tb_nhi *nhi, int hop, int size,
struct tb_ring *tb_ring_alloc_rx(struct tb_nhi *nhi, int hop, int size,
void tb_ring_start(struct tb_ring *ring)
static bool tb_ring_empty(struct tb_ring *ring)
bool tb_ring_flush(struct tb_ring *ring, unsigned int timeout_msec)
void tb_ring_stop(struct tb_ring *ring)
static void ring_interrupt_active(struct tb_ring *ring, bool active)
void tb_ring_free(struct tb_ring *ring)
int tb_ring_throttling(struct tb_ring *ring, unsigned int interval_nsec)
struct tb_ring *ring;
int (*request_ring_irq)(struct tb_ring *ring, bool no_suspend);
void (*release_ring_irq)(struct tb_ring *ring);
static int nhi_pci_ring_request_msix(struct tb_ring *ring, bool no_suspend)
static void nhi_pci_ring_release_msix(struct tb_ring *ring)
struct tb_ring *ring;
tbstream_dev_rx_callback(struct tb_ring *ring, struct ring_frame *frame,
tbstream_dev_tx_callback(struct tb_ring *ring, struct ring_frame *frame,
struct tb_ring *ring;
struct tb_ring **tx_rings;
struct tb_ring **rx_rings;
typedef void (*ring_cb)(struct tb_ring *, struct ring_frame *, bool canceled);
static inline size_t tb_ring_size(const struct tb_ring *ring)
struct tb_ring *tb_ring_alloc_tx(struct tb_nhi *nhi, int hop, int size,
struct tb_ring *tb_ring_alloc_rx(struct tb_nhi *nhi, int hop, int size,
void tb_ring_start(struct tb_ring *ring);
bool tb_ring_flush(struct tb_ring *ring, unsigned int timeout_msec);
void tb_ring_stop(struct tb_ring *ring);
void tb_ring_free(struct tb_ring *ring);
int __tb_ring_enqueue(struct tb_ring *ring, struct ring_frame *frame);
static inline int tb_ring_rx(struct tb_ring *ring, struct ring_frame *frame)
static inline int tb_ring_tx(struct tb_ring *ring, struct ring_frame *frame)
struct ring_frame *tb_ring_poll(struct tb_ring *ring);
void tb_ring_poll_complete(struct tb_ring *ring);
int tb_ring_throttling(struct tb_ring *ring, unsigned int interval_nsec);
static inline struct device *tb_ring_dma_device(struct tb_ring *ring)