diff options
author | Emil Tantilov <emil.s.tantilov@intel.com> | 2011-09-29 01:01:29 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-10-17 20:04:30 -0400 |
commit | 15e5209f1c606e7c3e9b268f5c7b70b414a859cb (patch) | |
tree | 866ec71b0ee79296149d6bee45ee5f70d3db9952 | |
parent | 2fa5eef4d11383f1cfa99d31275e77dcf2d6a0a9 (diff) |
ixgbe: change the eeprom version reported by ethtool
Use 32bit value starting at offset 0x2d for displaying the firmware
version in ethtool. This should work for all current ixgbe HW
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe.h | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | 13 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 |
3 files changed, 13 insertions, 10 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe.h b/drivers/net/ethernet/intel/ixgbe/ixgbe.h index 6c4d693be08d..a8368d5cf686 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe.h | |||
@@ -497,7 +497,8 @@ struct ixgbe_adapter { | |||
497 | u64 rsc_total_count; | 497 | u64 rsc_total_count; |
498 | u64 rsc_total_flush; | 498 | u64 rsc_total_flush; |
499 | u32 wol; | 499 | u32 wol; |
500 | u16 eeprom_version; | 500 | u16 eeprom_verh; |
501 | u16 eeprom_verl; | ||
501 | u16 eeprom_cap; | 502 | u16 eeprom_cap; |
502 | 503 | ||
503 | int node; | 504 | int node; |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index 7acfce317f4e..70d58c3849b0 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c | |||
@@ -889,21 +889,22 @@ static void ixgbe_get_drvinfo(struct net_device *netdev, | |||
889 | { | 889 | { |
890 | struct ixgbe_adapter *adapter = netdev_priv(netdev); | 890 | struct ixgbe_adapter *adapter = netdev_priv(netdev); |
891 | char firmware_version[32]; | 891 | char firmware_version[32]; |
892 | u32 nvm_track_id; | ||
892 | 893 | ||
893 | strncpy(drvinfo->driver, ixgbe_driver_name, | 894 | strncpy(drvinfo->driver, ixgbe_driver_name, |
894 | sizeof(drvinfo->driver) - 1); | 895 | sizeof(drvinfo->driver) - 1); |
895 | strncpy(drvinfo->version, ixgbe_driver_version, | 896 | strncpy(drvinfo->version, ixgbe_driver_version, |
896 | sizeof(drvinfo->version) - 1); | 897 | sizeof(drvinfo->version) - 1); |
897 | 898 | ||
898 | snprintf(firmware_version, sizeof(firmware_version), "%d.%d-%d", | 899 | nvm_track_id = (adapter->eeprom_verh << 16) | |
899 | (adapter->eeprom_version & 0xF000) >> 12, | 900 | adapter->eeprom_verl; |
900 | (adapter->eeprom_version & 0x0FF0) >> 4, | 901 | snprintf(firmware_version, sizeof(firmware_version), "0x%08x", |
901 | adapter->eeprom_version & 0x000F); | 902 | nvm_track_id); |
902 | 903 | ||
903 | strncpy(drvinfo->fw_version, firmware_version, | 904 | strncpy(drvinfo->fw_version, firmware_version, |
904 | sizeof(drvinfo->fw_version)); | 905 | sizeof(drvinfo->fw_version) - 1); |
905 | strncpy(drvinfo->bus_info, pci_name(adapter->pdev), | 906 | strncpy(drvinfo->bus_info, pci_name(adapter->pdev), |
906 | sizeof(drvinfo->bus_info)); | 907 | sizeof(drvinfo->bus_info) - 1); |
907 | drvinfo->n_stats = IXGBE_STATS_LEN; | 908 | drvinfo->n_stats = IXGBE_STATS_LEN; |
908 | drvinfo->testinfo_len = IXGBE_TEST_LEN; | 909 | drvinfo->testinfo_len = IXGBE_TEST_LEN; |
909 | drvinfo->regdump_len = ixgbe_get_regs_len(netdev); | 910 | drvinfo->regdump_len = ixgbe_get_regs_len(netdev); |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index fb7d8842a362..8075d11b4cde 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | |||
@@ -7640,6 +7640,10 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, | |||
7640 | } | 7640 | } |
7641 | device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol); | 7641 | device_set_wakeup_enable(&adapter->pdev->dev, adapter->wol); |
7642 | 7642 | ||
7643 | /* save off EEPROM version number */ | ||
7644 | hw->eeprom.ops.read(hw, 0x2e, &adapter->eeprom_verh); | ||
7645 | hw->eeprom.ops.read(hw, 0x2d, &adapter->eeprom_verl); | ||
7646 | |||
7643 | /* pick up the PCI bus settings for reporting later */ | 7647 | /* pick up the PCI bus settings for reporting later */ |
7644 | hw->mac.ops.get_bus_info(hw); | 7648 | hw->mac.ops.get_bus_info(hw); |
7645 | 7649 | ||
@@ -7672,9 +7676,6 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, | |||
7672 | "is required.\n"); | 7676 | "is required.\n"); |
7673 | } | 7677 | } |
7674 | 7678 | ||
7675 | /* save off EEPROM version number */ | ||
7676 | hw->eeprom.ops.read(hw, 0x29, &adapter->eeprom_version); | ||
7677 | |||
7678 | /* reset the hardware with the new settings */ | 7679 | /* reset the hardware with the new settings */ |
7679 | err = hw->mac.ops.start_hw(hw); | 7680 | err = hw->mac.ops.start_hw(hw); |
7680 | 7681 | ||