iwlwifi: mvm: set correct chains in Rx status
ieee80211_rx_status::chains was always set to zero. That caused rate scaling to always start with the lowest rate possible (rs_get_initial_rate). Set it correctly according to the MPDU response. Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
This commit is contained in:
parent
ed59b7d53c
commit
c4e45c8427
|
@ -213,6 +213,7 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm,
|
|||
struct ieee80211_rx_status *rx_status)
|
||||
{
|
||||
int energy_a, energy_b, max_energy;
|
||||
u32 rate_flags = le32_to_cpu(desc->rate_n_flags);
|
||||
|
||||
energy_a = desc->energy_a;
|
||||
energy_a = energy_a ? -energy_a : S8_MIN;
|
||||
|
@ -224,7 +225,8 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm,
|
|||
energy_a, energy_b, max_energy);
|
||||
|
||||
rx_status->signal = max_energy;
|
||||
rx_status->chains = 0; /* TODO: phy info */
|
||||
rx_status->chains =
|
||||
(rate_flags & RATE_MCS_ANT_AB_MSK) >> RATE_MCS_ANT_POS;
|
||||
rx_status->chain_signal[0] = energy_a;
|
||||
rx_status->chain_signal[1] = energy_b;
|
||||
rx_status->chain_signal[2] = S8_MIN;
|
||||
|
|
Loading…
Reference in New Issue