• Home
  • Raw
  • Download

Lines Matching refs:ring

230 #define is_tx_ring(ring) ((ring)->flags & RINGF_DIR)  argument
231 #define is_rx_ring(ring) (!is_tx_ring(ring)) argument
232 #define ring_to_dma_dir(ring) (is_tx_ring(ring) ? \ argument
291 #define ring_ptr_move_fw(ring, p) \ argument
292 ((ring)->p = ((ring)->p + 1) % (ring)->desc_num)
293 #define ring_ptr_move_bw(ring, p) \ argument
294 ((ring)->p = ((ring)->p - 1 + (ring)->desc_num) % (ring)->desc_num)
301 #define assert_is_ring_idx(ring, idx) \ argument
302 assert((idx) >= 0 && (idx) < (ring)->desc_num)
307 static inline int ring_dist(struct hnae_ring *ring, int begin, int end) in ring_dist() argument
309 assert_is_ring_idx(ring, begin); in ring_dist()
310 assert_is_ring_idx(ring, end); in ring_dist()
312 return (end - begin + ring->desc_num) % ring->desc_num; in ring_dist()
315 static inline int ring_space(struct hnae_ring *ring) in ring_space() argument
317 return ring->desc_num - in ring_space()
318 ring_dist(ring, ring->next_to_clean, ring->next_to_use) - 1; in ring_space()
321 static inline int is_ring_empty(struct hnae_ring *ring) in is_ring_empty() argument
323 assert_is_ring_idx(ring, ring->next_to_use); in is_ring_empty()
324 assert_is_ring_idx(ring, ring->next_to_clean); in is_ring_empty()
326 return ring->next_to_use == ring->next_to_clean; in is_ring_empty()
337 int (*alloc_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
338 void (*free_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
339 int (*map_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
340 void (*unmap_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
464 void (*toggle_ring_irq)(struct hnae_ring *ring, u32 val);
542 #define ring_to_dev(ring) ((ring)->q->dev->dev) argument
564 static inline int hnae_reserve_buffer_map(struct hnae_ring *ring, in hnae_reserve_buffer_map() argument
567 struct hnae_buf_ops *bops = ring->q->handle->bops; in hnae_reserve_buffer_map()
570 ret = bops->alloc_buffer(ring, cb); in hnae_reserve_buffer_map()
574 ret = bops->map_buffer(ring, cb); in hnae_reserve_buffer_map()
581 bops->free_buffer(ring, cb); in hnae_reserve_buffer_map()
586 static inline int hnae_alloc_buffer_attach(struct hnae_ring *ring, int i) in hnae_alloc_buffer_attach() argument
588 int ret = hnae_reserve_buffer_map(ring, &ring->desc_cb[i]); in hnae_alloc_buffer_attach()
593 ring->desc[i].addr = (__le64)ring->desc_cb[i].dma; in hnae_alloc_buffer_attach()
598 static inline void hnae_buffer_detach(struct hnae_ring *ring, int i) in hnae_buffer_detach() argument
600 ring->q->handle->bops->unmap_buffer(ring, &ring->desc_cb[i]); in hnae_buffer_detach()
601 ring->desc[i].addr = 0; in hnae_buffer_detach()
604 static inline void hnae_free_buffer_detach(struct hnae_ring *ring, int i) in hnae_free_buffer_detach() argument
606 struct hnae_buf_ops *bops = ring->q->handle->bops; in hnae_free_buffer_detach()
607 struct hnae_desc_cb *cb = &ring->desc_cb[i]; in hnae_free_buffer_detach()
609 if (!ring->desc_cb[i].dma) in hnae_free_buffer_detach()
612 hnae_buffer_detach(ring, i); in hnae_free_buffer_detach()
613 bops->free_buffer(ring, cb); in hnae_free_buffer_detach()
617 static inline void hnae_replace_buffer(struct hnae_ring *ring, int i, in hnae_replace_buffer() argument
620 struct hnae_buf_ops *bops = ring->q->handle->bops; in hnae_replace_buffer()
622 bops->unmap_buffer(ring, &ring->desc_cb[i]); in hnae_replace_buffer()
623 ring->desc_cb[i] = *res_cb; in hnae_replace_buffer()
624 ring->desc[i].addr = (__le64)ring->desc_cb[i].dma; in hnae_replace_buffer()
625 ring->desc[i].rx.ipoff_bnum_pid_flag = 0; in hnae_replace_buffer()
628 static inline void hnae_reuse_buffer(struct hnae_ring *ring, int i) in hnae_reuse_buffer() argument
630 ring->desc_cb[i].reuse_flag = 0; in hnae_reuse_buffer()
631 ring->desc[i].addr = (__le64)(ring->desc_cb[i].dma in hnae_reuse_buffer()
632 + ring->desc_cb[i].page_offset); in hnae_reuse_buffer()
633 ring->desc[i].rx.ipoff_bnum_pid_flag = 0; in hnae_reuse_buffer()