Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2 : : /* Copyright(c) 2018-2019 Realtek Corporation 3 : : */ 4 : : 5 : : #ifndef __RTW_WOW_H__ 6 : : #define __RTW_WOW_H__ 7 : : 8 : : #define PNO_CHECK_BYTE 4 9 : : 10 : : enum rtw_wow_pattern_type { 11 : : RTW_PATTERN_BROADCAST = 0, 12 : : RTW_PATTERN_MULTICAST, 13 : : RTW_PATTERN_UNICAST, 14 : : RTW_PATTERN_VALID, 15 : : RTW_PATTERN_INVALID, 16 : : }; 17 : : 18 : : enum rtw_wake_reason { 19 : : RTW_WOW_RSN_RX_PTK_REKEY = 0x1, 20 : : RTW_WOW_RSN_RX_GTK_REKEY = 0x2, 21 : : RTW_WOW_RSN_RX_DEAUTH = 0x8, 22 : : RTW_WOW_RSN_DISCONNECT = 0x10, 23 : : RTW_WOW_RSN_RX_MAGIC_PKT = 0x21, 24 : : RTW_WOW_RSN_RX_PATTERN_MATCH = 0x23, 25 : : RTW_WOW_RSN_RX_NLO = 0x55, 26 : : }; 27 : : 28 : : struct rtw_fw_media_status_iter_data { 29 : : struct rtw_dev *rtwdev; 30 : : u8 connect; 31 : : }; 32 : : 33 : : struct rtw_fw_key_type_iter_data { 34 : : struct rtw_dev *rtwdev; 35 : : u8 group_key_type; 36 : : u8 pairwise_key_type; 37 : : }; 38 : : 39 : 0 : static inline bool rtw_wow_mgd_linked(struct rtw_dev *rtwdev) 40 : : { 41 : 0 : struct ieee80211_vif *wow_vif = rtwdev->wow.wow_vif; 42 : 0 : struct rtw_vif *rtwvif = (struct rtw_vif *)wow_vif->drv_priv; 43 : : 44 [ # # # # : 0 : return (rtwvif->net_type == RTW_NET_MGD_LINKED); # # # # # # ] 45 : : } 46 : : 47 : 0 : static inline bool rtw_wow_no_link(struct rtw_dev *rtwdev) 48 : : { 49 : 0 : struct ieee80211_vif *wow_vif = rtwdev->wow.wow_vif; 50 : 0 : struct rtw_vif *rtwvif = (struct rtw_vif *)wow_vif->drv_priv; 51 : : 52 [ # # # # : 0 : return (rtwvif->net_type == RTW_NET_NO_LINK); # # # # # # # # # # ] 53 : : } 54 : : 55 : : int rtw_wow_suspend(struct rtw_dev *rtwdev, struct cfg80211_wowlan *wowlan); 56 : : int rtw_wow_resume(struct rtw_dev *rtwdev); 57 : : 58 : : #endif