There was no values for time duration statistics for LPI in EEE.
Two byte mask has been added to filter the flags because F/W
returns the status only in two lower bytes.

Signed-off-by: Jaroslaw Gawin <jaroslawx.ga...@intel.com>
Reviewed-by: Grzegorz Szczurek <grzegorzx.szczu...@intel.com>
Reviewed-by: Galazka Krzysztof <krzysztof.gala...@intel.com>
Reviewed-by: Slawomir Laba <slawomirx.l...@intel.com>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktio...@intel.com>
Reviewed-by: Paul M Stillwell Jr <paul.m.stillwell...@intel.com>
Reviewed-by: Michael Alice <alice.mich...@intel.com>
Signed-off-by: Xiaolong Ye <xiaolong...@intel.com>
---
 drivers/net/i40e/base/i40e_adminq_cmd.h | 1 +
 drivers/net/i40e/base/i40e_common.c     | 6 ++++--
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h 
b/drivers/net/i40e/base/i40e_adminq_cmd.h
index 5879f32ff..bc4aefba6 100644
--- a/drivers/net/i40e/base/i40e_adminq_cmd.h
+++ b/drivers/net/i40e/base/i40e_adminq_cmd.h
@@ -2301,6 +2301,7 @@ struct i40e_aqc_run_phy_activity {
                struct {
                        __le32  cmd_status;
 #define I40E_AQ_RUN_PHY_ACT_CMD_STAT_SUCC              0x4
+#define I40E_AQ_RUN_PHY_ACT_CMD_STAT_MASK              0xFFFF
                        __le32  data0;
                        __le32  data1;
                } resp;
diff --git a/drivers/net/i40e/base/i40e_common.c 
b/drivers/net/i40e/base/i40e_common.c
index aebbd6004..1766214b9 100644
--- a/drivers/net/i40e/base/i40e_common.c
+++ b/drivers/net/i40e/base/i40e_common.c
@@ -7248,7 +7248,8 @@ enum i40e_status_code i40e_get_lpi_duration(struct 
i40e_hw *hw,
 
        if (retval)
                return retval;
-       if (cmd_status != I40E_AQ_RUN_PHY_ACT_CMD_STAT_SUCC)
+       if ((cmd_status & I40E_AQ_RUN_PHY_ACT_CMD_STAT_MASK) !=
+           I40E_AQ_RUN_PHY_ACT_CMD_STAT_SUCC)
                return I40E_ERR_ADMIN_QUEUE_ERROR;
 
        if (hw->phy.link_info.link_speed == I40E_LINK_SPEED_1GB &&
@@ -7262,7 +7263,8 @@ enum i40e_status_code i40e_get_lpi_duration(struct 
i40e_hw *hw,
 
                if (retval)
                        return retval;
-               if (cmd_status != I40E_AQ_RUN_PHY_ACT_CMD_STAT_SUCC)
+               if ((cmd_status & I40E_AQ_RUN_PHY_ACT_CMD_STAT_MASK) !=
+                   I40E_AQ_RUN_PHY_ACT_CMD_STAT_SUCC)
                        return I40E_ERR_ADMIN_QUEUE_ERROR;
                tx_time_dur = 0;
                rx_time_dur = 0;
-- 
2.17.1

Reply via email to