From: Tom Chung <chiahsuan.ch...@amd.com>

[Why]
dmub_psr_get_state() return an invalid PSR state while disable
the PSR because convert_psr_state() doesn't recognize the state
that return from DMCUB.

[How]
Add a PSR state to make the dmub_psr_get_state() return a
correct PSR state.

Acked-by: Stylon Wang <stylon.w...@amd.com>
Signed-off-by: Tom Chung <chiahsuan.ch...@amd.com>
Reviewed-by: Wayne Lin <wayne....@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dc_types.h     | 1 +
 drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h 
b/drivers/gpu/drm/amd/display/dc/dc_types.h
index 6b4731b5e975..0ce7728a5a4b 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_types.h
@@ -597,6 +597,7 @@ enum dc_psr_state {
        PSR_STATE4b_FULL_FRAME,
        PSR_STATE4c_FULL_FRAME,
        PSR_STATE4_FULL_FRAME_POWERUP,
+       PSR_STATE4_FULL_FRAME_HW_LOCK,
        PSR_STATE5,
        PSR_STATE5a,
        PSR_STATE5b,
diff --git a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c 
b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
index 4000a834592c..0f24b6fbd220 100644
--- a/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
+++ b/drivers/gpu/drm/amd/display/dc/dce/dmub_psr.c
@@ -87,6 +87,8 @@ static enum dc_psr_state convert_psr_state(uint32_t raw_state)
                state = PSR_STATE4c_FULL_FRAME;
        else if (raw_state == 0x4E)
                state = PSR_STATE4_FULL_FRAME_POWERUP;
+       else if (raw_state == 0x4F)
+               state = PSR_STATE4_FULL_FRAME_HW_LOCK;
        else if (raw_state == 0x60)
                state = PSR_STATE_HWLOCK_MGR;
        else if (raw_state == 0x61)
-- 
2.40.1

Reply via email to