{
struct nix *nix = roc_nix_to_nix_priv(roc_nix);
+ if (roc_nix_is_sdp(roc_nix))
+ return NIX_SDP_MAX_HW_FRS;
+
if (roc_model_is_cn9k())
return NIX_CN9K_MAX_HW_FRS;
- if (nix->lbk_link || roc_nix_is_sdp(roc_nix))
+ if (nix->lbk_link)
return NIX_LBK_MAX_HW_FRS;
return NIX_RPM_MAX_HW_FRS;
req->rss_sz = nix->reta_sz;
req->rss_grps = ROC_NIX_RSS_GRPS;
req->npa_func = idev_npa_pffunc_get();
+ req->sso_func = idev_sso_pffunc_get();
req->rx_cfg = rx_cfg;
+ if (roc_nix_is_lbk(roc_nix) && roc_nix->enable_loop &&
+ roc_model_is_cn98xx())
+ req->flags = NIX_LF_LBK_BLK_SEL;
if (!roc_nix->rss_tag_as_xor)
- req->flags = NIX_LF_RSS_TAG_LSB_AS_ADDER;
+ req->flags |= NIX_LF_RSS_TAG_LSB_AS_ADDER;
rc = mbox_process_msg(mbox, (void *)&rsp);
if (rc)
nix->sqs = plt_zmalloc(sizeof(struct roc_nix_sq *) * nb_txq, 0);
if (!nix->sqs)
return -ENOMEM;
+
+ nix_tel_node_add(roc_nix);
fail:
return rc;
}
}
}
-static inline uint64_t
+uint64_t
nix_get_blkaddr(struct dev *dev)
{
uint64_t reg;
if (rc)
goto lf_detach;
+ rc = nix_tm_conf_init(roc_nix);
+ if (rc)
+ goto unregister_irqs;
+
/* Get NIX HW info */
roc_nix_get_hw_info(roc_nix);
nix->dev.drv_inited = true;
return 0;
+unregister_irqs:
+ nix_unregister_irqs(nix);
lf_detach:
nix_lf_detach(nix);
dev_fini:
rc |= dev_fini(dev, pci_dev);
fail:
+ nix_tel_node_del(roc_nix);
return rc;
}
if (!nix->dev.drv_inited)
goto fini;
+ nix_tm_conf_fini(roc_nix);
nix_unregister_irqs(nix);
rc = nix_lf_detach(nix);