drm/radeon/kms: align height of fb allocation.
this aligns the height of the fb allocation so it doesn't trip over the size checks later when we use this from userspace to copy the buffer at X start. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
bd6a60afeb
commit
e40b6fc837
|
@ -113,11 +113,14 @@ static int radeonfb_create_pinned_object(struct radeon_fbdev *rfbdev,
|
||||||
u32 tiling_flags = 0;
|
u32 tiling_flags = 0;
|
||||||
int ret;
|
int ret;
|
||||||
int aligned_size, size;
|
int aligned_size, size;
|
||||||
|
int height = mode_cmd->height;
|
||||||
|
|
||||||
/* need to align pitch with crtc limits */
|
/* need to align pitch with crtc limits */
|
||||||
mode_cmd->pitch = radeon_align_pitch(rdev, mode_cmd->width, mode_cmd->bpp, fb_tiled) * ((mode_cmd->bpp + 1) / 8);
|
mode_cmd->pitch = radeon_align_pitch(rdev, mode_cmd->width, mode_cmd->bpp, fb_tiled) * ((mode_cmd->bpp + 1) / 8);
|
||||||
|
|
||||||
size = mode_cmd->pitch * mode_cmd->height;
|
if (rdev->family >= CHIP_R600)
|
||||||
|
height = ALIGN(mode_cmd->height, 8);
|
||||||
|
size = mode_cmd->pitch * height;
|
||||||
aligned_size = ALIGN(size, PAGE_SIZE);
|
aligned_size = ALIGN(size, PAGE_SIZE);
|
||||||
ret = radeon_gem_object_create(rdev, aligned_size, 0,
|
ret = radeon_gem_object_create(rdev, aligned_size, 0,
|
||||||
RADEON_GEM_DOMAIN_VRAM,
|
RADEON_GEM_DOMAIN_VRAM,
|
||||||
|
|
Loading…
Reference in New Issue