linux/drivers/net/ethernet/microchip/lan743x_main.c

/* SPDX-License-Identifier: GPL-2.0+ */
/* Copyright (C) 2018 Microchip Technology Inc. */

#include <linux/module.h>
#include <linux/pci.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/crc32.h>
#include <linux/microchipphy.h>
#include <linux/net_tstamp.h>
#include <linux/of_mdio.h>
#include <linux/of_net.h>
#include <linux/phy.h>
#include <linux/phy_fixed.h>
#include <linux/rtnetlink.h>
#include <linux/iopoll.h>
#include <linux/crc16.h>
#include "lan743x_main.h"
#include "lan743x_ethtool.h"

#define MMD_ACCESS_ADDRESS
#define MMD_ACCESS_WRITE
#define MMD_ACCESS_READ
#define MMD_ACCESS_READ_INC
#define PCS_POWER_STATE_DOWN
#define PCS_POWER_STATE_UP

#define RFE_RD_FIFO_TH_3_DWORDS

static void pci11x1x_strap_get_status(struct lan743x_adapter *adapter)
{}

static bool is_pci11x1x_chip(struct lan743x_adapter *adapter)
{}

static void lan743x_pci_cleanup(struct lan743x_adapter *adapter)
{}

static int lan743x_pci_init(struct lan743x_adapter *adapter,
			    struct pci_dev *pdev)
{}

u32 lan743x_csr_read(struct lan743x_adapter *adapter, int offset)
{}

void lan743x_csr_write(struct lan743x_adapter *adapter, int offset,
		       u32 data)
{}

#define LAN743X_CSR_READ_OP(offset)

static int lan743x_csr_light_reset(struct lan743x_adapter *adapter)
{}

static int lan743x_csr_wait_for_bit_atomic(struct lan743x_adapter *adapter,
					   int offset, u32 bit_mask,
					   int target_value, int udelay_min,
					   int udelay_max, int count)
{}

static int lan743x_csr_wait_for_bit(struct lan743x_adapter *adapter,
				    int offset, u32 bit_mask,
				    int target_value, int usleep_min,
				    int usleep_max, int count)
{}

static int lan743x_csr_init(struct lan743x_adapter *adapter)
{}

static void lan743x_intr_software_isr(struct lan743x_adapter *adapter)
{}

static void lan743x_tx_isr(void *context, u32 int_sts, u32 flags)
{}

static void lan743x_rx_isr(void *context, u32 int_sts, u32 flags)
{}

static void lan743x_intr_shared_isr(void *context, u32 int_sts, u32 flags)
{}

static irqreturn_t lan743x_intr_entry_isr(int irq, void *ptr)
{}

static int lan743x_intr_test_isr(struct lan743x_adapter *adapter)
{}

static int lan743x_intr_register_isr(struct lan743x_adapter *adapter,
				     int vector_index, u32 flags,
				     u32 int_mask,
				     lan743x_vector_handler handler,
				     void *context)
{}

static void lan743x_intr_unregister_isr(struct lan743x_adapter *adapter,
					int vector_index)
{}

static u32 lan743x_intr_get_vector_flags(struct lan743x_adapter *adapter,
					 u32 int_mask)
{}

static void lan743x_intr_close(struct lan743x_adapter *adapter)
{}

static int lan743x_intr_open(struct lan743x_adapter *adapter)
{}

static int lan743x_dp_write(struct lan743x_adapter *adapter,
			    u32 select, u32 addr, u32 length, u32 *buf)
{}

static u32 lan743x_mac_mii_access(u16 id, u16 index, int read)
{}

static int lan743x_mac_mii_wait_till_not_busy(struct lan743x_adapter *adapter)
{}

static int lan743x_mdiobus_read_c22(struct mii_bus *bus, int phy_id, int index)
{}

static int lan743x_mdiobus_write_c22(struct mii_bus *bus,
				     int phy_id, int index, u16 regval)
{}

static u32 lan743x_mac_mmd_access(int id, int dev_addr, int op)
{}

static int lan743x_mdiobus_read_c45(struct mii_bus *bus, int phy_id,
				    int dev_addr, int index)
{}

static int lan743x_mdiobus_write_c45(struct mii_bus *bus, int phy_id,
				     int dev_addr, int index, u16 regval)
{}

static int lan743x_sgmii_wait_till_not_busy(struct lan743x_adapter *adapter)
{}

int lan743x_sgmii_read(struct lan743x_adapter *adapter, u8 mmd, u16 addr)
{}

static int lan743x_sgmii_write(struct lan743x_adapter *adapter,
			       u8 mmd, u16 addr, u16 val)
{}

static int lan743x_sgmii_mpll_set(struct lan743x_adapter *adapter,
				  u16 baud)
{}

static int lan743x_sgmii_2_5G_mode_set(struct lan743x_adapter *adapter,
				       bool enable)
{}

static int lan743x_is_sgmii_2_5G_mode(struct lan743x_adapter *adapter,
				      bool *status)
{}

static int lan743x_sgmii_aneg_update(struct lan743x_adapter *adapter)
{}

static int lan743x_pcs_seq_state(struct lan743x_adapter *adapter, u8 state)
{}

static int lan743x_sgmii_config(struct lan743x_adapter *adapter)
{}

static void lan743x_mac_set_address(struct lan743x_adapter *adapter,
				    u8 *addr)
{}

static int lan743x_mac_init(struct lan743x_adapter *adapter)
{}

static int lan743x_mac_open(struct lan743x_adapter *adapter)
{}

static void lan743x_mac_close(struct lan743x_adapter *adapter)
{}

void lan743x_mac_flow_ctrl_set_enables(struct lan743x_adapter *adapter,
				       bool tx_enable, bool rx_enable)
{}

static int lan743x_mac_set_mtu(struct lan743x_adapter *adapter, int new_mtu)
{}

/* PHY */
static int lan743x_phy_reset(struct lan743x_adapter *adapter)
{}

static void lan743x_phy_update_flowcontrol(struct lan743x_adapter *adapter,
					   u16 local_adv, u16 remote_adv)
{}

static int lan743x_phy_init(struct lan743x_adapter *adapter)
{}

static void lan743x_phy_link_status_change(struct net_device *netdev)
{}

static void lan743x_phy_close(struct lan743x_adapter *adapter)
{}

static void lan743x_phy_interface_select(struct lan743x_adapter *adapter)
{}

static int lan743x_phy_open(struct lan743x_adapter *adapter)
{}

static void lan743x_rfe_open(struct lan743x_adapter *adapter)
{}

static void lan743x_rfe_update_mac_address(struct lan743x_adapter *adapter)
{}

static void lan743x_rfe_set_multicast(struct lan743x_adapter *adapter)
{}

static int lan743x_dmac_init(struct lan743x_adapter *adapter)
{}

static int lan743x_dmac_tx_get_state(struct lan743x_adapter *adapter,
				     int tx_channel)
{}

static int lan743x_dmac_tx_wait_till_stopped(struct lan743x_adapter *adapter,
					     int tx_channel)
{}

static int lan743x_dmac_rx_get_state(struct lan743x_adapter *adapter,
				     int rx_channel)
{}

static int lan743x_dmac_rx_wait_till_stopped(struct lan743x_adapter *adapter,
					     int rx_channel)
{}

static void lan743x_tx_release_desc(struct lan743x_tx *tx,
				    int descriptor_index, bool cleanup)
{}

static int lan743x_tx_next_index(struct lan743x_tx *tx, int index)
{}

static void lan743x_tx_release_completed_descriptors(struct lan743x_tx *tx)
{}

static void lan743x_tx_release_all_descriptors(struct lan743x_tx *tx)
{}

static int lan743x_tx_get_desc_cnt(struct lan743x_tx *tx,
				   struct sk_buff *skb)
{}

static int lan743x_tx_get_avail_desc(struct lan743x_tx *tx)
{}

static void lan743x_rx_cfg_b_tstamp_config(struct lan743x_adapter *adapter,
					   int rx_ts_config)
{}

int lan743x_rx_set_tstamp_mode(struct lan743x_adapter *adapter,
			       int rx_filter)
{}

void lan743x_tx_set_timestamping_mode(struct lan743x_tx *tx,
				      bool enable_timestamping,
				      bool enable_onestep_sync)
{}

static int lan743x_tx_frame_start(struct lan743x_tx *tx,
				  unsigned char *first_buffer,
				  unsigned int first_buffer_length,
				  unsigned int frame_length,
				  bool time_stamp,
				  bool check_sum)
{}

static void lan743x_tx_frame_add_lso(struct lan743x_tx *tx,
				     unsigned int frame_length,
				     int nr_frags)
{}

static int lan743x_tx_frame_add_fragment(struct lan743x_tx *tx,
					 const skb_frag_t *fragment,
					 unsigned int frame_length)
{}

static void lan743x_tx_frame_end(struct lan743x_tx *tx,
				 struct sk_buff *skb,
				 bool time_stamp,
				 bool ignore_sync)
{}

static netdev_tx_t lan743x_tx_xmit_frame(struct lan743x_tx *tx,
					 struct sk_buff *skb)
{}

static int lan743x_tx_napi_poll(struct napi_struct *napi, int weight)
{}

static void lan743x_tx_ring_cleanup(struct lan743x_tx *tx)
{}

static int lan743x_tx_ring_init(struct lan743x_tx *tx)
{}

static void lan743x_tx_close(struct lan743x_tx *tx)
{}

static int lan743x_tx_open(struct lan743x_tx *tx)
{}

static int lan743x_rx_next_index(struct lan743x_rx *rx, int index)
{}

static void lan743x_rx_update_tail(struct lan743x_rx *rx, int index)
{}

static int lan743x_rx_init_ring_element(struct lan743x_rx *rx, int index,
					gfp_t gfp)
{}

static void lan743x_rx_reuse_ring_element(struct lan743x_rx *rx, int index)
{}

static void lan743x_rx_release_ring_element(struct lan743x_rx *rx, int index)
{}

static struct sk_buff *
lan743x_rx_trim_skb(struct sk_buff *skb, int frame_length)
{}

static int lan743x_rx_process_buffer(struct lan743x_rx *rx)
{}

static int lan743x_rx_napi_poll(struct napi_struct *napi, int weight)
{}

static void lan743x_rx_ring_cleanup(struct lan743x_rx *rx)
{}

static int lan743x_rx_ring_init(struct lan743x_rx *rx)
{}

static void lan743x_rx_close(struct lan743x_rx *rx)
{}

static int lan743x_rx_open(struct lan743x_rx *rx)
{}

static int lan743x_netdev_close(struct net_device *netdev)
{}

static int lan743x_netdev_open(struct net_device *netdev)
{}

static netdev_tx_t lan743x_netdev_xmit_frame(struct sk_buff *skb,
					     struct net_device *netdev)
{}

static int lan743x_netdev_ioctl(struct net_device *netdev,
				struct ifreq *ifr, int cmd)
{}

static void lan743x_netdev_set_multicast(struct net_device *netdev)
{}

static int lan743x_netdev_change_mtu(struct net_device *netdev, int new_mtu)
{}

static void lan743x_netdev_get_stats64(struct net_device *netdev,
				       struct rtnl_link_stats64 *stats)
{}

static int lan743x_netdev_set_mac_address(struct net_device *netdev,
					  void *addr)
{}

static const struct net_device_ops lan743x_netdev_ops =;

static void lan743x_hardware_cleanup(struct lan743x_adapter *adapter)
{}

static void lan743x_mdiobus_cleanup(struct lan743x_adapter *adapter)
{}

static void lan743x_full_cleanup(struct lan743x_adapter *adapter)
{}

static void pci11x1x_set_rfe_rd_fifo_threshold(struct lan743x_adapter *adapter)
{}

static int lan743x_hardware_init(struct lan743x_adapter *adapter,
				 struct pci_dev *pdev)
{}

static int lan743x_mdiobus_init(struct lan743x_adapter *adapter)
{}

/* lan743x_pcidev_probe - Device Initialization Routine
 * @pdev: PCI device information struct
 * @id: entry in lan743x_pci_tbl
 *
 * Returns 0 on success, negative on failure
 *
 * initializes an adapter identified by a pci_dev structure.
 * The OS initialization, configuring of the adapter private structure,
 * and a hardware reset occur.
 **/
static int lan743x_pcidev_probe(struct pci_dev *pdev,
				const struct pci_device_id *id)
{}

/**
 * lan743x_pcidev_remove - Device Removal Routine
 * @pdev: PCI device information struct
 *
 * this is called by the PCI subsystem to alert the driver
 * that it should release a PCI device.  This could be caused by a
 * Hot-Plug event, or because the driver is going to be removed from
 * memory.
 **/
static void lan743x_pcidev_remove(struct pci_dev *pdev)
{}

static void lan743x_pcidev_shutdown(struct pci_dev *pdev)
{}

#ifdef CONFIG_PM_SLEEP
static u16 lan743x_pm_wakeframe_crc16(const u8 *buf, int len)
{}

static void lan743x_pm_set_wol(struct lan743x_adapter *adapter)
{}

static int lan743x_pm_suspend(struct device *dev)
{}

static int lan743x_pm_resume(struct device *dev)
{}

static const struct dev_pm_ops lan743x_pm_ops =;
#endif /* CONFIG_PM_SLEEP */

static const struct pci_device_id lan743x_pcidev_tbl[] =;

MODULE_DEVICE_TABLE(pci, lan743x_pcidev_tbl);

static struct pci_driver lan743x_pcidev_driver =;

module_pci_driver();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();