diff --git a/drivers/video/amifb.c b/drivers/video/amifb.c index 421c1f9d74ab..13e7a179f8d4 100644 --- a/drivers/video/amifb.c +++ b/drivers/video/amifb.c @@ -961,6 +961,11 @@ static int round_down_bpp = 1; /* for mode probing */ static int amifb_ilbm = 0; /* interleaved or normal bitplanes */ static int amifb_inverse = 0; +static u32 amifb_hfmin __initdata; /* monitor hfreq lower limit (Hz) */ +static u32 amifb_hfmax __initdata; /* monitor hfreq upper limit (Hz) */ +static u16 amifb_vfmin __initdata; /* monitor vfreq lower limit (Hz) */ +static u16 amifb_vfmax __initdata; /* monitor vfreq upper limit (Hz) */ + /* * Macros for the conversion from real world values to hardware register @@ -2357,10 +2362,10 @@ static void __init amifb_setup_mcap(char *spec) if (hmax <= 0 || hmax <= hmin) return; - fb_info.monspecs.vfmin = vmin; - fb_info.monspecs.vfmax = vmax; - fb_info.monspecs.hfmin = hmin; - fb_info.monspecs.hfmax = hmax; + amifb_hfmin = hmin; + amifb_hfmax = hmax; + amifb_vfmin = vmin; + amifb_vfmax = vmax; } static int __init amifb_setup(char *options) @@ -3666,10 +3671,15 @@ default_chipset: } } - /* - * These monitor specs are for a typical Amiga monitor (e.g. A1960) - */ - if (fb_info.monspecs.hfmin == 0) { + if (amifb_hfmin) { + fb_info.monspecs.hfmin = amifb_hfmin; + fb_info.monspecs.hfmax = amifb_hfmax; + fb_info.monspecs.vfmin = amifb_vfmin; + fb_info.monspecs.vfmax = amifb_vfmax; + } else { + /* + * These are for a typical Amiga monitor (e.g. A1960) + */ fb_info.monspecs.hfmin = 15000; fb_info.monspecs.hfmax = 38000; fb_info.monspecs.vfmin = 49;