#include <linux/types.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/if_vlan.h>
#include <linux/pci.h>
#include <linux/device.h>
#include <linux/errno.h>
#include "hinic_hw_if.h"
#include "hinic_hw_dev.h"
#include "hinic_port.h"
#include "hinic_dev.h"
enum mac_op { … };
static int change_mac(struct hinic_dev *nic_dev, const u8 *addr,
u16 vlan_id, enum mac_op op)
{ … }
int hinic_port_add_mac(struct hinic_dev *nic_dev,
const u8 *addr, u16 vlan_id)
{ … }
int hinic_port_del_mac(struct hinic_dev *nic_dev, const u8 *addr,
u16 vlan_id)
{ … }
int hinic_port_get_mac(struct hinic_dev *nic_dev, u8 *addr)
{ … }
int hinic_port_set_mtu(struct hinic_dev *nic_dev, int new_mtu)
{ … }
int hinic_port_add_vlan(struct hinic_dev *nic_dev, u16 vlan_id)
{ … }
int hinic_port_del_vlan(struct hinic_dev *nic_dev, u16 vlan_id)
{ … }
int hinic_port_set_rx_mode(struct hinic_dev *nic_dev, u32 rx_mode)
{ … }
int hinic_port_link_state(struct hinic_dev *nic_dev,
enum hinic_port_link_state *link_state)
{ … }
int hinic_port_set_state(struct hinic_dev *nic_dev, enum hinic_port_state state)
{ … }
int hinic_port_set_func_state(struct hinic_dev *nic_dev,
enum hinic_func_port_state state)
{ … }
int hinic_port_get_cap(struct hinic_dev *nic_dev,
struct hinic_port_cap *port_cap)
{ … }
int hinic_port_set_tso(struct hinic_dev *nic_dev, enum hinic_tso_state state)
{ … }
int hinic_set_rx_csum_offload(struct hinic_dev *nic_dev, u32 en)
{ … }
int hinic_set_rx_vlan_offload(struct hinic_dev *nic_dev, u8 en)
{ … }
int hinic_set_vlan_fliter(struct hinic_dev *nic_dev, u32 en)
{ … }
int hinic_set_max_qnum(struct hinic_dev *nic_dev, u8 num_rqs)
{ … }
static int hinic_set_rx_lro(struct hinic_dev *nic_dev, u8 ipv4_en, u8 ipv6_en,
u8 max_wqe_num)
{ … }
static int hinic_set_rx_lro_timer(struct hinic_dev *nic_dev, u32 timer_value)
{ … }
int hinic_set_rx_lro_state(struct hinic_dev *nic_dev, u8 lro_en,
u32 lro_timer, u32 wqe_num)
{ … }
int hinic_rss_set_indir_tbl(struct hinic_dev *nic_dev, u32 tmpl_idx,
const u32 *indir_table)
{ … }
int hinic_rss_get_indir_tbl(struct hinic_dev *nic_dev, u32 tmpl_idx,
u32 *indir_table)
{ … }
int hinic_set_rss_type(struct hinic_dev *nic_dev, u32 tmpl_idx,
struct hinic_rss_type rss_type)
{ … }
int hinic_get_rss_type(struct hinic_dev *nic_dev, u32 tmpl_idx,
struct hinic_rss_type *rss_type)
{ … }
int hinic_rss_set_template_tbl(struct hinic_dev *nic_dev, u32 template_id,
const u8 *temp)
{ … }
int hinic_rss_get_template_tbl(struct hinic_dev *nic_dev, u32 tmpl_idx,
u8 *temp)
{ … }
int hinic_rss_set_hash_engine(struct hinic_dev *nic_dev, u8 template_id,
u8 type)
{ … }
int hinic_rss_get_hash_engine(struct hinic_dev *nic_dev, u8 tmpl_idx, u8 *type)
{ … }
int hinic_rss_cfg(struct hinic_dev *nic_dev, u8 rss_en, u8 template_id)
{ … }
int hinic_rss_template_alloc(struct hinic_dev *nic_dev, u8 *tmpl_idx)
{ … }
int hinic_rss_template_free(struct hinic_dev *nic_dev, u8 tmpl_idx)
{ … }
int hinic_get_vport_stats(struct hinic_dev *nic_dev,
struct hinic_vport_stats *stats)
{ … }
int hinic_get_phy_port_stats(struct hinic_dev *nic_dev,
struct hinic_phy_port_stats *stats)
{ … }
int hinic_get_mgmt_version(struct hinic_dev *nic_dev, u8 *mgmt_ver)
{ … }
int hinic_get_link_mode(struct hinic_hwdev *hwdev,
struct hinic_link_mode_cmd *link_mode)
{ … }
int hinic_set_autoneg(struct hinic_hwdev *hwdev, bool enable)
{ … }
int hinic_set_speed(struct hinic_hwdev *hwdev, enum nic_speed_level speed)
{ … }
int hinic_set_link_settings(struct hinic_hwdev *hwdev,
struct hinic_link_ksettings_info *info)
{ … }
int hinic_get_hw_pause_info(struct hinic_hwdev *hwdev,
struct hinic_pause_config *pause_info)
{ … }
int hinic_set_hw_pause_info(struct hinic_hwdev *hwdev,
struct hinic_pause_config *pause_info)
{ … }
int hinic_dcb_set_pfc(struct hinic_hwdev *hwdev, u8 pfc_en, u8 pfc_bitmap)
{ … }
int hinic_set_loopback_mode(struct hinic_hwdev *hwdev, u32 mode, u32 enable)
{ … }
static int _set_led_status(struct hinic_hwdev *hwdev, u8 port,
enum hinic_led_type type,
enum hinic_led_mode mode, u8 reset)
{ … }
int hinic_set_led_status(struct hinic_hwdev *hwdev, u8 port,
enum hinic_led_type type, enum hinic_led_mode mode)
{ … }
int hinic_reset_led_status(struct hinic_hwdev *hwdev, u8 port)
{ … }
static bool hinic_if_sfp_absent(struct hinic_hwdev *hwdev)
{ … }
int hinic_get_sfp_eeprom(struct hinic_hwdev *hwdev, u8 *data, u16 *len)
{ … }
int hinic_get_sfp_type(struct hinic_hwdev *hwdev, u8 *data0, u8 *data1)
{ … }