From: Lijo Lazar Date: Mon, 8 Dec 2025 07:11:37 +0000 (+0530) Subject: drm/amdgpu: Use helper to get ip block X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9498d18739b3e93b308809910692dd8eef862679;p=thirdparty%2Fkernel%2Flinux.git drm/amdgpu: Use helper to get ip block Replace individual searches with the utility function get_ip_block Signed-off-by: Lijo Lazar Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c index b5e6d9d6937aa..677f730e2654d 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c @@ -358,22 +358,15 @@ void amdgpu_device_ip_get_clockgating_state(struct amdgpu_device *adev, int amdgpu_device_ip_wait_for_idle(struct amdgpu_device *adev, enum amd_ip_block_type block_type) { - int i, r; + struct amdgpu_ip_block *ip_block; + + ip_block = amdgpu_device_ip_get_ip_block(adev, block_type); + if (!ip_block || !ip_block->status.valid) + return 0; + + if (ip_block->version->funcs->wait_for_idle) + return ip_block->version->funcs->wait_for_idle(ip_block); - for (i = 0; i < adev->num_ip_blocks; i++) { - if (!adev->ip_blocks[i].status.valid) - continue; - if (adev->ip_blocks[i].version->type == block_type) { - if (adev->ip_blocks[i].version->funcs->wait_for_idle) { - r = adev->ip_blocks[i] - .version->funcs->wait_for_idle( - &adev->ip_blocks[i]); - if (r) - return r; - } - break; - } - } return 0; } @@ -389,12 +382,12 @@ int amdgpu_device_ip_wait_for_idle(struct amdgpu_device *adev, bool amdgpu_device_ip_is_hw(struct amdgpu_device *adev, enum amd_ip_block_type block_type) { - int i; + struct amdgpu_ip_block *ip_block; + + ip_block = amdgpu_device_ip_get_ip_block(adev, block_type); + if (ip_block) + return ip_block->status.hw; - for (i = 0; i < adev->num_ip_blocks; i++) { - if (adev->ip_blocks[i].version->type == block_type) - return adev->ip_blocks[i].status.hw; - } return false; } @@ -410,11 +403,11 @@ bool amdgpu_device_ip_is_hw(struct amdgpu_device *adev, bool amdgpu_device_ip_is_valid(struct amdgpu_device *adev, enum amd_ip_block_type block_type) { - int i; + struct amdgpu_ip_block *ip_block; + + ip_block = amdgpu_device_ip_get_ip_block(adev, block_type); + if (ip_block) + return ip_block->status.valid; - for (i = 0; i < adev->num_ip_blocks; i++) { - if (adev->ip_blocks[i].version->type == block_type) - return adev->ip_blocks[i].status.valid; - } return false; }