aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/via/hw.c8
-rw-r--r--drivers/video/via/viamode.c2
2 files changed, 7 insertions, 3 deletions
diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
index dc4c778877c..980e263f187 100644
--- a/drivers/video/via/hw.c
+++ b/drivers/video/via/hw.c
@@ -2598,8 +2598,12 @@ int viafb_get_refresh(int hres, int vres, u32 long_refresh)
2598 best = &vmode->crtc[i]; 2598 best = &vmode->crtc[i];
2599 } 2599 }
2600 2600
2601 if (abs(best->refresh_rate - long_refresh) > 3) 2601 if (abs(best->refresh_rate - long_refresh) > 3) {
2602 return 60; 2602 if (hres == 1200 && vres == 900)
2603 return 50; /* OLPC DCON only supports 50 Hz */
2604 else
2605 return 60;
2606 }
2603 2607
2604 return best->refresh_rate; 2608 return best->refresh_rate;
2605} 2609}
diff --git a/drivers/video/via/viamode.c b/drivers/video/via/viamode.c
index 8c5bc41ff6a..260d339b236 100644
--- a/drivers/video/via/viamode.c
+++ b/drivers/video/via/viamode.c
@@ -606,7 +606,7 @@ static struct crt_mode_table CRTM1200x720[] = {
606/* 1200x900 (DCON) */ 606/* 1200x900 (DCON) */
607static struct crt_mode_table DCON1200x900[] = { 607static struct crt_mode_table DCON1200x900[] = {
608 /* r_rate, hsp, vsp */ 608 /* r_rate, hsp, vsp */
609 {REFRESH_60, M1200X900_R60_HSP, M1200X900_R60_VSP, 609 {REFRESH_50, M1200X900_R60_HSP, M1200X900_R60_VSP,
610 /* The correct htotal is 1240, but this doesn't raster on VX855. */ 610 /* The correct htotal is 1240, but this doesn't raster on VX855. */
611 /* Via suggested changing to a multiple of 16, hence 1264. */ 611 /* Via suggested changing to a multiple of 16, hence 1264. */
612 /* HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE */ 612 /* HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE */