aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_display.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/nouveau/nouveau_display.c')
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_display.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 860b0e2d4181..8670d90cdc11 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -869,13 +869,20 @@ nouveau_display_dumb_create(struct drm_file *file_priv, struct drm_device *dev,
869 struct drm_mode_create_dumb *args) 869 struct drm_mode_create_dumb *args)
870{ 870{
871 struct nouveau_bo *bo; 871 struct nouveau_bo *bo;
872 uint32_t domain;
872 int ret; 873 int ret;
873 874
874 args->pitch = roundup(args->width * (args->bpp / 8), 256); 875 args->pitch = roundup(args->width * (args->bpp / 8), 256);
875 args->size = args->pitch * args->height; 876 args->size = args->pitch * args->height;
876 args->size = roundup(args->size, PAGE_SIZE); 877 args->size = roundup(args->size, PAGE_SIZE);
877 878
878 ret = nouveau_gem_new(dev, args->size, 0, NOUVEAU_GEM_DOMAIN_VRAM, 0, 0, &bo); 879 /* Use VRAM if there is any ; otherwise fallback to system memory */
880 if (nouveau_drm(dev)->device.info.ram_size != 0)
881 domain = NOUVEAU_GEM_DOMAIN_VRAM;
882 else
883 domain = NOUVEAU_GEM_DOMAIN_GART;
884
885 ret = nouveau_gem_new(dev, args->size, 0, domain, 0, 0, &bo);
879 if (ret) 886 if (ret)
880 return ret; 887 return ret;
881 888