iwlwifi: fix searching for best rate in new search column
authorGuy Cohen <guy.cohen@intel.com>
Tue, 9 Sep 2008 02:54:53 +0000 (10:54 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 11 Sep 2008 19:53:39 +0000 (15:53 -0400)
This patch fixes a bug in Rate Scaling. When moving from SISO to MIMO we
need to choose the lowest higher rate, instead of choosing the highest in MIMO.
No doing this can lead to a high packet loss in the highest rate in MIMO,
leading not to move MIMO although lower in MIMO could give a better TPT.

Signed-off-by: Guy Cohen <guy.cohen@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-agn-rs.c

index 4fc3a0f1d8f1997723da5aeee4290b7a72ca6ea0..de00be1bffad4a4c7f69eed817fcc33afea0e5f3 100644 (file)
@@ -436,7 +436,7 @@ static int rs_collect_tx_data(struct iwl_rate_scale_data *windows,
                /* Shift bitmap by one frame (throw away oldest history),
                 * OR in "1", and increment "success" if this
                 * frame was successful. */
-               window->data <<= 1;;
+               window->data <<= 1;
                if (successes > 0) {
                        window->success_counter++;
                        window->data |= 0x1;
@@ -1128,6 +1128,7 @@ static s32 rs_get_best_rate(struct iwl_priv *priv,
 
                        /* Higher rate not available, use the original */
                        } else {
+                               new_rate = rate;
                                break;
                        }
                }