aboutsummaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu
diff options
context:
space:
mode:
authorLijo Lazar <lijo.lazar@amd.com>2023-02-20 12:04:30 +0530
committerAlex Deucher <alexander.deucher@amd.com>2023-06-09 09:56:35 -0400
commit672c883c26c68fe49b161d7ceab94bdc69e57b0e (patch)
tree08392db957fbf7bf7e698ac7d86af0a77e608b84 /drivers/gpu/drm/amd/amdgpu
parenta3edd1ac706243fe5ca1c0925ce120b5a2661975 (diff)
drm/amdgpu: Simplify aquavanjram instance mapping
Simplify so as to use the same sequence to assign logical to physical ids for all IPs. Signed-off-by: Lijo Lazar <lijo.lazar@amd.com> Acked-by: Leo Liu <leo.liu@amd.com> Tested-by: James Zhu <James.Zhu@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.c33
1 files changed, 8 insertions, 25 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.c b/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.c
index 51d3cb81e37a..68d732dd9ecb 100644
--- a/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.c
+++ b/drivers/gpu/drm/amd/amdgpu/aqua_vanjaram_reg_init.c
@@ -101,32 +101,15 @@ static void aqua_vanjaram_populate_ip_map(struct amdgpu_device *adev,
void aqua_vanjaram_ip_map_init(struct amdgpu_device *adev)
{
- int xcc_mask, sdma_mask;
- int l, i;
-
- /* Map GC instances */
- l = 0;
- xcc_mask = adev->gfx.xcc_mask;
- while (xcc_mask) {
- i = ffs(xcc_mask) - 1;
- adev->ip_map.dev_inst[GC_HWIP][l++] = i;
- xcc_mask &= ~(1 << i);
- }
- for (; l < HWIP_MAX_INSTANCE; l++)
- adev->ip_map.dev_inst[GC_HWIP][l] = -1;
-
- l = 0;
- sdma_mask = adev->sdma.sdma_mask;
- while (sdma_mask) {
- i = ffs(sdma_mask) - 1;
- adev->ip_map.dev_inst[SDMA0_HWIP][l++] = i;
- sdma_mask &= ~(1 << i);
- }
- for (; l < HWIP_MAX_INSTANCE; l++)
- adev->ip_map.dev_inst[SDMA0_HWIP][l] = -1;
+ u32 ip_map[][2] = {
+ { GC_HWIP, adev->gfx.xcc_mask },
+ { SDMA0_HWIP, adev->sdma.sdma_mask },
+ { VCN_HWIP, adev->vcn.inst_mask },
+ };
+ int i;
- /* This covers both VCN and JPEG, JPEG is only alias of VCN */
- aqua_vanjaram_populate_ip_map(adev, VCN_HWIP, adev->vcn.inst_mask);
+ for (i = 0; i < ARRAY_SIZE(ip_map); ++i)
+ aqua_vanjaram_populate_ip_map(adev, ip_map[i][0], ip_map[i][1]);
adev->ip_map.logical_to_dev_inst = aqua_vanjaram_logical_to_dev_inst;
}