Commit 62e004fe authored by Sara Sharon's avatar Sara Sharon Committed by Luciano Coelho

iwlwifi: mvm: fix statistics variables type

When receiving statistics notification there is a field of average energy.
This is defines as signed 8 bit, while FW refers to it as unsigned.
when the energy is higher than 127 this causes in iwl_mvm_stat_iterator
a wrong computation of the signal
     int sig = -stats->general.beacon_filter_average_energy;
resulting in incorrect CQM event (change from low to high).

While at it - update the rest of the fields to the correct type.
Signed-off-by: default avatarSara Sharon <sara.sharon@intel.com>
Signed-off-by: default avatarLuciano Coelho <luciano.coelho@intel.com>
parent dbb04b0d
...@@ -237,10 +237,10 @@ struct mvm_statistics_general_v5 { ...@@ -237,10 +237,10 @@ struct mvm_statistics_general_v5 {
__le32 num_of_sos_states; __le32 num_of_sos_states;
__le32 beacon_filtered; __le32 beacon_filtered;
__le32 missed_beacons; __le32 missed_beacons;
__s8 beacon_filter_average_energy; u8 beacon_filter_average_energy;
__s8 beacon_filter_reason; u8 beacon_filter_reason;
__s8 beacon_filter_current_energy; u8 beacon_filter_current_energy;
__s8 beacon_filter_reserved; u8 beacon_filter_reserved;
__le32 beacon_filter_delta_time; __le32 beacon_filter_delta_time;
struct mvm_statistics_bt_activity bt_activity; struct mvm_statistics_bt_activity bt_activity;
} __packed; /* STATISTICS_GENERAL_API_S_VER_5 */ } __packed; /* STATISTICS_GENERAL_API_S_VER_5 */
...@@ -263,10 +263,10 @@ struct mvm_statistics_general_v8 { ...@@ -263,10 +263,10 @@ struct mvm_statistics_general_v8 {
__le32 num_of_sos_states; __le32 num_of_sos_states;
__le32 beacon_filtered; __le32 beacon_filtered;
__le32 missed_beacons; __le32 missed_beacons;
__s8 beacon_filter_average_energy; u8 beacon_filter_average_energy;
__s8 beacon_filter_reason; u8 beacon_filter_reason;
__s8 beacon_filter_current_energy; u8 beacon_filter_current_energy;
__s8 beacon_filter_reserved; u8 beacon_filter_reserved;
__le32 beacon_filter_delta_time; __le32 beacon_filter_delta_time;
struct mvm_statistics_bt_activity bt_activity; struct mvm_statistics_bt_activity bt_activity;
__le64 rx_time; __le64 rx_time;
......
...@@ -323,11 +323,11 @@ enum iwl_bt_force_ant_mode { ...@@ -323,11 +323,11 @@ enum iwl_bt_force_ant_mode {
struct iwl_mvm_vif_bf_data { struct iwl_mvm_vif_bf_data {
bool bf_enabled; bool bf_enabled;
bool ba_enabled; bool ba_enabled;
s8 ave_beacon_signal; int ave_beacon_signal;
s8 last_cqm_event; int last_cqm_event;
s8 bt_coex_min_thold; int bt_coex_min_thold;
s8 bt_coex_max_thold; int bt_coex_max_thold;
s8 last_bt_coex_event; int last_bt_coex_event;
}; };
/** /**
......
...@@ -459,7 +459,7 @@ static void iwl_mvm_update_rx_statistics(struct iwl_mvm *mvm, ...@@ -459,7 +459,7 @@ static void iwl_mvm_update_rx_statistics(struct iwl_mvm *mvm,
struct iwl_mvm_stat_data { struct iwl_mvm_stat_data {
struct iwl_mvm *mvm; struct iwl_mvm *mvm;
__le32 mac_id; __le32 mac_id;
__s8 beacon_filter_average_energy; u8 beacon_filter_average_energy;
struct mvm_statistics_general_v8 *general; struct mvm_statistics_general_v8 *general;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment