Symbol: rbdr
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
101
pgcache = &rbdr->pgcache[rbdr->pgidx];
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
1013
if (nicvf_init_rbdr(nic, &qs->rbdr[qidx], qs->rbdr_len,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
111
if (rbdr->is_xdp) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
129
if (rbdr->pgalloc >= rbdr->pgcnt) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
139
rbdr->pgalloc++;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
143
if (rbdr->is_xdp) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
163
rbdr->pgidx++;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
164
rbdr->pgidx &= (rbdr->pgcnt - 1);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
167
next = &rbdr->pgcache[rbdr->pgidx];
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
176
static inline int nicvf_alloc_rcv_buffer(struct nicvf *nic, struct rbdr *rbdr,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
184
if (!rbdr->is_xdp && nic->rb_page &&
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
194
pgcache = nicvf_alloc_page(nic, rbdr, gfp);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
203
if (rbdr->is_xdp)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
210
if (rbdr->is_xdp && pgcache && pgcache->dma_addr) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
253
static int nicvf_init_rbdr(struct nicvf *nic, struct rbdr *rbdr,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
261
err = nicvf_alloc_q_desc_mem(nic, &rbdr->dmem, ring_len,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
267
rbdr->desc = rbdr->dmem.base;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
269
rbdr->dma_size = buf_size;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
270
rbdr->enable = true;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
271
rbdr->thresh = RBDR_THRESH;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
272
rbdr->head = 0;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
273
rbdr->tail = 0;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
285
rbdr->pgcnt = ring_len / (PAGE_SIZE / buf_size);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
286
rbdr->is_xdp = false;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
288
rbdr->pgcnt = ring_len;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
289
rbdr->is_xdp = true;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
291
rbdr->pgcnt = roundup_pow_of_two(rbdr->pgcnt);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
292
rbdr->pgcache = kzalloc_objs(*rbdr->pgcache, rbdr->pgcnt);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
293
if (!rbdr->pgcache)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
295
rbdr->pgidx = 0;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
296
rbdr->pgalloc = 0;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
300
err = nicvf_alloc_rcv_buffer(nic, rbdr, GFP_KERNEL,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
304
rbdr->tail = idx - 1;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
308
desc = GET_RBDR_DESC(rbdr, idx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
318
static void nicvf_free_rbdr(struct nicvf *nic, struct rbdr *rbdr)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
325
if (!rbdr)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
328
rbdr->enable = false;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
329
if (!rbdr->dmem.base)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
332
head = rbdr->head;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
333
tail = rbdr->tail;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
337
desc = GET_RBDR_DESC(rbdr, head);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
345
head &= (rbdr->dmem.q_len - 1);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
348
desc = GET_RBDR_DESC(rbdr, tail);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
361
while (head < rbdr->pgcnt) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
362
pgcache = &rbdr->pgcache[head];
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
364
if (rbdr->is_xdp) {
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
374
nicvf_free_q_desc_mem(nic, &rbdr->dmem);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
385
struct rbdr *rbdr;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
394
rbdr = &qs->rbdr[rbdr_idx];
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
396
if (!rbdr->enable)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
415
tail &= (rbdr->dmem.q_len - 1);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
417
if (nicvf_alloc_rcv_buffer(nic, rbdr, gfp, RCV_FRAG_LEN, &rbuf))
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
420
desc = GET_RBDR_DESC(rbdr, tail);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
442
if (!nic->rb_alloc_fail && rbdr->enable &&
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
660
struct rbdr *rbdr, int qidx)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
666
rbdr->head = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
669
rbdr->tail = nicvf_queue_reg_read(nic,
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
919
struct rbdr *rbdr;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
922
rbdr = &qs->rbdr[qidx];
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
923
nicvf_reclaim_rbdr(nic, rbdr, qidx);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
929
qidx, (u64)(rbdr->dmem.phys_base));
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
939
rbdr_cfg.lines = rbdr->dma_size / 128;
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
94
struct rbdr *rbdr, gfp_t gfp)
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
949
qidx, rbdr->thresh - 1);
drivers/net/ethernet/cavium/thunder/nicvf_queues.c
995
nicvf_free_rbdr(nic, &qs->rbdr[qidx]);
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
241
struct rbdr *rbdr_start;
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
242
struct rbdr *rbdr_cont;
drivers/net/ethernet/cavium/thunder/nicvf_queues.h
302
struct rbdr rbdr[MAX_RCV_BUF_DESC_RINGS_PER_QS];