viafb: reduce OLPC refresh a bit
authorFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Sat, 23 Apr 2011 22:24:52 +0000 (22:24 +0000)
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Sat, 23 Apr 2011 22:24:52 +0000 (22:24 +0000)
When allowing some PLL calculation we get a frequency that seems to
be a bit higher than what the OLPC DCON likes resulting in a still
readable but not so good image. We don't really know whether this is
a problem with the calculation formula or the OLPC but as other
displays seem to be happy with the other modes adjusting the OLPC
refresh looks like the better thing. This patch prevents a
regression when dynamic PLL calculation is allowed.

Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
drivers/video/via/hw.c
drivers/video/via/share.h
drivers/video/via/viamode.c

index b8f0110..56ad185 100644 (file)
@@ -2605,7 +2605,7 @@ int viafb_get_refresh(int hres, int vres, u32 long_refresh)
 
        if (abs(best->refresh_rate - long_refresh) > 3) {
                if (hres == 1200 && vres == 900)
-                       return 50; /* OLPC DCON only supports 50 Hz */
+                       return 49; /* OLPC DCON only supports 50 Hz */
                else
                        return 60;
        }
index 4b7831f..62bed2b 100644 (file)
 #define HW_LAYOUT_LCD_EXTERNAL_LCD2 0x10
 
 /* Definition Refresh Rate */
+#define REFRESH_49      49
 #define REFRESH_50      50
 #define REFRESH_60      60
 #define REFRESH_75      75
index 260d339..ccb5eec 100644 (file)
@@ -606,7 +606,7 @@ static struct crt_mode_table CRTM1200x720[] = {
 /* 1200x900 (DCON) */
 static struct crt_mode_table DCON1200x900[] = {
        /* r_rate,               hsp,               vsp   */
-       {REFRESH_50, M1200X900_R60_HSP, M1200X900_R60_VSP,
+       {REFRESH_49, 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 */