FILE
bng_re.h
File preview with syntax highlighting.
linux-6.19.14/drivers/infiniband/hw/bng_re/bng_re.h
1/* SPDX-License-Identifier: GPL-2.0 */ 2// Copyright (c) 2025 Broadcom. 3 4#ifndef __BNG_RE_H__ 5#define __BNG_RE_H__ 6 7#include "bng_res.h" 8 9#define BNG_RE_ADEV_NAME "bng_en" 10 11#define BNG_RE_DESC "Broadcom 800G RoCE Driver" 12 13#define rdev_to_dev(rdev) ((rdev) ? (&(rdev)->ibdev.dev) : NULL) 14 15#define BNG_RE_MIN_MSIX 2 16#define BNG_RE_MAX_MSIX BNGE_MAX_ROCE_MSIX 17 18#define BNG_RE_CREQ_NQ_IDX 0 19 20#define BNGE_INVALID_STATS_CTX_ID -1 21/* NQ specific structures */ 22struct bng_re_nq_db { 23 struct bng_re_reg_desc reg; 24 struct bng_re_db_info dbinfo; 25}; 26 27struct bng_re_nq { 28 struct pci_dev *pdev; 29 struct bng_re_res *res; 30 char *name; 31 struct bng_re_hwq hwq; 32 struct bng_re_nq_db nq_db; 33 u16 ring_id; 34 int msix_vec; 35 cpumask_t mask; 36 struct tasklet_struct nq_tasklet; 37 bool requested; 38 int budget; 39 u32 load; 40 41 struct workqueue_struct *cqn_wq; 42}; 43 44struct bng_re_nq_record { 45 struct bnge_msix_info msix_entries[BNG_RE_MAX_MSIX]; 46 struct bng_re_nq nq[BNG_RE_MAX_MSIX]; 47 int num_msix; 48 /* serialize NQ access */ 49 struct mutex load_lock; 50}; 51 52struct bng_re_en_dev_info { 53 struct bng_re_dev *rdev; 54 struct bnge_auxr_dev *auxr_dev; 55}; 56 57struct bng_re_ring_attr { 58 dma_addr_t *dma_arr; 59 int pages; 60 int type; 61 u32 depth; 62 u32 lrid; /* Logical ring id */ 63 u8 mode; 64}; 65 66struct bng_re_dev { 67 struct ib_device ibdev; 68 unsigned long flags; 69#define BNG_RE_FLAG_NETDEV_REGISTERED 0 70#define BNG_RE_FLAG_RCFW_CHANNEL_EN 1 71 struct net_device *netdev; 72 struct auxiliary_device *adev; 73 struct bnge_auxr_dev *aux_dev; 74 struct bng_re_chip_ctx *chip_ctx; 75 int fn_id; 76 struct bng_re_res bng_res; 77 struct bng_re_rcfw rcfw; 78 struct bng_re_nq_record *nqr; 79 /* Device Resources */ 80 struct bng_re_dev_attr *dev_attr; 81 struct dentry *dbg_root; 82 struct bng_re_stats stats_ctx; 83}; 84 85#endif
~/
Read-only file preview.