提交 80a3809d 编写于 作者: R Rasesh Mody 提交者: David S. Miller

bna: Remove get_regs Ethtool Support

Change details:
 - This patch contains removal of get_regs support in bnad_ethtool.c. Thus
   BNA will have minimal register definitions necessary for MBOX and
   interrupt operations
Signed-off-by: NRasesh Mody <rmody@brocade.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 12004ae9
......@@ -288,323 +288,6 @@ bnad_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
strncpy(drvinfo->bus_info, pci_name(bnad->pcidev), ETHTOOL_BUSINFO_LEN);
}
static int
get_regs(struct bnad *bnad, u32 * regs)
{
int num = 0, i;
u32 reg_addr;
unsigned long flags;
#define BNAD_GET_REG(addr) \
do { \
if (regs) \
regs[num++] = readl(bnad->bar0 + (addr)); \
else \
num++; \
} while (0)
spin_lock_irqsave(&bnad->bna_lock, flags);
/* DMA Block Internal Registers */
BNAD_GET_REG(DMA_CTRL_REG0);
BNAD_GET_REG(DMA_CTRL_REG1);
BNAD_GET_REG(DMA_ERR_INT_STATUS);
BNAD_GET_REG(DMA_ERR_INT_ENABLE);
BNAD_GET_REG(DMA_ERR_INT_STATUS_SET);
/* APP Block Register Address Offset from BAR0 */
BNAD_GET_REG(HOSTFN0_INT_STATUS);
BNAD_GET_REG(HOSTFN0_INT_MASK);
BNAD_GET_REG(HOST_PAGE_NUM_FN0);
BNAD_GET_REG(HOST_MSIX_ERR_INDEX_FN0);
BNAD_GET_REG(FN0_PCIE_ERR_REG);
BNAD_GET_REG(FN0_ERR_TYPE_STATUS_REG);
BNAD_GET_REG(FN0_ERR_TYPE_MSK_STATUS_REG);
BNAD_GET_REG(HOSTFN1_INT_STATUS);
BNAD_GET_REG(HOSTFN1_INT_MASK);
BNAD_GET_REG(HOST_PAGE_NUM_FN1);
BNAD_GET_REG(HOST_MSIX_ERR_INDEX_FN1);
BNAD_GET_REG(FN1_PCIE_ERR_REG);
BNAD_GET_REG(FN1_ERR_TYPE_STATUS_REG);
BNAD_GET_REG(FN1_ERR_TYPE_MSK_STATUS_REG);
BNAD_GET_REG(PCIE_MISC_REG);
BNAD_GET_REG(HOST_SEM0_INFO_REG);
BNAD_GET_REG(HOST_SEM1_INFO_REG);
BNAD_GET_REG(HOST_SEM2_INFO_REG);
BNAD_GET_REG(HOST_SEM3_INFO_REG);
BNAD_GET_REG(TEMPSENSE_CNTL_REG);
BNAD_GET_REG(TEMPSENSE_STAT_REG);
BNAD_GET_REG(APP_LOCAL_ERR_STAT);
BNAD_GET_REG(APP_LOCAL_ERR_MSK);
BNAD_GET_REG(PCIE_LNK_ERR_STAT);
BNAD_GET_REG(PCIE_LNK_ERR_MSK);
BNAD_GET_REG(FCOE_FIP_ETH_TYPE);
BNAD_GET_REG(RESV_ETH_TYPE);
BNAD_GET_REG(HOSTFN2_INT_STATUS);
BNAD_GET_REG(HOSTFN2_INT_MASK);
BNAD_GET_REG(HOST_PAGE_NUM_FN2);
BNAD_GET_REG(HOST_MSIX_ERR_INDEX_FN2);
BNAD_GET_REG(FN2_PCIE_ERR_REG);
BNAD_GET_REG(FN2_ERR_TYPE_STATUS_REG);
BNAD_GET_REG(FN2_ERR_TYPE_MSK_STATUS_REG);
BNAD_GET_REG(HOSTFN3_INT_STATUS);
BNAD_GET_REG(HOSTFN3_INT_MASK);
BNAD_GET_REG(HOST_PAGE_NUM_FN3);
BNAD_GET_REG(HOST_MSIX_ERR_INDEX_FN3);
BNAD_GET_REG(FN3_PCIE_ERR_REG);
BNAD_GET_REG(FN3_ERR_TYPE_STATUS_REG);
BNAD_GET_REG(FN3_ERR_TYPE_MSK_STATUS_REG);
/* Host Command Status Registers */
reg_addr = HOST_CMDSTS0_CLR_REG;
for (i = 0; i < 16; i++) {
BNAD_GET_REG(reg_addr);
BNAD_GET_REG(reg_addr + 4);
BNAD_GET_REG(reg_addr + 8);
reg_addr += 0x10;
}
/* Function ID register */
BNAD_GET_REG(FNC_ID_REG);
/* Function personality register */
BNAD_GET_REG(FNC_PERS_REG);
/* Operation mode register */
BNAD_GET_REG(OP_MODE);
/* LPU0 Registers */
BNAD_GET_REG(LPU0_MBOX_CTL_REG);
BNAD_GET_REG(LPU0_MBOX_CMD_REG);
BNAD_GET_REG(LPU0_MBOX_LINK_0REG);
BNAD_GET_REG(LPU1_MBOX_LINK_0REG);
BNAD_GET_REG(LPU0_MBOX_STATUS_0REG);
BNAD_GET_REG(LPU1_MBOX_STATUS_0REG);
BNAD_GET_REG(LPU0_ERR_STATUS_REG);
BNAD_GET_REG(LPU0_ERR_SET_REG);
/* LPU1 Registers */
BNAD_GET_REG(LPU1_MBOX_CTL_REG);
BNAD_GET_REG(LPU1_MBOX_CMD_REG);
BNAD_GET_REG(LPU0_MBOX_LINK_1REG);
BNAD_GET_REG(LPU1_MBOX_LINK_1REG);
BNAD_GET_REG(LPU0_MBOX_STATUS_1REG);
BNAD_GET_REG(LPU1_MBOX_STATUS_1REG);
BNAD_GET_REG(LPU1_ERR_STATUS_REG);
BNAD_GET_REG(LPU1_ERR_SET_REG);
/* PSS Registers */
BNAD_GET_REG(PSS_CTL_REG);
BNAD_GET_REG(PSS_ERR_STATUS_REG);
BNAD_GET_REG(ERR_STATUS_SET);
BNAD_GET_REG(PSS_RAM_ERR_STATUS_REG);
/* Catapult CPQ Registers */
BNAD_GET_REG(HOSTFN0_LPU0_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN0_LPU1_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN0_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN0_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN0_LPU0_MBOX1_CMD_STAT);
BNAD_GET_REG(HOSTFN0_LPU1_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN0_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN0_MBOX1_CMD_STAT);
BNAD_GET_REG(HOSTFN1_LPU0_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN1_LPU1_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN1_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN1_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN1_LPU0_MBOX1_CMD_STAT);
BNAD_GET_REG(HOSTFN1_LPU1_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN1_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN1_MBOX1_CMD_STAT);
BNAD_GET_REG(HOSTFN2_LPU0_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN2_LPU1_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN2_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN2_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN2_LPU0_MBOX1_CMD_STAT);
BNAD_GET_REG(HOSTFN2_LPU1_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN2_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN2_MBOX1_CMD_STAT);
BNAD_GET_REG(HOSTFN3_LPU0_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN3_LPU1_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN3_MBOX0_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN3_MBOX0_CMD_STAT);
BNAD_GET_REG(HOSTFN3_LPU0_MBOX1_CMD_STAT);
BNAD_GET_REG(HOSTFN3_LPU1_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU0_HOSTFN3_MBOX1_CMD_STAT);
BNAD_GET_REG(LPU1_HOSTFN3_MBOX1_CMD_STAT);
/* Host Function Force Parity Error Registers */
BNAD_GET_REG(HOSTFN0_LPU_FORCE_PERR);
BNAD_GET_REG(HOSTFN1_LPU_FORCE_PERR);
BNAD_GET_REG(HOSTFN2_LPU_FORCE_PERR);
BNAD_GET_REG(HOSTFN3_LPU_FORCE_PERR);
/* LL Port[0|1] Halt Mask Registers */
BNAD_GET_REG(LL_HALT_MSK_P0);
BNAD_GET_REG(LL_HALT_MSK_P1);
/* LL Port[0|1] Error Mask Registers */
BNAD_GET_REG(LL_ERR_MSK_P0);
BNAD_GET_REG(LL_ERR_MSK_P1);
/* EMC FLI Registers */
BNAD_GET_REG(FLI_CMD_REG);
BNAD_GET_REG(FLI_ADDR_REG);
BNAD_GET_REG(FLI_CTL_REG);
BNAD_GET_REG(FLI_WRDATA_REG);
BNAD_GET_REG(FLI_RDDATA_REG);
BNAD_GET_REG(FLI_DEV_STATUS_REG);
BNAD_GET_REG(FLI_SIG_WD_REG);
BNAD_GET_REG(FLI_DEV_VENDOR_REG);
BNAD_GET_REG(FLI_ERR_STATUS_REG);
/* RxAdm 0 Registers */
BNAD_GET_REG(RAD0_CTL_REG);
BNAD_GET_REG(RAD0_PE_PARM_REG);
BNAD_GET_REG(RAD0_BCN_REG);
BNAD_GET_REG(RAD0_DEFAULT_REG);
BNAD_GET_REG(RAD0_PROMISC_REG);
BNAD_GET_REG(RAD0_BCNQ_REG);
BNAD_GET_REG(RAD0_DEFAULTQ_REG);
BNAD_GET_REG(RAD0_ERR_STS);
BNAD_GET_REG(RAD0_SET_ERR_STS);
BNAD_GET_REG(RAD0_ERR_INT_EN);
BNAD_GET_REG(RAD0_FIRST_ERR);
BNAD_GET_REG(RAD0_FORCE_ERR);
BNAD_GET_REG(RAD0_MAC_MAN_1H);
BNAD_GET_REG(RAD0_MAC_MAN_1L);
BNAD_GET_REG(RAD0_MAC_MAN_2H);
BNAD_GET_REG(RAD0_MAC_MAN_2L);
BNAD_GET_REG(RAD0_MAC_MAN_3H);
BNAD_GET_REG(RAD0_MAC_MAN_3L);
BNAD_GET_REG(RAD0_MAC_MAN_4H);
BNAD_GET_REG(RAD0_MAC_MAN_4L);
BNAD_GET_REG(RAD0_LAST4_IP);
/* RxAdm 1 Registers */
BNAD_GET_REG(RAD1_CTL_REG);
BNAD_GET_REG(RAD1_PE_PARM_REG);
BNAD_GET_REG(RAD1_BCN_REG);
BNAD_GET_REG(RAD1_DEFAULT_REG);
BNAD_GET_REG(RAD1_PROMISC_REG);
BNAD_GET_REG(RAD1_BCNQ_REG);
BNAD_GET_REG(RAD1_DEFAULTQ_REG);
BNAD_GET_REG(RAD1_ERR_STS);
BNAD_GET_REG(RAD1_SET_ERR_STS);
BNAD_GET_REG(RAD1_ERR_INT_EN);
/* TxA0 Registers */
BNAD_GET_REG(TXA0_CTRL_REG);
/* TxA0 TSO Sequence # Registers (RO) */
for (i = 0; i < 8; i++) {
BNAD_GET_REG(TXA0_TSO_TCP_SEQ_REG(i));
BNAD_GET_REG(TXA0_TSO_IP_INFO_REG(i));
}
/* TxA1 Registers */
BNAD_GET_REG(TXA1_CTRL_REG);
/* TxA1 TSO Sequence # Registers (RO) */
for (i = 0; i < 8; i++) {
BNAD_GET_REG(TXA1_TSO_TCP_SEQ_REG(i));
BNAD_GET_REG(TXA1_TSO_IP_INFO_REG(i));
}
/* RxA Registers */
BNAD_GET_REG(RXA0_CTL_REG);
BNAD_GET_REG(RXA1_CTL_REG);
/* PLB0 Registers */
BNAD_GET_REG(PLB0_ECM_TIMER_REG);
BNAD_GET_REG(PLB0_RL_CTL);
for (i = 0; i < 8; i++)
BNAD_GET_REG(PLB0_RL_MAX_BC(i));
BNAD_GET_REG(PLB0_RL_TU_PRIO);
for (i = 0; i < 8; i++)
BNAD_GET_REG(PLB0_RL_BYTE_CNT(i));
BNAD_GET_REG(PLB0_RL_MIN_REG);
BNAD_GET_REG(PLB0_RL_MAX_REG);
BNAD_GET_REG(PLB0_EMS_ADD_REG);
/* PLB1 Registers */
BNAD_GET_REG(PLB1_ECM_TIMER_REG);
BNAD_GET_REG(PLB1_RL_CTL);
for (i = 0; i < 8; i++)
BNAD_GET_REG(PLB1_RL_MAX_BC(i));
BNAD_GET_REG(PLB1_RL_TU_PRIO);
for (i = 0; i < 8; i++)
BNAD_GET_REG(PLB1_RL_BYTE_CNT(i));
BNAD_GET_REG(PLB1_RL_MIN_REG);
BNAD_GET_REG(PLB1_RL_MAX_REG);
BNAD_GET_REG(PLB1_EMS_ADD_REG);
/* HQM Control Register */
BNAD_GET_REG(HQM0_CTL_REG);
BNAD_GET_REG(HQM0_RXQ_STOP_SEM);
BNAD_GET_REG(HQM0_TXQ_STOP_SEM);
BNAD_GET_REG(HQM1_CTL_REG);
BNAD_GET_REG(HQM1_RXQ_STOP_SEM);
BNAD_GET_REG(HQM1_TXQ_STOP_SEM);
/* LUT Registers */
BNAD_GET_REG(LUT0_ERR_STS);
BNAD_GET_REG(LUT0_SET_ERR_STS);
BNAD_GET_REG(LUT1_ERR_STS);
BNAD_GET_REG(LUT1_SET_ERR_STS);
/* TRC Registers */
BNAD_GET_REG(TRC_CTL_REG);
BNAD_GET_REG(TRC_MODS_REG);
BNAD_GET_REG(TRC_TRGC_REG);
BNAD_GET_REG(TRC_CNT1_REG);
BNAD_GET_REG(TRC_CNT2_REG);
BNAD_GET_REG(TRC_NXTS_REG);
BNAD_GET_REG(TRC_DIRR_REG);
for (i = 0; i < 10; i++)
BNAD_GET_REG(TRC_TRGM_REG(i));
for (i = 0; i < 10; i++)
BNAD_GET_REG(TRC_NXTM_REG(i));
for (i = 0; i < 10; i++)
BNAD_GET_REG(TRC_STRM_REG(i));
spin_unlock_irqrestore(&bnad->bna_lock, flags);
#undef BNAD_GET_REG
return num;
}
static int
bnad_get_regs_len(struct net_device *netdev)
{
int ret = get_regs(netdev_priv(netdev), NULL) * sizeof(u32);
return ret;
}
static void
bnad_get_regs(struct net_device *netdev, struct ethtool_regs *regs, void *buf)
{
memset(buf, 0, bnad_get_regs_len(netdev));
get_regs(netdev_priv(netdev), buf);
}
static void
bnad_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wolinfo)
{
......@@ -1192,8 +875,6 @@ static struct ethtool_ops bnad_ethtool_ops = {
.get_settings = bnad_get_settings,
.set_settings = bnad_set_settings,
.get_drvinfo = bnad_get_drvinfo,
.get_regs_len = bnad_get_regs_len,
.get_regs = bnad_get_regs,
.get_wol = bnad_get_wol,
.get_link = ethtool_op_get_link,
.get_coalesce = bnad_get_coalesce,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册