From: Len Brown <lenb@kernel.org>
To: linux-acpi@vger.kernel.org
Cc: Len Brown <len.brown@intel.com>
Subject: [PATCH 18/19] ACPI: idle: fix init-time TSC check regression
Date: Sat, 16 May 2009 02:02:15 -0400 [thread overview]
Message-ID: <520daf7217bc1806c02eb4cfa7805447a3da2f66.1242453625.git.len.brown@intel.com> (raw)
In-Reply-To: <1242453736-20763-1-git-send-email-lenb@kernel.org>
In-Reply-To: <45cb50e646d1560eff01c5ad0f0df3c7fd6148dd.1242453625.git.len.brown@intel.com>
From: Len Brown <len.brown@intel.com>
A previous 2.6.30 patch, a71e4917dc0ebbcb5a0ecb7ca3486643c1c9a6e2,
(ACPI: idle: mark_tsc_unstable() at init-time, not run-time)
erroneously disabled the TSC on systems that did not actually
have valid deep C-states.
Move the check after the deep-C-states are validated,
via new helper, tsc_check_state(), hich replaces tsc_halts_in_c().
Signed-off-by: Len Brown <len.brown@intel.com>
Acked-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Frans Pop <elendil@planet.nl>
---
drivers/acpi/processor_idle.c | 17 +++++++++--------
1 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index f7ca8c5..e39a40a 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -216,7 +216,7 @@ int acpi_processor_resume(struct acpi_device * device)
}
#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
-static int tsc_halts_in_c(int state)
+static void tsc_check_state(int state)
{
switch (boot_cpu_data.x86_vendor) {
case X86_VENDOR_AMD:
@@ -226,13 +226,17 @@ static int tsc_halts_in_c(int state)
* C/P/S0/S1 states when this bit is set.
*/
if (boot_cpu_has(X86_FEATURE_NONSTOP_TSC))
- return 0;
+ return;
/*FALL THROUGH*/
default:
- return state > ACPI_STATE_C1;
+ /* TSC could halt in idle, so notify users */
+ if (state > ACPI_STATE_C1)
+ mark_tsc_unstable("TSC halts in idle");
}
}
+#else
+static void tsc_check_state(int state) { return; }
#endif
static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
@@ -581,11 +585,6 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
struct acpi_processor_cx *cx = &pr->power.states[i];
-#if defined (CONFIG_GENERIC_TIME) && defined (CONFIG_X86)
- /* TSC could halt in idle, so notify users */
- if (tsc_halts_in_c(cx->type))
- mark_tsc_unstable("TSC halts in idle");;
-#endif
switch (cx->type) {
case ACPI_STATE_C1:
cx->valid = 1;
@@ -603,6 +602,8 @@ static int acpi_processor_power_verify(struct acpi_processor *pr)
acpi_timer_check_state(i, pr, cx);
break;
}
+ if (cx->valid)
+ tsc_check_state(cx->type);
if (cx->valid)
working++;
--
1.6.0.6
next prev parent reply other threads:[~2009-05-16 6:02 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-16 6:01 ACPI & driver patches for 2.6.30-rc5 Len Brown
2009-05-16 6:01 ` [PATCH 01/19] ACPI video: dmi check for broken _BQC on Acer Aspire 5720 Len Brown
2009-05-16 6:01 ` [PATCH 02/19] ACPICA: use acpi.* modparam namespace Len Brown
2009-05-16 6:02 ` [PATCH 03/19] ACPI: video: DMI workaround another broken Acer BIOS enabling display brightness Len Brown
2009-05-16 6:02 ` [PATCH 04/19] ACPI: power: update error message Len Brown
2009-05-16 6:02 ` [PATCH 05/19] ACPI: suspend: don't let device _PS3 failure prevent suspend Len Brown
2009-05-16 6:02 ` [PATCH 06/19] eeepc-laptop: fix wlan rfkill state change during init Len Brown
2009-05-16 6:02 ` [PATCH 07/19] eeepc-laptop: report brightness control events via the input layer Len Brown
2009-05-16 6:02 ` [PATCH 08/19] eeepc-laptop: Work around rfkill firmware bug Len Brown
2009-05-16 6:02 ` [PATCH 09/19] eeepc-laptop: support for super hybrid engine (SHE) Len Brown
2009-05-24 9:28 ` Alan Jenkins
2009-05-24 17:23 ` Corentin Chary
[not found] ` <4A198401.3040003@tuffmail.co.uk>
2009-05-25 8:12 ` Corentin Chary
2009-05-25 9:43 ` Alan Jenkins
2009-05-25 9:59 ` Corentin Chary
2009-05-25 10:07 ` Alan Jenkins
2009-05-25 11:19 ` Corentin Chary
2009-05-25 11:51 ` Alan Jenkins
2009-05-26 10:12 ` Corentin Chary
2009-05-26 10:15 ` Alan Jenkins
2009-05-26 17:29 ` Francesco Lattanzio
2009-05-26 17:43 ` Alan Jenkins
2009-05-26 18:05 ` Corentin Chary
2009-05-24 20:24 ` Corentin Chary
2009-05-16 6:02 ` [PATCH 10/19] asus-laptop: fix input keycode Len Brown
2009-05-16 6:02 ` [PATCH 11/19] eeepc-laptop: unregister_rfkill_notifier on failure Len Brown
2009-05-16 6:02 ` [PATCH 12/19] thermal: fix off-by-1 error in trip point trigger condition Len Brown
2009-05-16 6:02 ` [PATCH 13/19] ACPI: resume: re-enable SCI-enable workaround Len Brown
2009-05-16 6:02 ` [PATCH 14/19] ACPI: suspend: restore BM_RLD on resume Len Brown
2009-05-16 6:02 ` [PATCH 15/19] ACPI, i915: build fix Len Brown
2009-05-18 2:49 ` yakui_zhao
2009-05-16 6:02 ` [PATCH 16/19] ACPI processor: introduce module parameter processor.ignore_tpc Len Brown
2009-05-16 6:02 ` [PATCH 17/19] ACPI processor: reset the throttling state once it's invalid Len Brown
2009-05-16 6:02 ` Len Brown [this message]
2009-05-16 6:02 ` [PATCH 19/19] ACPI: Idle C-states disabled by max_cstate should not disable the TSC Len Brown
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=520daf7217bc1806c02eb4cfa7805447a3da2f66.1242453625.git.len.brown@intel.com \
--to=lenb@kernel.org \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox