From dd0e38f8aadfad8c8ba55d74729ebc720473c8f4 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Tue, 19 Apr 2011 15:49:36 +0900 Subject: [PATCH] --- yaml --- r: 250999 b: refs/heads/master c: 6e4b26805a90b6682dd4ea0fd426dcda8ca5164a h: refs/heads/master i: 250997: 75099e3ed72a07c9a682e101fce4c3d0e6e29b82 250995: 69de168758dadb0123ceee21ea4820ec065e3d44 250991: da667729c051f31cb701d8754884e4416330be18 v: v3 --- [refs] | 2 +- trunk/drivers/video/via/hw.c | 8 ++++++-- trunk/drivers/video/via/viamode.c | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index c5440ce6f0b6..c1fb9f27fd0c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b6d7777118d3f2abc39591481ea5b9b5e76d6ba +refs/heads/master: 6e4b26805a90b6682dd4ea0fd426dcda8ca5164a diff --git a/trunk/drivers/video/via/hw.c b/trunk/drivers/video/via/hw.c index dc4c778877ce..980e263f1875 100644 --- a/trunk/drivers/video/via/hw.c +++ b/trunk/drivers/video/via/hw.c @@ -2598,8 +2598,12 @@ int viafb_get_refresh(int hres, int vres, u32 long_refresh) best = &vmode->crtc[i]; } - if (abs(best->refresh_rate - long_refresh) > 3) - return 60; + if (abs(best->refresh_rate - long_refresh) > 3) { + if (hres == 1200 && vres == 900) + return 50; /* OLPC DCON only supports 50 Hz */ + else + return 60; + } return best->refresh_rate; } diff --git a/trunk/drivers/video/via/viamode.c b/trunk/drivers/video/via/viamode.c index 8c5bc41ff6a4..260d339b236c 100644 --- a/trunk/drivers/video/via/viamode.c +++ b/trunk/drivers/video/via/viamode.c @@ -606,7 +606,7 @@ static struct crt_mode_table CRTM1200x720[] = { /* 1200x900 (DCON) */ static struct crt_mode_table DCON1200x900[] = { /* r_rate, hsp, vsp */ - {REFRESH_60, M1200X900_R60_HSP, M1200X900_R60_VSP, + {REFRESH_50, M1200X900_R60_HSP, M1200X900_R60_VSP, /* The correct htotal is 1240, but this doesn't raster on VX855. */ /* Via suggested changing to a multiple of 16, hence 1264. */ /* HT, HA, HBS, HBE, HSS, HSE, VT, VA, VBS, VBE, VSS, VSE */