Lines Matching full:beacon

133 				struct sk_buff *beacon, bool in_intr);
359 struct sk_buff *beacon; in zd_restore_settings() local
370 beacon_interval = mac->beacon.interval; in zd_restore_settings()
371 beacon_period = mac->beacon.period; in zd_restore_settings()
401 beacon = ieee80211_beacon_get(mac->hw, mac->vif, 0); in zd_restore_settings()
402 if (beacon) in zd_restore_settings()
403 zd_mac_config_beacon(mac->hw, beacon, false); in zd_restore_settings()
410 mac->beacon.last_update = jiffies; in zd_restore_settings()
678 static bool zd_mac_match_cur_beacon(struct zd_mac *mac, struct sk_buff *beacon) in zd_mac_match_cur_beacon() argument
680 if (!mac->beacon.cur_beacon) in zd_mac_match_cur_beacon()
683 if (mac->beacon.cur_beacon->len != beacon->len) in zd_mac_match_cur_beacon()
686 return !memcmp(beacon->data, mac->beacon.cur_beacon->data, beacon->len); in zd_mac_match_cur_beacon()
693 kfree_skb(mac->beacon.cur_beacon); in zd_mac_free_cur_beacon_locked()
694 mac->beacon.cur_beacon = NULL; in zd_mac_free_cur_beacon_locked()
704 static int zd_mac_config_beacon(struct ieee80211_hw *hw, struct sk_buff *beacon, in zd_mac_config_beacon() argument
711 u32 full_len = beacon->len + 4; in zd_mac_config_beacon()
717 /* Check if hw already has this beacon. */ in zd_mac_config_beacon()
718 if (zd_mac_match_cur_beacon(mac, beacon)) { in zd_mac_config_beacon()
723 /* Alloc memory for full beacon write at once. */ in zd_mac_config_beacon()
755 "Giving up beacon config.\n"); in zd_mac_config_beacon()
772 for (j = 0 ; j < beacon->len; j++) { in zd_mac_config_beacon()
774 ioreqs[req_pos].value = *((u8 *)(beacon->data + j)); in zd_mac_config_beacon()
790 * Try very hard to release device beacon semaphore, as otherwise in zd_mac_config_beacon()
812 /* We don't know if beacon was written successfully or not, in zd_mac_config_beacon()
819 /* Beacon has now been written successfully, update current. */ in zd_mac_config_beacon()
821 mac->beacon.cur_beacon = beacon; in zd_mac_config_beacon()
822 beacon = NULL; in zd_mac_config_beacon()
833 kfree_skb(beacon); in zd_mac_config_beacon()
840 kfree_skb(beacon); in zd_mac_config_beacon()
1154 struct sk_buff *skb, *beacon; in zd_beacon_done() local
1172 * Fetch next beacon so that tim_count is updated. in zd_beacon_done()
1174 beacon = ieee80211_beacon_get(mac->hw, mac->vif, 0); in zd_beacon_done()
1175 if (beacon) in zd_beacon_done()
1176 zd_mac_config_beacon(mac->hw, beacon, true); in zd_beacon_done()
1179 mac->beacon.last_update = jiffies; in zd_beacon_done()
1297 struct sk_buff *beacon = ieee80211_beacon_get(hw, vif, in zd_op_bss_info_changed() local
1300 if (beacon) { in zd_op_bss_info_changed()
1302 zd_mac_config_beacon(hw, beacon, false); in zd_op_bss_info_changed()
1317 mac->beacon.period = period; in zd_op_bss_info_changed()
1318 mac->beacon.interval = interval; in zd_op_bss_info_changed()
1319 mac->beacon.last_update = jiffies; in zd_op_bss_info_changed()
1435 container_of(work, struct zd_mac, beacon.watchdog_work.work); in beacon_watchdog_handler()
1436 struct sk_buff *beacon; in beacon_watchdog_handler() local
1446 interval = mac->beacon.interval; in beacon_watchdog_handler()
1447 period = mac->beacon.period; in beacon_watchdog_handler()
1448 timeout = mac->beacon.last_update + in beacon_watchdog_handler()
1453 dev_dbg_f(zd_mac_dev(mac), "beacon interrupt stalled, " in beacon_watchdog_handler()
1460 beacon = ieee80211_beacon_get(mac->hw, mac->vif, 0); in beacon_watchdog_handler()
1461 if (beacon) { in beacon_watchdog_handler()
1464 zd_mac_config_beacon(mac->hw, beacon, false); in beacon_watchdog_handler()
1472 mac->beacon.last_update = jiffies; in beacon_watchdog_handler()
1477 queue_delayed_work(zd_workqueue, &mac->beacon.watchdog_work, in beacon_watchdog_handler()
1483 INIT_DELAYED_WORK(&mac->beacon.watchdog_work, beacon_watchdog_handler); in beacon_init()
1490 mac->beacon.last_update = jiffies; in beacon_enable()
1491 queue_delayed_work(zd_workqueue, &mac->beacon.watchdog_work, in beacon_enable()
1498 cancel_delayed_work_sync(&mac->beacon.watchdog_work); in beacon_disable()