Lines Matching refs:ring

188 #define is_tx_ring(ring) ((ring)->flags & RINGF_DIR)  argument
189 #define is_rx_ring(ring) (!is_tx_ring(ring)) argument
190 #define ring_to_dma_dir(ring) (is_tx_ring(ring) ? \ argument
249 #define ring_ptr_move_fw(ring, p) \ argument
250 ((ring)->p = ((ring)->p + 1) % (ring)->desc_num)
251 #define ring_ptr_move_bw(ring, p) \ argument
252 ((ring)->p = ((ring)->p - 1 + (ring)->desc_num) % (ring)->desc_num)
259 #define assert_is_ring_idx(ring, idx) \ argument
260 assert((idx) >= 0 && (idx) < (ring)->desc_num)
265 static inline int ring_dist(struct hnae_ring *ring, int begin, int end) in ring_dist() argument
267 assert_is_ring_idx(ring, begin); in ring_dist()
268 assert_is_ring_idx(ring, end); in ring_dist()
270 return (end - begin + ring->desc_num) % ring->desc_num; in ring_dist()
273 static inline int ring_space(struct hnae_ring *ring) in ring_space() argument
275 return ring->desc_num - in ring_space()
276 ring_dist(ring, ring->next_to_clean, ring->next_to_use) - 1; in ring_space()
279 static inline int is_ring_empty(struct hnae_ring *ring) in is_ring_empty() argument
281 assert_is_ring_idx(ring, ring->next_to_use); in is_ring_empty()
282 assert_is_ring_idx(ring, ring->next_to_clean); in is_ring_empty()
284 return ring->next_to_use == ring->next_to_clean; in is_ring_empty()
295 int (*alloc_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
296 void (*free_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
297 int (*map_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
298 void (*unmap_buffer)(struct hnae_ring *ring, struct hnae_desc_cb *cb);
413 void (*toggle_ring_irq)(struct hnae_ring *ring, u32 val);
478 #define ring_to_dev(ring) ((ring)->q->dev->dev) argument
497 static inline int hnae_reserve_buffer_map(struct hnae_ring *ring, in hnae_reserve_buffer_map() argument
500 struct hnae_buf_ops *bops = ring->q->handle->bops; in hnae_reserve_buffer_map()
503 ret = bops->alloc_buffer(ring, cb); in hnae_reserve_buffer_map()
507 ret = bops->map_buffer(ring, cb); in hnae_reserve_buffer_map()
514 bops->free_buffer(ring, cb); in hnae_reserve_buffer_map()
519 static inline int hnae_alloc_buffer_attach(struct hnae_ring *ring, int i) in hnae_alloc_buffer_attach() argument
521 int ret = hnae_reserve_buffer_map(ring, &ring->desc_cb[i]); in hnae_alloc_buffer_attach()
526 ring->desc[i].addr = (__le64)ring->desc_cb[i].dma; in hnae_alloc_buffer_attach()
531 static inline void hnae_buffer_detach(struct hnae_ring *ring, int i) in hnae_buffer_detach() argument
533 ring->q->handle->bops->unmap_buffer(ring, &ring->desc_cb[i]); in hnae_buffer_detach()
534 ring->desc[i].addr = 0; in hnae_buffer_detach()
537 static inline void hnae_free_buffer_detach(struct hnae_ring *ring, int i) in hnae_free_buffer_detach() argument
539 struct hnae_buf_ops *bops = ring->q->handle->bops; in hnae_free_buffer_detach()
540 struct hnae_desc_cb *cb = &ring->desc_cb[i]; in hnae_free_buffer_detach()
542 if (!ring->desc_cb[i].dma) in hnae_free_buffer_detach()
545 hnae_buffer_detach(ring, i); in hnae_free_buffer_detach()
546 bops->free_buffer(ring, cb); in hnae_free_buffer_detach()
550 static inline void hnae_replace_buffer(struct hnae_ring *ring, int i, in hnae_replace_buffer() argument
553 struct hnae_buf_ops *bops = ring->q->handle->bops; in hnae_replace_buffer()
554 struct hnae_desc_cb tmp_cb = ring->desc_cb[i]; in hnae_replace_buffer()
556 bops->unmap_buffer(ring, &ring->desc_cb[i]); in hnae_replace_buffer()
557 ring->desc_cb[i] = *res_cb; in hnae_replace_buffer()
559 ring->desc[i].addr = (__le64)ring->desc_cb[i].dma; in hnae_replace_buffer()
560 ring->desc[i].rx.ipoff_bnum_pid_flag = 0; in hnae_replace_buffer()
563 static inline void hnae_reuse_buffer(struct hnae_ring *ring, int i) in hnae_reuse_buffer() argument
565 ring->desc_cb[i].reuse_flag = 0; in hnae_reuse_buffer()
566 ring->desc[i].addr = (__le64)(ring->desc_cb[i].dma in hnae_reuse_buffer()
567 + ring->desc_cb[i].page_offset); in hnae_reuse_buffer()
568 ring->desc[i].rx.ipoff_bnum_pid_flag = 0; in hnae_reuse_buffer()