]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: aquantia: Fix a regression with reset on old firmware
authorIgor Russkikh <igor.russkikh@aquantia.com>
Tue, 20 Mar 2018 11:40:32 +0000 (14:40 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 22 Mar 2018 16:02:49 +0000 (12:02 -0400)
FW 1.5.58 and below needs a fixed delay even after 0x18 register
is filled. Otherwise, setting MPI_INIT state too fast causes
traffic hang.

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_utils.c

index fcb3279ff9c779226acc57dff8e85446e82cca65..dcb27bc7e97c34703f192a91dcf55df24a754641 100644 (file)
@@ -147,6 +147,8 @@ static int hw_atl_utils_soft_reset_flb(struct aq_hw_s *self)
                aq_pr_err("FW kickstart failed\n");
                return -EIO;
        }
+       /* Old FW requires fixed delay after init */
+       AQ_HW_SLEEP(15);
 
        return 0;
 }
@@ -214,6 +216,8 @@ static int hw_atl_utils_soft_reset_rbl(struct aq_hw_s *self)
                aq_pr_err("FW kickstart failed\n");
                return -EIO;
        }
+       /* Old FW requires fixed delay after init */
+       AQ_HW_SLEEP(15);
 
        return 0;
 }