Am 02.11.2016 um 12:48 schrieb Trigger Huang:
KIQ is used for interaction between driver and
CP, and not exposed to outside client, as such it
doesn't need to be handled by GPU scheduler.

Signed-off-by: Monk Liu <[email protected]>
Signed-off-by: Xiangliang Yu <[email protected]>
Signed-off-by: Trigger Huang <[email protected]>

Even if you only fix a small mistake it is usually good practice to increase the version number of the patch, e.g. you would use v3 in this case and write a one liner what was wrong in the commit message.

But that's only a nit pick, so patch is Reviewed-by: Christian König <[email protected]> anyway.

Regards,
Christian.


Changes in v2:
  - According to Alex's suggestion, wrapping the scheduler setup
    conditionally instead of returning early.
  - Use another simple method to check if is a KIQ ring.

---
  drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 39 +++++++++++++++++--------------
  1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
index 77b34ec..5772ef2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c
@@ -382,24 +382,27 @@ int amdgpu_fence_driver_init_ring(struct amdgpu_ring 
*ring,
        if (!ring->fence_drv.fences)
                return -ENOMEM;
- timeout = msecs_to_jiffies(amdgpu_lockup_timeout);
-       if (timeout == 0) {
-               /*
-                * FIXME:
-                * Delayed workqueue cannot use it directly,
-                * so the scheduler will not use delayed workqueue if
-                * MAX_SCHEDULE_TIMEOUT is set.
-                * Currently keep it simple and silly.
-                */
-               timeout = MAX_SCHEDULE_TIMEOUT;
-       }
-       r = amd_sched_init(&ring->sched, &amdgpu_sched_ops,
-                          num_hw_submission,
-                          timeout, ring->name);
-       if (r) {
-               DRM_ERROR("Failed to create scheduler on ring %s.\n",
-                         ring->name);
-               return r;
+       /* No need to setup the GPU scheduler for KIQ ring */
+       if (ring->funcs->type != AMDGPU_RING_TYPE_KIQ) {
+               timeout = msecs_to_jiffies(amdgpu_lockup_timeout);
+               if (timeout == 0) {
+                       /*
+                        * FIXME:
+                        * Delayed workqueue cannot use it directly,
+                        * so the scheduler will not use delayed workqueue if
+                        * MAX_SCHEDULE_TIMEOUT is set.
+                        * Currently keep it simple and silly.
+                        */
+                       timeout = MAX_SCHEDULE_TIMEOUT;
+               }
+               r = amd_sched_init(&ring->sched, &amdgpu_sched_ops,
+                                  num_hw_submission,
+                                  timeout, ring->name);
+               if (r) {
+                       DRM_ERROR("Failed to create scheduler on ring %s.\n",
+                                 ring->name);
+                       return r;
+               }
        }
return 0;


_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to