#include <linux/phy.h>
#include <linux/mdio.h>
#include <linux/clk.h>
#include <linux/bitrev.h>
#include <linux/crc32.h>
#include <linux/crc32poly.h>
#include <linux/dcbnl.h>
#include "dwc-xlgmac.h"
#include "dwc-xlgmac-reg.h"
static int xlgmac_tx_complete(struct xlgmac_dma_desc *dma_desc)
{ … }
static int xlgmac_disable_rx_csum(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_enable_rx_csum(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_set_mac_address(struct xlgmac_pdata *pdata, const u8 *addr)
{ … }
static void xlgmac_set_mac_reg(struct xlgmac_pdata *pdata,
struct netdev_hw_addr *ha,
unsigned int *mac_reg)
{ … }
static int xlgmac_enable_rx_vlan_stripping(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_disable_rx_vlan_stripping(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_enable_rx_vlan_filtering(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_disable_rx_vlan_filtering(struct xlgmac_pdata *pdata)
{ … }
static u32 xlgmac_vid_crc32_le(__le16 vid_le)
{ … }
static int xlgmac_update_vlan_hash_table(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_set_promiscuous_mode(struct xlgmac_pdata *pdata,
unsigned int enable)
{ … }
static int xlgmac_set_all_multicast_mode(struct xlgmac_pdata *pdata,
unsigned int enable)
{ … }
static void xlgmac_set_mac_addn_addrs(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_set_mac_hash_table(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_add_mac_addresses(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_mac_address(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_jumbo_enable(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_checksum_offload(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_vlan_support(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_rx_mode(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_prepare_tx_stop(struct xlgmac_pdata *pdata,
struct xlgmac_channel *channel)
{ … }
static void xlgmac_enable_tx(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_disable_tx(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_prepare_rx_stop(struct xlgmac_pdata *pdata,
unsigned int queue)
{ … }
static void xlgmac_enable_rx(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_disable_rx(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_tx_start_xmit(struct xlgmac_channel *channel,
struct xlgmac_ring *ring)
{ … }
static void xlgmac_dev_xmit(struct xlgmac_channel *channel)
{ … }
static void xlgmac_get_rx_tstamp(struct xlgmac_pkt_info *pkt_info,
struct xlgmac_dma_desc *dma_desc)
{ … }
static void xlgmac_tx_desc_reset(struct xlgmac_desc_data *desc_data)
{ … }
static void xlgmac_tx_desc_init(struct xlgmac_channel *channel)
{ … }
static void xlgmac_rx_desc_reset(struct xlgmac_pdata *pdata,
struct xlgmac_desc_data *desc_data,
unsigned int index)
{ … }
static void xlgmac_rx_desc_init(struct xlgmac_channel *channel)
{ … }
static int xlgmac_is_context_desc(struct xlgmac_dma_desc *dma_desc)
{ … }
static int xlgmac_is_last_desc(struct xlgmac_dma_desc *dma_desc)
{ … }
static int xlgmac_disable_tx_flow_control(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_enable_tx_flow_control(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_disable_rx_flow_control(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_enable_rx_flow_control(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_tx_flow_control(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_rx_flow_control(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_rx_coalesce(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_flow_control(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_rx_fep_enable(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_rx_fup_enable(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_tx_coalesce(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_rx_buffer_size(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_tso_mode(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_sph_mode(struct xlgmac_pdata *pdata)
{ … }
static unsigned int xlgmac_usec_to_riwt(struct xlgmac_pdata *pdata,
unsigned int usec)
{ … }
static unsigned int xlgmac_riwt_to_usec(struct xlgmac_pdata *pdata,
unsigned int riwt)
{ … }
static int xlgmac_config_rx_threshold(struct xlgmac_pdata *pdata,
unsigned int val)
{ … }
static void xlgmac_config_mtl_mode(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_queue_mapping(struct xlgmac_pdata *pdata)
{ … }
static unsigned int xlgmac_calculate_per_queue_fifo(
unsigned int fifo_size,
unsigned int queue_count)
{ … }
static void xlgmac_config_tx_fifo_size(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_rx_fifo_size(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_flow_control_threshold(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_tx_threshold(struct xlgmac_pdata *pdata,
unsigned int val)
{ … }
static int xlgmac_config_rsf_mode(struct xlgmac_pdata *pdata,
unsigned int val)
{ … }
static int xlgmac_config_tsf_mode(struct xlgmac_pdata *pdata,
unsigned int val)
{ … }
static int xlgmac_config_osp_mode(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_pblx8(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_get_tx_pbl_val(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_tx_pbl_val(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_get_rx_pbl_val(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_config_rx_pbl_val(struct xlgmac_pdata *pdata)
{ … }
static u64 xlgmac_mmc_read(struct xlgmac_pdata *pdata, unsigned int reg_lo)
{ … }
static void xlgmac_tx_mmc_int(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_rx_mmc_int(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_read_mmc_stats(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_mmc(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_write_rss_reg(struct xlgmac_pdata *pdata, unsigned int type,
unsigned int index, unsigned int val)
{ … }
static int xlgmac_write_rss_hash_key(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_write_rss_lookup_table(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_set_rss_hash_key(struct xlgmac_pdata *pdata, const u8 *key)
{ … }
static int xlgmac_set_rss_lookup_table(struct xlgmac_pdata *pdata,
const u32 *table)
{ … }
static int xlgmac_enable_rss(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_disable_rss(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_rss(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_enable_dma_interrupts(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_enable_mtl_interrupts(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_enable_mac_interrupts(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_set_xlgmii_25000_speed(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_set_xlgmii_40000_speed(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_set_xlgmii_50000_speed(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_set_xlgmii_100000_speed(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_mac_speed(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_dev_read(struct xlgmac_channel *channel)
{ … }
static int xlgmac_enable_int(struct xlgmac_channel *channel,
enum xlgmac_int int_id)
{ … }
static int xlgmac_disable_int(struct xlgmac_channel *channel,
enum xlgmac_int int_id)
{ … }
static int xlgmac_flush_tx_queues(struct xlgmac_pdata *pdata)
{ … }
static void xlgmac_config_dma_bus(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_hw_init(struct xlgmac_pdata *pdata)
{ … }
static int xlgmac_hw_exit(struct xlgmac_pdata *pdata)
{ … }
void xlgmac_init_hw_ops(struct xlgmac_hw_ops *hw_ops)
{ … }