#include <linux/phy.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/ethtool_netlink.h>
#include "qcom.h"
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
int at803x_debug_reg_read(struct phy_device *phydev, u16 reg)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_debug_reg_mask(struct phy_device *phydev, u16 reg,
u16 clear, u16 set)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_debug_reg_write(struct phy_device *phydev, u16 reg, u16 data)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_set_wol(struct phy_device *phydev,
struct ethtool_wolinfo *wol)
{ … }
EXPORT_SYMBOL_GPL(…);
void at803x_get_wol(struct phy_device *phydev,
struct ethtool_wolinfo *wol)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_ack_interrupt(struct phy_device *phydev)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_config_intr(struct phy_device *phydev)
{ … }
EXPORT_SYMBOL_GPL(…);
irqreturn_t at803x_handle_interrupt(struct phy_device *phydev)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_read_specific_status(struct phy_device *phydev,
struct at803x_ss_mask ss_mask)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_config_mdix(struct phy_device *phydev, u8 ctrl)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_prepare_config_aneg(struct phy_device *phydev)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_read_status(struct phy_device *phydev)
{ … }
EXPORT_SYMBOL_GPL(…);
static int at803x_get_downshift(struct phy_device *phydev, u8 *d)
{ … }
static int at803x_set_downshift(struct phy_device *phydev, u8 cnt)
{ … }
int at803x_get_tunable(struct phy_device *phydev,
struct ethtool_tunable *tuna, void *data)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_set_tunable(struct phy_device *phydev,
struct ethtool_tunable *tuna, const void *data)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_cdt_fault_length(int dt)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_cdt_start(struct phy_device *phydev, u32 cdt_start)
{ … }
EXPORT_SYMBOL_GPL(…);
int at803x_cdt_wait_for_completion(struct phy_device *phydev,
u32 cdt_en)
{ … }
EXPORT_SYMBOL_GPL(…);
static bool qca808x_cdt_fault_length_valid(int cdt_code)
{ … }
static int qca808x_cable_test_result_trans(int cdt_code)
{ … }
static int qca808x_cdt_fault_length(struct phy_device *phydev, int pair,
int result)
{ … }
static int qca808x_cable_test_get_pair_status(struct phy_device *phydev, u8 pair,
u16 status)
{ … }
int qca808x_cable_test_get_status(struct phy_device *phydev, bool *finished)
{ … }
EXPORT_SYMBOL_GPL(…);
int qca808x_led_reg_hw_control_enable(struct phy_device *phydev, u16 reg)
{ … }
EXPORT_SYMBOL_GPL(…);
bool qca808x_led_reg_hw_control_status(struct phy_device *phydev, u16 reg)
{ … }
EXPORT_SYMBOL_GPL(…);
int qca808x_led_reg_brightness_set(struct phy_device *phydev,
u16 reg, enum led_brightness value)
{ … }
EXPORT_SYMBOL_GPL(…);
int qca808x_led_reg_blink_set(struct phy_device *phydev, u16 reg,
unsigned long *delay_on,
unsigned long *delay_off)
{ … }
EXPORT_SYMBOL_GPL(…);