xref: /linux/drivers/net/wireless/realtek/rtw88/ps.h (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /* Copyright(c) 2018-2019  Realtek Corporation
3  */
4 
5 #ifndef __RTW_PS_H_
6 #define __RTW_PS_H_
7 
8 #define RTW_LPS_THRESHOLD	50
9 
10 #define POWER_MODE_ACK		BIT(6)
11 #define POWER_MODE_PG		BIT(4)
12 #define POWER_TX_WAKE		BIT(1)
13 #define POWER_MODE_LCLK		BIT(0)
14 
15 #define LEAVE_LPS_TRY_CNT	5
16 #define LEAVE_LPS_TIMEOUT	msecs_to_jiffies(100)
17 
18 int rtw_enter_ips(struct rtw_dev *rtwdev);
19 int rtw_leave_ips(struct rtw_dev *rtwdev);
20 
21 void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter);
22 void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id);
23 void rtw_leave_lps(struct rtw_dev *rtwdev);
24 void rtw_leave_lps_deep(struct rtw_dev *rtwdev);
25 enum rtw_lps_deep_mode rtw_get_lps_deep_mode(struct rtw_dev *rtwdev);
26 void rtw_recalc_lps(struct rtw_dev *rtwdev, struct ieee80211_vif *new_vif);
27 
28 #endif
29