32 static void wl1271_event_rssi_trigger(
struct wl1271 *wl,
42 if (metric <= wlvif->rssi_thold)
52 static void wl1271_stop_ba_event(
struct wl1271 *wl,
struct wl12xx_vif *wlvif)
57 if (!wlvif->
sta.ba_rx_bitmap)
66 lnk = &wl->
links[hlid];
77 static void wl12xx_event_soft_gemini_sense(
struct wl1271 *wl,
93 static void wl1271_event_mbox_dump(
struct event_mailbox *mbox)
100 static int wl1271_event_process(
struct wl1271 *wl)
106 bool disconnect_sta =
false;
107 unsigned long sta_bitmap = 0;
110 wl1271_event_mbox_dump(mbox);
140 wl12xx_event_soft_gemini_sense(wl,
149 int delay = wl->
conf.conn.synch_fail_thold *
150 wl->
conf.conn.bss_lose_timeout;
162 vif = wl12xx_wlvif_to_vif(wlvif);
177 WARN(vector & BSS_LOSE_EVENT_ID,
178 "Concurrent beacon loss and gain from FW");
185 wl1271_event_rssi_trigger(wl, wlvif, mbox);
192 "ba_allowed = 0x%x, role_id=%d",
196 if (role_id != 0xff && role_id != wlvif->
role_id)
201 wl1271_stop_ba_event(wl, wlvif);
224 vif = wl12xx_wlvif_to_vif(wlvif);
244 disconnect_sta =
true;
250 disconnect_sta =
true;
253 if (disconnect_sta) {
254 u32 num_packets = wl->
conf.tx.max_tx_retries;
271 vif = wl12xx_wlvif_to_vif(wlvif);
308 sizeof(*wl->
mbox),
false);
313 ret = wl1271_event_process(wl);
321 ret = wl->
ops->ack_event(wl);