return 0;
 }
 
-int psp_wait_for(struct psp_context *psp, uint32_t reg_index,
-                uint32_t reg_val, uint32_t mask, bool check_changed)
+int psp_wait_for(struct psp_context *psp, uint32_t reg_index, uint32_t reg_val,
+                uint32_t mask, uint32_t flags)
 {
+       bool check_changed = flags & PSP_WAITREG_CHANGED;
+       bool verbose = !(flags & PSP_WAITREG_NOVERBOSE);
        uint32_t val;
        int i;
        struct amdgpu_device *adev = psp->adev;
                udelay(1);
        }
 
-       dev_err(adev->dev,
-               "psp reg (0x%x) wait timed out, mask: %x, read: %x exp: %x",
-               reg_index, mask, val, reg_val);
+       if (verbose)
+               dev_err(adev->dev,
+                       "psp reg (0x%x) wait timed out, mask: %x, read: %x exp: %x",
+                       reg_index, mask, val, reg_val);
 
        return -ETIME;
 }
 
        PSP_REG_LAST
 };
 
+#define PSP_WAITREG_CHANGED BIT(0) /* check if the value has changed */
+#define PSP_WAITREG_NOVERBOSE BIT(1) /* No error verbose */
+
 struct psp_funcs {
        int (*init_microcode)(struct psp_context *psp);
        int (*wait_for_bootloader)(struct psp_context *psp);
 extern const struct amdgpu_ip_block_version psp_v13_0_4_ip_block;
 extern const struct amdgpu_ip_block_version psp_v14_0_ip_block;
 
-extern int psp_wait_for(struct psp_context *psp, uint32_t reg_index,
-                       uint32_t field_val, uint32_t mask, bool check_changed);
+int psp_wait_for(struct psp_context *psp, uint32_t reg_index,
+                uint32_t field_val, uint32_t mask, uint32_t flags);
 extern int psp_wait_for_spirom_update(struct psp_context *psp, uint32_t reg_index,
                        uint32_t field_val, uint32_t mask, uint32_t msec_timeout);
 
 
 
        /* Wait for response flag (bit 31) in C2PMSG_64 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                          MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                          MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        return ret;
 }
 
        /* Wait for response flag (bit 31) in C2PMSG_64 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                          MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                          MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        return ret;
 }
 
        for (retry_loop = 0; retry_loop < 10; retry_loop++) {
                /* Wait for bootloader to signify that is
                    ready having bit 31 of C2PMSG_35 set to 1 */
-               ret = psp_wait_for(psp,
-                                  SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                                  0x80000000,
-                                  0x80000000,
-                                  false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
+                       0x80000000, 0x80000000, PSP_WAITREG_NOVERBOSE);
 
                if (ret == 0)
                        return 0;
        /* there might be handshake issue with hardware which needs delay */
        mdelay(20);
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_81),
-                          RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81),
-                          0, true);
+                          RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81), 0,
+                          PSP_WAITREG_CHANGED);
 
        return ret;
 }
        if (amdgpu_sriov_vf(adev))
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        else
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        return ret;
 }
                /* Wait for response flag (bit 31) in C2PMSG_101 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        } else {
                /* Wait for sOS ready for ring creation */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, false);
+                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, 0);
                if (ret) {
                        DRM_ERROR("Failed to wait for sOS ready for ring creation\n");
                        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_64 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
        offset = SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64);
 
        ret = psp_wait_for(psp, offset, MBOX_TOS_READY_FLAG,
-                          MBOX_TOS_READY_MASK, false);
+                          MBOX_TOS_READY_MASK, 0);
 
        if (ret) {
                DRM_INFO("psp is not working correctly before mode1 reset!\n");
        offset = SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_33);
 
        ret = psp_wait_for(psp, offset, MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK,
-                          false);
+                          0);
 
        if (ret) {
                DRM_INFO("psp mode 1 reset failed!\n");
 
        max_wait = MEM_TRAIN_SEND_MSG_TIMEOUT_US / adev->usec_timeout;
        for (i = 0; i < max_wait; i++) {
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                                  0x80000000, 0x80000000, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
+                       0x80000000, 0x80000000, PSP_WAITREG_NOVERBOSE);
                if (ret == 0)
                        break;
        }
        WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_36, (fw_pri_mc_addr >> 20));
 
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                            0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (ret)
                return ret;
 
        WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_35, C2PMSG_CMD_GFX_USB_PD_FW_VER);
 
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                                    0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (!ret)
                *fw_ver = RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_36);
 
 
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        } else {
                /* Write the ring destroy command*/
                WREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_64,
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_101 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        } else {
                /* Wait for sOS ready for ring creation */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, false);
+                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, 0);
                if (ret) {
                        DRM_ERROR("Failed to wait for trust OS ready for ring creation\n");
                        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_64 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
 
 
        /* Wait for bootloader to signify that is ready having bit 31 of C2PMSG_35 set to 1 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                          0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (ret)
                return ret;
 
               psp_gfxdrv_command_reg);
 
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                          0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
 
        return ret;
 }
 
        /* Wait for bootloader to signify that is ready having bit 31 of C2PMSG_35 set to 1 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                          0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (ret)
                return ret;
 
               psp_gfxdrv_command_reg);
 
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_81),
-                          RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81),
-                          0, true);
+                          RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81), 0,
+                          PSP_WAITREG_CHANGED);
 
        return ret;
 }
 
        /* Wait for response flag (bit 31) in C2PMSG_64 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                          MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                          MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        return ret;
 }
        if (amdgpu_sriov_vf(adev))
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        else
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        return ret;
 }
        offset = SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64);
 
        ret = psp_wait_for(psp, offset, MBOX_TOS_READY_FLAG,
-                          MBOX_TOS_READY_MASK, false);
+                          MBOX_TOS_READY_MASK, 0);
 
        if (ret) {
                DRM_INFO("psp is not working correctly before mode1 reset!\n");
        offset = SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_33);
 
        ret = psp_wait_for(psp, offset, MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK,
-                          false);
+                          0);
 
        if (ret) {
                DRM_INFO("psp mode 1 reset failed!\n");
 
                   ready having bit 31 of C2PMSG_33 set to 1 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_33),
-                       0x80000000, 0xffffffff, false);
+                       0x80000000, 0xffffffff, PSP_WAITREG_NOVERBOSE);
 
                if (ret == 0)
                        break;
        for (retry_loop = 0; retry_loop < retry_cnt; retry_loop++) {
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35),
-                       0x80000000, 0xffffffff, false);
+                       0x80000000, 0xffffffff, PSP_WAITREG_NOVERBOSE);
 
                if (ret == 0)
                        return 0;
        /* there might be handshake issue with hardware which needs delay */
        mdelay(20);
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_81),
-                          RREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_81),
-                          0, true);
+                          RREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_81), 0,
+                          PSP_WAITREG_CHANGED);
 
        if (!ret)
                psp_v13_0_init_sos_version(psp);
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        } else {
                /* Write the ring destroy command*/
                WREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_64,
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_101 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        } else {
                /* Wait for sOS ready for ring creation */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, false);
+                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, 0);
                if (ret) {
                        DRM_ERROR("Failed to wait for trust OS ready for ring creation\n");
                        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_64 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
 
        max_wait = MEM_TRAIN_SEND_MSG_TIMEOUT_US / adev->usec_timeout;
        for (i = 0; i < max_wait; i++) {
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35),
-                                  0x80000000, 0x80000000, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35),
+                       0x80000000, 0x80000000, PSP_WAITREG_NOVERBOSE);
                if (ret == 0)
                        break;
        }
        WREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_36, (fw_pri_mc_addr >> 20));
 
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35),
-                            0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (ret)
                return ret;
 
        WREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_35, C2PMSG_CMD_GFX_USB_PD_FW_VER);
 
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35),
-                                    0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (!ret)
                *fw_ver = RREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_36);
 
                ret = psp_wait_for_spirom_update(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_115),
                                                 MBOX_READY_FLAG, MBOX_READY_MASK, PSP_SPIROM_UPDATE_TIMEOUT);
        else
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_115),
-                                  MBOX_READY_FLAG, MBOX_READY_MASK, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_115),
+                       MBOX_READY_FLAG, MBOX_READY_MASK, 0);
        if (ret) {
                dev_err(adev->dev, "SPI cmd %x timed out, ret = %d", cmd, ret);
                return ret;
 
        /* Confirm PSP is ready to start */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_115),
-                          MBOX_READY_FLAG, MBOX_READY_MASK, false);
+                          MBOX_READY_FLAG, MBOX_READY_MASK, 0);
        if (ret) {
                dev_err(adev->dev, "PSP Not ready to start processing, ret = %d", ret);
                return ret;
 
        /* Confirm PSP is ready to start */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_115),
-                          MBOX_READY_FLAG, MBOX_READY_MASK, false);
+                          MBOX_READY_FLAG, MBOX_READY_MASK, 0);
        if (ret) {
                dev_err(adev->dev, "PSP Not ready to start processing, ret = %d", ret);
                return ret;
                WREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_102, id);
                WREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_103, val);
 
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_101),
-                                  0x80000000, 0x80000000, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_101),
+                       0x80000000, 0x80000000, 0);
        }
 
        return ret;
 
        for (retry_loop = 0; retry_loop < 10; retry_loop++) {
                /* Wait for bootloader to signify that is
                    ready having bit 31 of C2PMSG_35 set to 1 */
-               ret = psp_wait_for(psp,
-                                  SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35),
-                                  0x80000000,
-                                  0x80000000,
-                                  false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_35),
+                       0x80000000, 0x80000000, PSP_WAITREG_NOVERBOSE);
 
                if (ret == 0)
                        return 0;
        /* there might be handshake issue with hardware which needs delay */
        mdelay(20);
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_81),
-                          RREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_81),
-                          0, true);
+                          RREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_81), 0,
+                          PSP_WAITREG_CHANGED);
 
        return ret;
 }
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        } else {
                /* Write the ring destroy command*/
                WREG32_SOC15(MP0, 0, regMP0_SMN_C2PMSG_64,
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_101 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        } else {
                /* Wait for sOS ready for ring creation */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, false);
+                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, 0);
                if (ret) {
                        DRM_ERROR("Failed to wait for trust OS ready for ring creation\n");
                        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_64 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMP0_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
 
        for (retry_loop = 0; retry_loop < 10; retry_loop++) {
                /* Wait for bootloader to signify that is
                    ready having bit 31 of C2PMSG_35 set to 1 */
-               ret = psp_wait_for(psp,
-                                  SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
-                                  0x80000000,
-                                  0x80000000,
-                                  false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
+                       0x80000000, 0x80000000, PSP_WAITREG_NOVERBOSE);
 
                if (ret == 0)
                        return 0;
 
        /* there might be handshake issue with hardware which needs delay */
        mdelay(20);
-       ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_81),
-                          RREG32_SOC15(MP0, 0, regMPASP_SMN_C2PMSG_81),
-                          0, true);
+       ret = psp_wait_for(psp,
+                          SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_81),
+                          RREG32_SOC15(MP0, 0, regMPASP_SMN_C2PMSG_81), 0,
+                          PSP_WAITREG_CHANGED);
 
        return ret;
 }
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        } else {
                /* Write the ring destroy command*/
                WREG32_SOC15(MP0, 0, regMPASP_SMN_C2PMSG_64,
                /* Wait for response flag (bit 31) */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_101 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_101),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
 
        } else {
                /* Wait for sOS ready for ring creation */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_64),
-                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, false);
+                       MBOX_TOS_READY_FLAG, MBOX_TOS_READY_MASK, 0);
                if (ret) {
                        DRM_ERROR("Failed to wait for trust OS ready for ring creation\n");
                        return ret;
                /* Wait for response flag (bit 31) in C2PMSG_64 */
                ret = psp_wait_for(
                        psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_64),
-                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, false);
+                       MBOX_TOS_RESP_FLAG, MBOX_TOS_RESP_MASK, 0);
        }
 
        return ret;
 
        max_wait = MEM_TRAIN_SEND_MSG_TIMEOUT_US / adev->usec_timeout;
        for (i = 0; i < max_wait; i++) {
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
-                                  0x80000000, 0x80000000, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
+                       0x80000000, 0x80000000, PSP_WAITREG_NOVERBOSE);
                if (ret == 0)
                        break;
        }
         */
        WREG32_SOC15(MP0, 0, regMPASP_SMN_C2PMSG_36, (fw_pri_mc_addr >> 20));
 
-       ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
-                            0x80000000, 0x80000000, false);
+       ret = psp_wait_for(psp,
+                          SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
+                          0x80000000, 0x80000000, 0);
        if (ret)
                return ret;
 
 
        WREG32_SOC15(MP0, 0, regMPASP_SMN_C2PMSG_35, C2PMSG_CMD_GFX_USB_PD_FW_VER);
 
-       ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
-                                    0x80000000, 0x80000000, false);
+       ret = psp_wait_for(psp,
+                          SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_35),
+                          0x80000000, 0x80000000, 0);
        if (!ret)
                *fw_ver = RREG32_SOC15(MP0, 0, regMPASP_SMN_C2PMSG_36);
 
                ret = psp_wait_for_spirom_update(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_115),
                                                 MBOX_READY_FLAG, MBOX_READY_MASK, PSP_SPIROM_UPDATE_TIMEOUT);
        else
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_115),
-                                  MBOX_READY_FLAG, MBOX_READY_MASK, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_115),
+                       MBOX_READY_FLAG, MBOX_READY_MASK, 0);
 
-       ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_115),
-                               MBOX_READY_FLAG, MBOX_READY_MASK, false);
+       ret = psp_wait_for(psp,
+                          SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_115),
+                          MBOX_READY_FLAG, MBOX_READY_MASK, 0);
        if (ret) {
                dev_err(adev->dev, "SPI cmd %x timed out, ret = %d", cmd, ret);
                return ret;
        int ret;
 
        /* Confirm PSP is ready to start */
-       ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_115),
-                          MBOX_READY_FLAG, MBOX_READY_MASK, false);
+       ret = psp_wait_for(psp,
+                          SOC15_REG_OFFSET(MP0, 0, regMPASP_SMN_C2PMSG_115),
+                          MBOX_READY_FLAG, MBOX_READY_MASK, 0);
        if (ret) {
                dev_err(adev->dev, "PSP Not ready to start processing, ret = %d", ret);
                return ret;
 
 
        /* Wait for bootloader to signify that is ready having bit 31 of C2PMSG_35 set to 1 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                          0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (ret)
                return ret;
 
        mdelay(20);
 
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                          0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
 
        return ret;
 }
 
        /* Wait for bootloader to signify that is ready having bit 31 of C2PMSG_35 set to 1 */
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                          0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);
        if (ret)
                return ret;
 
        /* there might be handshake issue with hardware which needs delay */
        mdelay(20);
        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_81),
-                          RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81),
-                          0, true);
+                          RREG32_SOC15(MP0, 0, mmMP0_SMN_C2PMSG_81), 0,
+                          PSP_WAITREG_CHANGED);
        return ret;
 }
 
 
        mdelay(20);
        psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                    0x80000000, 0x8000FFFF, false);
+                    0x80000000, 0x8000FFFF, 0);
 
        /* Change IH ring for UMC */
        tmp = REG_SET_FIELD(0, IH_CLIENT_CFG_DATA, CREDIT_RETURN_ADDR, 0x1216b);
 
        mdelay(20);
        psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                    0x80000000, 0x8000FFFF, false);
+                    0x80000000, 0x8000FFFF, 0);
 }
 
 static int psp_v3_1_ring_create(struct psp_context *psp,
                mdelay(20);
 
                /* Wait for response flag (bit 31) in C2PMSG_101 */
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0,
-                                       mmMP0_SMN_C2PMSG_101), 0x80000000,
-                                       0x8000FFFF, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
+                       0x80000000, 0x8000FFFF, 0);
        } else {
 
                /* Write low address of the ring to C2PMSG_69 */
                mdelay(20);
 
                /* Wait for response flag (bit 31) in C2PMSG_64 */
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0,
-                                       mmMP0_SMN_C2PMSG_64), 0x80000000,
-                                       0x8000FFFF, false);
-
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
+                       0x80000000, 0x8000FFFF, 0);
        }
        return ret;
 }
 
        /* Wait for response flag (bit 31) */
        if (amdgpu_sriov_vf(adev))
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
-                                  0x80000000, 0x80000000, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_101),
+                       0x80000000, 0x80000000, 0);
        else
-               ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
-                                  0x80000000, 0x80000000, false);
+               ret = psp_wait_for(
+                       psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64),
+                       0x80000000, 0x80000000, 0);
 
        return ret;
 }
 
        offset = SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_64);
 
-       ret = psp_wait_for(psp, offset, 0x80000000, 0x8000FFFF, false);
+       ret = psp_wait_for(psp, offset, 0x80000000, 0x8000FFFF, 0);
 
        if (ret) {
                DRM_INFO("psp is not working correctly before mode1 reset!\n");
 
        offset = SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_33);
 
-       ret = psp_wait_for(psp, offset, 0x80000000, 0x80000000, false);
+       ret = psp_wait_for(psp, offset, 0x80000000, 0x80000000, 0);
 
        if (ret) {
                DRM_INFO("psp mode 1 reset failed!\n");