Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: use psp_execute_load_ip_fw instead

Replace the old ones with psp_execute_load_ip_fw.

Suggested-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Lang Yu <Lang.Yu@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Lang Yu and committed by
Alex Deucher
1ddcdb7c 45b51acb

+23 -30
-13
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
··· 2920 2920 return ret; 2921 2921 } 2922 2922 2923 - int psp_update_vcn_sram(struct amdgpu_device *adev, int inst_idx, 2924 - uint64_t cmd_gpu_addr, int cmd_size) 2925 - { 2926 - struct amdgpu_firmware_info ucode = {0}; 2927 - 2928 - ucode.ucode_id = inst_idx ? AMDGPU_UCODE_ID_VCN1_RAM : 2929 - AMDGPU_UCODE_ID_VCN0_RAM; 2930 - ucode.mc_addr = cmd_gpu_addr; 2931 - ucode.ucode_size = cmd_size; 2932 - 2933 - return psp_execute_ip_fw_load(&adev->psp, &ucode); 2934 - } 2935 - 2936 2923 int psp_ring_cmd_submit(struct psp_context *psp, 2937 2924 uint64_t cmd_buf_mc_addr, 2938 2925 uint64_t fence_mc_addr,
-2
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
··· 466 466 struct amdgpu_firmware_info *ucode); 467 467 468 468 int psp_gpu_reset(struct amdgpu_device *adev); 469 - int psp_update_vcn_sram(struct amdgpu_device *adev, int inst_idx, 470 - uint64_t cmd_gpu_addr, int cmd_size); 471 469 472 470 int psp_ta_init_shared_buf(struct psp_context *psp, 473 471 struct ta_mem_context *mem_ctx);
+15
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
··· 1239 1239 1240 1240 return 0; 1241 1241 } 1242 + 1243 + int amdgpu_vcn_psp_update_sram(struct amdgpu_device *adev, int inst_idx, 1244 + enum AMDGPU_UCODE_ID ucode_id) 1245 + { 1246 + struct amdgpu_firmware_info ucode = { 1247 + .ucode_id = (ucode_id ? ucode_id : 1248 + (inst_idx ? AMDGPU_UCODE_ID_VCN1_RAM : 1249 + AMDGPU_UCODE_ID_VCN0_RAM)), 1250 + .mc_addr = adev->vcn.inst[inst_idx].dpg_sram_gpu_addr, 1251 + .ucode_size = ((uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_curr_addr - 1252 + (uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_cpu_addr), 1253 + }; 1254 + 1255 + return psp_execute_ip_fw_load(&adev->psp, &ucode); 1256 + }
+3
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h
··· 414 414 struct ras_common_if *ras_block); 415 415 int amdgpu_vcn_ras_sw_init(struct amdgpu_device *adev); 416 416 417 + int amdgpu_vcn_psp_update_sram(struct amdgpu_device *adev, int inst_idx, 418 + enum AMDGPU_UCODE_ID ucode_id); 419 + 417 420 #endif
+1 -3
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
··· 881 881 UVD_MASTINT_EN__VCPU_EN_MASK, 0, indirect); 882 882 883 883 if (indirect) 884 - psp_update_vcn_sram(adev, 0, adev->vcn.inst->dpg_sram_gpu_addr, 885 - (uint32_t)((uintptr_t)adev->vcn.inst->dpg_sram_curr_addr - 886 - (uintptr_t)adev->vcn.inst->dpg_sram_cpu_addr)); 884 + amdgpu_vcn_psp_update_sram(adev, 0, 0); 887 885 888 886 /* force RBC into idle state */ 889 887 rb_bufsz = order_base_2(ring->ring_size);
+1 -3
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
··· 912 912 UVD_MASTINT_EN__VCPU_EN_MASK, 0, indirect); 913 913 914 914 if (indirect) 915 - psp_update_vcn_sram(adev, inst_idx, adev->vcn.inst[inst_idx].dpg_sram_gpu_addr, 916 - (uint32_t)((uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_curr_addr - 917 - (uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_cpu_addr)); 915 + amdgpu_vcn_psp_update_sram(adev, inst_idx, 0); 918 916 919 917 ring = &adev->vcn.inst[inst_idx].ring_dec; 920 918 /* force RBC into idle state */
+1 -3
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
··· 1037 1037 VCN, inst_idx, mmUVD_VCPU_CNTL), tmp, 0, indirect); 1038 1038 1039 1039 if (indirect) 1040 - psp_update_vcn_sram(adev, inst_idx, adev->vcn.inst[inst_idx].dpg_sram_gpu_addr, 1041 - (uint32_t)((uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_curr_addr - 1042 - (uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_cpu_addr)); 1040 + amdgpu_vcn_psp_update_sram(adev, inst_idx, 0); 1043 1041 1044 1042 ring = &adev->vcn.inst[inst_idx].ring_dec; 1045 1043 /* force RBC into idle state */
+1 -3
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
··· 993 993 994 994 995 995 if (indirect) 996 - psp_update_vcn_sram(adev, inst_idx, adev->vcn.inst[inst_idx].dpg_sram_gpu_addr, 997 - (uint32_t)((uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_curr_addr - 998 - (uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_cpu_addr)); 996 + amdgpu_vcn_psp_update_sram(adev, inst_idx, 0); 999 997 1000 998 ring = &adev->vcn.inst[inst_idx].ring_enc[0]; 1001 999
+1 -3
drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
··· 778 778 UVD_MASTINT_EN__VCPU_EN_MASK, 0, indirect); 779 779 780 780 if (indirect) 781 - psp_update_vcn_sram(adev, 0, adev->vcn.inst[inst_idx].dpg_sram_gpu_addr, 782 - (uint32_t)((uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_curr_addr - 783 - (uintptr_t)adev->vcn.inst[inst_idx].dpg_sram_cpu_addr)); 781 + amdgpu_vcn_psp_update_sram(adev, inst_idx, AMDGPU_UCODE_ID_VCN0_RAM); 784 782 785 783 ring = &adev->vcn.inst[inst_idx].ring_enc[0]; 786 784