diff options
Diffstat (limited to 'drivers/net/wireless/rtlwifi/base.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/base.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/net/wireless/rtlwifi/base.c b/drivers/net/wireless/rtlwifi/base.c index 59381fe8ed06..4494d130b37c 100644 --- a/drivers/net/wireless/rtlwifi/base.c +++ b/drivers/net/wireless/rtlwifi/base.c | |||
@@ -826,6 +826,30 @@ int rtlwifi_rate_mapping(struct ieee80211_hw *hw, | |||
826 | } | 826 | } |
827 | EXPORT_SYMBOL(rtlwifi_rate_mapping); | 827 | EXPORT_SYMBOL(rtlwifi_rate_mapping); |
828 | 828 | ||
829 | bool rtl_tx_mgmt_proc(struct ieee80211_hw *hw, struct sk_buff *skb) | ||
830 | { | ||
831 | struct rtl_mac *mac = rtl_mac(rtl_priv(hw)); | ||
832 | struct rtl_priv *rtlpriv = rtl_priv(hw); | ||
833 | __le16 fc = rtl_get_fc(skb); | ||
834 | |||
835 | if (rtlpriv->dm.supp_phymode_switch && | ||
836 | mac->link_state < MAC80211_LINKED && | ||
837 | (ieee80211_is_auth(fc) || ieee80211_is_probe_req(fc))) { | ||
838 | if (rtlpriv->cfg->ops->check_switch_to_dmdp) | ||
839 | rtlpriv->cfg->ops->check_switch_to_dmdp(hw); | ||
840 | } | ||
841 | if (ieee80211_is_auth(fc)) { | ||
842 | RT_TRACE(rtlpriv, COMP_SEND, DBG_DMESG, "MAC80211_LINKING\n"); | ||
843 | rtl_ips_nic_on(hw); | ||
844 | |||
845 | mac->link_state = MAC80211_LINKING; | ||
846 | /* Dual mac */ | ||
847 | rtlpriv->phy.need_iqk = true; | ||
848 | } | ||
849 | |||
850 | return true; | ||
851 | } | ||
852 | |||
829 | void rtl_get_tcb_desc(struct ieee80211_hw *hw, | 853 | void rtl_get_tcb_desc(struct ieee80211_hw *hw, |
830 | struct ieee80211_tx_info *info, | 854 | struct ieee80211_tx_info *info, |
831 | struct ieee80211_sta *sta, | 855 | struct ieee80211_sta *sta, |