Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4ce6a28 authored by Florian Tobias Schandinat's avatar Florian Tobias Schandinat
Browse files

viafb: fix OLPC DCON refresh rate



This patch fixes a regression introduced by
	fd3cc698
	"viafb: remove duplicated clock storage"
caused by an incosistent mode which pretended to have a higher
refresh rate than it actually had. The wrong refresh rate resulted
in a calculated higher pixclock which the OLPC DCON could not handle.
By reducing the refresh rate to 50Hz we get close to the old
pixclock which makes the OLPC display usable again.
Minor other adjustments are needed as 60Hz is assumed to be a safe
value which is not true for OLPC DCON. This is no problem as we only
support 1200x900 on the OLPC.

Signed-off-by: default avatarFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
Reported-by: default avatarDaniel Drake <dsd@laptop.org>
parent 3f086fe9
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -2598,8 +2598,12 @@ int viafb_get_refresh(int hres, int vres, u32 long_refresh)
			best = &vmode->crtc[i];
			best = &vmode->crtc[i];
	}
	}


	if (abs(best->refresh_rate - long_refresh) > 3)
	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 60;
	}


	return best->refresh_rate;
	return best->refresh_rate;
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -606,7 +606,7 @@ static struct crt_mode_table CRTM1200x720[] = {
/* 1200x900 (DCON) */
/* 1200x900 (DCON) */
static struct crt_mode_table DCON1200x900[] = {
static struct crt_mode_table DCON1200x900[] = {
	/* r_rate,               hsp,               vsp   */
	/* 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. */
	/* The correct htotal is 1240, but this doesn't raster on VX855. */
	/* Via suggested changing to a multiple of 16, hence 1264.       */
	/* Via suggested changing to a multiple of 16, hence 1264.       */
	/*  HT,   HA,  HBS, HBE,  HSS, HSE,  VT,  VA, VBS, VBE, VSS, VSE */
	/*  HT,   HA,  HBS, HBE,  HSS, HSE,  VT,  VA, VBS, VBE, VSS, VSE */