On Sat, Aug 12, 2017 at 12:56 AM, Felix Kuehling <Felix.Kuehling at amd.com> wrote: > Use shared_resources.queue_bitmap to determine the queues available > for KFD in each pipe. > > Signed-off-by: Felix Kuehling <Felix.Kuehling at amd.com> > --- > drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 12 +++++++++--- > 1 file changed, 9 insertions(+), 3 deletions(-) > > 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 42de22b..9d2796b 100644 > --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c > @@ -513,7 +513,7 @@ static int init_scheduler(struct device_queue_manager *dqm) > > static int initialize_nocpsch(struct device_queue_manager *dqm) > { > - int i; > + int pipe, queue; > > BUG_ON(!dqm); > > @@ -531,8 +531,14 @@ static int initialize_nocpsch(struct device_queue_manager *dqm) > return -ENOMEM; > } > > - for (i = 0; i < get_pipes_per_mec(dqm); i++) > - dqm->allocated_queues[i] = (1 << get_queues_per_pipe(dqm)) - 1; > + for (pipe = 0; pipe < get_pipes_per_mec(dqm); pipe++) { > + int pipe_offset = pipe * get_queues_per_pipe(dqm); > + > + for (queue = 0; queue < get_queues_per_pipe(dqm); queue++) > + if (test_bit(pipe_offset + queue, > + dqm->dev->shared_resources.queue_bitmap)) > + dqm->allocated_queues[pipe] |= 1 << queue; > + } > > dqm->vmid_bitmap = (1 << VMID_PER_DEVICE) - 1; > dqm->sdma_bitmap = (1 << CIK_SDMA_QUEUES) - 1; > -- > 2.7.4 > This patch is: Reviewed-by: Oded Gabbay <oded.gabbay at gmail.com>