Skip to content

Commit

Permalink
drm/mgag200: on cards with < 2MB VRAM default to 16-bit
Browse files Browse the repository at this point in the history
This aligns with what the userspace -mga driver does in
the same situation.

Signed-off-by: Dave Airlie <airlied@redhat.com>
  • Loading branch information
Dave Airlie committed Jan 23, 2014
1 parent f5395ba commit 918be88
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
7 changes: 6 additions & 1 deletion drivers/gpu/drm/mgag200/mgag200_fb.c
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,11 @@ int mgag200_fbdev_init(struct mga_device *mdev)
{
struct mga_fbdev *mfbdev;
int ret;
int bpp_sel = 32;

/* prefer 16bpp on low end gpus with limited VRAM */
if (IS_G200_SE(mdev) && mdev->mc.vram_size < (2048*1024))
bpp_sel = 16;

mfbdev = devm_kzalloc(mdev->dev->dev, sizeof(struct mga_fbdev), GFP_KERNEL);
if (!mfbdev)
Expand All @@ -301,7 +306,7 @@ int mgag200_fbdev_init(struct mga_device *mdev)
/* disable all the possible outputs/crtcs before entering KMS mode */
drm_helper_disable_unused_functions(mdev->dev);

drm_fb_helper_initial_config(&mfbdev->helper, 32);
drm_fb_helper_initial_config(&mfbdev->helper, bpp_sel);

return 0;
}
Expand Down
5 changes: 4 additions & 1 deletion drivers/gpu/drm/mgag200/mgag200_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,10 @@ int mgag200_driver_load(struct drm_device *dev, unsigned long flags)

drm_mode_config_init(dev);
dev->mode_config.funcs = (void *)&mga_mode_funcs;
dev->mode_config.preferred_depth = 24;
if (IS_G200_SE(mdev) && mdev->mc.vram_size < (2048*1024))
dev->mode_config.preferred_depth = 16;
else
dev->mode_config.preferred_depth = 24;
dev->mode_config.prefer_shadow = 1;

r = mgag200_modeset_init(mdev);
Expand Down

0 comments on commit 918be88

Please sign in to comment.