diff options
author | Pallipadi, Venkatesh <venkatesh.pallipadi@intel.com> | 2009-05-21 20:09:10 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2009-05-27 21:57:30 -0400 |
commit | ee1ca48fae7e575d5e399d4fdcfe0afc1212a64c (patch) | |
tree | d2d8c9bd4a806e603ba272a7f71644af1fdb16a3 /drivers/acpi | |
parent | cd86a536c81e9300d984327517548ca0652eebf9 (diff) |
ACPI: Disable ARB_DISABLE on platforms where it is not needed
ARB_DISABLE is a NOP on all of the recent Intel platforms.
For such platforms, reduce contention on c3_lock
by skipping the fake ARB_DISABLE.
Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/processor_idle.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 72069ba5f1ed..4840c79fd8e0 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -512,7 +512,8 @@ static void acpi_processor_power_verify_c2(struct acpi_processor_cx *cx) | |||
512 | static void acpi_processor_power_verify_c3(struct acpi_processor *pr, | 512 | static void acpi_processor_power_verify_c3(struct acpi_processor *pr, |
513 | struct acpi_processor_cx *cx) | 513 | struct acpi_processor_cx *cx) |
514 | { | 514 | { |
515 | static int bm_check_flag; | 515 | static int bm_check_flag = -1; |
516 | static int bm_control_flag = -1; | ||
516 | 517 | ||
517 | 518 | ||
518 | if (!cx->address) | 519 | if (!cx->address) |
@@ -542,12 +543,14 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr, | |||
542 | } | 543 | } |
543 | 544 | ||
544 | /* All the logic here assumes flags.bm_check is same across all CPUs */ | 545 | /* All the logic here assumes flags.bm_check is same across all CPUs */ |
545 | if (!bm_check_flag) { | 546 | if (bm_check_flag == -1) { |
546 | /* Determine whether bm_check is needed based on CPU */ | 547 | /* Determine whether bm_check is needed based on CPU */ |
547 | acpi_processor_power_init_bm_check(&(pr->flags), pr->id); | 548 | acpi_processor_power_init_bm_check(&(pr->flags), pr->id); |
548 | bm_check_flag = pr->flags.bm_check; | 549 | bm_check_flag = pr->flags.bm_check; |
550 | bm_control_flag = pr->flags.bm_control; | ||
549 | } else { | 551 | } else { |
550 | pr->flags.bm_check = bm_check_flag; | 552 | pr->flags.bm_check = bm_check_flag; |
553 | pr->flags.bm_control = bm_control_flag; | ||
551 | } | 554 | } |
552 | 555 | ||
553 | if (pr->flags.bm_check) { | 556 | if (pr->flags.bm_check) { |