|
@@ -49,7 +49,7 @@ static void radeon_sa_bo_try_free(struct radeon_sa_manager *sa_manager);
|
|
|
|
|
|
int radeon_sa_bo_manager_init(struct radeon_device *rdev,
|
|
|
struct radeon_sa_manager *sa_manager,
|
|
|
- unsigned size, u32 domain)
|
|
|
+ unsigned size, u32 align, u32 domain)
|
|
|
{
|
|
|
int i, r;
|
|
|
|
|
@@ -57,13 +57,14 @@ int radeon_sa_bo_manager_init(struct radeon_device *rdev,
|
|
|
sa_manager->bo = NULL;
|
|
|
sa_manager->size = size;
|
|
|
sa_manager->domain = domain;
|
|
|
+ sa_manager->align = align;
|
|
|
sa_manager->hole = &sa_manager->olist;
|
|
|
INIT_LIST_HEAD(&sa_manager->olist);
|
|
|
for (i = 0; i < RADEON_NUM_RINGS; ++i) {
|
|
|
INIT_LIST_HEAD(&sa_manager->flist[i]);
|
|
|
}
|
|
|
|
|
|
- r = radeon_bo_create(rdev, size, RADEON_GPU_PAGE_SIZE, true,
|
|
|
+ r = radeon_bo_create(rdev, size, align, true,
|
|
|
domain, NULL, &sa_manager->bo);
|
|
|
if (r) {
|
|
|
dev_err(rdev->dev, "(%d) failed to allocate bo for manager\n", r);
|
|
@@ -317,7 +318,7 @@ int radeon_sa_bo_new(struct radeon_device *rdev,
|
|
|
unsigned tries[RADEON_NUM_RINGS];
|
|
|
int i, r;
|
|
|
|
|
|
- BUG_ON(align > RADEON_GPU_PAGE_SIZE);
|
|
|
+ BUG_ON(align > sa_manager->align);
|
|
|
BUG_ON(size > sa_manager->size);
|
|
|
|
|
|
*sa_bo = kmalloc(sizeof(struct radeon_sa_bo), GFP_KERNEL);
|