iwlwifi: Fix throughput stall issue in HT mode for 5000
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Tue, 26 Jan 2010 20:00:43 +0000 (12:00 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 28 Jan 2010 23:02:56 +0000 (15:02 -0800)
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 <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/wireless/iwlwifi/iwl-5000.c

index 94a1225f98729bdca0276c4c8b91c9c9d523939f..133df70bc609d9888c633fdd67e4478ed2c8a785 100644 (file)
@@ -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));