forked from Minki/linux
drm/radeon: move the retry to gem_object_create
When internal users want VRAM we shouldn't return GART memory instead. Signed-off-by: Christian König <deathsimple@vodafone.de> Reviewed-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
6c0d112f1f
commit
0fe7158c8a
@ -70,11 +70,17 @@ int radeon_gem_object_create(struct radeon_device *rdev, int size,
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
retry:
|
||||
r = radeon_bo_create(rdev, size, alignment, kernel, initial_domain, NULL, &robj);
|
||||
if (r) {
|
||||
if (r != -ERESTARTSYS)
|
||||
if (r != -ERESTARTSYS) {
|
||||
if (initial_domain == RADEON_GEM_DOMAIN_VRAM) {
|
||||
initial_domain |= RADEON_GEM_DOMAIN_GTT;
|
||||
goto retry;
|
||||
}
|
||||
DRM_ERROR("Failed to allocate GEM object (%d, %d, %u, %d)\n",
|
||||
size, initial_domain, alignment, r);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
*obj = &robj->gem_base;
|
||||
|
@ -123,7 +123,6 @@ int radeon_bo_create(struct radeon_device *rdev,
|
||||
acc_size = ttm_bo_dma_acc_size(&rdev->mman.bdev, size,
|
||||
sizeof(struct radeon_bo));
|
||||
|
||||
retry:
|
||||
bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL);
|
||||
if (bo == NULL)
|
||||
return -ENOMEM;
|
||||
@ -145,15 +144,6 @@ retry:
|
||||
acc_size, sg, &radeon_ttm_bo_destroy);
|
||||
up_read(&rdev->pm.mclk_lock);
|
||||
if (unlikely(r != 0)) {
|
||||
if (r != -ERESTARTSYS) {
|
||||
if (domain == RADEON_GEM_DOMAIN_VRAM) {
|
||||
domain |= RADEON_GEM_DOMAIN_GTT;
|
||||
goto retry;
|
||||
}
|
||||
dev_err(rdev->dev,
|
||||
"object_init failed for (%lu, 0x%08X)\n",
|
||||
size, domain);
|
||||
}
|
||||
return r;
|
||||
}
|
||||
*bo_ptr = bo;
|
||||
|
Loading…
Reference in New Issue
Block a user