Commit 34b0368c authored by Peter P Waskiewicz Jr's avatar Peter P Waskiewicz Jr Committed by David S. Miller

ixgbe: Display EEPROM version in ethtool -i queries

Currently ixgbe does not display the EEPROM version in ethtool -i, where
other drivers do.  The EEPROM version is located at offset 0x29.  This
patch adds support to display it.
Signed-off-by: default avatarPeter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3201d313
...@@ -310,6 +310,8 @@ struct ixgbe_adapter { ...@@ -310,6 +310,8 @@ struct ixgbe_adapter {
struct work_struct watchdog_task; struct work_struct watchdog_task;
struct work_struct sfp_task; struct work_struct sfp_task;
struct timer_list sfp_timer; struct timer_list sfp_timer;
u16 eeprom_version;
}; };
enum ixbge_state_t { enum ixbge_state_t {
......
...@@ -679,10 +679,17 @@ static void ixgbe_get_drvinfo(struct net_device *netdev, ...@@ -679,10 +679,17 @@ static void ixgbe_get_drvinfo(struct net_device *netdev,
struct ethtool_drvinfo *drvinfo) struct ethtool_drvinfo *drvinfo)
{ {
struct ixgbe_adapter *adapter = netdev_priv(netdev); struct ixgbe_adapter *adapter = netdev_priv(netdev);
char firmware_version[32];
strncpy(drvinfo->driver, ixgbe_driver_name, 32); strncpy(drvinfo->driver, ixgbe_driver_name, 32);
strncpy(drvinfo->version, ixgbe_driver_version, 32); strncpy(drvinfo->version, ixgbe_driver_version, 32);
strncpy(drvinfo->fw_version, "N/A", 32);
sprintf(firmware_version, "%d.%d-%d",
(adapter->eeprom_version & 0xF000) >> 12,
(adapter->eeprom_version & 0x0FF0) >> 4,
adapter->eeprom_version & 0x000F);
strncpy(drvinfo->fw_version, firmware_version, 32);
strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32); strncpy(drvinfo->bus_info, pci_name(adapter->pdev), 32);
drvinfo->n_stats = IXGBE_STATS_LEN; drvinfo->n_stats = IXGBE_STATS_LEN;
drvinfo->regdump_len = ixgbe_get_regs_len(netdev); drvinfo->regdump_len = ixgbe_get_regs_len(netdev);
......
...@@ -4191,6 +4191,9 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, ...@@ -4191,6 +4191,9 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev,
"PCI-Express slot is required.\n"); "PCI-Express slot is required.\n");
} }
/* save off EEPROM version number */
hw->eeprom.ops.read(hw, 0x29, &adapter->eeprom_version);
/* reset the hardware with the new settings */ /* reset the hardware with the new settings */
hw->mac.ops.start_hw(hw); hw->mac.ops.start_hw(hw);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment