diff options
| author | Dave Airlie <airlied@redhat.com> | 2019-02-10 23:04:05 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2019-02-10 23:04:20 -0500 |
| commit | f4bc54b532a62d8bee421ca06adb6d1b3e7ffaa9 (patch) | |
| tree | 3b835f9bed6bd236fa1a6d5d0add836f25ca8262 /drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |
| parent | 5ea3998d56346975c2701df18fb5b6e3ab5c8d9e (diff) | |
| parent | 0461221316ec21e0a535a35fba3feb6ba75706e6 (diff) | |
Merge branch 'drm-next-5.1' of git://people.freedesktop.org/~agd5f/linux into drm-next
Updates for 5.1:
- GDS fixes
- Add AMDGPU_CHUNK_ID_SCHEDULED_DEPENDENCIES interface
- GPUVM fixes
- PCIE DPM switching fixes for vega20
- Vega10 uclk DPM regression fix
- DC Freesync fixes
- DC ABM fixes
- Various DC cleanups
Signed-off-by: Dave Airlie <airlied@redhat.com>
From: Alex Deucher <alexdeucher@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190208210214.27666-1-alexander.deucher@amd.com
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_object.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c index 728e15e5d68a..fd9c4beeaaa4 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | |||
| @@ -426,12 +426,20 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev, | |||
| 426 | size_t acc_size; | 426 | size_t acc_size; |
| 427 | int r; | 427 | int r; |
| 428 | 428 | ||
| 429 | page_align = roundup(bp->byte_align, PAGE_SIZE) >> PAGE_SHIFT; | 429 | /* Note that GDS/GWS/OA allocates 1 page per byte/resource. */ |
| 430 | if (bp->domain & (AMDGPU_GEM_DOMAIN_GDS | AMDGPU_GEM_DOMAIN_GWS | | 430 | if (bp->domain & (AMDGPU_GEM_DOMAIN_GWS | AMDGPU_GEM_DOMAIN_OA)) { |
| 431 | AMDGPU_GEM_DOMAIN_OA)) | 431 | /* GWS and OA don't need any alignment. */ |
| 432 | page_align = bp->byte_align; | ||
| 432 | size <<= PAGE_SHIFT; | 433 | size <<= PAGE_SHIFT; |
| 433 | else | 434 | } else if (bp->domain & AMDGPU_GEM_DOMAIN_GDS) { |
| 435 | /* Both size and alignment must be a multiple of 4. */ | ||
| 436 | page_align = ALIGN(bp->byte_align, 4); | ||
| 437 | size = ALIGN(size, 4) << PAGE_SHIFT; | ||
| 438 | } else { | ||
| 439 | /* Memory should be aligned at least to a page size. */ | ||
| 440 | page_align = ALIGN(bp->byte_align, PAGE_SIZE) >> PAGE_SHIFT; | ||
| 434 | size = ALIGN(size, PAGE_SIZE); | 441 | size = ALIGN(size, PAGE_SIZE); |
| 442 | } | ||
| 435 | 443 | ||
| 436 | if (!amdgpu_bo_validate_size(adev, size, bp->domain)) | 444 | if (!amdgpu_bo_validate_size(adev, size, bp->domain)) |
| 437 | return -ENOMEM; | 445 | return -ENOMEM; |
