aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2016-01-26 05:35:13 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2016-02-01 09:40:28 -0500
commitd56a7801b544d63b0d32bc8bca0c12a259b1d8e9 (patch)
tree4291f3af1d361a6d3a9d5f54d9c2253edbb77fa6
parentbce977310416a2b6c9ad774dfe2071eaacd3d90b (diff)
iwlwifi: pcie: update iwl_mpdu_desc fields
Final API of iwl_mpdu_desc has a change in the order of the fields and does not include energy from the third antenna (which is perfectly fine, since we don't have one). Update the structure accordingly. Signed-off-by: Sara Sharon <sara.sharon@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h6
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c11
2 files changed, 7 insertions, 10 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h b/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h
index b45c61e1f45c..df939f51d9b9 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw-api-rx.h
@@ -347,11 +347,11 @@ struct iwl_rx_mpdu_desc {
347 /* DW8 */ 347 /* DW8 */
348 __le32 filter_match; 348 __le32 filter_match;
349 /* DW9 */ 349 /* DW9 */
350 __le32 gp2_on_air_rise;
351 /* DW10 */
352 __le32 rate_n_flags; 350 __le32 rate_n_flags;
351 /* DW10 */
352 u8 energy_a, energy_b, channel, reserved;
353 /* DW11 */ 353 /* DW11 */
354 u8 energy_a, energy_b, energy_c, channel; 354 __le32 gp2_on_air_rise;
355 /* DW12 & DW13 */ 355 /* DW12 & DW13 */
356 __le64 tsf_on_air_rise; 356 __le64 tsf_on_air_rise;
357} __packed; 357} __packed;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
index 4cce37238a08..615dea143d4e 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c
@@ -201,25 +201,22 @@ static void iwl_mvm_get_signal_strength(struct iwl_mvm *mvm,
201 struct iwl_rx_mpdu_desc *desc, 201 struct iwl_rx_mpdu_desc *desc,
202 struct ieee80211_rx_status *rx_status) 202 struct ieee80211_rx_status *rx_status)
203{ 203{
204 int energy_a, energy_b, energy_c, max_energy; 204 int energy_a, energy_b, max_energy;
205 205
206 energy_a = desc->energy_a; 206 energy_a = desc->energy_a;
207 energy_a = energy_a ? -energy_a : S8_MIN; 207 energy_a = energy_a ? -energy_a : S8_MIN;
208 energy_b = desc->energy_b; 208 energy_b = desc->energy_b;
209 energy_b = energy_b ? -energy_b : S8_MIN; 209 energy_b = energy_b ? -energy_b : S8_MIN;
210 energy_c = desc->energy_c;
211 energy_c = energy_c ? -energy_c : S8_MIN;
212 max_energy = max(energy_a, energy_b); 210 max_energy = max(energy_a, energy_b);
213 max_energy = max(max_energy, energy_c);
214 211
215 IWL_DEBUG_STATS(mvm, "energy In A %d B %d C %d , and max %d\n", 212 IWL_DEBUG_STATS(mvm, "energy In A %d B %d, and max %d\n",
216 energy_a, energy_b, energy_c, max_energy); 213 energy_a, energy_b, max_energy);
217 214
218 rx_status->signal = max_energy; 215 rx_status->signal = max_energy;
219 rx_status->chains = 0; /* TODO: phy info */ 216 rx_status->chains = 0; /* TODO: phy info */
220 rx_status->chain_signal[0] = energy_a; 217 rx_status->chain_signal[0] = energy_a;
221 rx_status->chain_signal[1] = energy_b; 218 rx_status->chain_signal[1] = energy_b;
222 rx_status->chain_signal[2] = energy_c; 219 rx_status->chain_signal[2] = S8_MIN;
223} 220}
224 221
225static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr, 222static int iwl_mvm_rx_crypto(struct iwl_mvm *mvm, struct ieee80211_hdr *hdr,