From: Greg Kroah-Hartman Date: Tue, 26 Jan 2010 23:23:21 +0000 (-0800) Subject: .32 patches X-Git-Tag: v2.6.32.7~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9857351b96a11cf41f42797f9bd74f3b14edaab6;p=thirdparty%2Fkernel%2Fstable-queue.git .32 patches --- diff --git a/queue-2.6.32/acpi-enable-c2-and-turbo-mode-on-nehalem-notebooks-on-a-c.patch b/queue-2.6.32/acpi-enable-c2-and-turbo-mode-on-nehalem-notebooks-on-a-c.patch new file mode 100644 index 00000000000..584d265e69f --- /dev/null +++ b/queue-2.6.32/acpi-enable-c2-and-turbo-mode-on-nehalem-notebooks-on-a-c.patch @@ -0,0 +1,79 @@ +From lenb@kernel.org Tue Jan 26 14:41:37 2010 +From: Len Brown +Date: Tue, 26 Jan 2010 16:15:28 -0500 (EST) +Subject: ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C +To: stable@kernel.org +Cc: linux-acpi@vger.kernel.org +Message-ID: + + +From: Len Brown + +upstream in 2.6.33-rc: 5d76b6f6c17572e662f5c99c2023adae92100855 + +Refreshed here for 2.6.32.y, applies w/ offset back to 2.6.29.y. + +Linux has always ignored ACPI BIOS C2 with exit latency > 100 usec, +and the ACPI spec is clear that is correct FADT-supplied C2. + +However, the ACPI spec explicitly states that _CST-supplied C-states +have no latency limits. + +So move the 100usec C2 test out of the code shared +by FADT and _CST code-paths, and into the FADT-specific path. + +This bug has not been visible until Nehalem, which advertises +a CPU-C2 worst case exit latency on servers of 205usec. +That (incorrect) figure is being used by BIOS writers +on mobile Nehalem systems for the AC configuration. +Thus, Linux ignores C2 leaving just C1, which is +saves less power, and also impacts performance +by preventing the use of turbo mode. + +http://bugzilla.kernel.org/show_bug.cgi?id=15064 + +Tested-by: Alex Chiang +Signed-off-by: Len Brown +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/processor_idle.c | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +--- a/drivers/acpi/processor_idle.c ++++ b/drivers/acpi/processor_idle.c +@@ -299,6 +299,17 @@ static int acpi_processor_get_power_info + pr->power.states[ACPI_STATE_C2].latency = acpi_gbl_FADT.C2latency; + pr->power.states[ACPI_STATE_C3].latency = acpi_gbl_FADT.C3latency; + ++ /* ++ * FADT specified C2 latency must be less than or equal to ++ * 100 microseconds. ++ */ ++ if (acpi_gbl_FADT.C2latency > ACPI_PROCESSOR_MAX_C2_LATENCY) { ++ ACPI_DEBUG_PRINT((ACPI_DB_INFO, ++ "C2 latency too large [%d]\n", acpi_gbl_FADT.C2latency)); ++ /* invalidate C2 */ ++ pr->power.states[ACPI_STATE_C2].address = 0; ++ } ++ + ACPI_DEBUG_PRINT((ACPI_DB_INFO, + "lvl2[0x%08x] lvl3[0x%08x]\n", + pr->power.states[ACPI_STATE_C2].address, +@@ -495,16 +506,6 @@ static void acpi_processor_power_verify_ + return; + + /* +- * C2 latency must be less than or equal to 100 +- * microseconds. +- */ +- else if (cx->latency > ACPI_PROCESSOR_MAX_C2_LATENCY) { +- ACPI_DEBUG_PRINT((ACPI_DB_INFO, +- "latency too large [%d]\n", cx->latency)); +- return; +- } +- +- /* + * Otherwise we've met all of our C2 requirements. + * Normalize the C2 latency to expidite policy + */ diff --git a/queue-2.6.32/iwlwifi-fix-throughput-stall-issue-in-ht-mode-for-5000.patch b/queue-2.6.32/iwlwifi-fix-throughput-stall-issue-in-ht-mode-for-5000.patch new file mode 100644 index 00000000000..8a9bc83e8ee --- /dev/null +++ b/queue-2.6.32/iwlwifi-fix-throughput-stall-issue-in-ht-mode-for-5000.patch @@ -0,0 +1,63 @@ +From reinette.chatre@intel.com Tue Jan 26 14:43:57 2010 +From: Reinette Chatre +Date: Tue, 26 Jan 2010 12:00:43 -0800 +Subject: iwlwifi: Fix throughput stall issue in HT mode for 5000 +To: stable@kernel.org +Cc: Reinette Chatre , Wey-Yi Guy , "John W. Linville" +Message-ID: <1264536043-31204-1-git-send-email-reinette.chatre@intel.com> + + +From: Wey-Yi Guy + +commit 1152dcc28c66a74b5b3f1a3ede0aa6729bfd48e4 upstream + +Similar to 6000 and 1000 series, RTS/CTS is the recommended protection +mechanism for 5000 series in HT mode based on the HW design. + +Using RTS/CTS will better protect the inner exchange from interference, +especially in highly-congested environment, it also prevent uCode encounter +TX FIFO underrun and other HT mode related performance issues. + +Signed-off-by: Wey-Yi Guy +Signed-off-by: Reinette Chatre +Signed-off-by: John W. Linville +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/iwlwifi/iwl-5000.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/net/wireless/iwlwifi/iwl-5000.c ++++ b/drivers/net/wireless/iwlwifi/iwl-5000.c +@@ -1666,6 +1666,7 @@ struct iwl_cfg iwl5300_agn_cfg = { + .valid_rx_ant = ANT_ABC, + .need_pll_cfg = true, + .ht_greenfield_support = true, ++ .use_rts_for_ht = true, /* use rts/cts protection */ + }; + + struct iwl_cfg iwl5100_bg_cfg = { +@@ -1717,6 +1718,7 @@ struct iwl_cfg iwl5100_agn_cfg = { + .valid_rx_ant = ANT_AB, + .need_pll_cfg = true, + .ht_greenfield_support = true, ++ .use_rts_for_ht = true, /* use rts/cts protection */ + }; + + struct iwl_cfg iwl5350_agn_cfg = { +@@ -1734,6 +1736,7 @@ struct iwl_cfg iwl5350_agn_cfg = { + .valid_rx_ant = ANT_ABC, + .need_pll_cfg = true, + .ht_greenfield_support = true, ++ .use_rts_for_ht = true, /* use rts/cts protection */ + }; + + struct iwl_cfg iwl5150_agn_cfg = { +@@ -1751,6 +1754,7 @@ struct iwl_cfg iwl5150_agn_cfg = { + .valid_rx_ant = ANT_AB, + .need_pll_cfg = true, + .ht_greenfield_support = true, ++ .use_rts_for_ht = true, /* use rts/cts protection */ + }; + + MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); diff --git a/queue-2.6.32/series b/queue-2.6.32/series index a4e60667159..3f0df3df8d9 100644 --- a/queue-2.6.32/series +++ b/queue-2.6.32/series @@ -94,3 +94,5 @@ kvm-fix-lock-imbalance-in-kvm_-_irq_source_id.patch kvm-only-clear-irq_source_id-if-irqchip-is-present.patch ipoib-clear-ipoib_neigh.dgid-in-ipoib_neigh_alloc.patch x86-reenable-tsc-sync-check-at-boot-even-with-nonstop_tsc.patch +acpi-enable-c2-and-turbo-mode-on-nehalem-notebooks-on-a-c.patch +iwlwifi-fix-throughput-stall-issue-in-ht-mode-for-5000.patch