Re: [PATCH 2/4] radeonfb: add new module parameter to force PLLcalculation

From: Benjamin Herrenschmidt
Date: Thu Sep 06 2007 - 08:06:28 EST


On Tue, 2007-09-04 at 12:59 +0200, aherrman@xxxxxxxx wrote:
> On my Acer Aspire 5100 (with 0x5975) I need to force PLL caclulation.
> Most probably the BIOS dividers are incorrect/insufficient. Without pll
> calculation console goes blank.
>
> Signed-off-by: Andreas Herrmann <aherrman@xxxxxxxx>

I don't like those tunables. First we should get a look at what values
we obtain from the BIOS. Could be something with the parsing of ATOM
BIOS. In any case, we might be able to detect we got wrong values or use
subsystem vendor/device ID to blacklist.

Ben.

> ---
> drivers/video/aty/radeon_base.c | 7 ++++++-
> 1 files changed, 6 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c
> index 90a3957..f672c0c 100644
> --- a/drivers/video/aty/radeon_base.c
> +++ b/drivers/video/aty/radeon_base.c
> @@ -268,6 +268,7 @@ static int mirror = 0;
> static int panel_yres = 0;
> static int force_dfp = 0;
> static int force_measure_pll = 0;
> +static int force_pll_calc = 0;
> #ifdef CONFIG_MTRR
> static int nomtrr = 0;
> #endif
> @@ -1590,7 +1591,7 @@ static int radeonfb_set_par(struct fb_info *info)
>
> pixClock = 100000000 / rinfo->panel_info.clock;
>
> - if (rinfo->panel_info.use_bios_dividers) {
> + if (rinfo->panel_info.use_bios_dividers && !force_pll_calc) {
> nopllcalc = 1;
> newmode->ppll_div_3 = rinfo->panel_info.fbk_divider |
> (rinfo->panel_info.post_divider << 16);
> @@ -2495,6 +2496,8 @@ static int __init radeonfb_setup (char *options)
> nomodeset = 1;
> } else if (!strncmp(this_opt, "force_measure_pll", 17)) {
> force_measure_pll = 1;
> + } else if (!strncmp(this_opt, "force_pll_calc", 17)) {
> + force_pll_calc = 1;
> } else if (!strncmp(this_opt, "ignore_edid", 11)) {
> ignore_edid = 1;
> #if defined(CONFIG_PM) && defined(CONFIG_X86)
> @@ -2550,6 +2553,8 @@ module_param(monitor_layout, charp, 0);
> MODULE_PARM_DESC(monitor_layout, "Specify monitor mapping (like XFree86)");
> module_param(force_measure_pll, bool, 0);
> MODULE_PARM_DESC(force_measure_pll, "Force measurement of PLL (debug)");
> +module_param(force_pll_calc, bool, 0400);
> +MODULE_PARM_DESC(force_pll_calc, "Force calculation of PLL");
> #ifdef CONFIG_MTRR
> module_param(nomtrr, bool, 0);
> MODULE_PARM_DESC(nomtrr, "bool: disable use of MTRR registers");

-
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/