summaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2015-03-16 17:23:34 -0400
committerJohannes Berg <johannes.berg@intel.com>2015-03-30 04:17:09 -0400
commita818292952bbfad12ec5a32ab01330cb1ceed013 (patch)
treead86dcdaf4e0ae381180d5c2f8545bef55de21c7 /net/mac80211/mlme.c
parent2c158887f1185e04b3763ae346da9f71fcbc4429 (diff)
mac80211: convert rssi_callback() to event_callback()
We will be able to add more events, such as MLME events and others. The low level driver may be interested in knowing about these events to dump firmware data upon failures, or to change parameters in case connection attempts fail etc... Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1999bc08fdcc..a8c8fe4c9f49 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -3291,6 +3291,9 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
3291 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) { 3291 ifmgd->count_beacon_signal >= IEEE80211_SIGNAL_AVE_MIN_COUNT) {
3292 int sig = ifmgd->ave_beacon_signal; 3292 int sig = ifmgd->ave_beacon_signal;
3293 int last_sig = ifmgd->last_ave_beacon_signal; 3293 int last_sig = ifmgd->last_ave_beacon_signal;
3294 struct ieee80211_event event = {
3295 .type = RSSI_EVENT,
3296 };
3294 3297
3295 /* 3298 /*
3296 * if signal crosses either of the boundaries, invoke callback 3299 * if signal crosses either of the boundaries, invoke callback
@@ -3299,12 +3302,14 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
3299 if (sig > ifmgd->rssi_max_thold && 3302 if (sig > ifmgd->rssi_max_thold &&
3300 (last_sig <= ifmgd->rssi_min_thold || last_sig == 0)) { 3303 (last_sig <= ifmgd->rssi_min_thold || last_sig == 0)) {
3301 ifmgd->last_ave_beacon_signal = sig; 3304 ifmgd->last_ave_beacon_signal = sig;
3302 drv_rssi_callback(local, sdata, RSSI_EVENT_HIGH); 3305 event.u.rssi.data = RSSI_EVENT_HIGH;
3306 drv_event_callback(local, sdata, &event);
3303 } else if (sig < ifmgd->rssi_min_thold && 3307 } else if (sig < ifmgd->rssi_min_thold &&
3304 (last_sig >= ifmgd->rssi_max_thold || 3308 (last_sig >= ifmgd->rssi_max_thold ||
3305 last_sig == 0)) { 3309 last_sig == 0)) {
3306 ifmgd->last_ave_beacon_signal = sig; 3310 ifmgd->last_ave_beacon_signal = sig;
3307 drv_rssi_callback(local, sdata, RSSI_EVENT_LOW); 3311 event.u.rssi.data = RSSI_EVENT_LOW;
3312 drv_event_callback(local, sdata, &event);
3308 } 3313 }
3309 } 3314 }
3310 3315