|
@@ -897,23 +897,10 @@ EXPORT_SYMBOL(iwl_full_rxon_required);
|
|
|
|
|
|
u8 iwl_rate_get_lowest_plcp(struct iwl_priv *priv)
|
|
|
{
|
|
|
- int i;
|
|
|
- int rate_mask;
|
|
|
-
|
|
|
- /* Set rate mask*/
|
|
|
- if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK)
|
|
|
- rate_mask = priv->active_rate_basic & IWL_CCK_RATES_MASK;
|
|
|
- else
|
|
|
- rate_mask = priv->active_rate_basic & IWL_OFDM_RATES_MASK;
|
|
|
-
|
|
|
- /* Find lowest valid rate */
|
|
|
- for (i = IWL_RATE_1M_INDEX; i != IWL_RATE_INVALID;
|
|
|
- i = iwl_rates[i].next_ieee) {
|
|
|
- if (rate_mask & (1 << i))
|
|
|
- return iwl_rates[i].plcp;
|
|
|
- }
|
|
|
-
|
|
|
- /* No valid rate was found. Assign the lowest one */
|
|
|
+ /*
|
|
|
+ * Assign the lowest rate -- should really get this from
|
|
|
+ * the beacon skb from mac80211.
|
|
|
+ */
|
|
|
if (priv->staging_rxon.flags & RXON_FLG_BAND_24G_MSK)
|
|
|
return IWL_RATE_1M_PLCP;
|
|
|
else
|
|
@@ -1272,7 +1259,6 @@ static void iwl_set_rate(struct iwl_priv *priv)
|
|
|
}
|
|
|
|
|
|
priv->active_rate = 0;
|
|
|
- priv->active_rate_basic = 0;
|
|
|
|
|
|
for (i = 0; i < hw->n_bitrates; i++) {
|
|
|
rate = &(hw->bitrates[i]);
|
|
@@ -1280,30 +1266,13 @@ static void iwl_set_rate(struct iwl_priv *priv)
|
|
|
priv->active_rate |= (1 << rate->hw_value);
|
|
|
}
|
|
|
|
|
|
- IWL_DEBUG_RATE(priv, "Set active_rate = %0x, active_rate_basic = %0x\n",
|
|
|
- priv->active_rate, priv->active_rate_basic);
|
|
|
+ IWL_DEBUG_RATE(priv, "Set active_rate = %0x\n", priv->active_rate);
|
|
|
|
|
|
- /*
|
|
|
- * If a basic rate is configured, then use it (adding IWL_RATE_1M_MASK)
|
|
|
- * otherwise set it to the default of all CCK rates and 6, 12, 24 for
|
|
|
- * OFDM
|
|
|
- */
|
|
|
- if (priv->active_rate_basic & IWL_CCK_BASIC_RATES_MASK)
|
|
|
- priv->staging_rxon.cck_basic_rates =
|
|
|
- ((priv->active_rate_basic &
|
|
|
- IWL_CCK_RATES_MASK) >> IWL_FIRST_CCK_RATE) & 0xF;
|
|
|
- else
|
|
|
- priv->staging_rxon.cck_basic_rates =
|
|
|
- (IWL_CCK_BASIC_RATES_MASK >> IWL_FIRST_CCK_RATE) & 0xF;
|
|
|
-
|
|
|
- if (priv->active_rate_basic & IWL_OFDM_BASIC_RATES_MASK)
|
|
|
- priv->staging_rxon.ofdm_basic_rates =
|
|
|
- ((priv->active_rate_basic &
|
|
|
- (IWL_OFDM_BASIC_RATES_MASK | IWL_RATE_6M_MASK)) >>
|
|
|
- IWL_FIRST_OFDM_RATE) & 0xFF;
|
|
|
- else
|
|
|
- priv->staging_rxon.ofdm_basic_rates =
|
|
|
- (IWL_OFDM_BASIC_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF;
|
|
|
+ priv->staging_rxon.cck_basic_rates =
|
|
|
+ (IWL_CCK_BASIC_RATES_MASK >> IWL_FIRST_CCK_RATE) & 0xF;
|
|
|
+
|
|
|
+ priv->staging_rxon.ofdm_basic_rates =
|
|
|
+ (IWL_OFDM_BASIC_RATES_MASK >> IWL_FIRST_OFDM_RATE) & 0xFF;
|
|
|
}
|
|
|
|
|
|
void iwl_rx_csa(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb)
|