diff options
author | Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> | 2019-06-19 21:40:58 +0300 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2019-10-03 17:10:58 +0300 |
commit | 143f23053333c266ca89642e3ce7df83023b4793 (patch) | |
tree | bcb8a21a5aa1078a10d2780a3f227817745d2702 /drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | |
parent | ed19a9a2bb1ab2d107987ae6d1e59318b188c4ba (diff) | |
download | linux-143f23053333c266ca89642e3ce7df83023b4793.tar.xz |
drm/amdgpu: psp DTM init
DTM is the display topology manager. This is needed to communicate with
psp about the display configurations.
This patch adds
-Loading the firmware
-The functions and definitions for communication with the firmware
v2: Fix formatting
Signed-off-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h index 6788e1601945..7dd9ae7dbbe4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h @@ -38,6 +38,7 @@ #define PSP_1_MEG 0x100000 #define PSP_TMR_SIZE 0x400000 #define PSP_HDCP_SHARED_MEM_SIZE 0x4000 +#define PSP_DTM_SHARED_MEM_SIZE 0x4000 #define PSP_SHARED_MEM_SIZE 0x4000 struct psp_context; @@ -152,6 +153,14 @@ struct psp_hdcp_context { void *hdcp_shared_buf; }; +struct psp_dtm_context { + bool dtm_initialized; + uint32_t session_id; + struct amdgpu_bo *dtm_shared_bo; + uint64_t dtm_shared_mc_addr; + void *dtm_shared_buf; +}; + struct psp_context { struct amdgpu_device *adev; @@ -221,9 +230,14 @@ struct psp_context uint32_t ta_hdcp_ucode_size; uint8_t *ta_hdcp_start_addr; + uint32_t ta_dtm_ucode_version; + uint32_t ta_dtm_ucode_size; + uint8_t *ta_dtm_start_addr; + struct psp_xgmi_context xgmi_context; struct psp_ras_context ras; struct psp_hdcp_context hdcp_context; + struct psp_dtm_context dtm_context; struct mutex mutex; }; @@ -296,6 +310,7 @@ int psp_ras_invoke(struct psp_context *psp, uint32_t ta_cmd_id); int psp_ras_enable_features(struct psp_context *psp, union ta_ras_cmd_input *info, bool enable); int psp_hdcp_invoke(struct psp_context *psp, uint32_t ta_cmd_id); +int psp_dtm_invoke(struct psp_context *psp, uint32_t ta_cmd_id); int psp_rlc_autoload_start(struct psp_context *psp); |