#include <linux/etherdevice.h>
#include <linux/netdevice.h>
#include <linux/spinlock.h>
#include "hnae.h"
#include "hns_dsaf_mac.h"
#include "hns_dsaf_main.h"
#include "hns_dsaf_ppe.h"
#include "hns_dsaf_rcb.h"
static struct hns_mac_cb *hns_get_mac_cb(struct hnae_handle *handle)
{ … }
static struct dsaf_device *hns_ae_get_dsaf_dev(struct hnae_ae_dev *dev)
{ … }
static struct hns_ppe_cb *hns_get_ppe_cb(struct hnae_handle *handle)
{ … }
static int hns_ae_get_q_num_per_vf(
struct dsaf_device *dsaf_dev, int port)
{ … }
static int hns_ae_get_vf_num_per_port(
struct dsaf_device *dsaf_dev, int port)
{ … }
static struct ring_pair_cb *hns_ae_get_base_ring_pair(
struct dsaf_device *dsaf_dev, int port)
{ … }
static struct ring_pair_cb *hns_ae_get_ring_pair(struct hnae_queue *q)
{ … }
static struct hnae_handle *hns_ae_get_handle(struct hnae_ae_dev *dev,
u32 port_id)
{ … }
static void hns_ae_put_handle(struct hnae_handle *handle)
{ … }
static int hns_ae_wait_flow_down(struct hnae_handle *handle)
{ … }
static void hns_ae_ring_enable_all(struct hnae_handle *handle, int val)
{ … }
static void hns_ae_init_queue(struct hnae_queue *q)
{ … }
static void hns_ae_fini_queue(struct hnae_queue *q)
{ … }
static int hns_ae_set_mac_address(struct hnae_handle *handle, const void *p)
{ … }
static int hns_ae_add_uc_address(struct hnae_handle *handle,
const unsigned char *addr)
{ … }
static int hns_ae_rm_uc_address(struct hnae_handle *handle,
const unsigned char *addr)
{ … }
static int hns_ae_set_multicast_one(struct hnae_handle *handle, void *addr)
{ … }
static int hns_ae_clr_multicast(struct hnae_handle *handle)
{ … }
static int hns_ae_set_mtu(struct hnae_handle *handle, int new_mtu)
{ … }
static void hns_ae_set_tso_stats(struct hnae_handle *handle, int enable)
{ … }
static int hns_ae_start(struct hnae_handle *handle)
{ … }
static void hns_ae_stop(struct hnae_handle *handle)
{ … }
static void hns_ae_reset(struct hnae_handle *handle)
{ … }
static void hns_ae_toggle_ring_irq(struct hnae_ring *ring, u32 mask)
{ … }
static void hns_aev2_toggle_ring_irq(struct hnae_ring *ring, u32 mask)
{ … }
static int hns_ae_get_link_status(struct hnae_handle *handle)
{ … }
static int hns_ae_get_mac_info(struct hnae_handle *handle,
u8 *auto_neg, u16 *speed, u8 *duplex)
{ … }
static bool hns_ae_need_adjust_link(struct hnae_handle *handle, int speed,
int duplex)
{ … }
static void hns_ae_adjust_link(struct hnae_handle *handle, int speed,
int duplex)
{ … }
static void hns_ae_get_ring_bdnum_limit(struct hnae_queue *queue,
u32 *uplimit)
{ … }
static void hns_ae_get_pauseparam(struct hnae_handle *handle,
u32 *auto_neg, u32 *rx_en, u32 *tx_en)
{ … }
static void hns_ae_set_promisc_mode(struct hnae_handle *handle, u32 en)
{ … }
static int hns_ae_set_pauseparam(struct hnae_handle *handle,
u32 autoneg, u32 rx_en, u32 tx_en)
{ … }
static void hns_ae_get_coalesce_usecs(struct hnae_handle *handle,
u32 *tx_usecs, u32 *rx_usecs)
{ … }
static void hns_ae_get_max_coalesced_frames(struct hnae_handle *handle,
u32 *tx_frames, u32 *rx_frames)
{ … }
static int hns_ae_set_coalesce_usecs(struct hnae_handle *handle,
u32 timeout)
{ … }
static int hns_ae_set_coalesce_frames(struct hnae_handle *handle,
u32 tx_frames, u32 rx_frames)
{ … }
static void hns_ae_get_coalesce_range(struct hnae_handle *handle,
u32 *tx_frames_low, u32 *rx_frames_low,
u32 *tx_frames_high, u32 *rx_frames_high,
u32 *tx_usecs_low, u32 *rx_usecs_low,
u32 *tx_usecs_high, u32 *rx_usecs_high)
{ … }
static void hns_ae_update_stats(struct hnae_handle *handle,
struct net_device_stats *net_stats)
{ … }
static void hns_ae_get_stats(struct hnae_handle *handle, u64 *data)
{ … }
static void hns_ae_get_strings(struct hnae_handle *handle,
u32 stringset, u8 *data)
{ … }
static int hns_ae_get_sset_count(struct hnae_handle *handle, int stringset)
{ … }
static int hns_ae_config_loopback(struct hnae_handle *handle,
enum hnae_loop loop, int en)
{ … }
static void hns_ae_update_led_status(struct hnae_handle *handle)
{ … }
static int hns_ae_cpld_set_led_id(struct hnae_handle *handle,
enum hnae_led_state status)
{ … }
static void hns_ae_get_regs(struct hnae_handle *handle, void *data)
{ … }
static int hns_ae_get_regs_len(struct hnae_handle *handle)
{ … }
static u32 hns_ae_get_rss_key_size(struct hnae_handle *handle)
{ … }
static u32 hns_ae_get_rss_indir_size(struct hnae_handle *handle)
{ … }
static int hns_ae_get_rss(struct hnae_handle *handle, u32 *indir, u8 *key,
u8 *hfunc)
{ … }
static int hns_ae_set_rss(struct hnae_handle *handle, const u32 *indir,
const u8 *key, const u8 hfunc)
{ … }
static struct hnae_ae_ops hns_dsaf_ops = …;
int hns_dsaf_ae_init(struct dsaf_device *dsaf_dev)
{ … }
void hns_dsaf_ae_uninit(struct dsaf_device *dsaf_dev)
{ … }