diff options
| -rw-r--r-- | drivers/gpu/drm/mgag200/mgag200_fb.c | 7 | ||||
| -rw-r--r-- | drivers/gpu/drm/mgag200/mgag200_main.c | 5 |
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); |
