* encounters a fault/poison, a rare case may result in
         * unpredictable data being delivered to a CPT engine.
         */
-       otx2_cpt_read_af_reg(&cptpf->afpf_mbox, pdev, CPT_AF_DIAG, ®_val,
-                            BLKADDR_CPT0);
-       otx2_cpt_write_af_reg(&cptpf->afpf_mbox, pdev, CPT_AF_DIAG,
-                             reg_val | BIT_ULL(24), BLKADDR_CPT0);
+       if (cpt_is_errata_38550_exists(pdev)) {
+               otx2_cpt_read_af_reg(&cptpf->afpf_mbox, pdev, CPT_AF_DIAG,
+                                    ®_val, BLKADDR_CPT0);
+               otx2_cpt_write_af_reg(&cptpf->afpf_mbox, pdev, CPT_AF_DIAG,
+                                     reg_val | BIT_ULL(24), BLKADDR_CPT0);
+       }
 
        mutex_unlock(&eng_grps->lock);
        return 0;