summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
index fd881388d612..0a34a27d1106 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
@@ -29,6 +29,7 @@
#include "amdgpu_smu.h"
#include "soc15_common.h"
#include "vpe_v6_1.h"
+#include "vpe_v2_0.h"
#define AMDGPU_CSA_VPE_SIZE 64
/* VPE CSA resides in the 4th page of CSA */
@@ -310,6 +311,9 @@ static int vpe_early_init(struct amdgpu_ip_block *ip_block)
vpe_v6_1_set_funcs(vpe);
vpe->collaborate_mode = true;
break;
+ case IP_VERSION(2, 0, 0):
+ vpe_v2_0_set_funcs(vpe);
+ break;
default:
return -EINVAL;
}
@@ -1009,6 +1013,19 @@ const struct amd_ip_funcs vpe_ip_funcs = {
.set_powergating_state = vpe_set_powergating_state,
};
+const struct amd_ip_funcs vpe2_ip_funcs = {
+ .name = "vpe_v2_0",
+ .early_init = vpe_early_init,
+ .sw_init = vpe_sw_init,
+ .sw_fini = vpe_sw_fini,
+ .hw_init = vpe_hw_init,
+ .hw_fini = vpe_hw_fini,
+ .suspend = vpe_suspend,
+ .resume = vpe_resume,
+ .set_clockgating_state = vpe_set_clockgating_state,
+ .set_powergating_state = vpe_set_powergating_state,
+};
+
const struct amdgpu_ip_block_version vpe_v6_1_ip_block = {
.type = AMD_IP_BLOCK_TYPE_VPE,
.major = 6,
@@ -1016,3 +1033,11 @@ const struct amdgpu_ip_block_version vpe_v6_1_ip_block = {
.rev = 0,
.funcs = &vpe_ip_funcs,
};
+
+const struct amdgpu_ip_block_version vpe_v2_0_ip_block = {
+ .type = AMD_IP_BLOCK_TYPE_VPE,
+ .major = 2,
+ .minor = 0,
+ .rev = 0,
+ .funcs = &vpe2_ip_funcs,
+};