aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_fb.c7
-rw-r--r--drivers/gpu/drm/mgag200/mgag200_main.c5
2 files changed, 10 insertions, 2 deletions
diff --git a/drivers/gpu/drm/mgag200/mgag200_fb.c b/drivers/gpu/drm/mgag200/mgag200_fb.c
index 964f58cee5ea..005b60aa2a00 100644
--- a/drivers/gpu/drm/mgag200/mgag200_fb.c
+++ b/drivers/gpu/drm/mgag200/mgag200_fb.c
@@ -282,6 +282,11 @@ int mgag200_fbdev_init(struct mga_device *mdev)
282{ 282{
283 struct mga_fbdev *mfbdev; 283 struct mga_fbdev *mfbdev;
284 int ret; 284 int ret;
285 int bpp_sel = 32;
286
287 /* prefer 16bpp on low end gpus with limited VRAM */
288 if (IS_G200_SE(mdev) && mdev->mc.vram_size < (2048*1024))
289 bpp_sel = 16;
285 290
286 mfbdev = devm_kzalloc(mdev->dev->dev, sizeof(struct mga_fbdev), GFP_KERNEL); 291 mfbdev = devm_kzalloc(mdev->dev->dev, sizeof(struct mga_fbdev), GFP_KERNEL);
287 if (!mfbdev) 292 if (!mfbdev)
@@ -301,7 +306,7 @@ int mgag200_fbdev_init(struct mga_device *mdev)
301 /* disable all the possible outputs/crtcs before entering KMS mode */ 306 /* disable all the possible outputs/crtcs before entering KMS mode */
302 drm_helper_disable_unused_functions(mdev->dev); 307 drm_helper_disable_unused_functions(mdev->dev);
303 308
304 drm_fb_helper_initial_config(&mfbdev->helper, 32); 309 drm_fb_helper_initial_config(&mfbdev->helper, bpp_sel);
305 310
306 return 0; 311 return 0;
307} 312}
diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
index a1bfe7258364..26868e5c55b0 100644
--- a/drivers/gpu/drm/mgag200/mgag200_main.c
+++ b/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -217,7 +217,10 @@ int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
217 217
218 drm_mode_config_init(dev); 218 drm_mode_config_init(dev);
219 dev->mode_config.funcs = (void *)&mga_mode_funcs; 219 dev->mode_config.funcs = (void *)&mga_mode_funcs;
220 dev->mode_config.preferred_depth = 24; 220 if (IS_G200_SE(mdev) && mdev->mc.vram_size < (2048*1024))
221 dev->mode_config.preferred_depth = 16;
222 else
223 dev->mode_config.preferred_depth = 24;
221 dev->mode_config.prefer_shadow = 1; 224 dev->mode_config.prefer_shadow = 1;
222 225
223 r = mgag200_modeset_init(mdev); 226 r = mgag200_modeset_init(mdev);