|
@@ -1173,7 +1173,10 @@ static int mga_crtc_mode_set(struct drm_crtc *crtc,
|
|
|
|
|
|
|
|
|
|
if (IS_G200_SE(mdev)) {
|
|
if (IS_G200_SE(mdev)) {
|
|
- if (mdev->unique_rev_id >= 0x02) {
|
|
|
|
|
|
+ if (mdev->unique_rev_id >= 0x04) {
|
|
|
|
+ WREG8(MGAREG_CRTCEXT_INDEX, 0x06);
|
|
|
|
+ WREG8(MGAREG_CRTCEXT_DATA, 0);
|
|
|
|
+ } else if (mdev->unique_rev_id >= 0x02) {
|
|
u8 hi_pri_lvl;
|
|
u8 hi_pri_lvl;
|
|
u32 bpp;
|
|
u32 bpp;
|
|
u32 mb;
|
|
u32 mb;
|
|
@@ -1639,6 +1642,10 @@ static int mga_vga_mode_valid(struct drm_connector *connector,
|
|
if (mga_vga_calculate_mode_bandwidth(mode, bpp)
|
|
if (mga_vga_calculate_mode_bandwidth(mode, bpp)
|
|
> (30100 * 1024))
|
|
> (30100 * 1024))
|
|
return MODE_BANDWIDTH;
|
|
return MODE_BANDWIDTH;
|
|
|
|
+ } else {
|
|
|
|
+ if (mga_vga_calculate_mode_bandwidth(mode, bpp)
|
|
|
|
+ > (55000 * 1024))
|
|
|
|
+ return MODE_BANDWIDTH;
|
|
}
|
|
}
|
|
} else if (mdev->type == G200_WB) {
|
|
} else if (mdev->type == G200_WB) {
|
|
if (mode->hdisplay > 1280)
|
|
if (mode->hdisplay > 1280)
|