aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmil Tantilov <emil.s.tantilov@intel.com>2011-09-29 01:01:29 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2011-10-17 20:04:30 -0400
commit15e5209f1c606e7c3e9b268f5c7b70b414a859cb (patch)
tree866ec71b0ee79296149d6bee45ee5f70d3db9952
parent2fa5eef4d11383f1cfa99d31275e77dcf2d6a0a9 (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.h3
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c13
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c7
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