[PATCH] radeonfb: some more PLL problems

From: Benjamin Herrenschmidt
Date: Wed Mar 03 2004 - 18:37:12 EST


Hi !

I've had reports of flicker that appear with large (23") flat panels
and radeonfb. From experiments, it appears that forbiding the "odd"
PLL divider values fix it (like it fixes the blur problem on TMDS2).
There should not be anything special with TMDS1 and "odd" PLL values
though, so the problem may be subtely different (a bandwidth problem),
but until I have proper bandwidth calculation and access to this
monitor, the following patch is an acceptable workaround
(Odd PLL values aren't that useful anyway)

===== drivers/video/aty/radeon_base.c 1.8 vs edited =====
--- 1.8/drivers/video/aty/radeon_base.c Wed Feb 18 17:02:05 2004
+++ edited/drivers/video/aty/radeon_base.c Thu Mar 4 10:16:41 2004
@@ -1329,6 +1329,16 @@
* not sure which model starts having FP2_GEN_CNTL, I assume anything more
* recent than an r(v)100...
*/
+#if 0
+ /* XXX I had reports of flicker happening with the cinema display
+ * on TMDS1 that seem to be fixed if I also forbit odd dividers in
+ * this case. This could just be a bandwidth calculation issue, I
+ * haven't implemented the bandwidth code yet, but in the meantime,
+ * forcing uses_dvo to 1 fixes it and shouln't have bad side effects,
+ * I haven't seen a case were were absolutely needed an odd PLL
+ * divider. I'll find a better fix once I have more infos on the
+ * real cause of the problem.
+ */
while (rinfo->has_CRTC2) {
u32 fp2_gen_cntl = INREG(FP2_GEN_CNTL);
u32 disp_output_cntl;
@@ -1362,6 +1372,9 @@
uses_dvo = 1;
break;
}
+#else
+ use_dvo = 1;
+#endif
if (freq > rinfo->pll.ppll_max)
freq = rinfo->pll.ppll_max;
if (freq*12 < rinfo->pll.ppll_min)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/