]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: Use helper to get ip block
authorLijo Lazar <lijo.lazar@amd.com>
Mon, 8 Dec 2025 07:11:37 +0000 (12:41 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 16 Dec 2025 18:27:07 +0000 (13:27 -0500)
Replace individual searches with the utility function get_ip_block

Signed-off-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c

index b5e6d9d6937aae6ced8a7ce733892a73ae14a347..677f730e2654dc0049ff2163d8354b18e5159e21 100644 (file)
@@ -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;
 }