Replace individual searches with the utility function get_ip_block

Signed-off-by: Lijo Lazar <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c | 43 +++++++++++---------------
 1 file changed, 18 insertions(+), 25 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_ip.c
index b5e6d9d6937a..677f730e2654 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;
 }
-- 
2.49.0

Reply via email to