From: Lijo Lazar <lijo.lazar@xxxxxxx> Simplify so as to use the same sequence to assign logical to physical ids for all IPs. Signed-off-by: Lijo Lazar <lijo.lazar@xxxxxxx> Acked-by: Leo Liu <leo.liu@xxxxxxx> Tested-by: James Zhu <James.Zhu@xxxxxxx> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> --- .../drm/amd/amdgpu/aqua_vanjaram_reg_init.c | 33 +++++-------------- 1 file 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; } -- 2.40.1