Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amdgpu: move setting the job resources

Move setting the job resources into amdgpu_job.c

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Reviewed-by: Luben Tuikov <luben.tuikov@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Christian König and committed by
Alex Deucher
736ec9fa 9b94c609

+21 -19
+2 -19
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
··· 495 495 struct amdgpu_vm *vm = &fpriv->vm; 496 496 struct amdgpu_bo_list_entry *e; 497 497 struct list_head duplicates; 498 - struct amdgpu_bo *gds; 499 - struct amdgpu_bo *gws; 500 - struct amdgpu_bo *oa; 501 498 int r; 502 499 503 500 INIT_LIST_HEAD(&p->validated); ··· 611 614 amdgpu_cs_report_moved_bytes(p->adev, p->bytes_moved, 612 615 p->bytes_moved_vis); 613 616 614 - gds = p->bo_list->gds_obj; 615 - gws = p->bo_list->gws_obj; 616 - oa = p->bo_list->oa_obj; 617 - 618 - if (gds) { 619 - p->job->gds_base = amdgpu_bo_gpu_offset(gds) >> PAGE_SHIFT; 620 - p->job->gds_size = amdgpu_bo_size(gds) >> PAGE_SHIFT; 621 - } 622 - if (gws) { 623 - p->job->gws_base = amdgpu_bo_gpu_offset(gws) >> PAGE_SHIFT; 624 - p->job->gws_size = amdgpu_bo_size(gws) >> PAGE_SHIFT; 625 - } 626 - if (oa) { 627 - p->job->oa_base = amdgpu_bo_gpu_offset(oa) >> PAGE_SHIFT; 628 - p->job->oa_size = amdgpu_bo_size(oa) >> PAGE_SHIFT; 629 - } 617 + amdgpu_job_set_resources(p->job, p->bo_list->gds_obj, 618 + p->bo_list->gws_obj, p->bo_list->oa_obj); 630 619 631 620 if (!r && p->uf_entry.tv.bo) { 632 621 struct amdgpu_bo *uf = ttm_to_amdgpu_bo(p->uf_entry.tv.bo);
+17
drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
··· 132 132 return r; 133 133 } 134 134 135 + void amdgpu_job_set_resources(struct amdgpu_job *job, struct amdgpu_bo *gds, 136 + struct amdgpu_bo *gws, struct amdgpu_bo *oa) 137 + { 138 + if (gds) { 139 + job->gds_base = amdgpu_bo_gpu_offset(gds) >> PAGE_SHIFT; 140 + job->gds_size = amdgpu_bo_size(gds) >> PAGE_SHIFT; 141 + } 142 + if (gws) { 143 + job->gws_base = amdgpu_bo_gpu_offset(gws) >> PAGE_SHIFT; 144 + job->gws_size = amdgpu_bo_size(gws) >> PAGE_SHIFT; 145 + } 146 + if (oa) { 147 + job->oa_base = amdgpu_bo_gpu_offset(oa) >> PAGE_SHIFT; 148 + job->oa_size = amdgpu_bo_size(oa) >> PAGE_SHIFT; 149 + } 150 + } 151 + 135 152 void amdgpu_job_free_resources(struct amdgpu_job *job) 136 153 { 137 154 struct amdgpu_ring *ring = to_amdgpu_ring(job->base.sched);
+2
drivers/gpu/drm/amd/amdgpu/amdgpu_job.h
··· 76 76 struct amdgpu_job **job, struct amdgpu_vm *vm); 77 77 int amdgpu_job_alloc_with_ib(struct amdgpu_device *adev, unsigned size, 78 78 enum amdgpu_ib_pool_type pool, struct amdgpu_job **job); 79 + void amdgpu_job_set_resources(struct amdgpu_job *job, struct amdgpu_bo *gds, 80 + struct amdgpu_bo *gws, struct amdgpu_bo *oa); 79 81 void amdgpu_job_free_resources(struct amdgpu_job *job); 80 82 void amdgpu_job_free(struct amdgpu_job *job); 81 83 int amdgpu_job_submit(struct amdgpu_job *job, struct drm_sched_entity *entity,