Lines Matching refs:hw

32 bool rtl_ps_enable_nic(struct ieee80211_hw *hw)  in rtl_ps_enable_nic()  argument
34 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_ps_enable_nic()
35 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_ps_enable_nic()
36 struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); in rtl_ps_enable_nic()
40 rtlpriv->intf_ops->reset_trx_ring(hw); in rtl_ps_enable_nic()
47 if (rtlpriv->cfg->ops->hw_init(hw)) in rtl_ps_enable_nic()
52 rtlpriv->cfg->ops->enable_interrupt(hw); in rtl_ps_enable_nic()
55 rtl_watch_dog_timer_callback((unsigned long)hw); in rtl_ps_enable_nic()
61 bool rtl_ps_disable_nic(struct ieee80211_hw *hw) in rtl_ps_disable_nic() argument
63 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_ps_disable_nic()
66 rtl_deinit_deferred_work(hw); in rtl_ps_disable_nic()
69 rtlpriv->cfg->ops->disable_interrupt(hw); in rtl_ps_disable_nic()
73 rtlpriv->cfg->ops->hw_disable(hw); in rtl_ps_disable_nic()
79 bool rtl_ps_set_rf_state(struct ieee80211_hw *hw, in rtl_ps_set_rf_state() argument
83 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_ps_set_rf_state()
84 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_ps_set_rf_state()
163 rtlpriv->cfg->ops->set_rf_power_state(hw, state_toset); in rtl_ps_set_rf_state()
175 static void _rtl_ps_inactive_ps(struct ieee80211_hw *hw) in _rtl_ps_inactive_ps() argument
177 struct rtl_priv *rtlpriv = rtl_priv(hw); in _rtl_ps_inactive_ps()
178 struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); in _rtl_ps_inactive_ps()
179 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in _rtl_ps_inactive_ps()
188 rtlpriv->intf_ops->disable_aspm(hw); in _rtl_ps_inactive_ps()
193 rtl_ps_set_rf_state(hw, ppsc->inactive_pwrstate, in _rtl_ps_inactive_ps()
200 rtlpriv->intf_ops->enable_aspm(hw); in _rtl_ps_inactive_ps()
212 struct ieee80211_hw *hw = rtlworks->hw; in rtl_ips_nic_off_wq_callback() local
213 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_ips_nic_off_wq_callback()
214 struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); in rtl_ips_nic_off_wq_callback()
215 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_ips_nic_off_wq_callback()
216 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_ips_nic_off_wq_callback()
238 rtlpriv->cfg->ops->bt_coex_off_before_lps(hw); in rtl_ips_nic_off_wq_callback()
269 _rtl_ps_inactive_ps(hw); in rtl_ips_nic_off_wq_callback()
274 void rtl_ips_nic_off(struct ieee80211_hw *hw) in rtl_ips_nic_off() argument
276 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_ips_nic_off()
289 void rtl_ips_nic_on(struct ieee80211_hw *hw) in rtl_ips_nic_on() argument
291 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_ips_nic_on()
292 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_ips_nic_on()
307 _rtl_ps_inactive_ps(hw); in rtl_ips_nic_on()
325 static bool rtl_get_fwlps_doze(struct ieee80211_hw *hw) in rtl_get_fwlps_doze() argument
327 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_get_fwlps_doze()
328 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_get_fwlps_doze()
329 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_get_fwlps_doze()
351 void rtl_lps_set_psmode(struct ieee80211_hw *hw, u8 rt_psmode) in rtl_lps_set_psmode() argument
353 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_lps_set_psmode()
354 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_lps_set_psmode()
355 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_lps_set_psmode()
388 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_FW_LPS_ACTION, in rtl_lps_set_psmode()
391 rtl_p2p_ps_cmd(hw , P2P_PS_ENABLE); in rtl_lps_set_psmode()
396 if (rtl_get_fwlps_doze(hw)) { in rtl_lps_set_psmode()
405 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_lps_set_psmode()
418 void rtl_lps_enter(struct ieee80211_hw *hw) in rtl_lps_enter() argument
420 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_lps_enter()
421 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_lps_enter()
422 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_lps_enter()
452 rtl_lps_set_psmode(hw, EAUTOPS); in rtl_lps_enter()
461 void rtl_lps_leave(struct ieee80211_hw *hw) in rtl_lps_leave() argument
463 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_lps_leave()
464 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_lps_leave()
465 struct rtl_hal *rtlhal = rtl_hal(rtl_priv(hw)); in rtl_lps_leave()
479 rtlpriv->intf_ops->disable_aspm(hw); in rtl_lps_leave()
486 rtl_lps_set_psmode(hw, EACTIVE); in rtl_lps_leave()
494 void rtl_swlps_beacon(struct ieee80211_hw *hw, void *data, unsigned int len) in rtl_swlps_beacon() argument
496 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_swlps_beacon()
497 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_swlps_beacon()
520 if (likely(!(hw->conf.flags & IEEE80211_CONF_PS))) in rtl_swlps_beacon()
547 if (!WARN_ON_ONCE(!hw->conf.ps_dtim_period)) in rtl_swlps_beacon()
575 void rtl_swlps_rf_awake(struct ieee80211_hw *hw) in rtl_swlps_rf_awake() argument
577 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_swlps_rf_awake()
578 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_swlps_rf_awake()
579 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_swlps_rf_awake()
589 rtlpriv->intf_ops->disable_aspm(hw); in rtl_swlps_rf_awake()
594 rtl_ps_set_rf_state(hw, ERFON, RF_CHANGE_BY_PS, false); in rtl_swlps_rf_awake()
602 struct ieee80211_hw *hw = rtlworks->hw; in rtl_swlps_rfon_wq_callback() local
604 rtl_swlps_rf_awake(hw); in rtl_swlps_rfon_wq_callback()
607 void rtl_swlps_rf_sleep(struct ieee80211_hw *hw) in rtl_swlps_rf_sleep() argument
609 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_swlps_rf_sleep()
610 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_swlps_rf_sleep()
611 struct rtl_ps_ctl *ppsc = rtl_psc(rtl_priv(hw)); in rtl_swlps_rf_sleep()
637 rtl_ps_set_rf_state(hw, ERFSLEEP, RF_CHANGE_BY_PS , false); in rtl_swlps_rf_sleep()
642 rtlpriv->intf_ops->enable_aspm(hw); in rtl_swlps_rf_sleep()
653 if (hw->conf.ps_dtim_period == 1) in rtl_swlps_rf_sleep()
654 sleep_intv = hw->conf.ps_dtim_period * 2; in rtl_swlps_rf_sleep()
656 sleep_intv = hw->conf.ps_dtim_period; in rtl_swlps_rf_sleep()
680 struct ieee80211_hw *hw = rtlworks->hw; in rtl_lps_change_work_callback() local
681 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_lps_change_work_callback()
684 rtl_lps_enter(hw); in rtl_lps_change_work_callback()
686 rtl_lps_leave(hw); in rtl_lps_change_work_callback()
695 struct ieee80211_hw *hw = rtlworks->hw; in rtl_swlps_wq_callback() local
696 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_swlps_wq_callback()
699 ps = (hw->conf.flags & IEEE80211_CONF_PS); in rtl_swlps_wq_callback()
703 rtl_swlps_rf_sleep(hw); in rtl_swlps_wq_callback()
718 static void rtl_p2p_noa_ie(struct ieee80211_hw *hw, void *data, in rtl_p2p_noa_ie() argument
721 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_p2p_noa_ie()
796 rtl_p2p_ps_cmd(hw, in rtl_p2p_noa_ie()
800 rtl_p2p_ps_cmd(hw, P2P_PS_ENABLE); in rtl_p2p_noa_ie()
802 rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE); in rtl_p2p_noa_ie()
813 rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE); in rtl_p2p_noa_ie()
817 static void rtl_p2p_action_ie(struct ieee80211_hw *hw, void *data, in rtl_p2p_action_ie() argument
820 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_p2p_action_ie()
888 rtl_p2p_ps_cmd(hw, in rtl_p2p_action_ie()
892 rtl_p2p_ps_cmd(hw, P2P_PS_ENABLE); in rtl_p2p_action_ie()
894 rtl_p2p_ps_cmd(hw, P2P_PS_DISABLE); in rtl_p2p_action_ie()
903 void rtl_p2p_ps_cmd(struct ieee80211_hw *hw , u8 p2p_ps_state) in rtl_p2p_ps_cmd() argument
905 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_p2p_ps_cmd()
906 struct rtl_ps_ctl *rtlps = rtl_psc(rtl_priv(hw)); in rtl_p2p_ps_cmd()
913 rtlpriv->cfg->ops->set_hw_reg(hw, HW_VAR_H2C_FW_P2P_PS_OFFLOAD, in rtl_p2p_ps_cmd()
923 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
937 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
942 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
953 rtlpriv->cfg->ops->set_hw_reg(hw, in rtl_p2p_ps_cmd()
975 void rtl_p2p_info(struct ieee80211_hw *hw, void *data, unsigned int len) in rtl_p2p_info() argument
977 struct rtl_priv *rtlpriv = rtl_priv(hw); in rtl_p2p_info()
978 struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); in rtl_p2p_info()
1000 rtl_p2p_action_ie(hw , data , len - FCS_LEN); in rtl_p2p_info()
1002 rtl_p2p_noa_ie(hw , data , len - FCS_LEN); in rtl_p2p_info()