On Thu, 23 Sep 2010 23:58:10 +0200 "Rafael J. Wysocki" <rjw@xxxxxxx> wrote: > On Thursday, September 23, 2010, Jesse Barnes wrote: > > On Thu, 23 Sep 2010 23:49:28 +0200 > > Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote: > > > > > If the CPU doesn't support turbo, don't try to enable/disable it. > > > > > > Signed-off-by: Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> > > > --- > > > drivers/platform/x86/intel_ips.c | 14 +++++++++----- > > > 1 files changed, 9 insertions(+), 5 deletions(-) > > > > > > diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c > > > index bfa9c72..71d04ef 100644 > > > --- a/drivers/platform/x86/intel_ips.c > > > +++ b/drivers/platform/x86/intel_ips.c > > > @@ -51,7 +51,6 @@ > > > * TODO: > > > * - handle CPU hotplug > > > * - provide turbo enable/disable api > > > - * - make sure we can write turbo enable/disable reg based on MISC_EN > > > * > > > * Related documents: > > > * - CDI 403777, 403778 - Auburndale EDS vol 1 & 2 > > > @@ -325,6 +324,7 @@ struct ips_driver { > > > bool gpu_preferred; > > > bool poll_turbo_status; > > > bool second_cpu; > > > + bool turbo_toggle_allowed; > > > struct ips_mcp_limits *limits; > > > > > > /* Optional MCH interfaces for if i915 is in use */ > > > @@ -461,7 +461,8 @@ static void ips_enable_cpu_turbo(struct ips_driver *ips) > > > if (ips->__cpu_turbo_on) > > > return; > > > > > > - on_each_cpu(do_enable_cpu_turbo, ips, 1); > > > + if (ips->turbo_toggle_allowed) > > > + on_each_cpu(do_enable_cpu_turbo, ips, 1); > > > > > > ips->__cpu_turbo_on = true; > > > } > > > @@ -498,7 +499,8 @@ static void ips_disable_cpu_turbo(struct ips_driver *ips) > > > if (!ips->__cpu_turbo_on) > > > return; > > > > > > - on_each_cpu(do_disable_cpu_turbo, ips, 1); > > > + if (ips->turbo_toggle_allowed) > > > + on_each_cpu(do_disable_cpu_turbo, ips, 1); > > > > > > ips->__cpu_turbo_on = false; > > > } > > > @@ -1332,8 +1334,10 @@ static struct ips_mcp_limits *ips_detect_cpu(struct ips_driver *ips) > > > * turbo manually or we'll get an illegal MSR access, even though > > > * turbo will still be available. > > > */ > > > - if (!(misc_en & IA32_MISC_TURBO_EN)) > > > - ; /* add turbo MSR write allowed flag if necessary */ > > > + if (misc_en & IA32_MISC_TURBO_EN) > > > + ips->turbo_toggle_allowed = true; > > > + else > > > + ips->turbo_toggle_allowed = false; > > > > > > if (strstr(boot_cpu_data.x86_model_id, "CPU M")) > > > limits = &ips_sv_limits; > > > > Rafael and infernix, this patch should address the GPF in the IPS > > driver (kernel bug 18742). > > > > Matthew, since I forgot to add a link to the kernel bug in the log, can > > you add it when you commit? > > > > http://bugzilla.kernel.org/show_bug.cgi?id=18742 > > Can you drop the patch into the Bugzilla for completeness? > > Or is it in patchwork? Dunno about patchwork, but I just added it to the bug. -- Jesse Barnes, Intel Open Source Technology Center -- To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html