aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet
diff options
context:
space:
mode:
authorShannon Nelson <shannon.nelson@intel.com>2015-02-24 01:58:41 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2015-03-03 04:07:24 -0500
commit7edf810c61ce054afc8798178d829d2f139bb976 (patch)
tree577e9a6e631676b4d3e3b28b10d2824a43956129 /drivers/net/ethernet
parentd40d00b1c24d4ecf23b24cb8e16027839bb24a59 (diff)
i40e/i40evf: print FW build number in version string
Include the FW build number in the formatted FW version string. In order to fit within ethtool's 32 character limit, the etrack's unused high order bits are trimmed as is the leading 0 for the NVM version. This leaves us with 2 character left for if/when the etrack id goes to 5 hex chars and the NVM major number goes to 2 chars. Change-ID: Icb004c4b9b14a2f54dd200b467fcc1d7b9297308 Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet')
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e.h6
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_adminq.c1
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_adminq.h1
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_common.c12
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_prototype.h1
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40e_adminq.h1
6 files changed, 15 insertions, 7 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e.h b/drivers/net/ethernet/intel/i40e/i40e.h
index 1e9576bb911e..5fa4eab779d2 100644
--- a/drivers/net/ethernet/intel/i40e/i40e.h
+++ b/drivers/net/ethernet/intel/i40e/i40e.h
@@ -557,14 +557,14 @@ static inline char *i40e_fw_version_str(struct i40e_hw *hw)
557 static char buf[32]; 557 static char buf[32];
558 558
559 snprintf(buf, sizeof(buf), 559 snprintf(buf, sizeof(buf),
560 "f%d.%d a%d.%d n%02x.%02x e%08x", 560 "f%d.%d.%05d a%d.%d n%x.%02x e%x",
561 hw->aq.fw_maj_ver, hw->aq.fw_min_ver, 561 hw->aq.fw_maj_ver, hw->aq.fw_min_ver, hw->aq.fw_build,
562 hw->aq.api_maj_ver, hw->aq.api_min_ver, 562 hw->aq.api_maj_ver, hw->aq.api_min_ver,
563 (hw->nvm.version & I40E_NVM_VERSION_HI_MASK) >> 563 (hw->nvm.version & I40E_NVM_VERSION_HI_MASK) >>
564 I40E_NVM_VERSION_HI_SHIFT, 564 I40E_NVM_VERSION_HI_SHIFT,
565 (hw->nvm.version & I40E_NVM_VERSION_LO_MASK) >> 565 (hw->nvm.version & I40E_NVM_VERSION_LO_MASK) >>
566 I40E_NVM_VERSION_LO_SHIFT, 566 I40E_NVM_VERSION_LO_SHIFT,
567 hw->nvm.eetrack); 567 (hw->nvm.eetrack & 0xffffff));
568 568
569 return buf; 569 return buf;
570} 570}
diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq.c b/drivers/net/ethernet/intel/i40e/i40e_adminq.c
index 77f6254a89ac..dc2ed359e945 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_adminq.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_adminq.c
@@ -592,6 +592,7 @@ i40e_status i40e_init_adminq(struct i40e_hw *hw)
592 ret_code = i40e_aq_get_firmware_version(hw, 592 ret_code = i40e_aq_get_firmware_version(hw,
593 &hw->aq.fw_maj_ver, 593 &hw->aq.fw_maj_ver,
594 &hw->aq.fw_min_ver, 594 &hw->aq.fw_min_ver,
595 &hw->aq.fw_build,
595 &hw->aq.api_maj_ver, 596 &hw->aq.api_maj_ver,
596 &hw->aq.api_min_ver, 597 &hw->aq.api_min_ver,
597 NULL); 598 NULL);
diff --git a/drivers/net/ethernet/intel/i40e/i40e_adminq.h b/drivers/net/ethernet/intel/i40e/i40e_adminq.h
index de17b6fbcc4e..28e519a50de4 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_adminq.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_adminq.h
@@ -93,6 +93,7 @@ struct i40e_adminq_info {
93 u16 asq_buf_size; /* send queue buffer size */ 93 u16 asq_buf_size; /* send queue buffer size */
94 u16 fw_maj_ver; /* firmware major version */ 94 u16 fw_maj_ver; /* firmware major version */
95 u16 fw_min_ver; /* firmware minor version */ 95 u16 fw_min_ver; /* firmware minor version */
96 u32 fw_build; /* firmware build number */
96 u16 api_maj_ver; /* api major version */ 97 u16 api_maj_ver; /* api major version */
97 u16 api_min_ver; /* api minor version */ 98 u16 api_min_ver; /* api minor version */
98 bool nvm_release_on_done; 99 bool nvm_release_on_done;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c
index 88b2d45578dd..cb19c377e0cc 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_common.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_common.c
@@ -1737,6 +1737,7 @@ i40e_status i40e_aq_get_switch_config(struct i40e_hw *hw,
1737 * @hw: pointer to the hw struct 1737 * @hw: pointer to the hw struct
1738 * @fw_major_version: firmware major version 1738 * @fw_major_version: firmware major version
1739 * @fw_minor_version: firmware minor version 1739 * @fw_minor_version: firmware minor version
1740 * @fw_build: firmware build number
1740 * @api_major_version: major queue version 1741 * @api_major_version: major queue version
1741 * @api_minor_version: minor queue version 1742 * @api_minor_version: minor queue version
1742 * @cmd_details: pointer to command details structure or NULL 1743 * @cmd_details: pointer to command details structure or NULL
@@ -1745,6 +1746,7 @@ i40e_status i40e_aq_get_switch_config(struct i40e_hw *hw,
1745 **/ 1746 **/
1746i40e_status i40e_aq_get_firmware_version(struct i40e_hw *hw, 1747i40e_status i40e_aq_get_firmware_version(struct i40e_hw *hw,
1747 u16 *fw_major_version, u16 *fw_minor_version, 1748 u16 *fw_major_version, u16 *fw_minor_version,
1749 u32 *fw_build,
1748 u16 *api_major_version, u16 *api_minor_version, 1750 u16 *api_major_version, u16 *api_minor_version,
1749 struct i40e_asq_cmd_details *cmd_details) 1751 struct i40e_asq_cmd_details *cmd_details)
1750{ 1752{
@@ -1758,13 +1760,15 @@ i40e_status i40e_aq_get_firmware_version(struct i40e_hw *hw,
1758 status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details); 1760 status = i40e_asq_send_command(hw, &desc, NULL, 0, cmd_details);
1759 1761
1760 if (!status) { 1762 if (!status) {
1761 if (fw_major_version != NULL) 1763 if (fw_major_version)
1762 *fw_major_version = le16_to_cpu(resp->fw_major); 1764 *fw_major_version = le16_to_cpu(resp->fw_major);
1763 if (fw_minor_version != NULL) 1765 if (fw_minor_version)
1764 *fw_minor_version = le16_to_cpu(resp->fw_minor); 1766 *fw_minor_version = le16_to_cpu(resp->fw_minor);
1765 if (api_major_version != NULL) 1767 if (fw_build)
1768 *fw_build = le32_to_cpu(resp->fw_build);
1769 if (api_major_version)
1766 *api_major_version = le16_to_cpu(resp->api_major); 1770 *api_major_version = le16_to_cpu(resp->api_major);
1767 if (api_minor_version != NULL) 1771 if (api_minor_version)
1768 *api_minor_version = le16_to_cpu(resp->api_minor); 1772 *api_minor_version = le16_to_cpu(resp->api_minor);
1769 } 1773 }
1770 1774
diff --git a/drivers/net/ethernet/intel/i40e/i40e_prototype.h b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
index 8cab460865f5..fea0d37ecc72 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_prototype.h
+++ b/drivers/net/ethernet/intel/i40e/i40e_prototype.h
@@ -66,6 +66,7 @@ void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink);
66 66
67i40e_status i40e_aq_get_firmware_version(struct i40e_hw *hw, 67i40e_status i40e_aq_get_firmware_version(struct i40e_hw *hw,
68 u16 *fw_major_version, u16 *fw_minor_version, 68 u16 *fw_major_version, u16 *fw_minor_version,
69 u32 *fw_build,
69 u16 *api_major_version, u16 *api_minor_version, 70 u16 *api_major_version, u16 *api_minor_version,
70 struct i40e_asq_cmd_details *cmd_details); 71 struct i40e_asq_cmd_details *cmd_details);
71i40e_status i40e_aq_debug_write_register(struct i40e_hw *hw, 72i40e_status i40e_aq_debug_write_register(struct i40e_hw *hw,
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_adminq.h b/drivers/net/ethernet/intel/i40evf/i40e_adminq.h
index 60f04e96a80e..ef43d68f67b3 100644
--- a/drivers/net/ethernet/intel/i40evf/i40e_adminq.h
+++ b/drivers/net/ethernet/intel/i40evf/i40e_adminq.h
@@ -93,6 +93,7 @@ struct i40e_adminq_info {
93 u16 asq_buf_size; /* send queue buffer size */ 93 u16 asq_buf_size; /* send queue buffer size */
94 u16 fw_maj_ver; /* firmware major version */ 94 u16 fw_maj_ver; /* firmware major version */
95 u16 fw_min_ver; /* firmware minor version */ 95 u16 fw_min_ver; /* firmware minor version */
96 u32 fw_build; /* firmware build number */
96 u16 api_maj_ver; /* api major version */ 97 u16 api_maj_ver; /* api major version */
97 u16 api_min_ver; /* api minor version */ 98 u16 api_min_ver; /* api minor version */
98 bool nvm_release_on_done; 99 bool nvm_release_on_done;