summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h
diff options
context:
space:
mode:
authorMartin Tsai <martin.tsai@amd.com>2018-12-13 07:25:19 +0300
committerAlex Deucher <alexander.deucher@amd.com>2019-01-14 23:39:22 +0300
commitffb6c1c6c5a12a623205c0d984851ed10dabb75f (patch)
tree7c0c493237f93e7e0536bd7839263251df0ea891 /drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h
parent070fe7246f0666d8da2b06e4e829adaf26c75a0f (diff)
downloadlinux-ffb6c1c6c5a12a623205c0d984851ed10dabb75f.tar.xz
drm/amd/display: Redefine DMCU_SCRATCH to identify DMCU state
[why] To resume system before entering S0i3 completely will cause PSP not reload DMCU FW since there is not HW power state change. In this case, driver cannot get correct DMCU version from IRAM since driver override it and DMCU didn't reload to update it. It makes driver return false in dcn10_dmcu_init(). [how] 1.To redefine DMCU_SCRATCH to identify different DMCU state. 2.To reserve IRAM 0xF0~0xFF write by DMCU only. 3.To remove dcn10_get_dmcu_state Signed-off-by: Martin Tsai <martin.tsai@amd.com> Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h')
-rw-r--r--drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h b/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h
index cb85eaa9857f..ed32a7503684 100644
--- a/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h
+++ b/drivers/gpu/drm/amd/display/dc/inc/hw/dmcu.h
@@ -27,9 +27,15 @@
#include "dm_services_types.h"
+/* If HW itself ever powered down it will be 0.
+ * fwDmcuInit will write to 1.
+ * Driver will only call MCP init if current state is 1,
+ * and the MCP command will transition this to 2.
+ */
enum dmcu_state {
- DMCU_NOT_INITIALIZED = 0,
- DMCU_RUNNING = 1
+ DMCU_UNLOADED = 0,
+ DMCU_LOADED_UNINITIALIZED = 1,
+ DMCU_RUNNING = 2,
};
struct dmcu_version {