]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/amdgpu_sdma.c
Merge tag 'drm-misc-next-2018-11-21' of git://anongit.freedesktop.org/drm/drm-misc...
[linux.git] / drivers / gpu / drm / amd / amdgpu / amdgpu_sdma.c
index bc9244b429ef11932b87ea96a191ad5af3e60d24..115bb0c99b0ff603ac0124280bf48e1a89f10d8e 100644 (file)
  * GPU SDMA IP block helpers function.
  */
 
-struct amdgpu_sdma_instance * amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
+struct amdgpu_sdma_instance *amdgpu_sdma_get_instance_from_ring(struct amdgpu_ring *ring)
 {
        struct amdgpu_device *adev = ring->adev;
        int i;
 
        for (i = 0; i < adev->sdma.num_instances; i++)
-               if (&adev->sdma.instance[i].ring == ring)
-                       break;
+               if (ring == &adev->sdma.instance[i].ring ||
+                   ring == &adev->sdma.instance[i].page)
+                       return &adev->sdma.instance[i];
 
-       if (i < AMDGPU_MAX_SDMA_INSTANCES)
-               return &adev->sdma.instance[i];
-       else
-               return NULL;
+       return NULL;
+}
+
+int amdgpu_sdma_get_index_from_ring(struct amdgpu_ring *ring, uint32_t *index)
+{
+       struct amdgpu_device *adev = ring->adev;
+       int i;
+
+       for (i = 0; i < adev->sdma.num_instances; i++) {
+               if (ring == &adev->sdma.instance[i].ring ||
+                       ring == &adev->sdma.instance[i].page) {
+                       *index = i;
+                       return 0;
+               }
+       }
+
+       return -EINVAL;
 }
This page took 0.052101 seconds and 4 git commands to generate.