Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'bnge-fixes'

Vikas Gupta says:

====================
bnge fixes

Patch-1:
Due to wrong HWRM sequence, driver do not get the correct
information regarding resources and capabilities.
The patch fixes the initial HWRM sequence.
Patch-2:
Remove the unsupported backing store type initialization, which is
not supported in Thor Ultra devices.
====================

Link: https://patch.msgid.link/20260418023438.1597876-1-vikas.gupta@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+22 -24
+22 -8
drivers/net/ethernet/broadcom/bnge/bnge_core.c
··· 74 74 return rc; 75 75 } 76 76 77 + return 0; 78 + } 79 + 80 + static int bnge_func_qrcaps_qcfg(struct bnge_dev *bd) 81 + { 82 + int rc; 83 + 77 84 rc = bnge_hwrm_func_resc_qcaps(bd); 78 85 if (rc) { 79 86 dev_err(bd->dev, "query resc caps failure rc: %d\n", rc); ··· 140 133 141 134 bnge_hwrm_fw_set_time(bd); 142 135 143 - rc = bnge_hwrm_func_drv_rgtr(bd); 136 + /* Get the resources and configuration from firmware */ 137 + rc = bnge_func_qcaps(bd); 144 138 if (rc) { 145 - dev_err(bd->dev, "Failed to rgtr with firmware rc: %d\n", rc); 139 + dev_err(bd->dev, "Failed querying caps rc: %d\n", rc); 146 140 return rc; 147 141 } 148 142 149 143 rc = bnge_alloc_ctx_mem(bd); 150 144 if (rc) { 151 145 dev_err(bd->dev, "Failed to allocate ctx mem rc: %d\n", rc); 152 - goto err_func_unrgtr; 146 + goto err_free_ctx_mem; 153 147 } 154 148 155 - /* Get the resources and configuration from firmware */ 156 - rc = bnge_func_qcaps(bd); 149 + rc = bnge_hwrm_func_drv_rgtr(bd); 157 150 if (rc) { 158 - dev_err(bd->dev, "Failed initial configuration rc: %d\n", rc); 159 - rc = -ENODEV; 151 + dev_err(bd->dev, "Failed to rgtr with firmware rc: %d\n", rc); 152 + goto err_free_ctx_mem; 153 + } 154 + 155 + rc = bnge_func_qrcaps_qcfg(bd); 156 + if (rc) { 157 + dev_err(bd->dev, "Failed querying resources rc: %d\n", rc); 160 158 goto err_func_unrgtr; 161 159 } 162 160 ··· 170 158 return 0; 171 159 172 160 err_func_unrgtr: 173 - bnge_fw_unregister_dev(bd); 161 + bnge_hwrm_func_drv_unrgtr(bd); 162 + err_free_ctx_mem: 163 + bnge_free_ctx_mem(bd); 174 164 return rc; 175 165 } 176 166
-16
drivers/net/ethernet/broadcom/bnge/bnge_rmem.c
··· 324 324 u32 l2_qps, qp1_qps, max_qps; 325 325 u32 ena, entries_sp, entries; 326 326 u32 srqs, max_srqs, min; 327 - u32 num_mr, num_ah; 328 327 u32 extra_srqs = 0; 329 328 u32 extra_qps = 0; 330 329 u32 fast_qpmd_qps; ··· 388 389 389 390 if (!bnge_is_roce_en(bd)) 390 391 goto skip_rdma; 391 - 392 - ctxm = &ctx->ctx_arr[BNGE_CTX_MRAV]; 393 - /* 128K extra is needed to accommodate static AH context 394 - * allocation by f/w. 395 - */ 396 - num_mr = min_t(u32, ctxm->max_entries / 2, 1024 * 256); 397 - num_ah = min_t(u32, num_mr, 1024 * 128); 398 - ctxm->split_entry_cnt = BNGE_CTX_MRAV_AV_SPLIT_ENTRY + 1; 399 - if (!ctxm->mrav_av_entries || ctxm->mrav_av_entries > num_ah) 400 - ctxm->mrav_av_entries = num_ah; 401 - 402 - rc = bnge_setup_ctxm_pg_tbls(bd, ctxm, num_mr + num_ah, 2); 403 - if (rc) 404 - return rc; 405 - ena |= FUNC_BACKING_STORE_CFG_REQ_ENABLES_MRAV; 406 392 407 393 ctxm = &ctx->ctx_arr[BNGE_CTX_TIM]; 408 394 rc = bnge_setup_ctxm_pg_tbls(bd, ctxm, l2_qps + qp1_qps + extra_qps, 1);