aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohamed Abbas <mabbas@linux.intel.com>2007-11-07 01:06:25 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:04:33 -0500
commit403ab56b1c2786b0e1d58c27f5ce667b529c7faa (patch)
tree684e4425c26b8244863740c1f69cc612eddff2ed
parent3567c11d7212cd9d29a16c39b4f2da86c4f94aee (diff)
iwl4965: fix cannot find a suitable rate issue
This patch fixes the iwl4965 problem for "Can not find a suitable rate issues." by making rs_switch_to_mimo and rs_switch_to_siso functions return -1 when CONFIG_IWL4965_HT is not selected. They used to return 0, which means we can switch to HT rate causing the rate scale problem and the error message. The patch also fix another bug reported by Ben Cahill that it uses wrong value for max_success_limit. Signed-off-by: Mohamed Abbas <mabbas@linux.intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-rs.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
index 8f6e9f8395c4..2163805158b9 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-rs.c
@@ -782,7 +782,7 @@ static void rs_set_stay_in_table(u8 is_legacy,
782 if (is_legacy) { 782 if (is_legacy) {
783 lq_data->table_count_limit = IWL_LEGACY_TABLE_COUNT; 783 lq_data->table_count_limit = IWL_LEGACY_TABLE_COUNT;
784 lq_data->max_failure_limit = IWL_LEGACY_FAILURE_LIMIT; 784 lq_data->max_failure_limit = IWL_LEGACY_FAILURE_LIMIT;
785 lq_data->max_success_limit = IWL_LEGACY_TABLE_COUNT; 785 lq_data->max_success_limit = IWL_LEGACY_SUCCESS_LIMIT;
786 } else { 786 } else {
787 lq_data->table_count_limit = IWL_NONE_LEGACY_TABLE_COUNT; 787 lq_data->table_count_limit = IWL_NONE_LEGACY_TABLE_COUNT;
788 lq_data->max_failure_limit = IWL_NONE_LEGACY_FAILURE_LIMIT; 788 lq_data->max_failure_limit = IWL_NONE_LEGACY_FAILURE_LIMIT;
@@ -937,9 +937,10 @@ static int rs_switch_to_mimo(struct iwl_priv *priv,
937 937
938 IWL_DEBUG_HT("LQ: Switch to new mcs %X index is green %X\n", 938 IWL_DEBUG_HT("LQ: Switch to new mcs %X index is green %X\n",
939 tbl->current_rate.rate_n_flags, is_green); 939 tbl->current_rate.rate_n_flags, is_green);
940
941#endif /*CONFIG_IWL4965_HT */
942 return 0; 940 return 0;
941#else
942 return -1;
943#endif /*CONFIG_IWL4965_HT */
943} 944}
944 945
945static int rs_switch_to_siso(struct iwl_priv *priv, 946static int rs_switch_to_siso(struct iwl_priv *priv,
@@ -991,9 +992,11 @@ static int rs_switch_to_siso(struct iwl_priv *priv,
991 rs_mcs_from_tbl(&tbl->current_rate, tbl, rate, is_green); 992 rs_mcs_from_tbl(&tbl->current_rate, tbl, rate, is_green);
992 IWL_DEBUG_HT("LQ: Switch to new mcs %X index is green %X\n", 993 IWL_DEBUG_HT("LQ: Switch to new mcs %X index is green %X\n",
993 tbl->current_rate.rate_n_flags, is_green); 994 tbl->current_rate.rate_n_flags, is_green);
995 return 0;
996#else
997 return -1;
994 998
995#endif /*CONFIG_IWL4965_HT */ 999#endif /*CONFIG_IWL4965_HT */
996 return 0;
997} 1000}
998 1001
999static int rs_move_legacy_other(struct iwl_priv *priv, 1002static int rs_move_legacy_other(struct iwl_priv *priv,
@@ -1282,7 +1285,7 @@ static void rs_stay_in_table(struct iwl_rate_scale_priv *lq_data)
1282 lq_data->total_failed = 0; 1285 lq_data->total_failed = 0;
1283 lq_data->total_success = 0; 1286 lq_data->total_success = 0;
1284 lq_data->flush_timer = 0; 1287 lq_data->flush_timer = 0;
1285 } else if (lq_data->table_count > 0) { 1288 } else {
1286 lq_data->table_count++; 1289 lq_data->table_count++;
1287 if (lq_data->table_count >= 1290 if (lq_data->table_count >=
1288 lq_data->table_count_limit) { 1291 lq_data->table_count_limit) {