MCPcopy Create free account
hub / github.com/F-Stack/f-stack / bnxt_set_db

Function bnxt_set_db

dpdk/drivers/net/bnxt/bnxt_ring.c:350–406  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

348}
349
350static void bnxt_set_db(struct bnxt *bp,
351 struct bnxt_db_info *db,
352 uint32_t ring_type,
353 uint32_t map_idx,
354 uint32_t fid,
355 uint32_t ring_mask)
356{
357 if (BNXT_CHIP_P5(bp)) {
358 int db_offset = DB_PF_OFFSET;
359 switch (ring_type) {
360 case HWRM_RING_ALLOC_INPUT_RING_TYPE_TX:
361 db->db_key64 = DBR_PATH_L2 | DBR_TYPE_SQ;
362 break;
363 case HWRM_RING_ALLOC_INPUT_RING_TYPE_RX:
364 case HWRM_RING_ALLOC_INPUT_RING_TYPE_RX_AGG:
365 db->db_key64 = DBR_PATH_L2 | DBR_TYPE_SRQ;
366 break;
367 case HWRM_RING_ALLOC_INPUT_RING_TYPE_L2_CMPL:
368 db->db_key64 = DBR_PATH_L2 | DBR_TYPE_CQ;
369 break;
370 case HWRM_RING_ALLOC_INPUT_RING_TYPE_NQ:
371 db->db_key64 = DBR_PATH_L2;
372 break;
373 }
374 if (BNXT_CHIP_SR2(bp)) {
375 db->db_key64 |= DBR_VALID;
376 db_offset = bp->legacy_db_size;
377 } else if (BNXT_VF(bp)) {
378 db_offset = DB_VF_OFFSET;
379 }
380
381 db->doorbell = (char *)bp->doorbell_base + db_offset;
382 db->db_key64 |= (uint64_t)fid << DBR_XID_SFT;
383 db->db_64 = true;
384 } else {
385 db->doorbell = (char *)bp->doorbell_base + map_idx * 0x80;
386 switch (ring_type) {
387 case HWRM_RING_ALLOC_INPUT_RING_TYPE_TX:
388 db->db_key32 = DB_KEY_TX;
389 break;
390 case HWRM_RING_ALLOC_INPUT_RING_TYPE_RX:
391 db->db_key32 = DB_KEY_RX;
392 break;
393 case HWRM_RING_ALLOC_INPUT_RING_TYPE_L2_CMPL:
394 db->db_key32 = DB_KEY_CP;
395 break;
396 }
397 db->db_64 = false;
398 }
399 db->db_ring_mask = ring_mask;
400
401 if (BNXT_CHIP_SR2(bp)) {
402 db->db_epoch_mask = db->db_ring_mask + 1;
403 db->db_epoch_shift = DBR_EPOCH_SFT -
404 rte_log2_u32(db->db_epoch_mask);
405 }
406}
407

Callers 6

bnxt_alloc_cmpl_ringFunction · 0.85
bnxt_alloc_rxtx_nq_ringFunction · 0.85
bnxt_alloc_rx_ringFunction · 0.85
bnxt_alloc_rx_agg_ringFunction · 0.85
bnxt_alloc_async_cp_ringFunction · 0.85
bnxt_alloc_hwrm_tx_ringFunction · 0.85

Calls 1

rte_log2_u32Function · 0.50

Tested by

no test coverage detected