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: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
3201d3130e
commit
34b0368c68
3 changed files with 13 additions and 1 deletions
|
@ -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,
|
||||||
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,
|
||||||
"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);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue