Lines Matching +full:fw +full:- +full:cfg
1 // SPDX-License-Identifier: GPL-2.0
2 /* Copyright(c) 2009-2012 Realtek Corporation.*/
18 if (rtlhal->interface == INTF_PCI) in rtl_ps_enable_nic()
19 rtlpriv->intf_ops->reset_trx_ring(hw); in rtl_ps_enable_nic()
26 if (rtlpriv->cfg->ops->hw_init(hw)) in rtl_ps_enable_nic()
28 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_RETRY_LIMIT, in rtl_ps_enable_nic()
29 &rtlmac->retry_long); in rtl_ps_enable_nic()
32 rtlpriv->cfg->ops->switch_channel(hw); in rtl_ps_enable_nic()
33 rtlpriv->cfg->ops->set_channel_access(hw); in rtl_ps_enable_nic()
34 rtlpriv->cfg->ops->set_bw_mode(hw, in rtl_ps_enable_nic()
35 cfg80211_get_chandef_type(&hw->conf.chandef)); in rtl_ps_enable_nic()
38 rtlpriv->cfg->ops->enable_interrupt(hw); in rtl_ps_enable_nic()
41 rtl_watch_dog_timer_callback(&rtlpriv->works.watchdog_timer); in rtl_ps_enable_nic()
55 rtlpriv->cfg->ops->disable_interrupt(hw); in rtl_ps_disable_nic()
56 tasklet_kill(&rtlpriv->works.irq_tasklet); in rtl_ps_disable_nic()
59 rtlpriv->cfg->ops->hw_disable(hw); in rtl_ps_disable_nic()
79 spin_lock(&rtlpriv->locks.rf_ps_lock); in rtl_ps_set_rf_state()
80 if (ppsc->rfchange_inprogress) { in rtl_ps_set_rf_state()
81 spin_unlock(&rtlpriv->locks.rf_ps_lock); in rtl_ps_set_rf_state()
88 while (ppsc->rfchange_inprogress) { in rtl_ps_set_rf_state()
98 ppsc->rfchange_inprogress = true; in rtl_ps_set_rf_state()
99 spin_unlock(&rtlpriv->locks.rf_ps_lock); in rtl_ps_set_rf_state()
106 ppsc->rfoff_reason &= (~changesource); in rtl_ps_set_rf_state()
109 (ppsc->hwradiooff)) { in rtl_ps_set_rf_state()
110 ppsc->hwradiooff = false; in rtl_ps_set_rf_state()
113 if (!ppsc->rfoff_reason) { in rtl_ps_set_rf_state()
114 ppsc->rfoff_reason = 0; in rtl_ps_set_rf_state()
122 if ((changesource == RF_CHANGE_BY_HW) && !ppsc->hwradiooff) { in rtl_ps_set_rf_state()
123 ppsc->hwradiooff = true; in rtl_ps_set_rf_state()
126 ppsc->rfoff_reason |= changesource; in rtl_ps_set_rf_state()
131 ppsc->rfoff_reason |= changesource; in rtl_ps_set_rf_state()
141 rtlpriv->cfg->ops->set_rf_power_state(hw, state_toset); in rtl_ps_set_rf_state()
143 spin_lock(&rtlpriv->locks.rf_ps_lock); in rtl_ps_set_rf_state()
144 ppsc->rfchange_inprogress = false; in rtl_ps_set_rf_state()
145 spin_unlock(&rtlpriv->locks.rf_ps_lock); in rtl_ps_set_rf_state()
156 ppsc->swrf_processing = true; in _rtl_ps_inactive_ps()
158 if (ppsc->inactive_pwrstate == ERFON && in _rtl_ps_inactive_ps()
159 rtlhal->interface == INTF_PCI) { in _rtl_ps_inactive_ps()
160 if ((ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM) && in _rtl_ps_inactive_ps()
162 rtlpriv->intf_ops->disable_aspm(hw); in _rtl_ps_inactive_ps()
167 rtl_ps_set_rf_state(hw, ppsc->inactive_pwrstate, in _rtl_ps_inactive_ps()
170 if (ppsc->inactive_pwrstate == ERFOFF && in _rtl_ps_inactive_ps()
171 rtlhal->interface == INTF_PCI) { in _rtl_ps_inactive_ps()
172 if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM && in _rtl_ps_inactive_ps()
174 rtlpriv->intf_ops->enable_aspm(hw); in _rtl_ps_inactive_ps()
179 ppsc->swrf_processing = false; in _rtl_ps_inactive_ps()
186 struct ieee80211_hw *hw = rtlworks->hw; in rtl_ips_nic_off_wq_callback()
193 if (mac->opmode != NL80211_IFTYPE_STATION) { in rtl_ips_nic_off_wq_callback()
199 if (mac->p2p_in_use) in rtl_ips_nic_off_wq_callback()
202 if (mac->link_state > MAC80211_NOLINK) in rtl_ips_nic_off_wq_callback()
208 if (rtlpriv->sec.being_setkey) in rtl_ips_nic_off_wq_callback()
211 if (rtlpriv->cfg->ops->bt_coex_off_before_lps) in rtl_ips_nic_off_wq_callback()
212 rtlpriv->cfg->ops->bt_coex_off_before_lps(hw); in rtl_ips_nic_off_wq_callback()
214 if (ppsc->inactiveps) { in rtl_ips_nic_off_wq_callback()
215 rtstate = ppsc->rfpwr_state; in rtl_ips_nic_off_wq_callback()
228 !ppsc->swrf_processing && in rtl_ips_nic_off_wq_callback()
229 (mac->link_state == MAC80211_NOLINK) && in rtl_ips_nic_off_wq_callback()
230 !mac->act_scanning) { in rtl_ips_nic_off_wq_callback()
234 ppsc->inactive_pwrstate = ERFOFF; in rtl_ips_nic_off_wq_callback()
235 ppsc->in_powersavemode = true; in rtl_ips_nic_off_wq_callback()
238 if (rtlpriv->cfg->ops->get_btc_status()) in rtl_ips_nic_off_wq_callback()
239 rtlpriv->btcoexist.btc_ops->btc_ips_notify(rtlpriv, in rtl_ips_nic_off_wq_callback()
240 ppsc->inactive_pwrstate); in rtl_ips_nic_off_wq_callback()
256 queue_delayed_work(rtlpriv->works.rtl_wq, in rtl_ips_nic_off()
257 &rtlpriv->works.ips_nic_off_wq, MSECS(100)); in rtl_ips_nic_off()
269 cancel_delayed_work_sync(&rtlpriv->works.ips_nic_off_wq); in rtl_ips_nic_on()
271 mutex_lock(&rtlpriv->locks.ips_mutex); in rtl_ips_nic_on()
272 if (ppsc->inactiveps) { in rtl_ips_nic_on()
273 rtstate = ppsc->rfpwr_state; in rtl_ips_nic_on()
276 !ppsc->swrf_processing && in rtl_ips_nic_on()
277 ppsc->rfoff_reason <= RF_CHANGE_BY_IPS) { in rtl_ips_nic_on()
279 ppsc->inactive_pwrstate = ERFON; in rtl_ips_nic_on()
280 ppsc->in_powersavemode = false; in rtl_ips_nic_on()
283 if (rtlpriv->cfg->ops->get_btc_status()) in rtl_ips_nic_on()
284 rtlpriv->btcoexist.btc_ops->btc_ips_notify(rtlpriv, in rtl_ips_nic_on()
285 ppsc->inactive_pwrstate); in rtl_ips_nic_on()
288 mutex_unlock(&rtlpriv->locks.ips_mutex); in rtl_ips_nic_on()
292 /*for FW LPS*/
295 *Determine if we can set Fw into PS mode
306 ps_timediff = jiffies_to_msecs(jiffies - in rtl_get_fwlps_doze()
307 ppsc->last_delaylps_stamp_jiffies); in rtl_get_fwlps_doze()
311 "Delay enter Fw LPS for DHCP, ARP, or EAPOL exchanging state\n"); in rtl_get_fwlps_doze()
315 if (mac->link_state != MAC80211_LINKED) in rtl_get_fwlps_doze()
318 if (mac->opmode == NL80211_IFTYPE_ADHOC) in rtl_get_fwlps_doze()
332 if (mac->opmode == NL80211_IFTYPE_ADHOC) in rtl_lps_set_psmode()
335 if (mac->link_state != MAC80211_LINKED) in rtl_lps_set_psmode()
338 if (ppsc->dot11_psmode == rt_psmode && rt_psmode == EACTIVE) in rtl_lps_set_psmode()
342 ppsc->dot11_psmode = rt_psmode; in rtl_lps_set_psmode()
345 *<FW control LPS> in rtl_lps_set_psmode()
347 * Set RPWM to Fw to turn RF off and send H2C fw_pwrmode in rtl_lps_set_psmode()
348 * cmd to set Fw into PS mode. in rtl_lps_set_psmode()
350 * Send H2C fw_pwrmode cmd to Fw to set Fw into Active in rtl_lps_set_psmode()
354 if ((ppsc->fwctrl_lps) && ppsc->report_linked) { in rtl_lps_set_psmode()
355 if (ppsc->dot11_psmode == EACTIVE) { in rtl_lps_set_psmode()
357 "FW LPS leave ps_mode:%x\n", in rtl_lps_set_psmode()
360 ppsc->pwr_mode = FW_PS_ACTIVE_MODE; in rtl_lps_set_psmode()
361 ppsc->smart_ps = 0; in rtl_lps_set_psmode()
362 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_LPS_ACTION, in rtl_lps_set_psmode()
364 if (ppsc->p2p_ps_info.opp_ps) in rtl_lps_set_psmode()
367 if (rtlpriv->cfg->ops->get_btc_status()) in rtl_lps_set_psmode()
368 rtlpriv->btcoexist.btc_ops->btc_lps_notify(rtlpriv, rt_psmode); in rtl_lps_set_psmode()
372 "FW LPS enter ps_mode:%x\n", in rtl_lps_set_psmode()
373 ppsc->fwctrl_psmode); in rtl_lps_set_psmode()
374 if (rtlpriv->cfg->ops->get_btc_status()) in rtl_lps_set_psmode()
375 rtlpriv->btcoexist.btc_ops->btc_lps_notify(rtlpriv, rt_psmode); in rtl_lps_set_psmode()
377 ppsc->pwr_mode = ppsc->fwctrl_psmode; in rtl_lps_set_psmode()
378 ppsc->smart_ps = 2; in rtl_lps_set_psmode()
379 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_lps_set_psmode()
385 ppsc->dot11_psmode = EACTIVE; in rtl_lps_set_psmode()
398 if (!ppsc->fwctrl_lps) in rtl_lps_enter_core()
401 if (rtlpriv->sec.being_setkey) in rtl_lps_enter_core()
404 if (rtlpriv->link_info.busytraffic) in rtl_lps_enter_core()
407 /*sleep after linked 10s, to let DHCP and 4-way handshake ok enough!! */ in rtl_lps_enter_core()
408 if (mac->cnt_after_linked < 5) in rtl_lps_enter_core()
411 if (mac->opmode == NL80211_IFTYPE_ADHOC) in rtl_lps_enter_core()
414 if (mac->link_state != MAC80211_LINKED) in rtl_lps_enter_core()
417 mutex_lock(&rtlpriv->locks.lps_mutex); in rtl_lps_enter_core()
419 /* Don't need to check (ppsc->dot11_psmode == EACTIVE), because in rtl_lps_enter_core()
427 mutex_unlock(&rtlpriv->locks.lps_mutex); in rtl_lps_enter_core()
437 mutex_lock(&rtlpriv->locks.lps_mutex); in rtl_lps_leave_core()
439 if (ppsc->fwctrl_lps) { in rtl_lps_leave_core()
440 if (ppsc->dot11_psmode != EACTIVE) { in rtl_lps_leave_core()
443 /*rtlpriv->cfg->ops->enable_interrupt(hw); */ in rtl_lps_leave_core()
445 if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM && in rtl_lps_leave_core()
447 rtlhal->interface == INTF_PCI) { in rtl_lps_leave_core()
448 rtlpriv->intf_ops->disable_aspm(hw); in rtl_lps_leave_core()
458 mutex_unlock(&rtlpriv->locks.lps_mutex); in rtl_lps_leave_core()
473 if (mac->opmode != NL80211_IFTYPE_STATION) in rtl_swlps_beacon()
476 if (!rtlpriv->psc.swctrl_lps) in rtl_swlps_beacon()
479 if (rtlpriv->mac80211.link_state != MAC80211_LINKED) in rtl_swlps_beacon()
482 if (!rtlpriv->psc.sw_ps_enabled) in rtl_swlps_beacon()
485 if (rtlpriv->psc.fwctrl_lps) in rtl_swlps_beacon()
488 if (likely(!(hw->conf.flags & IEEE80211_CONF_PS))) in rtl_swlps_beacon()
492 if (!ieee80211_is_beacon(hdr->frame_control)) in rtl_swlps_beacon()
500 if (!ether_addr_equal_64bits(hdr->addr3, rtlpriv->mac80211.bssid)) in rtl_swlps_beacon()
503 rtlpriv->psc.last_beacon = jiffies; in rtl_swlps_beacon()
505 tim = rtl_find_ie(data, len - FCS_LEN, WLAN_EID_TIM); in rtl_swlps_beacon()
515 if (!WARN_ON_ONCE(!hw->conf.ps_dtim_period)) in rtl_swlps_beacon()
516 rtlpriv->psc.dtim_counter = tim_ie->dtim_count; in rtl_swlps_beacon()
522 rtlpriv->mac80211.assoc_id); in rtl_swlps_beacon()
525 m_buffed = tim_ie->bitmap_ctrl & 0x01; in rtl_swlps_beacon()
526 rtlpriv->psc.multi_buffered = m_buffed; in rtl_swlps_beacon()
532 /* back to low-power land. and delay is in rtl_swlps_beacon()
534 queue_delayed_work(rtlpriv->works.rtl_wq, in rtl_swlps_beacon()
535 &rtlpriv->works.ps_work, MSECS(5)); in rtl_swlps_beacon()
549 if (!rtlpriv->psc.swctrl_lps) in rtl_swlps_rf_awake()
551 if (mac->link_state != MAC80211_LINKED) in rtl_swlps_rf_awake()
554 if (ppsc->reg_rfps_level & RT_RF_LPS_LEVEL_ASPM && in rtl_swlps_rf_awake()
556 rtlpriv->intf_ops->disable_aspm(hw); in rtl_swlps_rf_awake()
560 mutex_lock(&rtlpriv->locks.lps_mutex); in rtl_swlps_rf_awake()
562 mutex_unlock(&rtlpriv->locks.lps_mutex); in rtl_swlps_rf_awake()
569 struct ieee80211_hw *hw = rtlworks->hw; in rtl_swlps_rfon_wq_callback()
581 if (!rtlpriv->psc.sw_ps_enabled) in rtl_swlps_rf_sleep()
584 if ((rtlpriv->sec.being_setkey) || in rtl_swlps_rf_sleep()
585 (mac->opmode == NL80211_IFTYPE_ADHOC)) in rtl_swlps_rf_sleep()
588 /*sleep after linked 10s, to let DHCP and 4-way handshake ok enough!! */ in rtl_swlps_rf_sleep()
589 if ((mac->link_state != MAC80211_LINKED) || (mac->cnt_after_linked < 5)) in rtl_swlps_rf_sleep()
592 if (rtlpriv->link_info.busytraffic) in rtl_swlps_rf_sleep()
595 spin_lock(&rtlpriv->locks.rf_ps_lock); in rtl_swlps_rf_sleep()
596 if (rtlpriv->psc.rfchange_inprogress) { in rtl_swlps_rf_sleep()
597 spin_unlock(&rtlpriv->locks.rf_ps_lock); in rtl_swlps_rf_sleep()
600 spin_unlock(&rtlpriv->locks.rf_ps_lock); in rtl_swlps_rf_sleep()
602 mutex_lock(&rtlpriv->locks.lps_mutex); in rtl_swlps_rf_sleep()
604 mutex_unlock(&rtlpriv->locks.lps_mutex); in rtl_swlps_rf_sleep()
606 if (ppsc->reg_rfps_level & RT_RF_OFF_LEVL_ASPM && in rtl_swlps_rf_sleep()
608 rtlpriv->intf_ops->enable_aspm(hw); in rtl_swlps_rf_sleep()
615 * time to sleep_intv = rtlpriv->psc.dtim_counter or in rtl_swlps_rf_sleep()
618 if (rtlpriv->psc.dtim_counter == 0) { in rtl_swlps_rf_sleep()
619 if (hw->conf.ps_dtim_period == 1) in rtl_swlps_rf_sleep()
620 sleep_intv = hw->conf.ps_dtim_period * 2; in rtl_swlps_rf_sleep()
622 sleep_intv = hw->conf.ps_dtim_period; in rtl_swlps_rf_sleep()
624 sleep_intv = rtlpriv->psc.dtim_counter; in rtl_swlps_rf_sleep()
635 rtlpriv->psc.dtim_counter, sleep_intv); in rtl_swlps_rf_sleep()
638 queue_delayed_work(rtlpriv->works.rtl_wq, &rtlpriv->works.ps_rfon_wq, in rtl_swlps_rf_sleep()
639 MSECS(sleep_intv * mac->vif->bss_conf.beacon_int - 40)); in rtl_swlps_rf_sleep()
646 struct ieee80211_hw *hw = rtlworks->hw; in rtl_lps_change_work_callback()
649 if (rtlpriv->enter_ps) in rtl_lps_change_work_callback()
662 rtlpriv->enter_ps = true; in rtl_lps_enter()
663 schedule_work(&rtlpriv->works.lps_change_work); in rtl_lps_enter()
673 rtlpriv->enter_ps = false; in rtl_lps_leave()
674 schedule_work(&rtlpriv->works.lps_change_work); in rtl_lps_leave()
682 struct ieee80211_hw *hw = rtlworks->hw; in rtl_swlps_wq_callback()
686 if (rtlpriv->psc.state_inap) in rtl_swlps_wq_callback()
695 struct rtl_p2p_ps_info *p2pinfo = &(rtlpriv->psc.p2p_ps_info); in rtl_p2p_noa_ie()
702 pos = (u8 *)mgmt->u.beacon.variable; in rtl_p2p_noa_ie()
730 if ((noa_len - 2) % 13 != 0) { in rtl_p2p_noa_ie()
736 noa_num = (noa_len - 2) / 13; in rtl_p2p_noa_ie()
742 if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode == in rtl_p2p_noa_ie()
743 P2P_PS_NONE || noa_index != p2pinfo->noa_index) { in rtl_p2p_noa_ie()
746 p2pinfo->noa_index = noa_index; in rtl_p2p_noa_ie()
747 p2pinfo->opp_ps = (ie[4] >> 7); in rtl_p2p_noa_ie()
748 p2pinfo->ctwindow = ie[4] & 0x7F; in rtl_p2p_noa_ie()
749 p2pinfo->noa_num = noa_num; in rtl_p2p_noa_ie()
752 p2pinfo->noa_count_type[i] = in rtl_p2p_noa_ie()
755 p2pinfo->noa_duration[i] = in rtl_p2p_noa_ie()
758 p2pinfo->noa_interval[i] = in rtl_p2p_noa_ie()
761 p2pinfo->noa_start_time[i] = in rtl_p2p_noa_ie()
766 if (p2pinfo->opp_ps == 1) { in rtl_p2p_noa_ie()
767 p2pinfo->p2p_ps_mode = P2P_PS_CTWINDOW; in rtl_p2p_noa_ie()
771 if (rtlpriv->psc.fw_current_inpsmode) in rtl_p2p_noa_ie()
774 } else if (p2pinfo->noa_num > 0) { in rtl_p2p_noa_ie()
775 p2pinfo->p2p_ps_mode = P2P_PS_NOA; in rtl_p2p_noa_ie()
777 } else if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { in rtl_p2p_noa_ie()
787 if ((p2pinfo->p2p_ps_mode > P2P_PS_NONE) && in rtl_p2p_noa_ie()
798 struct rtl_p2p_ps_info *p2pinfo = &(rtlpriv->psc.p2p_ps_info); in rtl_p2p_action_ie()
804 pos = (u8 *)&mgmt->u.action.category; in rtl_p2p_action_ie()
827 if ((noa_len - 2) % 13 != 0) { in rtl_p2p_action_ie()
833 noa_num = (noa_len - 2) / 13; in rtl_p2p_action_ie()
839 if (rtlpriv->psc.p2p_ps_info.p2p_ps_mode == in rtl_p2p_action_ie()
840 P2P_PS_NONE || noa_index != p2pinfo->noa_index) { in rtl_p2p_action_ie()
841 p2pinfo->noa_index = noa_index; in rtl_p2p_action_ie()
842 p2pinfo->opp_ps = (ie[4] >> 7); in rtl_p2p_action_ie()
843 p2pinfo->ctwindow = ie[4] & 0x7F; in rtl_p2p_action_ie()
844 p2pinfo->noa_num = noa_num; in rtl_p2p_action_ie()
847 p2pinfo->noa_count_type[i] = in rtl_p2p_action_ie()
850 p2pinfo->noa_duration[i] = in rtl_p2p_action_ie()
853 p2pinfo->noa_interval[i] = in rtl_p2p_action_ie()
856 p2pinfo->noa_start_time[i] = in rtl_p2p_action_ie()
861 if (p2pinfo->opp_ps == 1) { in rtl_p2p_action_ie()
862 p2pinfo->p2p_ps_mode = P2P_PS_CTWINDOW; in rtl_p2p_action_ie()
866 if (rtlpriv->psc.fw_current_inpsmode) in rtl_p2p_action_ie()
869 } else if (p2pinfo->noa_num > 0) { in rtl_p2p_action_ie()
870 p2pinfo->p2p_ps_mode = P2P_PS_NOA; in rtl_p2p_action_ie()
872 } else if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { in rtl_p2p_action_ie()
886 struct rtl_p2p_ps_info *p2pinfo = &(rtlpriv->psc.p2p_ps_info); in rtl_p2p_ps_cmd()
891 p2pinfo->p2p_ps_state = p2p_ps_state; in rtl_p2p_ps_cmd()
892 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_P2P_PS_OFFLOAD, in rtl_p2p_ps_cmd()
894 p2pinfo->noa_index = 0; in rtl_p2p_ps_cmd()
895 p2pinfo->ctwindow = 0; in rtl_p2p_ps_cmd()
896 p2pinfo->opp_ps = 0; in rtl_p2p_ps_cmd()
897 p2pinfo->noa_num = 0; in rtl_p2p_ps_cmd()
898 p2pinfo->p2p_ps_mode = P2P_PS_NONE; in rtl_p2p_ps_cmd()
899 if (rtlps->fw_current_inpsmode) { in rtl_p2p_ps_cmd()
900 if (rtlps->smart_ps == 0) { in rtl_p2p_ps_cmd()
901 rtlps->smart_ps = 2; in rtl_p2p_ps_cmd()
902 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
904 &rtlps->pwr_mode); in rtl_p2p_ps_cmd()
910 if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { in rtl_p2p_ps_cmd()
911 p2pinfo->p2p_ps_state = p2p_ps_state; in rtl_p2p_ps_cmd()
913 if (p2pinfo->ctwindow > 0) { in rtl_p2p_ps_cmd()
914 if (rtlps->smart_ps != 0) { in rtl_p2p_ps_cmd()
915 rtlps->smart_ps = 0; in rtl_p2p_ps_cmd()
916 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
918 &rtlps->pwr_mode); in rtl_p2p_ps_cmd()
921 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
930 if (p2pinfo->p2p_ps_mode > P2P_PS_NONE) { in rtl_p2p_ps_cmd()
931 p2pinfo->p2p_ps_state = p2p_ps_state; in rtl_p2p_ps_cmd()
932 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
942 p2pinfo->ctwindow, p2pinfo->opp_ps); in rtl_p2p_ps_cmd()
945 p2pinfo->noa_count_type[0], in rtl_p2p_ps_cmd()
946 p2pinfo->noa_duration[0], in rtl_p2p_ps_cmd()
947 p2pinfo->noa_index, in rtl_p2p_ps_cmd()
948 p2pinfo->noa_interval[0], in rtl_p2p_ps_cmd()
949 p2pinfo->noa_start_time[0], in rtl_p2p_ps_cmd()
950 p2pinfo->noa_num); in rtl_p2p_ps_cmd()
960 if (!mac->p2p) in rtl_p2p_info()
962 if (mac->link_state != MAC80211_LINKED) in rtl_p2p_info()
969 if (!ether_addr_equal_64bits(hdr->addr3, rtlpriv->mac80211.bssid)) in rtl_p2p_info()
973 if (!(ieee80211_is_beacon(hdr->frame_control) || in rtl_p2p_info()
974 ieee80211_is_probe_resp(hdr->frame_control) || in rtl_p2p_info()
975 ieee80211_is_action(hdr->frame_control))) in rtl_p2p_info()
978 if (ieee80211_is_action(hdr->frame_control)) in rtl_p2p_info()
979 rtl_p2p_action_ie(hw , data , len - FCS_LEN); in rtl_p2p_info()
981 rtl_p2p_noa_ie(hw , data , len - FCS_LEN); in rtl_p2p_info()