mirror of https://github.com/torvalds/linux.git
86 lines
1.8 KiB
C
86 lines
1.8 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
// Copyright (c) 2025 Broadcom.
|
|
|
|
#ifndef __BNG_RE_H__
|
|
#define __BNG_RE_H__
|
|
|
|
#include "bng_res.h"
|
|
|
|
#define BNG_RE_ADEV_NAME "bng_en"
|
|
|
|
#define BNG_RE_DESC "Broadcom 800G RoCE Driver"
|
|
|
|
#define rdev_to_dev(rdev) ((rdev) ? (&(rdev)->ibdev.dev) : NULL)
|
|
|
|
#define BNG_RE_MIN_MSIX 2
|
|
#define BNG_RE_MAX_MSIX BNGE_MAX_ROCE_MSIX
|
|
|
|
#define BNG_RE_CREQ_NQ_IDX 0
|
|
|
|
#define BNGE_INVALID_STATS_CTX_ID -1
|
|
/* NQ specific structures */
|
|
struct bng_re_nq_db {
|
|
struct bng_re_reg_desc reg;
|
|
struct bng_re_db_info dbinfo;
|
|
};
|
|
|
|
struct bng_re_nq {
|
|
struct pci_dev *pdev;
|
|
struct bng_re_res *res;
|
|
char *name;
|
|
struct bng_re_hwq hwq;
|
|
struct bng_re_nq_db nq_db;
|
|
u16 ring_id;
|
|
int msix_vec;
|
|
cpumask_t mask;
|
|
struct tasklet_struct nq_tasklet;
|
|
bool requested;
|
|
int budget;
|
|
u32 load;
|
|
|
|
struct workqueue_struct *cqn_wq;
|
|
};
|
|
|
|
struct bng_re_nq_record {
|
|
struct bnge_msix_info msix_entries[BNG_RE_MAX_MSIX];
|
|
struct bng_re_nq nq[BNG_RE_MAX_MSIX];
|
|
int num_msix;
|
|
/* serialize NQ access */
|
|
struct mutex load_lock;
|
|
};
|
|
|
|
struct bng_re_en_dev_info {
|
|
struct bng_re_dev *rdev;
|
|
struct bnge_auxr_dev *auxr_dev;
|
|
};
|
|
|
|
struct bng_re_ring_attr {
|
|
dma_addr_t *dma_arr;
|
|
int pages;
|
|
int type;
|
|
u32 depth;
|
|
u32 lrid; /* Logical ring id */
|
|
u8 mode;
|
|
};
|
|
|
|
struct bng_re_dev {
|
|
struct ib_device ibdev;
|
|
unsigned long flags;
|
|
#define BNG_RE_FLAG_NETDEV_REGISTERED 0
|
|
#define BNG_RE_FLAG_RCFW_CHANNEL_EN 1
|
|
struct net_device *netdev;
|
|
struct auxiliary_device *adev;
|
|
struct bnge_auxr_dev *aux_dev;
|
|
struct bng_re_chip_ctx *chip_ctx;
|
|
int fn_id;
|
|
struct bng_re_res bng_res;
|
|
struct bng_re_rcfw rcfw;
|
|
struct bng_re_nq_record *nqr;
|
|
/* Device Resources */
|
|
struct bng_re_dev_attr *dev_attr;
|
|
struct dentry *dbg_root;
|
|
struct bng_re_stats stats_ctx;
|
|
};
|
|
|
|
#endif
|