Re: [PATCH] drm/amdgpu: correct the UCODE ID used for VCN 4.0.3 SRAM update
On 7/7/2023 5:01 PM, Lang Yu wrote: It uses the same UCODE ID(VCN0_RAM) but differnet cmd buffers for all instances. Fixes: e928b52c58dd ("drm/amdgpu: use psp_execute_load_ip_fw_cmd_buf instead") Signed-off-by: Lang Yu --- drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ce8c766dcc73..8ff814b6b656 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c @@ -778,7 +778,7 @@ static int vcn_v4_0_3_start_dpg_mode(struct amdgpu_device *adev, int inst_idx, b UVD_MASTINT_EN__VCPU_EN_MASK, 0, indirect); if (indirect) - amdgpu_vcn_psp_update_sram(adev, inst_idx); + amdgpu_vcn_psp_update_sram(adev, 0); This doesn't work either for passing the right buffer. Could you revert the two patches? Not seeing any simplification with those. Previously it was one psp API to be called. Thanks, Lijo >ring = &adev->vcn.inst[inst_idx].ring_enc[0];
Re: [PATCH] drm/amdgpu: correct the UCODE ID used for VCN 4.0.3 SRAM update
On 07/07/ , Lazar, Lijo wrote: > > > On 7/7/2023 5:01 PM, Lang Yu wrote: > > It uses the same UCODE ID(VCN0_RAM) but differnet cmd buffers > > for all instances. > > > > Fixes: e928b52c58dd ("drm/amdgpu: use psp_execute_load_ip_fw_cmd_buf > > instead") > > > > Signed-off-by: Lang Yu > > --- > > drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > 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 ce8c766dcc73..8ff814b6b656 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c > > +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c > > @@ -778,7 +778,7 @@ static int vcn_v4_0_3_start_dpg_mode(struct > > amdgpu_device *adev, int inst_idx, b > > UVD_MASTINT_EN__VCPU_EN_MASK, 0, indirect); > > if (indirect) > > - amdgpu_vcn_psp_update_sram(adev, inst_idx); > > + amdgpu_vcn_psp_update_sram(adev, 0); > > This doesn't work either for passing the right buffer. Could you revert the > two patches? Not seeing any simplification with those. Previously it was one > psp API to be called. Oh, thanks. I got it ... The purpose of psp_execute_load_ip_fw_cmd_buf is to serve other IPs, they have same use cases like what psp_update_vcn_sram does. How about just call psp_execute_load_ip_fw_cmd_buf in VCN directly? Or revert the two patches and add some functions like psp_update_AAA, psp_update_BBB, ... for Other IPs. Regards, Lang > Thanks, > Lijo > > > > ring = &adev->vcn.inst[inst_idx].ring_enc[0];
Re: [PATCH] drm/amdgpu: correct the UCODE ID used for VCN 4.0.3 SRAM update
On 7/7/2023 5:19 PM, Lang Yu wrote: On 07/07/ , Lazar, Lijo wrote: On 7/7/2023 5:01 PM, Lang Yu wrote: It uses the same UCODE ID(VCN0_RAM) but differnet cmd buffers for all instances. Fixes: e928b52c58dd ("drm/amdgpu: use psp_execute_load_ip_fw_cmd_buf instead") Signed-off-by: Lang Yu --- drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 ce8c766dcc73..8ff814b6b656 100644 --- a/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c @@ -778,7 +778,7 @@ static int vcn_v4_0_3_start_dpg_mode(struct amdgpu_device *adev, int inst_idx, b UVD_MASTINT_EN__VCPU_EN_MASK, 0, indirect); if (indirect) - amdgpu_vcn_psp_update_sram(adev, inst_idx); + amdgpu_vcn_psp_update_sram(adev, 0); This doesn't work either for passing the right buffer. Could you revert the two patches? Not seeing any simplification with those. Previously it was one psp API to be called. Oh, thanks. I got it ... The purpose of psp_execute_load_ip_fw_cmd_buf is to serve other IPs, they have same use cases like what psp_update_vcn_sram does. How about just call psp_execute_load_ip_fw_cmd_buf in VCN directly? Or revert the two patches and add some functions like psp_update_AAA, psp_update_BBB, ... for Other IPs. At least for now, I think VCN is the only case which requires an extra specific ucode API. All other ucodes are loaded during psp hw_init. Thanks, Lijo Regards, Lang Thanks, Lijo ring = &adev->vcn.inst[inst_idx].ring_enc[0];