|
@@ -2297,20 +2297,6 @@ static int __devinit aty_init(struct fb_info *info)
|
|
|
par->pll_limits.xclk = 53;
|
|
|
}
|
|
|
#endif
|
|
|
- if (pll)
|
|
|
- par->pll_limits.pll_max = pll;
|
|
|
- if (mclk)
|
|
|
- par->pll_limits.mclk = mclk;
|
|
|
- if (xclk)
|
|
|
- par->pll_limits.xclk = xclk;
|
|
|
-
|
|
|
- aty_calc_mem_refresh(par, par->pll_limits.xclk);
|
|
|
- par->pll_per = 1000000/par->pll_limits.pll_max;
|
|
|
- par->mclk_per = 1000000/par->pll_limits.mclk;
|
|
|
- par->xclk_per = 1000000/par->pll_limits.xclk;
|
|
|
-
|
|
|
- par->ref_clk_per = 1000000000000ULL / 14318180;
|
|
|
- xtal = "14.31818";
|
|
|
|
|
|
#ifdef CONFIG_FB_ATY_GX
|
|
|
if (!M64_HAS(INTEGRATED)) {
|
|
@@ -2392,7 +2378,25 @@ static int __devinit aty_init(struct fb_info *info)
|
|
|
if (par->pll_limits.mclk == 67 && par->ram_type < SDRAM)
|
|
|
par->pll_limits.mclk = 63;
|
|
|
}
|
|
|
+#endif
|
|
|
|
|
|
+ /* Allow command line to override clocks. */
|
|
|
+ if (pll)
|
|
|
+ par->pll_limits.pll_max = pll;
|
|
|
+ if (mclk)
|
|
|
+ par->pll_limits.mclk = mclk;
|
|
|
+ if (xclk)
|
|
|
+ par->pll_limits.xclk = xclk;
|
|
|
+
|
|
|
+ aty_calc_mem_refresh(par, par->pll_limits.xclk);
|
|
|
+ par->pll_per = 1000000/par->pll_limits.pll_max;
|
|
|
+ par->mclk_per = 1000000/par->pll_limits.mclk;
|
|
|
+ par->xclk_per = 1000000/par->pll_limits.xclk;
|
|
|
+
|
|
|
+ par->ref_clk_per = 1000000000000ULL / 14318180;
|
|
|
+ xtal = "14.31818";
|
|
|
+
|
|
|
+#ifdef CONFIG_FB_ATY_CT
|
|
|
if (M64_HAS(GTB_DSP)) {
|
|
|
u8 pll_ref_div = aty_ld_pll_ct(PLL_REF_DIV, par);
|
|
|
|