]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40e: Increase timeout when checking GLGEN_RSTAT_DEVSTATE bit
authorKevin Scott <kevin.c.scott@intel.com>
Thu, 18 Feb 2016 00:12:13 +0000 (16:12 -0800)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 10 Mar 2016 16:37:47 +0000 (08:37 -0800)
Orabug: 22342532

When linking with particular PHY types (ex: copper PHY), the amount of
time it takes for the GLGEN_RSTAT_DEVSTATE to be set increases greatly,
which can lead to a timeout and failure to load the driver.

Change-ID: If02be0dfcd7c57fdde2d5c81cd63651260cd2029
Signed-off-by: Kevin Scott <kevin.c.scott@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 4d7cec078de864b7ba5459aa688278c4e6f3ad42)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/intel/i40e/i40e_common.c

index d41719331976b5261addf7b03faa3b7773264f2f..3a57e59c2a1a3dbd52953f64d0cae126795f5b3d 100644 (file)
@@ -1239,7 +1239,13 @@ i40e_status i40e_pf_reset(struct i40e_hw *hw)
        grst_del = (rd32(hw, I40E_GLGEN_RSTCTL) &
                    I40E_GLGEN_RSTCTL_GRSTDEL_MASK) >>
                    I40E_GLGEN_RSTCTL_GRSTDEL_SHIFT;
-       for (cnt = 0; cnt < grst_del + 10; cnt++) {
+
+       /* It can take upto 15 secs for GRST steady state.
+        * Bump it to 16 secs max to be safe.
+        */
+       grst_del = grst_del * 20;
+
+       for (cnt = 0; cnt < grst_del; cnt++) {
                reg = rd32(hw, I40E_GLGEN_RSTAT);
                if (!(reg & I40E_GLGEN_RSTAT_DEVSTATE_MASK))
                        break;