radeon: use discardable flags on no backing store objects
parent
11320fd6b1
commit
d958cd7bb9
|
@ -728,7 +728,7 @@ int radeonfb_create(struct drm_device *dev, uint32_t fb_width, uint32_t fb_heigh
|
|||
size = mode_cmd.pitch * mode_cmd.height;
|
||||
aligned_size = ALIGN(size, PAGE_SIZE);
|
||||
|
||||
fbo = radeon_gem_object_alloc(dev, aligned_size, 1, RADEON_GEM_DOMAIN_VRAM);
|
||||
fbo = radeon_gem_object_alloc(dev, aligned_size, 1, RADEON_GEM_DOMAIN_VRAM, 0);
|
||||
if (!fbo) {
|
||||
printk(KERN_ERR "failed to allocate framebuffer\n");
|
||||
ret = -ENOMEM;
|
||||
|
|
|
@ -74,7 +74,7 @@ int radeon_gem_info_ioctl(struct drm_device *dev, void *data,
|
|||
}
|
||||
|
||||
struct drm_gem_object *radeon_gem_object_alloc(struct drm_device *dev, int size, int alignment,
|
||||
int initial_domain)
|
||||
int initial_domain, bool discardable)
|
||||
{
|
||||
struct drm_gem_object *obj;
|
||||
struct drm_radeon_gem_object *obj_priv;
|
||||
|
@ -97,6 +97,9 @@ struct drm_gem_object *radeon_gem_object_alloc(struct drm_device *dev, int size,
|
|||
|
||||
flags |= DRM_BO_FLAG_READ | DRM_BO_FLAG_WRITE | DRM_BO_FLAG_EXE;
|
||||
|
||||
if (discardable)
|
||||
flags |= DRM_BO_FLAG_DISCARDABLE;
|
||||
|
||||
if (alignment == 0)
|
||||
alignment = PAGE_SIZE;
|
||||
|
||||
|
@ -129,7 +132,7 @@ int radeon_gem_create_ioctl(struct drm_device *dev, void *data,
|
|||
/* create a gem object to contain this object in */
|
||||
args->size = roundup(args->size, PAGE_SIZE);
|
||||
|
||||
obj = radeon_gem_object_alloc(dev, args->size, args->alignment, args->initial_domain);
|
||||
obj = radeon_gem_object_alloc(dev, args->size, args->alignment, args->initial_domain, args->no_backing_store);
|
||||
if (!obj)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
|
@ -1672,7 +1672,7 @@ int radeon_gem_indirect_ioctl(struct drm_device *dev, void *data,
|
|||
int radeon_gem_set_domain_ioctl(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_priv);
|
||||
struct drm_gem_object *radeon_gem_object_alloc(struct drm_device *dev, int size, int alignment,
|
||||
int initial_domain);
|
||||
int initial_domain, bool discardable);
|
||||
int radeon_modeset_init(struct drm_device *dev);
|
||||
void radeon_modeset_cleanup(struct drm_device *dev);
|
||||
extern u32 radeon_read_mc_reg(drm_radeon_private_t *dev_priv, int addr);
|
||||
|
|
Loading…
Reference in New Issue