aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Chan <michael.chan@broadcom.com>2018-08-05 16:51:54 -0400
committerDavid S. Miller <davem@davemloft.net>2018-08-05 20:08:26 -0400
commit97381a1831124c95801fbfaba8436b4abc7d03f5 (patch)
treec748a0f8de5c9bca30d17183829051d7f867d405
parentf1ca94de0d8760726dc615e8b4f9801f7ad9cf3b (diff)
bnxt_en: Move firmware related flags to a new fw_cap field in struct bnxt.
The flags field is almost getting full. Move firmware capability flags to a new fw_cap field to better organize these firmware flags. Signed-off-by: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/broadcom/bnxt/bnxt.c12
-rw-r--r--drivers/net/ethernet/broadcom/bnxt/bnxt.h13
-rw-r--r--drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c6
3 files changed, 16 insertions, 15 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 5c9ee3c12323..165994047f81 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -3445,7 +3445,7 @@ static int bnxt_hwrm_do_send_msg(struct bnxt *bp, void *msg, u32 msg_len,
3445 cp_ring_id = le16_to_cpu(req->cmpl_ring); 3445 cp_ring_id = le16_to_cpu(req->cmpl_ring);
3446 intr_process = (cp_ring_id == INVALID_HW_RING_ID) ? 0 : 1; 3446 intr_process = (cp_ring_id == INVALID_HW_RING_ID) ? 0 : 1;
3447 3447
3448 if (bp->flags & BNXT_FLAG_SHORT_CMD) { 3448 if (bp->fw_cap & BNXT_FW_CAP_SHORT_CMD) {
3449 void *short_cmd_req = bp->hwrm_short_cmd_req_addr; 3449 void *short_cmd_req = bp->hwrm_short_cmd_req_addr;
3450 3450
3451 memcpy(short_cmd_req, req, msg_len); 3451 memcpy(short_cmd_req, req, msg_len);
@@ -5089,9 +5089,9 @@ static int bnxt_hwrm_func_qcfg(struct bnxt *bp)
5089 flags = le16_to_cpu(resp->flags); 5089 flags = le16_to_cpu(resp->flags);
5090 if (flags & (FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED | 5090 if (flags & (FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED |
5091 FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED)) { 5091 FUNC_QCFG_RESP_FLAGS_FW_LLDP_AGENT_ENABLED)) {
5092 bp->flags |= BNXT_FLAG_FW_LLDP_AGENT; 5092 bp->fw_cap |= BNXT_FW_CAP_LLDP_AGENT;
5093 if (flags & FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED) 5093 if (flags & FUNC_QCFG_RESP_FLAGS_FW_DCBX_AGENT_ENABLED)
5094 bp->flags |= BNXT_FLAG_FW_DCBX_AGENT; 5094 bp->fw_cap |= BNXT_FW_CAP_DCBX_AGENT;
5095 } 5095 }
5096 if (BNXT_PF(bp) && (flags & FUNC_QCFG_RESP_FLAGS_MULTI_HOST)) 5096 if (BNXT_PF(bp) && (flags & FUNC_QCFG_RESP_FLAGS_MULTI_HOST))
5097 bp->flags |= BNXT_FLAG_MULTI_HOST; 5097 bp->flags |= BNXT_FLAG_MULTI_HOST;
@@ -5249,7 +5249,7 @@ static int bnxt_hwrm_func_qcaps(struct bnxt *bp)
5249 if (bp->hwrm_spec_code >= 0x10803) { 5249 if (bp->hwrm_spec_code >= 0x10803) {
5250 rc = bnxt_hwrm_func_resc_qcaps(bp, true); 5250 rc = bnxt_hwrm_func_resc_qcaps(bp, true);
5251 if (!rc) 5251 if (!rc)
5252 bp->flags |= BNXT_FLAG_NEW_RM; 5252 bp->fw_cap |= BNXT_FW_CAP_NEW_RM;
5253 } 5253 }
5254 return 0; 5254 return 0;
5255} 5255}
@@ -5352,7 +5352,7 @@ static int bnxt_hwrm_ver_get(struct bnxt *bp)
5352 dev_caps_cfg = le32_to_cpu(resp->dev_caps_cfg); 5352 dev_caps_cfg = le32_to_cpu(resp->dev_caps_cfg);
5353 if ((dev_caps_cfg & VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED) && 5353 if ((dev_caps_cfg & VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_SUPPORTED) &&
5354 (dev_caps_cfg & VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED)) 5354 (dev_caps_cfg & VER_GET_RESP_DEV_CAPS_CFG_SHORT_CMD_REQUIRED))
5355 bp->flags |= BNXT_FLAG_SHORT_CMD; 5355 bp->fw_cap |= BNXT_FW_CAP_SHORT_CMD;
5356 5356
5357hwrm_ver_get_exit: 5357hwrm_ver_get_exit:
5358 mutex_unlock(&bp->hwrm_cmd_lock); 5358 mutex_unlock(&bp->hwrm_cmd_lock);
@@ -8760,7 +8760,7 @@ static int bnxt_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
8760 if (rc) 8760 if (rc)
8761 goto init_err_pci_clean; 8761 goto init_err_pci_clean;
8762 8762
8763 if (bp->flags & BNXT_FLAG_SHORT_CMD) { 8763 if (bp->fw_cap & BNXT_FW_CAP_SHORT_CMD) {
8764 rc = bnxt_alloc_hwrm_short_cmd_req(bp); 8764 rc = bnxt_alloc_hwrm_short_cmd_req(bp);
8765 if (rc) 8765 if (rc)
8766 goto init_err_pci_clean; 8766 goto init_err_pci_clean;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
index 37dc896da9dc..ded2affd9ee8 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
@@ -1144,7 +1144,6 @@ struct bnxt {
1144 atomic_t intr_sem; 1144 atomic_t intr_sem;
1145 1145
1146 u32 flags; 1146 u32 flags;
1147 #define BNXT_FLAG_DCB_ENABLED 0x1
1148 #define BNXT_FLAG_VF 0x2 1147 #define BNXT_FLAG_VF 0x2
1149 #define BNXT_FLAG_LRO 0x4 1148 #define BNXT_FLAG_LRO 0x4
1150#ifdef CONFIG_INET 1149#ifdef CONFIG_INET
@@ -1173,15 +1172,11 @@ struct bnxt {
1173 BNXT_FLAG_ROCEV2_CAP) 1172 BNXT_FLAG_ROCEV2_CAP)
1174 #define BNXT_FLAG_NO_AGG_RINGS 0x20000 1173 #define BNXT_FLAG_NO_AGG_RINGS 0x20000
1175 #define BNXT_FLAG_RX_PAGE_MODE 0x40000 1174 #define BNXT_FLAG_RX_PAGE_MODE 0x40000
1176 #define BNXT_FLAG_FW_LLDP_AGENT 0x80000
1177 #define BNXT_FLAG_MULTI_HOST 0x100000 1175 #define BNXT_FLAG_MULTI_HOST 0x100000
1178 #define BNXT_FLAG_SHORT_CMD 0x200000
1179 #define BNXT_FLAG_DOUBLE_DB 0x400000 1176 #define BNXT_FLAG_DOUBLE_DB 0x400000
1180 #define BNXT_FLAG_FW_DCBX_AGENT 0x800000
1181 #define BNXT_FLAG_CHIP_NITRO_A0 0x1000000 1177 #define BNXT_FLAG_CHIP_NITRO_A0 0x1000000
1182 #define BNXT_FLAG_DIM 0x2000000 1178 #define BNXT_FLAG_DIM 0x2000000
1183 #define BNXT_FLAG_ROCE_MIRROR_CAP 0x4000000 1179 #define BNXT_FLAG_ROCE_MIRROR_CAP 0x4000000
1184 #define BNXT_FLAG_NEW_RM 0x8000000
1185 #define BNXT_FLAG_PORT_STATS_EXT 0x10000000 1180 #define BNXT_FLAG_PORT_STATS_EXT 0x10000000
1186 1181
1187 #define BNXT_FLAG_ALL_CONFIG_FEATS (BNXT_FLAG_TPA | \ 1182 #define BNXT_FLAG_ALL_CONFIG_FEATS (BNXT_FLAG_TPA | \
@@ -1195,7 +1190,6 @@ struct bnxt {
1195#define BNXT_SINGLE_PF(bp) (BNXT_PF(bp) && !BNXT_NPAR(bp) && !BNXT_MH(bp)) 1190#define BNXT_SINGLE_PF(bp) (BNXT_PF(bp) && !BNXT_NPAR(bp) && !BNXT_MH(bp))
1196#define BNXT_CHIP_TYPE_NITRO_A0(bp) ((bp)->flags & BNXT_FLAG_CHIP_NITRO_A0) 1191#define BNXT_CHIP_TYPE_NITRO_A0(bp) ((bp)->flags & BNXT_FLAG_CHIP_NITRO_A0)
1197#define BNXT_RX_PAGE_MODE(bp) ((bp)->flags & BNXT_FLAG_RX_PAGE_MODE) 1192#define BNXT_RX_PAGE_MODE(bp) ((bp)->flags & BNXT_FLAG_RX_PAGE_MODE)
1198#define BNXT_NEW_RM(bp) ((bp)->flags & BNXT_FLAG_NEW_RM)
1199 1193
1200/* Chip class phase 4 and later */ 1194/* Chip class phase 4 and later */
1201#define BNXT_CHIP_P4_PLUS(bp) \ 1195#define BNXT_CHIP_P4_PLUS(bp) \
@@ -1291,6 +1285,13 @@ struct bnxt {
1291 1285
1292 u32 msg_enable; 1286 u32 msg_enable;
1293 1287
1288 u32 fw_cap;
1289 #define BNXT_FW_CAP_SHORT_CMD 0x00000001
1290 #define BNXT_FW_CAP_LLDP_AGENT 0x00000002
1291 #define BNXT_FW_CAP_DCBX_AGENT 0x00000004
1292 #define BNXT_FW_CAP_NEW_RM 0x00000008
1293
1294#define BNXT_NEW_RM(bp) ((bp)->fw_cap & BNXT_FW_CAP_NEW_RM)
1294 u32 hwrm_spec_code; 1295 u32 hwrm_spec_code;
1295 u16 hwrm_cmd_seq; 1296 u16 hwrm_cmd_seq;
1296 u32 hwrm_intr_seq_id; 1297 u32 hwrm_intr_seq_id;
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
index d5bc72cecde3..00dd26dd2100 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_dcb.c
@@ -610,7 +610,7 @@ static u8 bnxt_dcbnl_setdcbx(struct net_device *dev, u8 mode)
610 return 1; 610 return 1;
611 611
612 if (mode & DCB_CAP_DCBX_HOST) { 612 if (mode & DCB_CAP_DCBX_HOST) {
613 if (BNXT_VF(bp) || (bp->flags & BNXT_FLAG_FW_LLDP_AGENT)) 613 if (BNXT_VF(bp) || (bp->fw_cap & BNXT_FW_CAP_LLDP_AGENT))
614 return 1; 614 return 1;
615 615
616 /* only support IEEE */ 616 /* only support IEEE */
@@ -643,9 +643,9 @@ void bnxt_dcb_init(struct bnxt *bp)
643 return; 643 return;
644 644
645 bp->dcbx_cap = DCB_CAP_DCBX_VER_IEEE; 645 bp->dcbx_cap = DCB_CAP_DCBX_VER_IEEE;
646 if (BNXT_PF(bp) && !(bp->flags & BNXT_FLAG_FW_LLDP_AGENT)) 646 if (BNXT_PF(bp) && !(bp->fw_cap & BNXT_FW_CAP_LLDP_AGENT))
647 bp->dcbx_cap |= DCB_CAP_DCBX_HOST; 647 bp->dcbx_cap |= DCB_CAP_DCBX_HOST;
648 else if (bp->flags & BNXT_FLAG_FW_DCBX_AGENT) 648 else if (bp->fw_cap & BNXT_FW_CAP_DCBX_AGENT)
649 bp->dcbx_cap |= DCB_CAP_DCBX_LLD_MANAGED; 649 bp->dcbx_cap |= DCB_CAP_DCBX_LLD_MANAGED;
650 bp->dev->dcbnl_ops = &dcbnl_ops; 650 bp->dev->dcbnl_ops = &dcbnl_ops;
651} 651}