On Friday 18 May 2007 22:59, Thomas Renninger wrote: > Len, can you apply this one, pls. > > Workaround for _PPC (BIOS cpufreq limitations) > > There have been fixes using _PPC, which seem to unhide a problem > on HP nx6125 (double cpufreq switch freezes the machine for > several seconds). > This one should provide a workaround for the nx6125 and for > possible other machines that show any weird _PPC behaviour. I don't understand what the failure is, and why this workaround is effective. Is this a clue here to a real bug that requires a real fix, rather than a workaround? -Len > Signed-off-by: Thomas Renninger <trenn@xxxxxxx> > > --- > drivers/acpi/processor_perflib.c | 16 +++++++++++++++- > 1 file changed, 15 insertions(+), 1 deletion(-) > > Index: linux-2.6.21/drivers/acpi/processor_perflib.c > =================================================================== > --- linux-2.6.21.orig/drivers/acpi/processor_perflib.c > +++ linux-2.6.21/drivers/acpi/processor_perflib.c > @@ -60,6 +60,11 @@ static DEFINE_MUTEX(performance_mutex); > * policy is adjusted accordingly. > */ > > +static unsigned int ignore_ppc = 0; > +module_param(ignore_ppc, uint, 0644); > +MODULE_PARM_DESC(ignore_ppc, "If the frequency of your machine gets wrongly" \ > + "limited by BIOS, this should help"); > + > #define PPC_REGISTERED 1 > #define PPC_IN_USE 2 > > @@ -72,6 +77,9 @@ static int acpi_processor_ppc_notifier(s > struct acpi_processor *pr; > unsigned int ppc = 0; > > + if (ignore_ppc) > + return 0; > + > mutex_lock(&performance_mutex); > > if (event != CPUFREQ_INCOMPATIBLE) > @@ -130,7 +138,13 @@ static int acpi_processor_get_platform_l > > int acpi_processor_ppc_has_changed(struct acpi_processor *pr) > { > - int ret = acpi_processor_get_platform_limit(pr); > + int ret; > + > + if (ignore_ppc) > + return 0; > + > + ret = acpi_processor_get_platform_limit(pr); > + > if (ret < 0) > return (ret); > else > > - To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html