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

drm/amdgpu: wrong array index to get ip block for PSP

The adev->ip_blocks array is not indexed by AMD_IP_BLOCK_TYPE_xxx,
instead we should call amdgpu_device_ip_get_ip_block() to get the
corresponding IP block oject.

Fix some checkpatch issues (Alex)

Signed-off-by: Jiang Liu <gerry@linux.alibaba.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Jiang Liu and committed by
Alex Deucher
edec9b06 60a2c0c1

+6 -2
+6 -2
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
··· 3891 3891 { 3892 3892 struct drm_device *ddev = dev_get_drvdata(dev); 3893 3893 struct amdgpu_device *adev = drm_to_adev(ddev); 3894 + struct amdgpu_ip_block *ip_block; 3894 3895 uint32_t fw_ver; 3895 3896 int ret; 3896 3897 3897 - if (!adev->ip_blocks[AMD_IP_BLOCK_TYPE_PSP].status.late_initialized) { 3898 + ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_PSP); 3899 + if (!ip_block || !ip_block->status.late_initialized) { 3898 3900 dev_info(adev->dev, "PSP block is not ready yet\n."); 3899 3901 return -EBUSY; 3900 3902 } ··· 3925 3923 struct amdgpu_bo *fw_buf_bo = NULL; 3926 3924 uint64_t fw_pri_mc_addr; 3927 3925 void *fw_pri_cpu_addr; 3926 + struct amdgpu_ip_block *ip_block; 3928 3927 3929 - if (!adev->ip_blocks[AMD_IP_BLOCK_TYPE_PSP].status.late_initialized) { 3928 + ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_PSP); 3929 + if (!ip_block || !ip_block->status.late_initialized) { 3930 3930 dev_err(adev->dev, "PSP block is not ready yet."); 3931 3931 return -EBUSY; 3932 3932 }