net/bnxt: fix error log for command timeout
[dpdk.git] / drivers / net / bnxt / bnxt_hwrm.c
index b0a7835..d80d67a 100644 (file)
@@ -164,8 +164,9 @@ static int bnxt_hwrm_send_message(struct bnxt *bp, void *msg,
                    rte_cpu_to_le_16(req->req_type) == HWRM_VER_GET)
                        return -ETIMEDOUT;
 
-               PMD_DRV_LOG(ERR, "Error(timeout) sending msg 0x%04x\n",
-                           req->req_type);
+               PMD_DRV_LOG(ERR,
+                           "Error(timeout) sending msg 0x%04x, seq_id %d\n",
+                           req->req_type, req->seq_id);
                return -ETIMEDOUT;
        }
        return 0;
@@ -2762,6 +2763,10 @@ static uint16_t bnxt_parse_eth_link_speed(uint32_t conf_link_speed)
                eth_link_speed =
                        HWRM_PORT_PHY_CFG_INPUT_FORCE_LINK_SPEED_100GB;
                break;
+       case ETH_LINK_SPEED_200G:
+               eth_link_speed =
+                       HWRM_PORT_PHY_CFG_INPUT_FORCE_LINK_SPEED_200GB;
+               break;
        default:
                PMD_DRV_LOG(ERR,
                        "Unsupported link speed %d; default to AUTO\n",
@@ -2774,7 +2779,8 @@ static uint16_t bnxt_parse_eth_link_speed(uint32_t conf_link_speed)
 #define BNXT_SUPPORTED_SPEEDS (ETH_LINK_SPEED_100M | ETH_LINK_SPEED_100M_HD | \
                ETH_LINK_SPEED_1G | ETH_LINK_SPEED_2_5G | \
                ETH_LINK_SPEED_10G | ETH_LINK_SPEED_20G | ETH_LINK_SPEED_25G | \
-               ETH_LINK_SPEED_40G | ETH_LINK_SPEED_50G | ETH_LINK_SPEED_100G)
+               ETH_LINK_SPEED_40G | ETH_LINK_SPEED_50G | \
+               ETH_LINK_SPEED_100G | ETH_LINK_SPEED_200G)
 
 static int bnxt_valid_link_speed(uint32_t link_speed, uint16_t port_id)
 {
@@ -2840,6 +2846,8 @@ bnxt_parse_eth_link_speed_mask(struct bnxt *bp, uint32_t link_speed)
                ret |= HWRM_PORT_PHY_CFG_INPUT_AUTO_LINK_SPEED_MASK_50GB;
        if (link_speed & ETH_LINK_SPEED_100G)
                ret |= HWRM_PORT_PHY_CFG_INPUT_AUTO_LINK_SPEED_MASK_100GB;
+       if (link_speed & ETH_LINK_SPEED_200G)
+               ret |= HWRM_PORT_PHY_CFG_INPUT_AUTO_LINK_SPEED_MASK_200GB;
        return ret;
 }
 
@@ -2875,6 +2883,9 @@ static uint32_t bnxt_parse_hw_link_speed(uint16_t hw_link_speed)
        case HWRM_PORT_PHY_QCFG_OUTPUT_LINK_SPEED_100GB:
                eth_link_speed = ETH_SPEED_NUM_100G;
                break;
+       case HWRM_PORT_PHY_QCFG_OUTPUT_LINK_SPEED_200GB:
+               eth_link_speed = ETH_SPEED_NUM_200G;
+               break;
        case HWRM_PORT_PHY_QCFG_OUTPUT_LINK_SPEED_2GB:
        default:
                PMD_DRV_LOG(ERR, "HWRM link speed %d not defined\n",
@@ -4694,7 +4705,7 @@ int bnxt_hwrm_func_backing_store_qcaps(struct bnxt *bp)
        struct bnxt_ctx_pg_info *ctx_pg;
        struct bnxt_ctx_mem_info *ctx;
        int total_alloc_len;
-       int rc, i;
+       int rc, i, tqm_rings;
 
        if (!BNXT_CHIP_THOR(bp) ||
            bp->hwrm_spec_code < HWRM_VERSION_1_9_2 ||
@@ -4714,17 +4725,6 @@ int bnxt_hwrm_func_backing_store_qcaps(struct bnxt *bp)
                goto ctx_err;
        }
 
-       ctx_pg = rte_malloc("bnxt_ctx_pg_mem",
-                           sizeof(*ctx_pg) * BNXT_MAX_Q,
-                           RTE_CACHE_LINE_SIZE);
-       if (!ctx_pg) {
-               rc = -ENOMEM;
-               goto ctx_err;
-       }
-       for (i = 0; i < BNXT_MAX_Q; i++, ctx_pg++)
-               ctx->tqm_mem[i] = ctx_pg;
-
-       bp->ctx = ctx;
        ctx->qp_max_entries = rte_le_to_cpu_32(resp->qp_max_entries);
        ctx->qp_min_qp1_entries =
                rte_le_to_cpu_16(resp->qp_min_qp1_entries);
@@ -4760,6 +4760,24 @@ int bnxt_hwrm_func_backing_store_qcaps(struct bnxt *bp)
        ctx->mrav_entry_size = rte_le_to_cpu_16(resp->mrav_entry_size);
        ctx->tim_entry_size = rte_le_to_cpu_16(resp->tim_entry_size);
        ctx->tim_max_entries = rte_le_to_cpu_32(resp->tim_max_entries);
+       ctx->tqm_fp_rings_count = resp->tqm_fp_rings_count;
+
+       if (!ctx->tqm_fp_rings_count)
+               ctx->tqm_fp_rings_count = bp->max_q;
+
+       tqm_rings = ctx->tqm_fp_rings_count + 1;
+
+       ctx_pg = rte_malloc("bnxt_ctx_pg_mem",
+                           sizeof(*ctx_pg) * tqm_rings,
+                           RTE_CACHE_LINE_SIZE);
+       if (!ctx_pg) {
+               rc = -ENOMEM;
+               goto ctx_err;
+       }
+       for (i = 0; i < tqm_rings; i++, ctx_pg++)
+               ctx->tqm_mem[i] = ctx_pg;
+
+       bp->ctx = ctx;
 ctx_err:
        HWRM_UNLOCK();
        return rc;