Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e482f75 authored by Marcin Slusarz's avatar Marcin Slusarz Committed by Ben Skeggs
Browse files

drm/nouveau: by default use low bpp framebuffer on low memory cards



Framebuffer's BPP is not that important but can waste significant part
of memory on low-VRAM cards. Lower it to 8bpp on < 32MB cards and to
16bpp on 64MB cards. It can still be overridden by video= option.

Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 4beb116a
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -487,6 +487,7 @@ int nouveau_fbcon_init(struct drm_device *dev)
{
	struct drm_nouveau_private *dev_priv = dev->dev_private;
	struct nouveau_fbdev *nfbdev;
	int preferred_bpp;
	int ret;

	nfbdev = kzalloc(sizeof(struct nouveau_fbdev), GFP_KERNEL);
@@ -505,7 +506,15 @@ int nouveau_fbcon_init(struct drm_device *dev)
	}

	drm_fb_helper_single_add_all_connectors(&nfbdev->helper);
	drm_fb_helper_initial_config(&nfbdev->helper, 32);

	if (dev_priv->vram_size <= 32 * 1024 * 1024)
		preferred_bpp = 8;
	else if (dev_priv->vram_size <= 64 * 1024 * 1024)
		preferred_bpp = 16;
	else
		preferred_bpp = 32;

	drm_fb_helper_initial_config(&nfbdev->helper, preferred_bpp);
	return 0;
}