X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Focteontx2%2Fotx2_tm.c;h=ba615cebc2fbae8931a655812701746b8ed7307d;hb=5fc66630bed5db8b0e2507e7324f1c8f98e0dd9a;hp=24692069532be4f863f0317d6ec2c1336c2c4190;hpb=0b16e2abd69d49f2ab4ab0cbaf7cebaa6eb8c943;p=dpdk.git diff --git a/drivers/net/octeontx2/otx2_tm.c b/drivers/net/octeontx2/otx2_tm.c index 2469206953..ba615cebc2 100644 --- a/drivers/net/octeontx2/otx2_tm.c +++ b/drivers/net/octeontx2/otx2_tm.c @@ -59,7 +59,7 @@ static bool nix_tm_have_tl1_access(struct otx2_eth_dev *dev) { bool is_lbk = otx2_dev_is_lbk(dev); - return otx2_dev_is_pf(dev) && !otx2_dev_is_A0(dev) && + return otx2_dev_is_pf(dev) && !otx2_dev_is_Ax(dev) && !is_lbk && !dev->maxvf; } @@ -410,6 +410,12 @@ populate_tm_registers(struct otx2_eth_dev *dev, *regval++ = shaper2regval(&cir) | 1; req->num_regs++; } + /* Configure TL4 to send to SDP channel instead of CGX/LBK */ + if (otx2_dev_is_sdp(dev)) { + *reg++ = NIX_AF_TL4X_SDP_LINK_CFG(schq); + *regval++ = BIT_ULL(12); + req->num_regs++; + } rc = send_tm_reqval(mbox, req); if (rc) @@ -465,9 +471,12 @@ populate_tm_registers(struct otx2_eth_dev *dev, else *regval++ = (strict_schedul_prio << 24) | rr_quantum; req->num_regs++; - *reg++ = NIX_AF_TL3_TL2X_LINKX_CFG(schq, nix_get_link(dev)); - *regval++ = BIT_ULL(12) | nix_get_relchan(dev); - req->num_regs++; + if (!otx2_dev_is_sdp(dev)) { + *reg++ = NIX_AF_TL3_TL2X_LINKX_CFG(schq, + nix_get_link(dev)); + *regval++ = BIT_ULL(12) | nix_get_relchan(dev); + req->num_regs++; + } if (pir.rate && pir.burst) { *reg++ = NIX_AF_TL2X_PIR(schq); *regval++ = shaper2regval(&pir) | 1; @@ -522,9 +531,6 @@ nix_tm_txsch_reg_config(struct otx2_eth_dev *dev) uint32_t lvl; int rc = 0; - if (nix_get_link(dev) == 13) - return -EPERM; - for (lvl = 0; lvl < (uint32_t)dev->otx2_tm_root_lvl + 1; lvl++) { TAILQ_FOREACH(tm_node, &dev->node_list, node) { if (tm_node->hw_lvl_id == lvl) {