#define pr_fmt(fmt) …
#include <asm/byteorder.h>
#include <linux/brcmphy.h>
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/etherdevice.h>
#include <linux/netdevice.h>
#include <linux/of_net.h>
#include <linux/of_mdio.h>
#include <linux/phy.h>
#include <linux/phy_fixed.h>
#include <linux/ptp_classify.h>
#include <linux/platform_device.h>
#include <net/ip.h>
#include <net/ipv6.h>
#include "bcmasp.h"
#include "bcmasp_intf_defs.h"
static int incr_ring(int index, int ring_count)
{ … }
static dma_addr_t incr_last_byte(dma_addr_t addr, dma_addr_t beg,
int ring_count)
{ … }
static dma_addr_t incr_first_byte(dma_addr_t addr, dma_addr_t beg,
int ring_count)
{ … }
static void bcmasp_enable_tx(struct bcmasp_intf *intf, int en)
{ … }
static void bcmasp_enable_rx(struct bcmasp_intf *intf, int en)
{ … }
static void bcmasp_set_rx_mode(struct net_device *dev)
{ … }
static void bcmasp_clean_txcb(struct bcmasp_intf *intf, int index)
{ … }
static int tx_spb_ring_full(struct bcmasp_intf *intf, int cnt)
{ … }
static struct sk_buff *bcmasp_csum_offload(struct net_device *dev,
struct sk_buff *skb,
bool *csum_hw)
{ … }
static unsigned long bcmasp_rx_edpkt_dma_rq(struct bcmasp_intf *intf)
{ … }
static void bcmasp_rx_edpkt_cfg_wq(struct bcmasp_intf *intf, dma_addr_t addr)
{ … }
static void bcmasp_rx_edpkt_dma_wq(struct bcmasp_intf *intf, dma_addr_t addr)
{ … }
static unsigned long bcmasp_tx_spb_dma_rq(struct bcmasp_intf *intf)
{ … }
static void bcmasp_tx_spb_dma_wq(struct bcmasp_intf *intf, dma_addr_t addr)
{ … }
static const struct bcmasp_intf_ops bcmasp_intf_ops = …;
static netdev_tx_t bcmasp_xmit(struct sk_buff *skb, struct net_device *dev)
{ … }
static void bcmasp_netif_start(struct net_device *dev)
{ … }
static void umac_reset(struct bcmasp_intf *intf)
{ … }
static void umac_set_hw_addr(struct bcmasp_intf *intf,
const unsigned char *addr)
{ … }
static void umac_enable_set(struct bcmasp_intf *intf, u32 mask,
unsigned int enable)
{ … }
static void umac_init(struct bcmasp_intf *intf)
{ … }
static int bcmasp_tx_reclaim(struct bcmasp_intf *intf)
{ … }
static int bcmasp_tx_poll(struct napi_struct *napi, int budget)
{ … }
static int bcmasp_rx_poll(struct napi_struct *napi, int budget)
{ … }
static void bcmasp_adj_link(struct net_device *dev)
{ … }
static int bcmasp_alloc_buffers(struct bcmasp_intf *intf)
{ … }
static void bcmasp_reclaim_free_buffers(struct bcmasp_intf *intf)
{ … }
static void bcmasp_init_rx(struct bcmasp_intf *intf)
{ … }
static void bcmasp_init_tx(struct bcmasp_intf *intf)
{ … }
static void bcmasp_ephy_enable_set(struct bcmasp_intf *intf, bool enable)
{ … }
static void bcmasp_rgmii_mode_en_set(struct bcmasp_intf *intf, bool enable)
{ … }
static void bcmasp_netif_deinit(struct net_device *dev)
{ … }
static int bcmasp_stop(struct net_device *dev)
{ … }
static void bcmasp_configure_port(struct bcmasp_intf *intf)
{ … }
static int bcmasp_netif_init(struct net_device *dev, bool phy_connect)
{ … }
static int bcmasp_open(struct net_device *dev)
{ … }
static void bcmasp_tx_timeout(struct net_device *dev, unsigned int txqueue)
{ … }
static int bcmasp_get_phys_port_name(struct net_device *dev,
char *name, size_t len)
{ … }
static void bcmasp_get_stats64(struct net_device *dev,
struct rtnl_link_stats64 *stats)
{ … }
static const struct net_device_ops bcmasp_netdev_ops = …;
static void bcmasp_map_res(struct bcmasp_priv *priv, struct bcmasp_intf *intf)
{ … }
#define MAX_IRQ_STR_LEN …
struct bcmasp_intf *bcmasp_interface_create(struct bcmasp_priv *priv,
struct device_node *ndev_dn, int i)
{ … }
void bcmasp_interface_destroy(struct bcmasp_intf *intf)
{ … }
static void bcmasp_suspend_to_wol(struct bcmasp_intf *intf)
{ … }
int bcmasp_interface_suspend(struct bcmasp_intf *intf)
{ … }
static void bcmasp_resume_from_wol(struct bcmasp_intf *intf)
{ … }
int bcmasp_interface_resume(struct bcmasp_intf *intf)
{ … }