[AMD Official Use Only - AMD Internal Distribution Only] Reviewed-by: Leo Liu <leo....@amd.com>
> -----Original Message----- > From: Dong, Ruijing <ruijing.d...@amd.com> > Sent: May 5, 2025 10:46 AM > 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