#include <linux/module.h>
#include <linux/phy/phy.h>
#include <net/dcbnl.h>
#include "sparx5_main_regs.h"
#include "sparx5_main.h"
#include "sparx5_port.h"
#define SPX5_ETYPE_TAG_C …
#define SPX5_ETYPE_TAG_S …
#define SPX5_WAIT_US …
#define SPX5_WAIT_MAX_US …
enum port_error { … };
#define PAUSE_DISCARD …
#define ETH_MAXLEN …
static void decode_sgmii_word(u16 lp_abil, struct sparx5_port_status *status)
{ … }
static void decode_cl37_word(u16 lp_abil, uint16_t ld_abil, struct sparx5_port_status *status)
{ … }
static int sparx5_get_dev2g5_status(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_status *status)
{ … }
static int sparx5_get_sfi_status(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_status *status)
{ … }
int sparx5_get_port_status(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_status *status)
{ … }
static int sparx5_port_error(struct sparx5_port *port,
struct sparx5_port_config *conf,
enum port_error errtype)
{ … }
static int sparx5_port_verify_speed(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
static bool sparx5_dev_change(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
static int sparx5_port_flush_poll(struct sparx5 *sparx5, u32 portno)
{ … }
static int sparx5_port_disable(struct sparx5 *sparx5, struct sparx5_port *port, bool high_spd_dev)
{ … }
static int sparx5_port_fifo_sz(struct sparx5 *sparx5,
u32 portno, u32 speed)
{ … }
static int sparx5_port_mux_set(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
static int sparx5_port_max_tags_set(struct sparx5 *sparx5,
struct sparx5_port *port)
{ … }
int sparx5_port_fwd_urg(struct sparx5 *sparx5, u32 speed)
{ … }
static u16 sparx5_wm_enc(u16 value)
{ … }
static int sparx5_port_fc_setup(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
static u16 sparx5_get_aneg_word(struct sparx5_port_config *conf)
{ … }
int sparx5_serdes_set(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
static int sparx5_port_pcs_low_set(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
static int sparx5_port_pcs_high_set(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
static void sparx5_dev_switch(struct sparx5 *sparx5, int port, bool hsd)
{ … }
static int sparx5_port_config_low_set(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
int sparx5_port_pcs_set(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
int sparx5_port_config(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
int sparx5_port_init(struct sparx5 *sparx5,
struct sparx5_port *port,
struct sparx5_port_config *conf)
{ … }
void sparx5_port_enable(struct sparx5_port *port, bool enable)
{ … }
int sparx5_port_qos_set(struct sparx5_port *port,
struct sparx5_port_qos *qos)
{ … }
int sparx5_port_qos_pcp_rewr_set(const struct sparx5_port *port,
struct sparx5_port_qos_pcp_rewr *qos)
{ … }
int sparx5_port_qos_pcp_set(const struct sparx5_port *port,
struct sparx5_port_qos_pcp *qos)
{ … }
void sparx5_port_qos_dscp_rewr_mode_set(const struct sparx5_port *port,
int mode)
{ … }
int sparx5_port_qos_dscp_rewr_set(const struct sparx5_port *port,
struct sparx5_port_qos_dscp_rewr *qos)
{ … }
int sparx5_port_qos_dscp_set(const struct sparx5_port *port,
struct sparx5_port_qos_dscp *qos)
{ … }
int sparx5_port_qos_default_set(const struct sparx5_port *port,
const struct sparx5_port_qos *qos)
{ … }