|
@@ -186,6 +186,7 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox)
|
|
|
int ret;
|
|
|
u32 vector;
|
|
|
bool beacon_loss = false;
|
|
|
+ bool is_ap = (wl->bss_type == BSS_TYPE_AP_BSS);
|
|
|
|
|
|
wl1271_event_mbox_dump(mbox);
|
|
|
|
|
@@ -218,21 +219,21 @@ static int wl1271_event_process(struct wl1271 *wl, struct event_mailbox *mbox)
|
|
|
* BSS_LOSE_EVENT, beacon loss has to be reported to the stack.
|
|
|
*
|
|
|
*/
|
|
|
- if (vector & BSS_LOSE_EVENT_ID) {
|
|
|
+ if ((vector & BSS_LOSE_EVENT_ID) && !is_ap) {
|
|
|
wl1271_info("Beacon loss detected.");
|
|
|
|
|
|
/* indicate to the stack, that beacons have been lost */
|
|
|
beacon_loss = true;
|
|
|
}
|
|
|
|
|
|
- if (vector & PS_REPORT_EVENT_ID) {
|
|
|
+ if ((vector & PS_REPORT_EVENT_ID) && !is_ap) {
|
|
|
wl1271_debug(DEBUG_EVENT, "PS_REPORT_EVENT");
|
|
|
ret = wl1271_event_ps_report(wl, mbox, &beacon_loss);
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
|
- if (vector & PSPOLL_DELIVERY_FAILURE_EVENT_ID)
|
|
|
+ if ((vector & PSPOLL_DELIVERY_FAILURE_EVENT_ID) && !is_ap)
|
|
|
wl1271_event_pspoll_delivery_fail(wl);
|
|
|
|
|
|
if (vector & RSSI_SNR_TRIGGER_0_EVENT_ID) {
|