int rvu_set_channels_base(struct rvu *rvu);
 void rvu_program_channels(struct rvu *rvu);
 
+/* CN10K NIX */
+void rvu_nix_block_cn10k_init(struct rvu *rvu, struct nix_hw *nix_hw);
+
 /* CN10K RVU - LMT*/
 void rvu_reset_lmt_map_tbl(struct rvu *rvu, u16 pcifunc);
 
 
        rvu_lbk_set_channels(rvu);
        rvu_rpm_set_channels(rvu);
 }
+
+void rvu_nix_block_cn10k_init(struct rvu *rvu, struct nix_hw *nix_hw)
+{
+       int blkaddr = nix_hw->blkaddr;
+       u64 cfg;
+
+       /* Set AF vWQE timer interval to a LF configurable range of
+        * 6.4us to 1.632ms.
+        */
+       rvu_write64(rvu, blkaddr, NIX_AF_VWQE_TIMER, 0x3FULL);
+
+       /* Enable NIX RX stream and global conditional clock to
+        * avoild multiple free of NPA buffers.
+        */
+       cfg = rvu_read64(rvu, blkaddr, NIX_AF_CFG);
+       cfg |= BIT_ULL(1) | BIT_ULL(2);
+       rvu_write64(rvu, blkaddr, NIX_AF_CFG, cfg);
+}
 
        int err, restore_tx_en = 0;
        u64 cfg;
 
+       if (!is_rvu_otx2(rvu)) {
+               /* Skip SMQ flush if pkt count is zero */
+               cfg = rvu_read64(rvu, blkaddr, NIX_AF_MDQX_IN_MD_COUNT(smq));
+               if (!cfg)
+                       return 0;
+       }
+
        /* enable cgx tx if disabled */
        if (is_pf_cgxmapped(rvu, pf)) {
                rvu_get_cgx_lmac_id(rvu->pf2cgxlmac_map[pf], &cgx_id, &lmac_id);
 
        rvu_write64(rvu, blkaddr, NIX_AF_SEB_CFG, cfg);
 
+       if (!is_rvu_otx2(rvu))
+               rvu_nix_block_cn10k_init(rvu, nix_hw);
+
        if (is_block_implemented(hw, blkaddr)) {
                err = nix_setup_txschq(rvu, nix_hw, blkaddr);
                if (err)
 
 #define NIX_AF_RX_CFG                  (0x00D0)
 #define NIX_AF_AVG_DELAY               (0x00E0)
 #define NIX_AF_CINT_DELAY              (0x00F0)
+#define NIX_AF_VWQE_TIMER              (0x00F8)
 #define NIX_AF_RX_MCAST_BASE           (0x0100)
 #define NIX_AF_RX_MCAST_CFG            (0x0110)
 #define NIX_AF_RX_MCAST_BUF_BASE       (0x0120)
 #define NIX_AF_RX_NPC_MIRROR_DROP      (0x4730)
 #define NIX_AF_RX_ACTIVE_CYCLES_PCX(a) (0x4800 | (a) << 16)
 #define NIX_AF_LINKX_CFG(a)            (0x4010 | (a) << 17)
+#define NIX_AF_MDQX_IN_MD_COUNT(a)     (0x14e0 | (a) << 16)
 
 #define NIX_PRIV_AF_INT_CFG            (0x8000000)
 #define NIX_PRIV_LFX_CFG               (0x8000010)