[AMD Official Use Only - AMD Internal Distribution Only]

Acked-by: Saleemkhan Jamadar <saleemkhan.jama...@amd.com>

-----Original Message-----
From: Dong, Ruijing <ruijing.d...@amd.com>
Sent: Monday, May 5, 2025 8:16 PM
To: amd-gfx@lists.freedesktop.org; Jamadar, Saleemkhan 
<saleemkhan.jama...@amd.com>
Cc: Deucher, Alexander <alexander.deuc...@amd.com>; Koenig, Christian 
<christian.koe...@amd.com>; Liu, Leo <leo....@amd.com>; Dong, Ruijing 
<ruijing.d...@amd.com>
Subject: [PATCH v2] drm/amdgpu/vcn: using separate VCN1_AON_SOC offset

v1: fix GFX10_ADDR_CONFIG programming for vcn1
v2: VCN1_AON_SOC_ADDRESS_3_0 offset varies on different
    VCN generations, the issue in vcn4.0.5 is caused by
    a different VCN1_AON_SOC_ADDRESS_3_0 offset.

This patch does the following:

    1. use the same offset for other VCN generations.
    2. use the vcn4.0.5 speical offset
    3. update vcn_4_0 and vcn_5_0

Signed-off-by: Ruijing Dong <ruijing.d...@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h | 1 -
 drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c   | 1 +
 drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c   | 1 +
 drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c   | 1 +
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c   | 3 ++-
 drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 1 +  
drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c | 1 +  
drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c | 2 +-
 8 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
index cdcdae7f71ce..83adf81defc7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
@@ -66,7 +66,6 @@
 #define VCN_ENC_CMD_REG_WAIT           0x0000000c

 #define VCN_AON_SOC_ADDRESS_2_0        0x1f800
-#define VCN1_AON_SOC_ADDRESS_3_0       0x48000
 #define VCN_VID_IP_ADDRESS_2_0         0x0
 #define VCN_AON_IP_ADDRESS_2_0         0x30000

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
index 8e7a36f26e9c..b8d835c9e17e 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
@@ -39,6 +39,7 @@

 #define VCN_VID_SOC_ADDRESS_2_0                                        0x1fa00
 #define VCN1_VID_SOC_ADDRESS_3_0                               0x48200
+#define VCN1_AON_SOC_ADDRESS_3_0                               0x48000

 #define mmUVD_CONTEXT_ID_INTERNAL_OFFSET                       0x1fd
 #define mmUVD_GPCOM_VCPU_CMD_INTERNAL_OFFSET                   0x503
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
index d716510b8dd6..3eec1b8feaee 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
@@ -39,6 +39,7 @@

 #define VCN_VID_SOC_ADDRESS_2_0                                        0x1fa00
 #define VCN1_VID_SOC_ADDRESS_3_0                               0x48200
+#define VCN1_AON_SOC_ADDRESS_3_0                               0x48000

 #define mmUVD_CONTEXT_ID_INTERNAL_OFFSET                       0x27
 #define mmUVD_GPCOM_VCPU_CMD_INTERNAL_OFFSET                   0x0f
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
index 22ae1939476f..0b19f0ab4480 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
@@ -40,6 +40,7 @@

 #define VCN_VID_SOC_ADDRESS_2_0                                        0x1fa00
 #define VCN1_VID_SOC_ADDRESS_3_0                               0x48200
+#define VCN1_AON_SOC_ADDRESS_3_0                               0x48000

 #define mmUVD_CONTEXT_ID_INTERNAL_OFFSET                       0x27
 #define mmUVD_GPCOM_VCPU_CMD_INTERNAL_OFFSET                   0x0f
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
index c6f6392c1c20..351afec0fc82 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
@@ -46,6 +46,7 @@

 #define VCN_VID_SOC_ADDRESS_2_0                                                
        0x1fb00
 #define VCN1_VID_SOC_ADDRESS_3_0                                               
0x48300
+#define VCN1_AON_SOC_ADDRESS_3_0                                               
0x48000

 #define VCN_HARVEST_MMSCH                                                      
        0

@@ -614,7 +615,7 @@ static void vcn_v4_0_mc_resume_dpg_mode(struct 
amdgpu_vcn_inst *vinst,

        /* VCN global tiling registers */
        WREG32_SOC15_DPG_MODE(inst_idx, SOC15_DPG_MODE_OFFSET(
-               VCN, 0, regUVD_GFX10_ADDR_CONFIG), 
adev->gfx.config.gb_addr_config, 0, indirect);
+               VCN, inst_idx, regUVD_GFX10_ADDR_CONFIG),
+adev->gfx.config.gb_addr_config, 0, indirect);
 }

 /**
diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
index 139c83bd165e..712e1fba33ce 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
@@ -45,6 +45,7 @@

 #define VCN_VID_SOC_ADDRESS_2_0                0x1fb00
 #define VCN1_VID_SOC_ADDRESS_3_0       0x48300
+#define VCN1_AON_SOC_ADDRESS_3_0       0x48000

 static const struct amdgpu_hwip_reg_entry vcn_reg_list_4_0_3[] = {
        SOC15_REG_ENTRY_STR(VCN, 0, regUVD_POWER_STATUS), diff --git 
a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
index a8cfc63713ad..558469744f3a 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
@@ -46,6 +46,7 @@

 #define VCN_VID_SOC_ADDRESS_2_0                                                
0x1fb00
 #define VCN1_VID_SOC_ADDRESS_3_0                                       
(0x48300 + 0x38000)
+#define VCN1_AON_SOC_ADDRESS_3_0                                       
(0x48000 + 0x38000)

 #define VCN_HARVEST_MMSCH                                                      0

diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c 
b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
index d99d05f42f1d..75c9e7091558 100644
--- a/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
@@ -533,7 +533,7 @@ static void vcn_v5_0_0_mc_resume_dpg_mode(struct 
amdgpu_vcn_inst *vinst,

        /* VCN global tiling registers */
        WREG32_SOC24_DPG_MODE(inst_idx, SOC24_DPG_MODE_OFFSET(
-               VCN, 0, regUVD_GFX10_ADDR_CONFIG), 
adev->gfx.config.gb_addr_config, 0, indirect);
+               VCN, inst_idx, regUVD_GFX10_ADDR_CONFIG),
+adev->gfx.config.gb_addr_config, 0, indirect);

        return;
 }
--
2.48.0.rc0.12.gaaf18a9a82

Reply via email to