#include <linux/netdevice.h>
#include <linux/net_tstamp.h>
#include <linux/pci.h>
#include <linux/phy.h>
#include "lan743x_main.h"
#include "lan743x_ethtool.h"
#include <linux/sched.h>
#include <linux/iopoll.h>
#define LAN743X_EEPROM_MAGIC …
#define LAN743X_OTP_MAGIC …
#define EEPROM_INDICATOR_1 …
#define EEPROM_INDICATOR_2 …
#define EEPROM_MAC_OFFSET …
#define MAX_EEPROM_SIZE …
#define MAX_OTP_SIZE …
#define OTP_INDICATOR_1 …
#define OTP_INDICATOR_2 …
#define LOCK_TIMEOUT_MAX_CNT …
#define LAN743X_CSR_READ_OP(offset) …
static int lan743x_otp_power_up(struct lan743x_adapter *adapter)
{ … }
static void lan743x_otp_power_down(struct lan743x_adapter *adapter)
{ … }
static void lan743x_otp_set_address(struct lan743x_adapter *adapter,
u32 address)
{ … }
static void lan743x_otp_read_go(struct lan743x_adapter *adapter)
{ … }
static int lan743x_otp_wait_till_not_busy(struct lan743x_adapter *adapter)
{ … }
static int lan743x_otp_read(struct lan743x_adapter *adapter, u32 offset,
u32 length, u8 *data)
{ … }
static int lan743x_otp_write(struct lan743x_adapter *adapter, u32 offset,
u32 length, u8 *data)
{ … }
int lan743x_hs_syslock_acquire(struct lan743x_adapter *adapter,
u16 timeout)
{ … }
void lan743x_hs_syslock_release(struct lan743x_adapter *adapter)
{ … }
static void lan743x_hs_otp_power_up(struct lan743x_adapter *adapter)
{ … }
static void lan743x_hs_otp_power_down(struct lan743x_adapter *adapter)
{ … }
static void lan743x_hs_otp_set_address(struct lan743x_adapter *adapter,
u32 address)
{ … }
static void lan743x_hs_otp_read_go(struct lan743x_adapter *adapter)
{ … }
static int lan743x_hs_otp_cmd_cmplt_chk(struct lan743x_adapter *adapter)
{ … }
static int lan743x_hs_otp_read(struct lan743x_adapter *adapter, u32 offset,
u32 length, u8 *data)
{ … }
static int lan743x_hs_otp_write(struct lan743x_adapter *adapter, u32 offset,
u32 length, u8 *data)
{ … }
static int lan743x_eeprom_wait(struct lan743x_adapter *adapter)
{ … }
static int lan743x_eeprom_confirm_not_busy(struct lan743x_adapter *adapter)
{ … }
static int lan743x_eeprom_read(struct lan743x_adapter *adapter,
u32 offset, u32 length, u8 *data)
{ … }
static int lan743x_eeprom_write(struct lan743x_adapter *adapter,
u32 offset, u32 length, u8 *data)
{ … }
static int lan743x_hs_eeprom_cmd_cmplt_chk(struct lan743x_adapter *adapter)
{ … }
static int lan743x_hs_eeprom_read(struct lan743x_adapter *adapter,
u32 offset, u32 length, u8 *data)
{ … }
static int lan743x_hs_eeprom_write(struct lan743x_adapter *adapter,
u32 offset, u32 length, u8 *data)
{ … }
static void lan743x_ethtool_get_drvinfo(struct net_device *netdev,
struct ethtool_drvinfo *info)
{ … }
static u32 lan743x_ethtool_get_msglevel(struct net_device *netdev)
{ … }
static void lan743x_ethtool_set_msglevel(struct net_device *netdev,
u32 msglevel)
{ … }
static int lan743x_ethtool_get_eeprom_len(struct net_device *netdev)
{ … }
static int lan743x_ethtool_get_eeprom(struct net_device *netdev,
struct ethtool_eeprom *ee, u8 *data)
{ … }
static int lan743x_ethtool_set_eeprom(struct net_device *netdev,
struct ethtool_eeprom *ee, u8 *data)
{ … }
static const char lan743x_set0_hw_cnt_strings[][ETH_GSTRING_LEN] = …;
static const char lan743x_set1_sw_cnt_strings[][ETH_GSTRING_LEN] = …;
static const char lan743x_tx_queue_cnt_strings[][ETH_GSTRING_LEN] = …;
static const char lan743x_set2_hw_cnt_strings[][ETH_GSTRING_LEN] = …;
static const u32 lan743x_set0_hw_cnt_addr[] = …;
static const u32 lan743x_set2_hw_cnt_addr[] = …;
static const char lan743x_priv_flags_strings[][ETH_GSTRING_LEN] = …;
static void lan743x_ethtool_get_strings(struct net_device *netdev,
u32 stringset, u8 *data)
{ … }
static void lan743x_ethtool_get_ethtool_stats(struct net_device *netdev,
struct ethtool_stats *stats,
u64 *data)
{ … }
static u32 lan743x_ethtool_get_priv_flags(struct net_device *netdev)
{ … }
static int lan743x_ethtool_set_priv_flags(struct net_device *netdev, u32 flags)
{ … }
static int lan743x_ethtool_get_sset_count(struct net_device *netdev, int sset)
{ … }
static int lan743x_ethtool_get_rxnfc(struct net_device *netdev,
struct ethtool_rxnfc *rxnfc,
u32 *rule_locs)
{ … }
static u32 lan743x_ethtool_get_rxfh_key_size(struct net_device *netdev)
{ … }
static u32 lan743x_ethtool_get_rxfh_indir_size(struct net_device *netdev)
{ … }
static int lan743x_ethtool_get_rxfh(struct net_device *netdev,
struct ethtool_rxfh_param *rxfh)
{ … }
static int lan743x_ethtool_set_rxfh(struct net_device *netdev,
struct ethtool_rxfh_param *rxfh,
struct netlink_ext_ack *extack)
{ … }
static int lan743x_ethtool_get_ts_info(struct net_device *netdev,
struct kernel_ethtool_ts_info *ts_info)
{ … }
static int lan743x_ethtool_get_eee(struct net_device *netdev,
struct ethtool_keee *eee)
{ … }
static int lan743x_ethtool_set_eee(struct net_device *netdev,
struct ethtool_keee *eee)
{ … }
#ifdef CONFIG_PM
static void lan743x_ethtool_get_wol(struct net_device *netdev,
struct ethtool_wolinfo *wol)
{ … }
static int lan743x_ethtool_set_wol(struct net_device *netdev,
struct ethtool_wolinfo *wol)
{ … }
#endif
static void lan743x_common_regs(struct net_device *dev, void *p)
{ … }
static void lan743x_sgmii_regs(struct net_device *dev, void *p)
{ … }
static int lan743x_get_regs_len(struct net_device *dev)
{ … }
static void lan743x_get_regs(struct net_device *dev,
struct ethtool_regs *regs, void *p)
{ … }
static void lan743x_get_pauseparam(struct net_device *dev,
struct ethtool_pauseparam *pause)
{ … }
static int lan743x_set_pauseparam(struct net_device *dev,
struct ethtool_pauseparam *pause)
{ … }
const struct ethtool_ops lan743x_ethtool_ops = …;