bnx2x: Updating regdump_len at drvinfo
Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
938cf5416d
Коммит
0d28e49a26
|
@ -8947,50 +8947,15 @@ static int bnx2x_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#define PHY_FW_VER_LEN 10
|
||||
|
||||
static void bnx2x_get_drvinfo(struct net_device *dev,
|
||||
struct ethtool_drvinfo *info)
|
||||
{
|
||||
struct bnx2x *bp = netdev_priv(dev);
|
||||
u8 phy_fw_ver[PHY_FW_VER_LEN];
|
||||
|
||||
strcpy(info->driver, DRV_MODULE_NAME);
|
||||
strcpy(info->version, DRV_MODULE_VERSION);
|
||||
|
||||
phy_fw_ver[0] = '\0';
|
||||
if (bp->port.pmf) {
|
||||
bnx2x_acquire_phy_lock(bp);
|
||||
bnx2x_get_ext_phy_fw_version(&bp->link_params,
|
||||
(bp->state != BNX2X_STATE_CLOSED),
|
||||
phy_fw_ver, PHY_FW_VER_LEN);
|
||||
bnx2x_release_phy_lock(bp);
|
||||
}
|
||||
|
||||
snprintf(info->fw_version, 32, "BC:%d.%d.%d%s%s",
|
||||
(bp->common.bc_ver & 0xff0000) >> 16,
|
||||
(bp->common.bc_ver & 0xff00) >> 8,
|
||||
(bp->common.bc_ver & 0xff),
|
||||
((phy_fw_ver[0] != '\0') ? " PHY:" : ""), phy_fw_ver);
|
||||
strcpy(info->bus_info, pci_name(bp->pdev));
|
||||
info->n_stats = BNX2X_NUM_STATS;
|
||||
info->testinfo_len = BNX2X_NUM_TESTS;
|
||||
info->eedump_len = bp->common.flash_size;
|
||||
info->regdump_len = 0;
|
||||
}
|
||||
|
||||
#define IS_E1_ONLINE(info) (((info) & RI_E1_ONLINE) == RI_E1_ONLINE)
|
||||
#define IS_E1H_ONLINE(info) (((info) & RI_E1H_ONLINE) == RI_E1H_ONLINE)
|
||||
|
||||
static int bnx2x_get_regs_len(struct net_device *dev)
|
||||
{
|
||||
static u32 regdump_len;
|
||||
struct bnx2x *bp = netdev_priv(dev);
|
||||
int regdump_len = 0;
|
||||
int i;
|
||||
|
||||
if (regdump_len)
|
||||
return regdump_len;
|
||||
|
||||
if (CHIP_IS_E1(bp)) {
|
||||
for (i = 0; i < REGS_COUNT; i++)
|
||||
if (IS_E1_ONLINE(reg_addrs[i].info))
|
||||
|
@ -9057,6 +9022,38 @@ static void bnx2x_get_regs(struct net_device *dev,
|
|||
}
|
||||
}
|
||||
|
||||
#define PHY_FW_VER_LEN 10
|
||||
|
||||
static void bnx2x_get_drvinfo(struct net_device *dev,
|
||||
struct ethtool_drvinfo *info)
|
||||
{
|
||||
struct bnx2x *bp = netdev_priv(dev);
|
||||
u8 phy_fw_ver[PHY_FW_VER_LEN];
|
||||
|
||||
strcpy(info->driver, DRV_MODULE_NAME);
|
||||
strcpy(info->version, DRV_MODULE_VERSION);
|
||||
|
||||
phy_fw_ver[0] = '\0';
|
||||
if (bp->port.pmf) {
|
||||
bnx2x_acquire_phy_lock(bp);
|
||||
bnx2x_get_ext_phy_fw_version(&bp->link_params,
|
||||
(bp->state != BNX2X_STATE_CLOSED),
|
||||
phy_fw_ver, PHY_FW_VER_LEN);
|
||||
bnx2x_release_phy_lock(bp);
|
||||
}
|
||||
|
||||
snprintf(info->fw_version, 32, "BC:%d.%d.%d%s%s",
|
||||
(bp->common.bc_ver & 0xff0000) >> 16,
|
||||
(bp->common.bc_ver & 0xff00) >> 8,
|
||||
(bp->common.bc_ver & 0xff),
|
||||
((phy_fw_ver[0] != '\0') ? " PHY:" : ""), phy_fw_ver);
|
||||
strcpy(info->bus_info, pci_name(bp->pdev));
|
||||
info->n_stats = BNX2X_NUM_STATS;
|
||||
info->testinfo_len = BNX2X_NUM_TESTS;
|
||||
info->eedump_len = bp->common.flash_size;
|
||||
info->regdump_len = bnx2x_get_regs_len(dev);
|
||||
}
|
||||
|
||||
static void bnx2x_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
|
||||
{
|
||||
struct bnx2x *bp = netdev_priv(dev);
|
||||
|
|
Загрузка…
Ссылка в новой задаче