提交 c4e45c84 编写于 作者: S Shaul Triebitz 提交者: Luca Coelho

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: NShaul Triebitz <shaul.triebitz@intel.com>
Signed-off-by: NLuca Coelho <luciano.coelho@intel.com>
上级 ed59b7d5
...@@ -213,6 +213,7 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm, ...@@ -213,6 +213,7 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm,
struct ieee80211_rx_status *rx_status) struct ieee80211_rx_status *rx_status)
{ {
int energy_a, energy_b, max_energy; int energy_a, energy_b, max_energy;
u32 rate_flags = le32_to_cpu(desc->rate_n_flags);
energy_a = desc->energy_a; energy_a = desc->energy_a;
energy_a = energy_a ? -energy_a : S8_MIN; energy_a = energy_a ? -energy_a : S8_MIN;
...@@ -224,7 +225,8 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm, ...@@ -224,7 +225,8 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm,
energy_a, energy_b, max_energy); energy_a, energy_b, max_energy);
rx_status->signal = 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[0] = energy_a;
rx_status->chain_signal[1] = energy_b; rx_status->chain_signal[1] = energy_b;
rx_status->chain_signal[2] = S8_MIN; rx_status->chain_signal[2] = S8_MIN;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册