diff options
author | Dave Airlie <airlied@redhat.com> | 2018-06-14 21:32:23 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-06-14 21:32:29 -0400 |
commit | daf0678c2036c918f01e4aa6035629d2debc2f30 (patch) | |
tree | 8a6ddd16c351bdf69487e5ca396333447796da8c /drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |
parent | 33ce21d6a2491ef9adb8dc395e3f5bbbfcdc95b5 (diff) | |
parent | 5c16f36f6f003b4415237acca59384a074cd8030 (diff) |
Merge branch 'drm-next-4.18' of git://people.freedesktop.org/~agd5f/linux into drm-next
Fixes for 4.18. Highlights:
- Fixes for gfxoff on Raven
- Remove an ATPX quirk now that the root cause is fixed
- Runtime PM fixes
- Vega20 register header update
- Wattman fixes
- Misc bug fixes
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180614141428.2909-1-alexander.deucher@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c index 9c1d491d742e..82312a7bc6ad 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | |||
@@ -522,6 +522,9 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p, | |||
522 | struct amdgpu_bo_list_entry *e; | 522 | struct amdgpu_bo_list_entry *e; |
523 | struct list_head duplicates; | 523 | struct list_head duplicates; |
524 | unsigned i, tries = 10; | 524 | unsigned i, tries = 10; |
525 | struct amdgpu_bo *gds; | ||
526 | struct amdgpu_bo *gws; | ||
527 | struct amdgpu_bo *oa; | ||
525 | int r; | 528 | int r; |
526 | 529 | ||
527 | INIT_LIST_HEAD(&p->validated); | 530 | INIT_LIST_HEAD(&p->validated); |
@@ -652,31 +655,36 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p, | |||
652 | 655 | ||
653 | amdgpu_cs_report_moved_bytes(p->adev, p->bytes_moved, | 656 | amdgpu_cs_report_moved_bytes(p->adev, p->bytes_moved, |
654 | p->bytes_moved_vis); | 657 | p->bytes_moved_vis); |
658 | |||
655 | if (p->bo_list) { | 659 | if (p->bo_list) { |
656 | struct amdgpu_bo *gds = p->bo_list->gds_obj; | ||
657 | struct amdgpu_bo *gws = p->bo_list->gws_obj; | ||
658 | struct amdgpu_bo *oa = p->bo_list->oa_obj; | ||
659 | struct amdgpu_vm *vm = &fpriv->vm; | 660 | struct amdgpu_vm *vm = &fpriv->vm; |
660 | unsigned i; | 661 | unsigned i; |
661 | 662 | ||
663 | gds = p->bo_list->gds_obj; | ||
664 | gws = p->bo_list->gws_obj; | ||
665 | oa = p->bo_list->oa_obj; | ||
662 | for (i = 0; i < p->bo_list->num_entries; i++) { | 666 | for (i = 0; i < p->bo_list->num_entries; i++) { |
663 | struct amdgpu_bo *bo = p->bo_list->array[i].robj; | 667 | struct amdgpu_bo *bo = p->bo_list->array[i].robj; |
664 | 668 | ||
665 | p->bo_list->array[i].bo_va = amdgpu_vm_bo_find(vm, bo); | 669 | p->bo_list->array[i].bo_va = amdgpu_vm_bo_find(vm, bo); |
666 | } | 670 | } |
671 | } else { | ||
672 | gds = p->adev->gds.gds_gfx_bo; | ||
673 | gws = p->adev->gds.gws_gfx_bo; | ||
674 | oa = p->adev->gds.oa_gfx_bo; | ||
675 | } | ||
667 | 676 | ||
668 | if (gds) { | 677 | if (gds) { |
669 | p->job->gds_base = amdgpu_bo_gpu_offset(gds); | 678 | p->job->gds_base = amdgpu_bo_gpu_offset(gds); |
670 | p->job->gds_size = amdgpu_bo_size(gds); | 679 | p->job->gds_size = amdgpu_bo_size(gds); |
671 | } | 680 | } |
672 | if (gws) { | 681 | if (gws) { |
673 | p->job->gws_base = amdgpu_bo_gpu_offset(gws); | 682 | p->job->gws_base = amdgpu_bo_gpu_offset(gws); |
674 | p->job->gws_size = amdgpu_bo_size(gws); | 683 | p->job->gws_size = amdgpu_bo_size(gws); |
675 | } | 684 | } |
676 | if (oa) { | 685 | if (oa) { |
677 | p->job->oa_base = amdgpu_bo_gpu_offset(oa); | 686 | p->job->oa_base = amdgpu_bo_gpu_offset(oa); |
678 | p->job->oa_size = amdgpu_bo_size(oa); | 687 | p->job->oa_size = amdgpu_bo_size(oa); |
679 | } | ||
680 | } | 688 | } |
681 | 689 | ||
682 | if (!r && p->uf_entry.robj) { | 690 | if (!r && p->uf_entry.robj) { |