#ifndef MTK_ETH_H
#define MTK_ETH_H
#include <linux/dma-mapping.h>
#include <linux/netdevice.h>
#include <linux/of_net.h>
#include <linux/u64_stats_sync.h>
#include <linux/refcount.h>
#include <linux/phylink.h>
#include <linux/rhashtable.h>
#include <linux/dim.h>
#include <linux/bitfield.h>
#include <net/page_pool/types.h>
#include <linux/bpf_trace.h>
#include "mtk_ppe.h"
#define MTK_MAX_DSA_PORTS …
#define MTK_DSA_PORT_MASK …
#define MTK_QDMA_NUM_QUEUES …
#define MTK_QDMA_PAGE_SIZE …
#define MTK_MAX_RX_LENGTH …
#define MTK_MAX_RX_LENGTH_2K …
#define MTK_TX_DMA_BUF_LEN …
#define MTK_TX_DMA_BUF_LEN_V2 …
#define MTK_QDMA_RING_SIZE …
#define MTK_DMA_SIZE(x) …
#define MTK_FQ_DMA_HEAD …
#define MTK_FQ_DMA_LENGTH …
#define MTK_RX_ETH_HLEN …
#define MTK_RX_HLEN …
#define MTK_DMA_DUMMY_DESC …
#define MTK_DEFAULT_MSG_ENABLE …
#define MTK_HW_FEATURES …
#define MTK_HW_FEATURES_MT7628 …
#define NEXT_DESP_IDX(X, Y) …
#define MTK_PP_HEADROOM …
#define MTK_PP_PAD …
#define MTK_PP_MAX_BUF_SIZE …
#define MTK_QRX_OFFSET …
#define MTK_MAX_RX_RING_NUM …
#define MTK_HW_LRO_DMA_SIZE …
#define MTK_MAX_LRO_RX_LENGTH …
#define MTK_MAX_LRO_IP_CNT …
#define MTK_HW_LRO_TIMER_UNIT …
#define MTK_HW_LRO_REFRESH_TIME …
#define MTK_HW_LRO_AGG_TIME …
#define MTK_HW_LRO_AGE_TIME …
#define MTK_HW_LRO_MAX_AGG_CNT …
#define MTK_HW_LRO_BW_THRE …
#define MTK_HW_LRO_REPLACE_DELTA …
#define MTK_HW_LRO_SDL_REMAIN_ROOM …
#define MTK_FE_GLO_CFG(x) …
#define MTK_FE_LINK_DOWN_P(x) …
#define MTK_RST_GL …
#define RST_GL_PSE …
#define MTK_INT_STATUS2 …
#define MTK_FE_INT_ENABLE …
#define MTK_FE_INT_FQ_EMPTY …
#define MTK_FE_INT_TSO_FAIL …
#define MTK_FE_INT_TSO_ILLEGAL …
#define MTK_FE_INT_TSO_ALIGN …
#define MTK_FE_INT_RFIFO_OV …
#define MTK_FE_INT_RFIFO_UF …
#define MTK_GDM1_AF …
#define MTK_GDM2_AF …
#define MTK_PDMA_LRO_ALT_REFRESH_TIMER …
#define MTK_FE_INT_GRP …
#define MTK_CDMQ_IG_CTRL …
#define MTK_CDMQ_STAG_EN …
#define MTK_CDMQ_EG_CTRL …
#define MTK_CDMP_IG_CTRL …
#define MTK_CDMP_STAG_EN …
#define MTK_CDMP_EG_CTRL …
#define MTK_GDMA_FWD_CFG(x) …
#define MTK_GDMA_SPECIAL_TAG …
#define MTK_GDMA_ICS_EN …
#define MTK_GDMA_TCS_EN …
#define MTK_GDMA_UCS_EN …
#define MTK_GDMA_STRP_CRC …
#define MTK_GDMA_TO_PDMA …
#define MTK_GDMA_DROP_ALL …
#define MTK_GDMA_EG_CTRL(x) …
#define MTK_GDMA_XGDM_SEL …
#define MTK_GDMA_MAC_ADRL(x) …
#define MTK_GDMA_MAC_ADRH(x) …
#define MTK_ETH_SRAM_OFFSET …
#define MTK_FE_GLO_MISC …
#define PSE_FQFC_CFG1 …
#define PSE_FQFC_CFG2 …
#define PSE_DROP_CFG …
#define PSE_PPE0_DROP …
#define PSE_IQ_REV(x) …
#define PSE_OQ_TH(x) …
#define MTK_GDM2_THRES …
#define MTK_CDMW0_THRES …
#define MTK_CDMW1_THRES …
#define MTK_CDME0_THRES …
#define MTK_CDME1_THRES …
#define MTK_CDMM_THRES …
#define MTK_PDMA_LRO_CTRL_DW0 …
#define MTK_LRO_EN …
#define MTK_L3_CKS_UPD_EN …
#define MTK_L3_CKS_UPD_EN_V2 …
#define MTK_LRO_ALT_PKT_CNT_MODE …
#define MTK_LRO_RING_RELINQUISH_REQ …
#define MTK_LRO_RING_RELINQUISH_REQ_V2 …
#define MTK_LRO_RING_RELINQUISH_DONE …
#define MTK_LRO_RING_RELINQUISH_DONE_V2 …
#define MTK_PDMA_LRO_CTRL_DW1 …
#define MTK_PDMA_LRO_CTRL_DW2 …
#define MTK_PDMA_LRO_CTRL_DW3 …
#define MTK_ADMA_MODE …
#define MTK_LRO_MIN_RXD_SDL …
#define MTK_RX_DMA_LRO_EN …
#define MTK_MULTI_EN …
#define MTK_PDMA_SIZE_8DWORDS …
#define MTK_PDMA_LRO_SDL …
#define MTK_RX_CFG_SDL_OFFSET …
#define MTK_PST_DRX_IDX0 …
#define MTK_PST_DRX_IDX_CFG(x) …
#define MTK_PDMA_DELAY_RX_MASK …
#define MTK_PDMA_DELAY_RX_EN …
#define MTK_PDMA_DELAY_RX_PINT_SHIFT …
#define MTK_PDMA_DELAY_RX_PTIME_SHIFT …
#define MTK_PDMA_DELAY_TX_MASK …
#define MTK_PDMA_DELAY_TX_EN …
#define MTK_PDMA_DELAY_TX_PINT_SHIFT …
#define MTK_PDMA_DELAY_TX_PTIME_SHIFT …
#define MTK_PDMA_DELAY_PINT_MASK …
#define MTK_PDMA_DELAY_PTIME_MASK …
#define MTK_PDMA_LRO_ALT_SCORE_DELTA …
#define MTK_LRO_RX_RING0_DIP_DW0 …
#define MTK_LRO_DIP_DW0_CFG(x) …
#define MTK_RING_MYIP_VLD …
#define MTK_LRO_RX_RING0_CTRL_DW1 …
#define MTK_LRO_RX_RING0_CTRL_DW2 …
#define MTK_LRO_RX_RING0_CTRL_DW3 …
#define MTK_LRO_CTRL_DW1_CFG(x) …
#define MTK_LRO_CTRL_DW2_CFG(x) …
#define MTK_LRO_CTRL_DW3_CFG(x) …
#define MTK_RING_AGE_TIME_L …
#define MTK_RING_AGE_TIME_H …
#define MTK_RING_AUTO_LERAN_MODE …
#define MTK_RING_VLD …
#define MTK_RING_MAX_AGG_TIME …
#define MTK_RING_MAX_AGG_CNT_L …
#define MTK_RING_MAX_AGG_CNT_H …
#define MTK_QTX_OFFSET …
#define QDMA_RES_THRES …
#define MTK_QTX_SCH_TX_SEL …
#define MTK_QTX_SCH_TX_SEL_V2 …
#define MTK_QTX_SCH_LEAKY_BUCKET_EN …
#define MTK_QTX_SCH_LEAKY_BUCKET_SIZE …
#define MTK_QTX_SCH_MIN_RATE_EN …
#define MTK_QTX_SCH_MIN_RATE_MAN …
#define MTK_QTX_SCH_MIN_RATE_EXP …
#define MTK_QTX_SCH_MAX_RATE_WEIGHT …
#define MTK_QTX_SCH_MAX_RATE_EN …
#define MTK_QTX_SCH_MAX_RATE_MAN …
#define MTK_QTX_SCH_MAX_RATE_EXP …
#define MTK_QDMA_TX_SCH_MAX_WFQ …
#define MTK_RX_2B_OFFSET …
#define MTK_RX_BT_32DWORDS …
#define MTK_NDP_CO_PRO …
#define MTK_TX_WB_DDONE …
#define MTK_TX_BT_32DWORDS …
#define MTK_RX_DMA_BUSY …
#define MTK_TX_DMA_BUSY …
#define MTK_RX_DMA_EN …
#define MTK_TX_DMA_EN …
#define MTK_DMA_BUSY_TIMEOUT_US …
#define MTK_CHK_DDONE_EN …
#define MTK_DMAD_WR_WDONE …
#define MTK_WCOMP_EN …
#define MTK_RESV_BUF …
#define MTK_MUTLI_CNT …
#define MTK_LEAKY_BUCKET_EN …
#define FC_THRES_DROP_MODE …
#define FC_THRES_DROP_EN …
#define FC_THRES_MIN …
#define MTK_RX_DONE_DLY …
#define MTK_TX_DONE_DLY …
#define MTK_RX_DONE_INT3 …
#define MTK_RX_DONE_INT2 …
#define MTK_RX_DONE_INT1 …
#define MTK_RX_DONE_INT0 …
#define MTK_TX_DONE_INT3 …
#define MTK_TX_DONE_INT2 …
#define MTK_TX_DONE_INT1 …
#define MTK_TX_DONE_INT0 …
#define MTK_RX_DONE_INT …
#define MTK_TX_DONE_INT …
#define MTK_RX_DONE_INT_V2 …
#define MTK_CDM_TXFIFO_RDY …
#define MTK_RLS_DONE_INT …
#define QID_BITS_V2(x) …
#define MTK_QDMA_GMAC2_QID …
#define MTK_TX_DMA_BUF_SHIFT …
#define TX_DMA_INS_VLAN_V2 …
#define TX_DMA_CHKSUM_V2 …
#define TX_DMA_TSO_V2 …
#define TX_DMA_SPTAG_V3 …
#define TX_DMA_FPORT_SHIFT_V2 …
#define TX_DMA_FPORT_MASK_V2 …
#define TX_DMA_SWC_V2 …
#define TX_DMA_CHKSUM …
#define TX_DMA_TSO …
#define TX_DMA_FPORT_SHIFT …
#define TX_DMA_FPORT_MASK …
#define TX_DMA_INS_VLAN …
#define TX_DMA_OWNER_CPU …
#define TX_DMA_LS0 …
#define TX_DMA_PLEN0(x) …
#define TX_DMA_PLEN1(x) …
#define TX_DMA_SWC …
#define TX_DMA_PQID …
#define TX_DMA_ADDR64_MASK …
#if IS_ENABLED(CONFIG_64BIT)
#define TX_DMA_GET_ADDR64(x) …
#define TX_DMA_PREP_ADDR64(x) …
#else
#define TX_DMA_GET_ADDR64 …
#define TX_DMA_PREP_ADDR64 …
#endif
#define TX_DMA_DONE …
#define TX_DMA_LS1 …
#define TX_DMA_DESP2_DEF …
#define RX_DMA_DONE …
#define RX_DMA_LSO …
#define RX_DMA_PREP_PLEN0(x) …
#define RX_DMA_GET_PLEN0(x) …
#define RX_DMA_VTAG …
#define RX_DMA_ADDR64_MASK …
#if IS_ENABLED(CONFIG_64BIT)
#define RX_DMA_GET_ADDR64(x) …
#define RX_DMA_PREP_ADDR64(x) …
#else
#define RX_DMA_GET_ADDR64 …
#define RX_DMA_PREP_ADDR64 …
#endif
#define RX_DMA_VID(x) …
#define RX_DMA_TCI(x) …
#define RX_DMA_VPID(x) …
#define MTK_RXD4_FOE_ENTRY …
#define MTK_RXD4_PPE_CPU_REASON …
#define MTK_RXD4_SRC_PORT …
#define MTK_RXD4_ALG …
#define RX_DMA_L4_VALID …
#define RX_DMA_L4_VALID_PDMA …
#define RX_DMA_SPECIAL_TAG …
#define MTK_RXD5_FOE_ENTRY …
#define MTK_RXD5_PPE_CPU_REASON …
#define MTK_RXD5_SRC_PORT …
#define RX_DMA_GET_SPORT(x) …
#define RX_DMA_GET_SPORT_V2(x) …
#define RX_DMA_VTAG_V2 …
#define RX_DMA_L4_VALID_V2 …
#define MTK_PPSC …
#define PPSC_MDC_CFG …
#define PPSC_MDC_TURBO …
#define MDC_MAX_FREQ …
#define MDC_MAX_DIVIDER …
#define MTK_PHY_IAC …
#define PHY_IAC_ACCESS …
#define PHY_IAC_REG_MASK …
#define PHY_IAC_REG(x) …
#define PHY_IAC_ADDR_MASK …
#define PHY_IAC_ADDR(x) …
#define PHY_IAC_CMD_MASK …
#define PHY_IAC_CMD_C45_ADDR …
#define PHY_IAC_CMD_WRITE …
#define PHY_IAC_CMD_C22_READ …
#define PHY_IAC_CMD_C45_READ …
#define PHY_IAC_START_MASK …
#define PHY_IAC_START_C45 …
#define PHY_IAC_START_C22 …
#define PHY_IAC_DATA_MASK …
#define PHY_IAC_DATA(x) …
#define PHY_IAC_TIMEOUT …
#define MTK_MAC_MISC …
#define MTK_MAC_MISC_V3 …
#define MTK_MUX_TO_ESW …
#define MISC_MDC_TURBO …
#define MTK_XGMAC_STS(x) …
#define MTK_XGMAC_FORCE_LINK(x) …
#define MTK_USXGMII_PCS_LINK …
#define MTK_XGMAC_RX_FC …
#define MTK_XGMAC_TX_FC …
#define MTK_USXGMII_PCS_MODE …
#define MTK_XGMAC_LINK_STS …
#define MTK_GSW_CFG …
#define GSWTX_IPG_MASK …
#define GSWTX_IPG_SHIFT …
#define GSWRX_IPG_MASK …
#define GSWRX_IPG_SHIFT …
#define GSW_IPG_11 …
#define MTK_MAC_MCR(x) …
#define MAC_MCR_MAX_RX_MASK …
#define MAC_MCR_MAX_RX(_x) …
#define MAC_MCR_MAX_RX_1518 …
#define MAC_MCR_MAX_RX_1536 …
#define MAC_MCR_MAX_RX_1552 …
#define MAC_MCR_MAX_RX_2048 …
#define MAC_MCR_IPG_CFG …
#define MAC_MCR_FORCE_MODE …
#define MAC_MCR_TX_EN …
#define MAC_MCR_RX_EN …
#define MAC_MCR_RX_FIFO_CLR_DIS …
#define MAC_MCR_BACKOFF_EN …
#define MAC_MCR_BACKPR_EN …
#define MAC_MCR_FORCE_RX_FC …
#define MAC_MCR_FORCE_TX_FC …
#define MAC_MCR_SPEED_1000 …
#define MAC_MCR_SPEED_100 …
#define MAC_MCR_FORCE_DPX …
#define MAC_MCR_FORCE_LINK …
#define MAC_MCR_FORCE_LINK_DOWN …
#define MTK_MAC_MSR(x) …
#define MAC_MSR_EEE1G …
#define MAC_MSR_EEE100M …
#define MAC_MSR_RX_FC …
#define MAC_MSR_TX_FC …
#define MAC_MSR_SPEED_1000 …
#define MAC_MSR_SPEED_100 …
#define MAC_MSR_SPEED_MASK …
#define MAC_MSR_DPX …
#define MAC_MSR_LINK …
#define TRGMII_RCK_CTRL …
#define DQSI0(x) …
#define DQSI1(x) …
#define RXCTL_DMWTLAT(x) …
#define RXC_RST …
#define RXC_DQSISEL …
#define RCK_CTRL_RGMII_1000 …
#define RCK_CTRL_RGMII_10_100 …
#define NUM_TRGMII_CTRL …
#define TRGMII_TCK_CTRL …
#define TXCTL_DMWTLAT(x) …
#define TXC_INV …
#define TCK_CTRL_RGMII_1000 …
#define TCK_CTRL_RGMII_10_100 …
#define TRGMII_TD_ODT(i) …
#define TD_DM_DRVP(x) …
#define TD_DM_DRVN(x) …
#define INTF_MODE …
#define TRGMII_INTF_DIS …
#define TRGMII_MODE …
#define TRGMII_CENTRAL_ALIGNED …
#define INTF_MODE_RGMII_1000 …
#define INTF_MODE_RGMII_10_100 …
#define GPIO_OD33_CTRL8 …
#define GPIO_BIAS_CTRL …
#define GPIO_DRV_SEL10 …
#define ETHSYS_CHIPID0_3 …
#define ETHSYS_CHIPID4_7 …
#define MT7623_ETH …
#define MT7622_ETH …
#define MT7621_ETH …
#define ETHSYS_SYSCFG …
#define SYSCFG_DRAM_TYPE_DDR2 …
#define ETHSYS_SYSCFG0 …
#define SYSCFG0_GE_MASK …
#define SYSCFG0_GE_MODE(x, y) …
#define SYSCFG0_SGMII_MASK …
#define SYSCFG0_SGMII_GMAC1 …
#define SYSCFG0_SGMII_GMAC2 …
#define SYSCFG0_SGMII_GMAC1_V2 …
#define SYSCFG0_SGMII_GMAC2_V2 …
#define ETHSYS_CLKCFG0 …
#define ETHSYS_TRGMII_CLK_SEL362_5 …
#define ETHSYS_TRGMII_MT7621_MASK …
#define ETHSYS_TRGMII_MT7621_APLL …
#define ETHSYS_TRGMII_MT7621_DDR_PLL …
#define ETHSYS_RSTCTRL …
#define RSTCTRL_FE …
#define RSTCTRL_WDMA0 …
#define RSTCTRL_WDMA1 …
#define RSTCTRL_WDMA2 …
#define RSTCTRL_PPE0 …
#define RSTCTRL_PPE0_V2 …
#define RSTCTRL_PPE1 …
#define RSTCTRL_PPE0_V3 …
#define RSTCTRL_PPE1_V3 …
#define RSTCTRL_PPE2 …
#define RSTCTRL_ETH …
#define ETHSYS_FE_RST_CHK_IDLE_EN …
#define ETHSYS_DMA_AG_MAP …
#define ETHSYS_DMA_AG_MAP_PDMA …
#define ETHSYS_DMA_AG_MAP_QDMA …
#define ETHSYS_DMA_AG_MAP_PPE …
#define INFRA_MISC2 …
#define CO_QPHY_SEL …
#define GEPHY_MAC_SEL …
#define USB_PHY_SWITCH_REG …
#define QPHY_SEL_MASK …
#define SGMII_QPHY_SEL …
#define MT7628_PDMA_OFFSET …
#define MT7628_SDM_OFFSET …
#define MT7628_TX_BASE_PTR0 …
#define MT7628_TX_MAX_CNT0 …
#define MT7628_TX_CTX_IDX0 …
#define MT7628_TX_DTX_IDX0 …
#define MT7628_PST_DTX_IDX0 …
#define MT7628_SDM_MAC_ADRL …
#define MT7628_SDM_MAC_ADRH …
#define MT7628_SDM_TPCNT …
#define MT7628_SDM_TBCNT …
#define MT7628_SDM_RPCNT …
#define MT7628_SDM_RBCNT …
#define MT7628_SDM_CS_ERR …
#define MTK_FE_CDM1_FSM …
#define MTK_FE_CDM2_FSM …
#define MTK_FE_CDM3_FSM …
#define MTK_FE_CDM4_FSM …
#define MTK_FE_CDM5_FSM …
#define MTK_FE_CDM6_FSM …
#define MTK_FE_GDM1_FSM …
#define MTK_FE_GDM2_FSM …
#define MTK_MAC_FSM(x) …
struct mtk_rx_dma { … } __packed __aligned(…);
struct mtk_rx_dma_v2 { … } __packed __aligned(…);
struct mtk_tx_dma { … } __packed __aligned(…);
struct mtk_tx_dma_v2 { … } __packed __aligned(…);
struct mtk_eth;
struct mtk_mac;
struct mtk_xdp_stats { … };
struct mtk_hw_stats { … };
enum mtk_tx_flags { … };
enum mtk_clks_map { … };
#define MT7623_CLKS_BITMAP …
#define MT7622_CLKS_BITMAP …
#define MT7621_CLKS_BITMAP …
#define MT7628_CLKS_BITMAP …
#define MT7629_CLKS_BITMAP …
#define MT7981_CLKS_BITMAP …
#define MT7986_CLKS_BITMAP …
#define MT7988_CLKS_BITMAP …
enum mtk_dev_state { … };
enum mtk_pse_port { … };
enum mtk_gmac_id { … };
enum mtk_tx_buf_type { … };
struct mtk_tx_buf { … };
struct mtk_tx_ring { … };
enum mtk_rx_flags { … };
struct mtk_rx_ring { … };
enum mkt_eth_capabilities { … };
#define MTK_RGMII …
#define MTK_TRGMII …
#define MTK_SGMII …
#define MTK_ESW …
#define MTK_GEPHY …
#define MTK_MUX …
#define MTK_INFRA …
#define MTK_SHARED_SGMII …
#define MTK_HWLRO …
#define MTK_SHARED_INT …
#define MTK_TRGMII_MT7621_CLK …
#define MTK_QDMA …
#define MTK_SOC_MT7628 …
#define MTK_RSTCTRL_PPE1 …
#define MTK_RSTCTRL_PPE2 …
#define MTK_U3_COPHY_V2 …
#define MTK_SRAM …
#define MTK_36BIT_DMA …
#define MTK_ETH_MUX_GDM1_TO_GMAC1_ESW …
#define MTK_ETH_MUX_GMAC2_GMAC0_TO_GEPHY …
#define MTK_ETH_MUX_U3_GMAC2_TO_QPHY …
#define MTK_ETH_MUX_GMAC1_GMAC2_TO_SGMII_RGMII …
#define MTK_ETH_MUX_GMAC12_TO_GEPHY_SGMII …
#define MTK_ETH_PATH_GMAC1_RGMII …
#define MTK_ETH_PATH_GMAC1_TRGMII …
#define MTK_ETH_PATH_GMAC1_SGMII …
#define MTK_ETH_PATH_GMAC2_RGMII …
#define MTK_ETH_PATH_GMAC2_SGMII …
#define MTK_ETH_PATH_GMAC2_GEPHY …
#define MTK_ETH_PATH_GDM1_ESW …
#define MTK_GMAC1_RGMII …
#define MTK_GMAC1_TRGMII …
#define MTK_GMAC1_SGMII …
#define MTK_GMAC2_RGMII …
#define MTK_GMAC2_SGMII …
#define MTK_GMAC2_GEPHY …
#define MTK_GDM1_ESW …
#define MTK_MUX_GDM1_TO_GMAC1_ESW …
#define MTK_MUX_GMAC2_GMAC0_TO_GEPHY …
#define MTK_MUX_U3_GMAC2_TO_QPHY …
#define MTK_MUX_GMAC1_GMAC2_TO_SGMII_RGMII …
#define MTK_MUX_GMAC12_TO_GEPHY_SGMII …
#define MTK_HAS_CAPS(caps, _x) …
#define MT7621_CAPS …
#define MT7622_CAPS …
#define MT7623_CAPS …
#define MT7628_CAPS …
#define MT7629_CAPS …
#define MT7981_CAPS …
#define MT7986_CAPS …
#define MT7988_CAPS …
struct mtk_tx_dma_desc_info { … };
struct mtk_reg_map { … };
struct mtk_soc_data { … };
#define MTK_DMA_MONITOR_TIMEOUT …
#define MTK_MAX_DEVS …
struct mtk_eth { … };
struct mtk_mac { … };
extern const struct of_device_id of_mtk_match[];
static inline bool mtk_is_netsys_v1(struct mtk_eth *eth)
{ … }
static inline bool mtk_is_netsys_v2_or_greater(struct mtk_eth *eth)
{ … }
static inline bool mtk_is_netsys_v3_or_greater(struct mtk_eth *eth)
{ … }
static inline struct mtk_foe_entry *
mtk_foe_get_entry(struct mtk_ppe *ppe, u16 hash)
{ … }
static inline u32 mtk_get_ib1_ts_mask(struct mtk_eth *eth)
{ … }
static inline u32 mtk_get_ib1_ppoe_mask(struct mtk_eth *eth)
{ … }
static inline u32 mtk_get_ib1_vlan_tag_mask(struct mtk_eth *eth)
{ … }
static inline u32 mtk_get_ib1_vlan_layer_mask(struct mtk_eth *eth)
{ … }
static inline u32 mtk_prep_ib1_vlan_layer(struct mtk_eth *eth, u32 val)
{ … }
static inline u32 mtk_get_ib1_vlan_layer(struct mtk_eth *eth, u32 val)
{ … }
static inline u32 mtk_get_ib1_pkt_type_mask(struct mtk_eth *eth)
{ … }
static inline u32 mtk_get_ib1_pkt_type(struct mtk_eth *eth, u32 val)
{ … }
static inline u32 mtk_get_ib2_multicast_mask(struct mtk_eth *eth)
{ … }
void mtk_stats_update_mac(struct mtk_mac *mac);
void mtk_w32(struct mtk_eth *eth, u32 val, unsigned reg);
u32 mtk_r32(struct mtk_eth *eth, unsigned reg);
u32 mtk_m32(struct mtk_eth *eth, u32 mask, u32 set, unsigned int reg);
int mtk_gmac_sgmii_path_setup(struct mtk_eth *eth, int mac_id);
int mtk_gmac_gephy_path_setup(struct mtk_eth *eth, int mac_id);
int mtk_gmac_rgmii_path_setup(struct mtk_eth *eth, int mac_id);
int mtk_eth_offload_init(struct mtk_eth *eth, u8 id);
int mtk_eth_setup_tc(struct net_device *dev, enum tc_setup_type type,
void *type_data);
int mtk_flow_offload_cmd(struct mtk_eth *eth, struct flow_cls_offload *cls,
int ppe_index);
void mtk_flow_offload_cleanup(struct mtk_eth *eth, struct list_head *list);
void mtk_eth_set_dma_device(struct mtk_eth *eth, struct device *dma_dev);
#endif