net/atlantic: use capability bits to detect EEPROM access
authorPavel Belous <pavel.belous@aquantia.com>
Mon, 29 Apr 2019 08:20:25 +0000 (08:20 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 3 May 2019 16:45:23 +0000 (18:45 +0200)
Its better to use capability bits FW provides to detect whether
firmware has APIs for EEPROM access.

Before that explicit FW version comparison was used and that may
cause conflicts.

Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: Pavel Belous <pavel.belous@aquantia.com>
drivers/net/atlantic/hw_atl/hw_atl_utils_fw2x.c

index e07ed5e..0d24aa9 100644 (file)
@@ -34,7 +34,6 @@
 #define HAL_ATLANTIC_WOL_FILTERS_COUNT     8
 #define HAL_ATLANTIC_UTILS_FW2X_MSG_WOL    0x0E
 
-#define HW_ATL_FW_FEATURE_EEPROM 0x03010025
 #define HW_ATL_FW_FEATURE_LED 0x03010026
 
 struct fw2x_msg_wol_pattern {
@@ -513,7 +512,7 @@ static int aq_fw2x_get_eeprom(struct aq_hw_s *self, int dev_addr,
        u32 mpi_opts;
        int err = 0;
 
-       if (self->fw_ver_actual < HW_ATL_FW_FEATURE_EEPROM)
+       if ((self->caps_lo & BIT(CAPS_LO_SMBUS_READ)) == 0)
                return -EOPNOTSUPP;
 
        request.msg_id = 0;
@@ -591,7 +590,7 @@ static int aq_fw2x_set_eeprom(struct aq_hw_s *self, int dev_addr,
        u32 mpi_opts, result = 0;
        int err = 0;
 
-       if (self->fw_ver_actual < HW_ATL_FW_FEATURE_EEPROM)
+       if ((self->caps_lo & BIT(CAPS_LO_SMBUS_WRITE)) == 0)
                return -EOPNOTSUPP;
 
        request.msg_id = 0;