diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 71792d820ae0..7b3d1ebda9df 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |||
| @@ -244,16 +244,10 @@ int amdgpu_gem_create_ioctl(struct drm_device *dev, void *data, | |||
| 244 | return -EINVAL; | 244 | return -EINVAL; |
| 245 | } | 245 | } |
| 246 | flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS; | 246 | flags |= AMDGPU_GEM_CREATE_NO_CPU_ACCESS; |
| 247 | if (args->in.domains == AMDGPU_GEM_DOMAIN_GDS) | 247 | /* GDS allocations must be DW aligned */ |
| 248 | size = size << AMDGPU_GDS_SHIFT; | 248 | if (args->in.domains & AMDGPU_GEM_DOMAIN_GDS) |
| 249 | else if (args->in.domains == AMDGPU_GEM_DOMAIN_GWS) | 249 | size = ALIGN(size, 4); |
| 250 | size = size << AMDGPU_GWS_SHIFT; | ||
| 251 | else if (args->in.domains == AMDGPU_GEM_DOMAIN_OA) | ||
| 252 | size = size << AMDGPU_OA_SHIFT; | ||
| 253 | else | ||
| 254 | return -EINVAL; | ||
| 255 | } | 250 | } |
| 256 | size = roundup(size, PAGE_SIZE); | ||
| 257 | 251 | ||
| 258 | if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) { | 252 | if (flags & AMDGPU_GEM_CREATE_VM_ALWAYS_VALID) { |
| 259 | r = amdgpu_bo_reserve(vm->root.base.bo, false); | 253 | r = amdgpu_bo_reserve(vm->root.base.bo, false); |
| @@ -572,16 +566,16 @@ int amdgpu_gem_va_ioctl(struct drm_device *dev, void *data, | |||
| 572 | return -EINVAL; | 566 | return -EINVAL; |
| 573 | } | 567 | } |
| 574 | 568 | ||
| 575 | if (args->va_address >= AMDGPU_VA_HOLE_START && | 569 | if (args->va_address >= AMDGPU_GMC_HOLE_START && |
| 576 | args->va_address < AMDGPU_VA_HOLE_END) { | 570 | args->va_address < AMDGPU_GMC_HOLE_END) { |
| 577 | dev_dbg(&dev->pdev->dev, | 571 | dev_dbg(&dev->pdev->dev, |
| 578 | "va_address 0x%LX is in VA hole 0x%LX-0x%LX\n", | 572 | "va_address 0x%LX is in VA hole 0x%LX-0x%LX\n", |
| 579 | args->va_address, AMDGPU_VA_HOLE_START, | 573 | args->va_address, AMDGPU_GMC_HOLE_START, |
| 580 | AMDGPU_VA_HOLE_END); | 574 | AMDGPU_GMC_HOLE_END); |
| 581 | return -EINVAL; | 575 | return -EINVAL; |
| 582 | } | 576 | } |
| 583 | 577 | ||
| 584 | args->va_address &= AMDGPU_VA_HOLE_MASK; | 578 | args->va_address &= AMDGPU_GMC_HOLE_MASK; |
| 585 | 579 | ||
| 586 | if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) { | 580 | if ((args->flags & ~valid_flags) && (args->flags & ~prt_flags)) { |
| 587 | dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n", | 581 | dev_dbg(&dev->pdev->dev, "invalid flags combination 0x%08X\n", |
