/* clear HPRE hw error source if having */
        writel(HPRE_CORE_INT_DISABLE, qm->io_base + HPRE_HAC_SOURCE_INT);
 
-       /* enable hpre hw error interrupts */
-       writel(HPRE_CORE_INT_ENABLE, qm->io_base + HPRE_INT_MASK);
+       /* configure error type */
        writel(HPRE_HAC_RAS_CE_ENABLE, qm->io_base + HPRE_RAS_CE_ENB);
        writel(HPRE_HAC_RAS_NFE_ENABLE, qm->io_base + HPRE_RAS_NFE_ENB);
        writel(HPRE_HAC_RAS_FE_ENABLE, qm->io_base + HPRE_RAS_FE_ENB);
        val = readl(qm->io_base + HPRE_AM_OOO_SHUTDOWN_ENB);
        val |= HPRE_AM_OOO_SHUTDOWN_ENABLE;
        writel(val, qm->io_base + HPRE_AM_OOO_SHUTDOWN_ENB);
+
+       /* enable hpre hw error interrupts */
+       writel(HPRE_CORE_INT_ENABLE, qm->io_base + HPRE_INT_MASK);
 }
 
 static inline struct hisi_qm *hpre_file_to_qm(struct hpre_debugfs_file *file)
 
                return;
        }
 
-       val = readl(qm->io_base + SEC_CONTROL_REG);
-
        /* clear SEC hw error source if having */
        writel(SEC_CORE_INT_CLEAR, qm->io_base + SEC_CORE_INT_SOURCE);
 
-       /* enable SEC hw error interrupts */
-       writel(SEC_CORE_INT_ENABLE, qm->io_base + SEC_CORE_INT_MASK);
-
        /* enable RAS int */
        writel(SEC_RAS_CE_ENB_MSK, qm->io_base + SEC_RAS_CE_REG);
        writel(SEC_RAS_FE_ENB_MSK, qm->io_base + SEC_RAS_FE_REG);
        writel(SEC_RAS_NFE_ENB_MSK, qm->io_base + SEC_RAS_NFE_REG);
 
        /* enable SEC block master OOO when m-bit error occur */
+       val = readl(qm->io_base + SEC_CONTROL_REG);
        val = val | SEC_AXI_SHUTDOWN_ENABLE;
-
        writel(val, qm->io_base + SEC_CONTROL_REG);
+
+       /* enable SEC hw error interrupts */
+       writel(SEC_CORE_INT_ENABLE, qm->io_base + SEC_CORE_INT_MASK);
 }
 
 static void sec_hw_error_disable(struct hisi_qm *qm)
 {
        u32 val;
 
-       val = readl(qm->io_base + SEC_CONTROL_REG);
-
-       /* disable RAS int */
-       writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_CE_REG);
-       writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_FE_REG);
-       writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_NFE_REG);
-
        /* disable SEC hw error interrupts */
        writel(SEC_CORE_INT_DISABLE, qm->io_base + SEC_CORE_INT_MASK);
 
        /* disable SEC block master OOO when m-bit error occur */
+       val = readl(qm->io_base + SEC_CONTROL_REG);
        val = val & SEC_AXI_SHUTDOWN_DISABLE;
-
        writel(val, qm->io_base + SEC_CONTROL_REG);
+
+       /* disable RAS int */
+       writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_CE_REG);
+       writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_FE_REG);
+       writel(SEC_RAS_DISABLE, qm->io_base + SEC_RAS_NFE_REG);
 }
 
 static u32 sec_clear_enable_read(struct sec_debug_file *file)
 
        writel(HZIP_CORE_INT_RAS_NFE_ENABLE,
               qm->io_base + HZIP_CORE_INT_RAS_NFE_ENB);
 
-       /* enable ZIP hw error interrupts */
-       writel(0, qm->io_base + HZIP_CORE_INT_MASK_REG);
-
        /* enable ZIP block master OOO when m-bit error occur */
        val = readl(qm->io_base + HZIP_SOFT_CTRL_ZIP_CONTROL);
        val = val | HZIP_AXI_SHUTDOWN_ENABLE;
        writel(val, qm->io_base + HZIP_SOFT_CTRL_ZIP_CONTROL);
+
+       /* enable ZIP hw error interrupts */
+       writel(0, qm->io_base + HZIP_CORE_INT_MASK_REG);
 }
 
 static void hisi_zip_hw_error_disable(struct hisi_qm *qm)