#include <linux/cdev.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <asm/cacheflush.h>
#include <linux/platform_device.h>
#include <linux/spinlock.h>
#include "hns_dsaf_main.h"
#include "hns_dsaf_ppe.h"
#include "hns_dsaf_rcb.h"
#define RCB_COMMON_REG_OFFSET …
#define TX_RING …
#define RX_RING …
#define RCB_RESET_WAIT_TIMES …
#define RCB_RESET_TRY_TIMES …
#define RCB_DEFAULT_BUFFER_SIZE …
void hns_rcb_wait_fbd_clean(struct hnae_queue **qs, int q_num, u32 flag)
{ … }
int hns_rcb_wait_tx_ring_clean(struct hnae_queue *qs)
{ … }
void hns_rcb_reset_ring_hw(struct hnae_queue *q)
{ … }
void hns_rcb_int_ctrl_hw(struct hnae_queue *q, u32 flag, u32 mask)
{ … }
void hns_rcb_int_clr_hw(struct hnae_queue *q, u32 flag)
{ … }
void hns_rcbv2_int_ctrl_hw(struct hnae_queue *q, u32 flag, u32 mask)
{ … }
void hns_rcbv2_int_clr_hw(struct hnae_queue *q, u32 flag)
{ … }
void hns_rcb_ring_enable_hw(struct hnae_queue *q, u32 val)
{ … }
void hns_rcb_start(struct hnae_queue *q, u32 val)
{ … }
void hns_rcb_common_init_commit_hw(struct rcb_common_cb *rcb_common)
{ … }
void hns_rcb_set_tx_ring_bs(struct hnae_queue *q, u32 buf_size)
{ … }
void hns_rcb_set_rx_ring_bs(struct hnae_queue *q, u32 buf_size)
{ … }
static void hns_rcb_ring_init(struct ring_pair_cb *ring_pair, int ring_type)
{ … }
void hns_rcb_init_hw(struct ring_pair_cb *ring)
{ … }
static void hns_rcb_set_port_desc_cnt(struct rcb_common_cb *rcb_common,
u32 port_idx, u32 desc_cnt)
{ … }
static void hns_rcb_set_port_timeout(
struct rcb_common_cb *rcb_common, u32 port_idx, u32 timeout)
{ … }
static int hns_rcb_common_get_port_num(struct rcb_common_cb *rcb_common)
{ … }
static void hns_rcb_comm_exc_irq_en(
struct rcb_common_cb *rcb_common, int en)
{ … }
int hns_rcb_common_init_hw(struct rcb_common_cb *rcb_common)
{ … }
int hns_rcb_buf_size2type(u32 buf_size)
{ … }
static void hns_rcb_ring_get_cfg(struct hnae_queue *q, int ring_type)
{ … }
static void hns_rcb_ring_pair_get_cfg(struct ring_pair_cb *ring_pair_cb)
{ … }
static int hns_rcb_get_port_in_comm(
struct rcb_common_cb *rcb_common, int ring_idx)
{ … }
#define SERVICE_RING_IRQ_IDX(v1) …
static int hns_rcb_get_base_irq_idx(struct rcb_common_cb *rcb_common)
{ … }
#define RCB_COMM_BASE_TO_RING_BASE(base, ringid) …
int hns_rcb_get_cfg(struct rcb_common_cb *rcb_common)
{ … }
u32 hns_rcb_get_rx_coalesced_frames(
struct rcb_common_cb *rcb_common, u32 port_idx)
{ … }
u32 hns_rcb_get_tx_coalesced_frames(
struct rcb_common_cb *rcb_common, u32 port_idx)
{ … }
u32 hns_rcb_get_coalesce_usecs(
struct rcb_common_cb *rcb_common, u32 port_idx)
{ … }
int hns_rcb_set_coalesce_usecs(
struct rcb_common_cb *rcb_common, u32 port_idx, u32 timeout)
{ … }
int hns_rcb_set_tx_coalesced_frames(
struct rcb_common_cb *rcb_common, u32 port_idx, u32 coalesced_frames)
{ … }
int hns_rcb_set_rx_coalesced_frames(
struct rcb_common_cb *rcb_common, u32 port_idx, u32 coalesced_frames)
{ … }
void hns_rcb_get_queue_mode(enum dsaf_mode dsaf_mode, u16 *max_vfn,
u16 *max_q_per_vf)
{ … }
static int hns_rcb_get_ring_num(struct dsaf_device *dsaf_dev)
{ … }
static u8 __iomem *hns_rcb_common_get_vaddr(struct rcb_common_cb *rcb_common)
{ … }
static phys_addr_t hns_rcb_common_get_paddr(struct rcb_common_cb *rcb_common)
{ … }
int hns_rcb_common_get_cfg(struct dsaf_device *dsaf_dev,
int comm_index)
{ … }
void hns_rcb_common_free_cfg(struct dsaf_device *dsaf_dev,
u32 comm_index)
{ … }
void hns_rcb_update_stats(struct hnae_queue *queue)
{ … }
void hns_rcb_get_stats(struct hnae_queue *queue, u64 *data)
{ … }
int hns_rcb_get_ring_sset_count(int stringset)
{ … }
int hns_rcb_get_common_regs_count(void)
{ … }
int hns_rcb_get_ring_regs_count(void)
{ … }
void hns_rcb_get_strings(int stringset, u8 *data, int index)
{ … }
void hns_rcb_get_common_regs(struct rcb_common_cb *rcb_com, void *data)
{ … }
void hns_rcb_get_ring_regs(struct hnae_queue *queue, void *data)
{ … }