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

drm/amdgpu: enable psp v13 ip block for aldebaran

Add psp v13 ip block to soc ip init list for aldebaran

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Le Ma <Le.Ma@amd.com>
Reviewed-by: Kevin Wang <kevin1.wang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Hawking Zhang and committed by
Alex Deucher
9fbd96a1 efec10c1

+24 -5
+8
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
··· 3057 3057 .rev = 0, 3058 3058 .funcs = &psp_ip_funcs, 3059 3059 }; 3060 + 3061 + const struct amdgpu_ip_block_version psp_v13_0_ip_block = { 3062 + .type = AMD_IP_BLOCK_TYPE_PSP, 3063 + .major = 13, 3064 + .minor = 0, 3065 + .rev = 0, 3066 + .funcs = &psp_ip_funcs, 3067 + };
+5 -4
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h
··· 365 365 extern const struct amd_ip_funcs psp_ip_funcs; 366 366 367 367 extern const struct amdgpu_ip_block_version psp_v3_1_ip_block; 368 + extern const struct amdgpu_ip_block_version psp_v10_0_ip_block; 369 + extern const struct amdgpu_ip_block_version psp_v11_0_ip_block; 370 + extern const struct amdgpu_ip_block_version psp_v12_0_ip_block; 371 + extern const struct amdgpu_ip_block_version psp_v13_0_ip_block; 372 + 368 373 extern int psp_wait_for(struct psp_context *psp, uint32_t reg_index, 369 374 uint32_t field_val, uint32_t mask, bool check_changed); 370 - 371 - extern const struct amdgpu_ip_block_version psp_v10_0_ip_block; 372 - extern const struct amdgpu_ip_block_version psp_v12_0_ip_block; 373 375 374 376 int psp_gpu_reset(struct amdgpu_device *adev); 375 377 int psp_update_vcn_sram(struct amdgpu_device *adev, int inst_idx, ··· 402 400 403 401 int psp_rlc_autoload_start(struct psp_context *psp); 404 402 405 - extern const struct amdgpu_ip_block_version psp_v11_0_ip_block; 406 403 int psp_reg_program(struct psp_context *psp, enum psp_reg_prog_id reg, 407 404 uint32_t value); 408 405 int psp_ring_cmd_submit(struct psp_context *psp,
+11 -1
drivers/gpu/drm/amd/amdgpu/soc15.c
··· 1065 1065 case CHIP_ALDEBARAN: 1066 1066 amdgpu_device_ip_block_add(adev, &vega10_common_ip_block); 1067 1067 amdgpu_device_ip_block_add(adev, &gmc_v9_0_ip_block); 1068 - amdgpu_device_ip_block_add(adev, &vega10_ih_ip_block); 1068 + 1069 + if (amdgpu_sriov_vf(adev)) { 1070 + if (likely(adev->firmware.load_type == AMDGPU_FW_LOAD_PSP)) 1071 + amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block); 1072 + amdgpu_device_ip_block_add(adev, &vega10_ih_ip_block); 1073 + } else { 1074 + amdgpu_device_ip_block_add(adev, &vega10_ih_ip_block); 1075 + if (likely(adev->firmware.load_type == AMDGPU_FW_LOAD_PSP)) 1076 + amdgpu_device_ip_block_add(adev, &psp_v13_0_ip_block); 1077 + } 1078 + 1069 1079 amdgpu_device_ip_block_add(adev, &gfx_v9_0_ip_block); 1070 1080 amdgpu_device_ip_block_add(adev, &sdma_v4_0_ip_block); 1071 1081 break;