12774f206SBjoern A. Zeeb /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 22774f206SBjoern A. Zeeb /* Copyright(c) 2018-2019 Realtek Corporation 32774f206SBjoern A. Zeeb */ 42774f206SBjoern A. Zeeb 52774f206SBjoern A. Zeeb #ifndef __RTW_PS_H_ 62774f206SBjoern A. Zeeb #define __RTW_PS_H_ 72774f206SBjoern A. Zeeb 82774f206SBjoern A. Zeeb #define RTW_LPS_THRESHOLD 50 92774f206SBjoern A. Zeeb 102774f206SBjoern A. Zeeb #define POWER_MODE_ACK BIT(6) 112774f206SBjoern A. Zeeb #define POWER_MODE_PG BIT(4) 122774f206SBjoern A. Zeeb #define POWER_TX_WAKE BIT(1) 132774f206SBjoern A. Zeeb #define POWER_MODE_LCLK BIT(0) 142774f206SBjoern A. Zeeb 152774f206SBjoern A. Zeeb #define LEAVE_LPS_TRY_CNT 5 162774f206SBjoern A. Zeeb #define LEAVE_LPS_TIMEOUT msecs_to_jiffies(100) 172774f206SBjoern A. Zeeb 182774f206SBjoern A. Zeeb int rtw_enter_ips(struct rtw_dev *rtwdev); 192774f206SBjoern A. Zeeb int rtw_leave_ips(struct rtw_dev *rtwdev); 202774f206SBjoern A. Zeeb 212774f206SBjoern A. Zeeb void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter); 222774f206SBjoern A. Zeeb void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id); 232774f206SBjoern A. Zeeb void rtw_leave_lps(struct rtw_dev *rtwdev); 242774f206SBjoern A. Zeeb void rtw_leave_lps_deep(struct rtw_dev *rtwdev); 252774f206SBjoern A. Zeeb enum rtw_lps_deep_mode rtw_get_lps_deep_mode(struct rtw_dev *rtwdev); 26*90aac0d8SBjoern A. Zeeb void rtw_recalc_lps(struct rtw_dev *rtwdev, struct ieee80211_vif *new_vif); 27*90aac0d8SBjoern A. Zeeb 282774f206SBjoern A. Zeeb #endif 29