From: Lang Yu <lang...@amd.com>

Add support for multi instance VPE processing.

Signed-off-by: Lang Yu <lang...@amd.com>
Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 9 +++++++++
 drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.h       | 4 ++++
 2 files changed, 13 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
index 641e540355399..b6bed77b454de 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
@@ -1319,6 +1319,15 @@ static int amdgpu_discovery_reg_base_init(struct 
amdgpu_device *adev)
                                }
                        }
 
+                       if (le16_to_cpu(ip->hw_id) == VPE_HWID) {
+                               if (adev->vpe.num_instances < 
AMDGPU_MAX_VPE_INSTANCES)
+                                       adev->vpe.num_instances++;
+                               else
+                                       dev_err(adev->dev, "Too many VPE 
instances: %d vs %d\n",
+                                               adev->vpe.num_instances + 1,
+                                               AMDGPU_MAX_VPE_INSTANCES);
+                       }
+
                        if (le16_to_cpu(ip->hw_id) == UMC_HWID) {
                                adev->gmc.num_umc++;
                                adev->umc.node_inst_num++;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.h
index 1153ddaea64d6..ee6db04cf27be 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.h
@@ -27,6 +27,8 @@
 #include "amdgpu_irq.h"
 #include "vpe_6_1_fw_if.h"
 
+#define AMDGPU_MAX_VPE_INSTANCES 2
+
 struct amdgpu_vpe;
 
 struct vpe_funcs {
@@ -74,6 +76,8 @@ struct amdgpu_vpe {
        uint32_t                        *cmdbuf_cpu_addr;
        struct delayed_work             idle_work;
        bool                            context_started;
+
+       uint32_t                        num_instances;
 };
 
 int amdgpu_vpe_psp_update_sram(struct amdgpu_device *adev);
-- 
2.44.0

Reply via email to