net/bnxt: add a field for FW capabilities
The purpose of this patch is used to add a new field "fw_cap" in bnxt structure. The new "fw_cap" field store all the capabilities reported by the FW. This information will help us to determine the device capabilities when registering feature support with FW. Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
This commit is contained in:
parent
7105de7085
commit
839dee4043
@ -507,17 +507,13 @@ struct bnxt {
|
||||
#define BNXT_FLAG_STINGRAY BIT(14)
|
||||
#define BNXT_FLAG_FW_RESET BIT(15)
|
||||
#define BNXT_FLAG_FATAL_ERROR BIT(16)
|
||||
#define BNXT_FLAG_FW_CAP_IF_CHANGE BIT(17)
|
||||
#define BNXT_FLAG_IF_CHANGE_HOT_FW_RESET_DONE BIT(18)
|
||||
#define BNXT_FLAG_FW_CAP_ERROR_RECOVERY BIT(19)
|
||||
#define BNXT_FLAG_FW_HEALTH_CHECK_SCHEDULED BIT(20)
|
||||
#define BNXT_FLAG_FW_CAP_ERR_RECOVER_RELOAD BIT(21)
|
||||
#define BNXT_FLAG_EXT_STATS_SUPPORTED BIT(22)
|
||||
#define BNXT_FLAG_NEW_RM BIT(23)
|
||||
#define BNXT_FLAG_INIT_DONE BIT(24)
|
||||
#define BNXT_FLAG_FW_CAP_ONE_STEP_TX_TS BIT(25)
|
||||
#define BNXT_FLAG_ADV_FLOW_MGMT BIT(26)
|
||||
#define BNXT_FLAG_FW_CAP_HOT_RESET BIT(27)
|
||||
#define BNXT_FLAG_IF_CHANGE_HOT_FW_RESET_DONE BIT(17)
|
||||
#define BNXT_FLAG_FW_HEALTH_CHECK_SCHEDULED BIT(18)
|
||||
#define BNXT_FLAG_EXT_STATS_SUPPORTED BIT(19)
|
||||
#define BNXT_FLAG_NEW_RM BIT(20)
|
||||
#define BNXT_FLAG_INIT_DONE BIT(21)
|
||||
#define BNXT_FLAG_FW_CAP_ONE_STEP_TX_TS BIT(22)
|
||||
#define BNXT_FLAG_ADV_FLOW_MGMT BIT(23)
|
||||
#define BNXT_PF(bp) (!((bp)->flags & BNXT_FLAG_VF))
|
||||
#define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF)
|
||||
#define BNXT_NPAR(bp) ((bp)->port_partition_type)
|
||||
@ -531,6 +527,12 @@ struct bnxt {
|
||||
#define BNXT_HAS_NQ(bp) BNXT_CHIP_THOR(bp)
|
||||
#define BNXT_HAS_RING_GRPS(bp) (!BNXT_CHIP_THOR(bp))
|
||||
|
||||
uint32_t fw_cap;
|
||||
#define BNXT_FW_CAP_HOT_RESET BIT(0)
|
||||
#define BNXT_FW_CAP_IF_CHANGE BIT(1)
|
||||
#define BNXT_FW_CAP_ERROR_RECOVERY BIT(2)
|
||||
#define BNXT_FW_CAP_ERR_RECOVER_RELOAD BIT(3)
|
||||
|
||||
uint32_t flow_flags;
|
||||
#define BNXT_FLOW_FLAG_L2_HDR_SRC_FILTER_EN BIT(0)
|
||||
pthread_mutex_t flow_lock;
|
||||
|
@ -21,7 +21,7 @@ void bnxt_wait_for_device_shutdown(struct bnxt *bp)
|
||||
* the SHUTDOWN bit in health register
|
||||
*/
|
||||
if (!(bp->recovery_info &&
|
||||
(bp->flags & BNXT_FLAG_FW_CAP_ERR_RECOVER_RELOAD)))
|
||||
(bp->fw_cap & BNXT_FW_CAP_ERR_RECOVER_RELOAD)))
|
||||
return;
|
||||
|
||||
/* Driver has to wait for fw_reset_max_msecs or shutdown bit which comes
|
||||
|
@ -4617,6 +4617,8 @@ static int bnxt_init_fw(struct bnxt *bp)
|
||||
uint16_t mtu;
|
||||
int rc = 0;
|
||||
|
||||
bp->fw_cap = 0;
|
||||
|
||||
rc = bnxt_hwrm_ver_get(bp);
|
||||
if (rc)
|
||||
return rc;
|
||||
@ -4652,7 +4654,7 @@ static int bnxt_init_fw(struct bnxt *bp)
|
||||
/* Get the adapter error recovery support info */
|
||||
rc = bnxt_hwrm_error_recovery_qcfg(bp);
|
||||
if (rc)
|
||||
bp->flags &= ~BNXT_FLAG_FW_CAP_ERROR_RECOVERY;
|
||||
bp->fw_cap &= ~BNXT_FW_CAP_ERROR_RECOVERY;
|
||||
|
||||
bnxt_hwrm_port_led_qcaps(bp);
|
||||
|
||||
|
@ -661,21 +661,15 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp)
|
||||
bp->flags |= BNXT_FLAG_EXT_STATS_SUPPORTED;
|
||||
|
||||
if (flags & HWRM_FUNC_QCAPS_OUTPUT_FLAGS_ERROR_RECOVERY_CAPABLE) {
|
||||
bp->flags |= BNXT_FLAG_FW_CAP_ERROR_RECOVERY;
|
||||
bp->fw_cap |= BNXT_FW_CAP_ERROR_RECOVERY;
|
||||
PMD_DRV_LOG(DEBUG, "Adapter Error recovery SUPPORTED\n");
|
||||
} else {
|
||||
bp->flags &= ~BNXT_FLAG_FW_CAP_ERROR_RECOVERY;
|
||||
}
|
||||
|
||||
if (flags & HWRM_FUNC_QCAPS_OUTPUT_FLAGS_ERR_RECOVER_RELOAD)
|
||||
bp->flags |= BNXT_FLAG_FW_CAP_ERR_RECOVER_RELOAD;
|
||||
else
|
||||
bp->flags &= ~BNXT_FLAG_FW_CAP_ERR_RECOVER_RELOAD;
|
||||
bp->fw_cap |= BNXT_FW_CAP_ERR_RECOVER_RELOAD;
|
||||
|
||||
if (flags & HWRM_FUNC_QCAPS_OUTPUT_FLAGS_HOT_RESET_CAPABLE)
|
||||
bp->flags |= BNXT_FLAG_FW_CAP_HOT_RESET;
|
||||
else
|
||||
bp->flags &= ~BNXT_FLAG_FW_CAP_HOT_RESET;
|
||||
bp->fw_cap |= BNXT_FW_CAP_HOT_RESET;
|
||||
|
||||
HWRM_UNLOCK();
|
||||
|
||||
@ -761,9 +755,9 @@ int bnxt_hwrm_func_driver_register(struct bnxt *bp)
|
||||
if (bp->flags & BNXT_FLAG_REGISTERED)
|
||||
return 0;
|
||||
|
||||
if (bp->flags & BNXT_FLAG_FW_CAP_HOT_RESET)
|
||||
if (bp->fw_cap & BNXT_FW_CAP_HOT_RESET)
|
||||
flags = HWRM_FUNC_DRV_RGTR_INPUT_FLAGS_HOT_RESET_SUPPORT;
|
||||
if (bp->flags & BNXT_FLAG_FW_CAP_ERROR_RECOVERY)
|
||||
if (bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY)
|
||||
flags |= HWRM_FUNC_DRV_RGTR_INPUT_FLAGS_ERROR_RECOVERY_SUPPORT;
|
||||
|
||||
/* PFs and trusted VFs should indicate the support of the
|
||||
@ -803,7 +797,7 @@ int bnxt_hwrm_func_driver_register(struct bnxt *bp)
|
||||
ASYNC_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE |
|
||||
ASYNC_CMPL_EVENT_ID_LINK_SPEED_CHANGE |
|
||||
ASYNC_CMPL_EVENT_ID_RESET_NOTIFY);
|
||||
if (bp->flags & BNXT_FLAG_FW_CAP_ERROR_RECOVERY)
|
||||
if (bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY)
|
||||
req.async_event_fwd[0] |=
|
||||
rte_cpu_to_le_32(ASYNC_CMPL_EVENT_ID_ERROR_RECOVERY);
|
||||
req.async_event_fwd[1] |=
|
||||
@ -816,7 +810,7 @@ int bnxt_hwrm_func_driver_register(struct bnxt *bp)
|
||||
|
||||
flags = rte_le_to_cpu_32(resp->flags);
|
||||
if (flags & HWRM_FUNC_DRV_RGTR_OUTPUT_FLAGS_IF_CHANGE_SUPPORTED)
|
||||
bp->flags |= BNXT_FLAG_FW_CAP_IF_CHANGE;
|
||||
bp->fw_cap |= BNXT_FW_CAP_IF_CHANGE;
|
||||
|
||||
HWRM_UNLOCK();
|
||||
|
||||
@ -4849,7 +4843,7 @@ int bnxt_hwrm_if_change(struct bnxt *bp, bool up)
|
||||
uint32_t flags;
|
||||
int rc;
|
||||
|
||||
if (!(bp->flags & BNXT_FLAG_FW_CAP_IF_CHANGE))
|
||||
if (!(bp->fw_cap & BNXT_FW_CAP_IF_CHANGE))
|
||||
return 0;
|
||||
|
||||
/* Do not issue FUNC_DRV_IF_CHANGE during reset recovery.
|
||||
@ -4892,7 +4886,7 @@ int bnxt_hwrm_error_recovery_qcfg(struct bnxt *bp)
|
||||
int rc;
|
||||
|
||||
/* Older FW does not have error recovery support */
|
||||
if (!(bp->flags & BNXT_FLAG_FW_CAP_ERROR_RECOVERY))
|
||||
if (!(bp->fw_cap & BNXT_FW_CAP_ERROR_RECOVERY))
|
||||
return 0;
|
||||
|
||||
if (!info) {
|
||||
|
Loading…
Reference in New Issue
Block a user