drm/amdkfd: Fix bug in pipelines initialization
authorOded Gabbay <oded.gabbay@amd.com>
Thu, 22 Jan 2015 09:03:42 +0000 (11:03 +0200)
committerOded Gabbay <oded.gabbay@amd.com>
Thu, 22 Jan 2015 09:03:42 +0000 (11:03 +0200)
This patch fixes a bug when calling to init_pipeline() interface.
The index that was passed to that function didn't take into account the
first_pipe value, which represents the first pipe index that is under amdkfd's
responsibility.

Signed-off-by: Oded Gabbay <oded.gabbay@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c

index b9626ae079603b7c91b4bc59632d4dd2d5c65096..cd0710af0031dd851ffffed0febef4eb42a68a29 100644 (file)
@@ -565,10 +565,14 @@ static int init_pipelines(struct device_queue_manager *dqm,
 
        for (i = 0; i < pipes_num; i++) {
                inx = i + first_pipe;
+               /*
+                * HPD buffer on GTT is allocated by amdkfd, no need to waste
+                * space in GTT for pipelines we don't initialize
+                */
                pipe_hpd_addr = dqm->pipelines_addr + i * CIK_HPD_EOP_BYTES;
                pr_debug("kfd: pipeline address %llX\n", pipe_hpd_addr);
                /* = log2(bytes/4)-1 */
-               kfd2kgd->init_pipeline(dqm->dev->kgd, i,
+               kfd2kgd->init_pipeline(dqm->dev->kgd, inx,
                                CIK_HPD_EOP_BYTES_LOG2 - 3, pipe_hpd_addr);
        }