#include <linux/delay.h>
#include <linux/slab.h>
#include "efx.h"
#include "mdio_10g.h"
#include "phy.h"
#include "nic.h"
#define TXC_REQUIRED_DEVS …
#define TXC_LOOPBACKS …
#define TXCNAME …
#define TXC_MAX_RESET_TIME …
#define TXC_RESET_WAIT …
#define TXC_BIST_DURATION …
#define TXC_GLRGS_GLCMD …
#define TXC_GLCMD_L01PD_LBN …
#define TXC_GLCMD_L23PD_LBN …
#define TXC_GLCMD_LMTSWRST_LBN …
#define TXC_GLRGS_GSGQLCTL …
#define TXC_GSGQLCT_SGQLEN_LBN …
#define TXC_GSGQLCT_LNSL_LBN …
#define TXC_GSGQLCT_LNSL_WIDTH …
#define TXC_ALRGS_ATXCTL …
#define TXC_ATXCTL_TXPD3_LBN …
#define TXC_ATXCTL_TXPD2_LBN …
#define TXC_ATXCTL_TXPD1_LBN …
#define TXC_ATXCTL_TXPD0_LBN …
#define TXC_ALRGS_ATXAMP0 …
#define TXC_ALRGS_ATXAMP1 …
#define TXC_ATXAMP_LANE02_LBN …
#define TXC_ATXAMP_LANE13_LBN …
#define TXC_ATXAMP_1280_mV …
#define TXC_ATXAMP_1200_mV …
#define TXC_ATXAMP_1120_mV …
#define TXC_ATXAMP_1060_mV …
#define TXC_ATXAMP_0820_mV …
#define TXC_ATXAMP_0720_mV …
#define TXC_ATXAMP_0580_mV …
#define TXC_ATXAMP_0440_mV …
#define TXC_ATXAMP_0820_BOTH …
#define TXC_ATXAMP_DEFAULT …
#define TXC_ALRGS_ATXPRE0 …
#define TXC_ALRGS_ATXPRE1 …
#define TXC_ATXPRE_NONE …
#define TXC_ATXPRE_DEFAULT …
#define TXC_ALRGS_ARXCTL …
#define TXC_ARXCTL_RXPD3_LBN …
#define TXC_ARXCTL_RXPD2_LBN …
#define TXC_ARXCTL_RXPD1_LBN …
#define TXC_ARXCTL_RXPD0_LBN …
#define TXC_MRGS_CTL …
#define TXC_MCTL_RESET_LBN …
#define TXC_MCTL_TXLED_LBN …
#define TXC_MCTL_RXLED_LBN …
#define TXC_GPIO_OUTPUT …
#define TXC_GPIO_DIR …
#define TXC_BIST_CTL …
#define TXC_BIST_TXFRMCNT …
#define TXC_BIST_RX0FRMCNT …
#define TXC_BIST_RX1FRMCNT …
#define TXC_BIST_RX2FRMCNT …
#define TXC_BIST_RX3FRMCNT …
#define TXC_BIST_RX0ERRCNT …
#define TXC_BIST_RX1ERRCNT …
#define TXC_BIST_RX2ERRCNT …
#define TXC_BIST_RX3ERRCNT …
#define TXC_BIST_CTRL_TYPE_LBN …
#define TXC_BIST_CTRL_TYPE_TSD …
#define TXC_BIST_CTRL_TYPE_CRP …
#define TXC_BIST_CTRL_TYPE_CJP …
#define TXC_BIST_CTRL_TYPE_TSR …
#define TXC_BIST_CTRL_B10EN_LBN …
#define TXC_BIST_CTRL_ENAB_LBN …
#define TXC_BIST_CTRL_STOP_LBN …
#define TXC_BIST_CTRL_STRT_LBN …
#define TXC_MTDIABLO_CTRL …
#define TXC_MTDIABLO_CTRL_PMA_LOOP_LBN …
struct txc43128_data { … };
#define BUG10934_RESET_INTERVAL …
static void txc_reset_logic(struct ef4_nic *efx);
void falcon_txc_set_gpio_val(struct ef4_nic *efx, int pin, int on)
{ … }
void falcon_txc_set_gpio_dir(struct ef4_nic *efx, int pin, int dir)
{ … }
static int txc_reset_phy(struct ef4_nic *efx)
{ … }
static int txc_bist_one(struct ef4_nic *efx, int mmd, int test)
{ … }
static int txc_bist(struct ef4_nic *efx)
{ … }
static void txc_apply_defaults(struct ef4_nic *efx)
{ … }
static int txc43128_phy_probe(struct ef4_nic *efx)
{ … }
static int txc43128_phy_init(struct ef4_nic *efx)
{ … }
static void txc_glrgs_lane_power(struct ef4_nic *efx, int mmd)
{ … }
static void txc_analog_lane_power(struct ef4_nic *efx, int mmd)
{ … }
static void txc_set_power(struct ef4_nic *efx)
{ … }
static void txc_reset_logic_mmd(struct ef4_nic *efx, int mmd)
{ … }
static void txc_reset_logic(struct ef4_nic *efx)
{ … }
static bool txc43128_phy_read_link(struct ef4_nic *efx)
{ … }
static int txc43128_phy_reconfigure(struct ef4_nic *efx)
{ … }
static void txc43128_phy_fini(struct ef4_nic *efx)
{ … }
static void txc43128_phy_remove(struct ef4_nic *efx)
{ … }
static bool txc43128_phy_poll(struct ef4_nic *efx)
{ … }
static const char *const txc43128_test_names[] = …;
static const char *txc43128_test_name(struct ef4_nic *efx, unsigned int index)
{ … }
static int txc43128_run_tests(struct ef4_nic *efx, int *results, unsigned flags)
{ … }
static void txc43128_get_link_ksettings(struct ef4_nic *efx,
struct ethtool_link_ksettings *cmd)
{ … }
const struct ef4_phy_operations falcon_txc_phy_ops = …;