The address to check if HW is not dead/hang could be stored in
capabilities, since it is a constant. Change its name to better reflect
the idea.

Signed-off-by: Igor Russkikh <igor.russk...@aquantia.com>
---
 drivers/net/ethernet/aquantia/atlantic/aq_hw.h            | 2 +-
 drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c      | 5 ++++-
 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c | 3 ++-
 drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c | 3 ++-
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h 
b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
index 5566486..a8bf387 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_hw.h
@@ -31,6 +31,7 @@ struct aq_hw_caps_s {
        u32 vecs;
        u32 mtu;
        u32 mac_regs_count;
+       u32 hw_alive_check_addr;
        u8 msix_irqs;
        u8 tcs;
        u8 rxd_alignment;
@@ -102,7 +103,6 @@ struct aq_hw_s {
        atomic_t flags;
        struct aq_nic_cfg_s *aq_nic_cfg;
        void __iomem *mmio;
-       unsigned int not_ff_addr;
        struct aq_hw_link_status_s aq_link_status;
        struct hw_aq_atl_utils_mbox mbox;
        struct hw_atl_stats_s last_stats;
diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c 
b/drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c
index 27e250d..d705cb9 100644
--- a/drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c
+++ b/drivers/net/ethernet/aquantia/atlantic/aq_hw_utils.c
@@ -13,6 +13,7 @@
 
 #include "aq_hw_utils.h"
 #include "aq_hw.h"
+#include "aq_nic.h"
 
 void aq_hw_write_reg_bit(struct aq_hw_s *aq_hw, u32 addr, u32 msk,
                         u32 shift, u32 val)
@@ -39,7 +40,9 @@ u32 aq_hw_read_reg(struct aq_hw_s *hw, u32 reg)
 {
        u32 value = readl(hw->mmio + reg);
 
-       if ((~0U) == value && (~0U) == readl(hw->mmio + hw->not_ff_addr))
+       if ((~0U) == value &&
+           (~0U) == readl(hw->mmio +
+                          hw->aq_nic_cfg->aq_hw_caps->hw_alive_check_addr))
                aq_utils_obj_set(&hw->flags, AQ_HW_FLAG_ERR_UNPLUG);
 
        return value;
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c 
b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
index 9c9fb1e8..52f2eb5 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_a0.c
@@ -41,7 +41,8 @@
        .hw_priv_flags = IFF_UNICAST_FLT, \
        .flow_control = true, \
        .mtu = HW_ATL_A0_MTU_JUMBO, \
-       .mac_regs_count = 88
+       .mac_regs_count = 88, \
+       .hw_alive_check_addr = 0x10U
 
 const struct aq_hw_caps_s hw_atl_a0_caps_aqc100 = {
        DEFAULT_A0_BOARD_BASIC_CAPABILITIES,
diff --git a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c 
b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
index 00edad1..f601230 100644
--- a/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
+++ b/drivers/net/ethernet/aquantia/atlantic/hw_atl/hw_atl_b0.c
@@ -43,7 +43,8 @@
        .hw_priv_flags = IFF_UNICAST_FLT,   \
        .flow_control = true,           \
        .mtu = HW_ATL_B0_MTU_JUMBO,     \
-       .mac_regs_count = 88
+       .mac_regs_count = 88,           \
+       .hw_alive_check_addr = 0x10U
 
 const struct aq_hw_caps_s hw_atl_b0_caps_aqc100 = {
        DEFAULT_B0_BOARD_BASIC_CAPABILITIES,
-- 
2.7.4

Reply via email to