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()
674 static bool zd_mac_match_cur_beacon(struct zd_mac *mac, struct sk_buff *beacon) in zd_mac_match_cur_beacon() argument
676 if (!mac->beacon.cur_beacon) in zd_mac_match_cur_beacon()
679 if (mac->beacon.cur_beacon->len != beacon->len) in zd_mac_match_cur_beacon()
682 return !memcmp(beacon->data, mac->beacon.cur_beacon->data, beacon->len); in zd_mac_match_cur_beacon()
689 kfree_skb(mac->beacon.cur_beacon); in zd_mac_free_cur_beacon_locked()
690 mac->beacon.cur_beacon = NULL; in zd_mac_free_cur_beacon_locked()
700 static int zd_mac_config_beacon(struct ieee80211_hw *hw, struct sk_buff *beacon, in zd_mac_config_beacon() argument
707 u32 full_len = beacon->len + 4; in zd_mac_config_beacon()
713 /* Check if hw already has this beacon. */ in zd_mac_config_beacon()
714 if (zd_mac_match_cur_beacon(mac, beacon)) { in zd_mac_config_beacon()
719 /* Alloc memory for full beacon write at once. */ in zd_mac_config_beacon()
751 "Giving up beacon config.\n"); in zd_mac_config_beacon()
768 for (j = 0 ; j < beacon->len; j++) { in zd_mac_config_beacon()
770 ioreqs[req_pos].value = *((u8 *)(beacon->data + j)); in zd_mac_config_beacon()
786 * Try very hard to release device beacon semaphore, as otherwise in zd_mac_config_beacon()
808 /* We don't know if beacon was written successfully or not, in zd_mac_config_beacon()
815 /* Beacon has now been written successfully, update current. */ in zd_mac_config_beacon()
817 mac->beacon.cur_beacon = beacon; in zd_mac_config_beacon()
818 beacon = NULL; in zd_mac_config_beacon()
829 kfree_skb(beacon); in zd_mac_config_beacon()
836 kfree_skb(beacon); in zd_mac_config_beacon()
1150 struct sk_buff *skb, *beacon; in zd_beacon_done() local
1168 * Fetch next beacon so that tim_count is updated. in zd_beacon_done()
1170 beacon = ieee80211_beacon_get(mac->hw, mac->vif, 0); in zd_beacon_done()
1171 if (beacon) in zd_beacon_done()
1172 zd_mac_config_beacon(mac->hw, beacon, true); in zd_beacon_done()
1175 mac->beacon.last_update = jiffies; in zd_beacon_done()
1293 struct sk_buff *beacon = ieee80211_beacon_get(hw, vif, in zd_op_bss_info_changed() local
1296 if (beacon) { in zd_op_bss_info_changed()
1298 zd_mac_config_beacon(hw, beacon, false); in zd_op_bss_info_changed()
1313 mac->beacon.period = period; in zd_op_bss_info_changed()
1314 mac->beacon.interval = interval; in zd_op_bss_info_changed()
1315 mac->beacon.last_update = jiffies; in zd_op_bss_info_changed()
1427 container_of(work, struct zd_mac, beacon.watchdog_work.work); in beacon_watchdog_handler()
1428 struct sk_buff *beacon; in beacon_watchdog_handler() local
1438 interval = mac->beacon.interval; in beacon_watchdog_handler()
1439 period = mac->beacon.period; in beacon_watchdog_handler()
1440 timeout = mac->beacon.last_update + in beacon_watchdog_handler()
1445 dev_dbg_f(zd_mac_dev(mac), "beacon interrupt stalled, " in beacon_watchdog_handler()
1452 beacon = ieee80211_beacon_get(mac->hw, mac->vif, 0); in beacon_watchdog_handler()
1453 if (beacon) { in beacon_watchdog_handler()
1456 zd_mac_config_beacon(mac->hw, beacon, false); in beacon_watchdog_handler()
1464 mac->beacon.last_update = jiffies; in beacon_watchdog_handler()
1469 queue_delayed_work(zd_workqueue, &mac->beacon.watchdog_work, in beacon_watchdog_handler()
1475 INIT_DELAYED_WORK(&mac->beacon.watchdog_work, beacon_watchdog_handler); in beacon_init()
1482 mac->beacon.last_update = jiffies; in beacon_enable()
1483 queue_delayed_work(zd_workqueue, &mac->beacon.watchdog_work, in beacon_enable()
1490 cancel_delayed_work_sync(&mac->beacon.watchdog_work); in beacon_disable()