M(CPT_RXC_TIME_CFG,     0xA06, cpt_rxc_time_cfg, cpt_rxc_time_cfg_req,  \
                               msg_rsp)                                 \
 M(CPT_CTX_CACHE_SYNC,   0xA07, cpt_ctx_cache_sync, msg_req, msg_rsp)    \
+M(CPT_LF_RESET,         0xA08, cpt_lf_reset, cpt_lf_rst_req, msg_rsp)  \
 /* SDP mbox IDs (range 0x1000 - 0x11FF) */                             \
 M(SET_SDP_CHAN_INFO, 0x1000, set_sdp_chan_info, sdp_chan_info_msg, msg_rsp) \
 M(GET_SDP_CHAN_INFO, 0x1001, get_sdp_chan_info, msg_req, sdp_get_chan_info_msg) \
        u64 rsvd;
 };
 
+/* Mailbox message format to request for CPT LF reset */
+struct cpt_lf_rst_req {
+       struct mbox_msghdr hdr;
+       u32 slot;
+       u32 rsvd;
+};
+
 struct sdp_node_info {
        /* Node to which this PF belons to */
        u8 node_id;
 
        return rvu_cpt_ctx_flush(rvu, req->hdr.pcifunc);
 }
 
+int rvu_mbox_handler_cpt_lf_reset(struct rvu *rvu, struct cpt_lf_rst_req *req,
+                                 struct msg_rsp *rsp)
+{
+       u16 pcifunc = req->hdr.pcifunc;
+       struct rvu_block *block;
+       int cptlf, blkaddr, ret;
+       u16 actual_slot;
+       u64 ctl, ctl2;
+
+       blkaddr = rvu_get_blkaddr_from_slot(rvu, BLKTYPE_CPT, pcifunc,
+                                           req->slot, &actual_slot);
+       if (blkaddr < 0)
+               return CPT_AF_ERR_LF_INVALID;
+
+       block = &rvu->hw->block[blkaddr];
+
+       cptlf = rvu_get_lf(rvu, block, pcifunc, actual_slot);
+       if (cptlf < 0)
+               return CPT_AF_ERR_LF_INVALID;
+       ctl = rvu_read64(rvu, blkaddr, CPT_AF_LFX_CTL(cptlf));
+       ctl2 = rvu_read64(rvu, blkaddr, CPT_AF_LFX_CTL2(cptlf));
+
+       ret = rvu_lf_reset(rvu, block, cptlf);
+       if (ret)
+               dev_err(rvu->dev, "Failed to reset blkaddr %d LF%d\n",
+                       block->addr, cptlf);
+
+       rvu_write64(rvu, blkaddr, CPT_AF_LFX_CTL(cptlf), ctl);
+       rvu_write64(rvu, blkaddr, CPT_AF_LFX_CTL2(cptlf), ctl2);
+
+       return 0;
+}
+
 static void cpt_rxc_teardown(struct rvu *rvu, int blkaddr)
 {
        struct cpt_rxc_time_cfg_req req;