Message ID | 1421924350-2484-3-git-send-email-oded.gabbay@amd.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Thu, Jan 22, 2015 at 5:59 AM, Oded Gabbay <oded.gabbay@amd.com> wrote: > 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> > --- > drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > index b9626ae..cd0710a 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > @@ -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); > } > > -- > 1.9.1 >
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c index b9626ae..cd0710a 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -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); }
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> --- drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)