[PATCH] drm/amdgpu: Add a noverbose flag to psp_wait_for

Kamal, Asad Asad.Kamal at amd.com
Wed Jul 2 03:47:15 UTC 2025


[AMD Official Use Only - AMD Internal Distribution Only]

Apart from minor comment inline, patch looks good to me.

Reviewed-by: Asad Kamal <asad.kamal at amd.com>

Thanks & Regards
Asad


-----Original Message-----
From: Lazar, Lijo <Lijo.Lazar at amd.com>
Sent: Tuesday, July 1, 2025 2:54 PM
To: amd-gfx at lists.freedesktop.org
Cc: Zhang, Hawking <Hawking.Zhang at amd.com>; Deucher, Alexander <Alexander.Deucher at amd.com>; Kamal, Asad <Asad.Kamal at amd.com>; Tomasevic, Vojislav <Vojislav.Tomasevic at amd.com>
Subject: [PATCH] drm/amdgpu: Add a noverbose flag to psp_wait_for

For extended wait with retries on a PSP register value, add a noverbose flag to avoid excessive error messages on each timeout.

Signed-off-by: Lijo Lazar <lijo.lazar at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c  | 13 +++---  drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h  |  7 ++-
 drivers/gpu/drm/amd/amdgpu/psp_v10_0.c   |  4 +-
 drivers/gpu/drm/amd/amdgpu/psp_v11_0.c   | 35 ++++++++-------
 drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.c | 10 ++---
 drivers/gpu/drm/amd/amdgpu/psp_v12_0.c   | 20 ++++-----
 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c   | 41 ++++++++++--------
 drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c | 22 +++++-----
 drivers/gpu/drm/amd/amdgpu/psp_v14_0.c   | 55 +++++++++++++-----------
 drivers/gpu/drm/amd/amdgpu/psp_v3_1.c    | 41 +++++++++---------
 10 files changed, 130 insertions(+), 118 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
index 04dedf38eb0d..25aa35de1e41 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
@@ -575,9 +575,11 @@ static int psp_sw_fini(struct amdgpu_ip_block *ip_block)
        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; @@ -597,9 +599,10 @@ int psp_wait_for(struct psp_context *psp, uint32_t reg_index,
                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;
 }
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
index 4bc0ec49d2e9..35888f1937bc 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
@@ -134,6 +134,9 @@ enum psp_reg_prog_id {
        PSP_REG_LAST
 };

+#define PSP_WAITREG_CHANGED (1U << 0) /* check if the value has changed
+*/ #define PSP_WAITREG_NOVERBOSE (1U << 1) /* No error verbose */
+
AK: Can we use BIT macro here?

 struct psp_funcs {
        int (*init_microcode)(struct psp_context *psp);
        int (*wait_for_bootloader)(struct psp_context *psp); @@ -532,8 +535,8 @@ extern const struct amdgpu_ip_block_version psp_v13_0_ip_block;  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);

diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
index 2c4ebd98927f..3584b8c18fd9 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
@@ -94,7 +94,7 @@ static int psp_v10_0_ring_create(struct psp_context *psp,

        /* 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;
 }
@@ -115,7 +115,7 @@ static int psp_v10_0_ring_stop(struct psp_context *psp,

        /* 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;
 }
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
index 1a4a26e6ffd2..6cc05d36e359 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0.c
@@ -152,11 +152,9 @@ static int psp_v11_0_wait_for_bootloader(struct psp_context *psp)
        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;
@@ -252,8 +250,8 @@ static int psp_v11_0_bootloader_load_sos(struct psp_context *psp)
        /* 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;
 }
@@ -279,11 +277,11 @@ static int psp_v11_0_ring_stop(struct psp_context *psp,
        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;
 }
@@ -321,13 +319,13 @@ static int psp_v11_0_ring_create(struct psp_context *psp,
                /* 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;
@@ -353,7 +351,7 @@ static int psp_v11_0_ring_create(struct psp_context *psp,
                /* 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;
@@ -387,7 +385,7 @@ static int psp_v11_0_mode1_reset(struct psp_context *psp)
        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"); @@ -402,7 +400,7 @@ static int psp_v11_0_mode1_reset(struct psp_context *psp)
        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"); @@ -428,8 +426,9 @@ static int psp_v11_0_memory_training_send_msg(struct psp_context *psp, int msg)

        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;
        }
@@ -608,7 +607,7 @@ static int psp_v11_0_load_usbc_pd_fw(struct psp_context *psp, uint64_t fw_pri_mc
        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;

@@ -645,7 +644,7 @@ static int psp_v11_0_read_usbc_pd_fw(struct psp_context *psp, uint32_t *fw_ver)
        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);

diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.c b/drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.c
index 338d015c0f2e..93787a90d598 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v11_0_8.c
@@ -43,7 +43,7 @@ static int psp_v11_0_8_ring_stop(struct psp_context *psp,
                /* 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, @@ -53,7 +53,7 @@ static int psp_v11_0_8_ring_stop(struct psp_context *psp,
                /* 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;
@@ -91,13 +91,13 @@ static int psp_v11_0_8_ring_create(struct psp_context *psp,
                /* 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;
@@ -123,7 +123,7 @@ static int psp_v11_0_8_ring_create(struct psp_context *psp,
                /* 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;
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
index d54b3e0fabaf..4c6450d62299 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c
@@ -82,7 +82,7 @@ static int psp_v12_0_bootloader_load_sysdrv(struct psp_context *psp)

        /* 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;

@@ -97,7 +97,7 @@ static int psp_v12_0_bootloader_load_sysdrv(struct psp_context *psp)
               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;
 }
@@ -118,7 +118,7 @@ static int psp_v12_0_bootloader_load_sos(struct psp_context *psp)

        /* 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;

@@ -133,8 +133,8 @@ static int psp_v12_0_bootloader_load_sos(struct psp_context *psp)
               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;
 }
@@ -163,7 +163,7 @@ static int psp_v12_0_ring_create(struct psp_context *psp,

        /* 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;
 }
@@ -186,11 +186,11 @@ static int psp_v12_0_ring_stop(struct psp_context *psp,
        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;
 }
@@ -222,7 +222,7 @@ static int psp_v12_0_mode1_reset(struct psp_context *psp)
        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"); @@ -237,7 +237,7 @@ static int psp_v12_0_mode1_reset(struct psp_context *psp)
        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"); diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
index 58b6b64dcd68..af4a7d7c4abd 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0.c
@@ -182,7 +182,7 @@ static int psp_v13_0_wait_for_vmbx_ready(struct psp_context *psp)
                   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;
@@ -213,7 +213,7 @@ static int psp_v13_0_wait_for_bootloader(struct psp_context *psp)
        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;
@@ -362,8 +362,8 @@ static int psp_v13_0_bootloader_load_sos(struct psp_context *psp)
        /* 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);
@@ -386,7 +386,7 @@ static int psp_v13_0_ring_stop(struct psp_context *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, @@ -396,7 +396,7 @@ static int psp_v13_0_ring_stop(struct psp_context *psp,
                /* 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;
@@ -434,13 +434,13 @@ static int psp_v13_0_ring_create(struct psp_context *psp,
                /* 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;
@@ -466,7 +466,7 @@ static int psp_v13_0_ring_create(struct psp_context *psp,
                /* 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;
@@ -529,8 +529,9 @@ static int psp_v13_0_memory_training_send_msg(struct psp_context *psp, int msg)

        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;
        }
@@ -682,7 +683,7 @@ static int psp_v13_0_load_usbc_pd_fw(struct psp_context *psp, uint64_t fw_pri_mc
        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;

@@ -719,7 +720,7 @@ static int psp_v13_0_read_usbc_pd_fw(struct psp_context *psp, uint32_t *fw_ver)
        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);

@@ -744,8 +745,9 @@ static int psp_v13_0_exec_spi_cmd(struct psp_context *psp, int cmd)
                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;
@@ -769,7 +771,7 @@ static int psp_v13_0_update_spirom(struct psp_context *psp,

        /* 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;
@@ -804,7 +806,7 @@ static int psp_v13_0_dump_spirom(struct psp_context *psp,

        /* 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;
@@ -931,8 +933,9 @@ static int psp_v13_0_reg_program_no_ring(struct psp_context *psp, uint32_t val,
                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;
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c b/drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c
index f65af52c1c19..5f39a2edcc95 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v13_0_4.c
@@ -76,11 +76,9 @@ static int psp_v13_0_4_wait_for_bootloader(struct psp_context *psp)
        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;
@@ -185,8 +183,8 @@ static int psp_v13_0_4_bootloader_load_sos(struct psp_context *psp)
        /* 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;
 }
@@ -206,7 +204,7 @@ static int psp_v13_0_4_ring_stop(struct psp_context *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, @@ -216,7 +214,7 @@ static int psp_v13_0_4_ring_stop(struct psp_context *psp,
                /* 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;
@@ -254,13 +252,13 @@ static int psp_v13_0_4_ring_create(struct psp_context *psp,
                /* 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;
@@ -286,7 +284,7 @@ static int psp_v13_0_4_ring_create(struct psp_context *psp,
                /* 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;
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v14_0.c b/drivers/gpu/drm/amd/amdgpu/psp_v14_0.c
index ffa47c7d24c9..36ef4a72ad1d 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v14_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v14_0.c
@@ -109,11 +109,9 @@ static int psp_v14_0_wait_for_bootloader(struct psp_context *psp)
        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;
@@ -228,9 +226,10 @@ static int psp_v14_0_bootloader_load_sos(struct psp_context *psp)

        /* 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;
 }
@@ -250,7 +249,7 @@ static int psp_v14_0_ring_stop(struct psp_context *psp,
                /* 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, @@ -260,7 +259,7 @@ static int psp_v14_0_ring_stop(struct psp_context *psp,
                /* 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;
@@ -298,13 +297,13 @@ static int psp_v14_0_ring_create(struct psp_context *psp,
                /* 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;
@@ -330,7 +329,7 @@ static int psp_v14_0_ring_create(struct psp_context *psp,
                /* 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;
@@ -393,8 +392,9 @@ static int psp_v14_0_memory_training_send_msg(struct psp_context *psp, int msg)

        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;
        }
@@ -545,8 +545,9 @@ static int psp_v14_0_load_usbc_pd_fw(struct psp_context *psp, uint64_t fw_pri_mc
         */
        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;

@@ -582,8 +583,9 @@ static int psp_v14_0_read_usbc_pd_fw(struct psp_context *psp, uint32_t *fw_ver)

        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);

@@ -607,11 +609,13 @@ static int psp_v14_0_exec_spi_cmd(struct psp_context *psp, int cmd)
                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;
@@ -634,8 +638,9 @@ static int psp_v14_0_update_spirom(struct psp_context *psp,
        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;
diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
index f6b75e3e47ff..833830bc3e2e 100644
--- a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
+++ b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
@@ -91,7 +91,7 @@ static int psp_v3_1_bootloader_load_sysdrv(struct psp_context *psp)

        /* 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;

@@ -109,7 +109,7 @@ static int psp_v3_1_bootloader_load_sysdrv(struct psp_context *psp)
        mdelay(20);

        ret = psp_wait_for(psp, SOC15_REG_OFFSET(MP0, 0, mmMP0_SMN_C2PMSG_35),
-                          0x80000000, 0x80000000, false);
+                          0x80000000, 0x80000000, 0);

        return ret;
 }
@@ -130,7 +130,7 @@ static int psp_v3_1_bootloader_load_sos(struct psp_context *psp)

        /* 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;

@@ -147,8 +147,8 @@ static int psp_v3_1_bootloader_load_sos(struct psp_context *psp)
        /* 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;
 }

@@ -168,7 +168,7 @@ static void psp_v3_1_reroute_ih(struct psp_context *psp)

        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); @@ -180,7 +180,7 @@ static void psp_v3_1_reroute_ih(struct psp_context *psp)

        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, @@ -217,9 +217,9 @@ 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 */ @@ -240,10 +240,9 @@ static int psp_v3_1_ring_create(struct psp_context *psp,
                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;
 }
@@ -267,11 +266,13 @@ static int psp_v3_1_ring_stop(struct psp_context *psp,

        /* 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;
 }
@@ -311,7 +312,7 @@ static int psp_v3_1_mode1_reset(struct psp_context *psp)

        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"); @@ -325,7 +326,7 @@ static int psp_v3_1_mode1_reset(struct psp_context *psp)

        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");
--
2.49.0



More information about the amd-gfx mailing list