1e3037485SYan-Hsuan Chuang /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2e3037485SYan-Hsuan Chuang /* Copyright(c) 2018-2019 Realtek Corporation 3e3037485SYan-Hsuan Chuang */ 4e3037485SYan-Hsuan Chuang 5e3037485SYan-Hsuan Chuang #ifndef __RTW_PS_H_ 6e3037485SYan-Hsuan Chuang #define __RTW_PS_H_ 7e3037485SYan-Hsuan Chuang 8bf9840ccSYan-Hsuan Chuang #define RTW_LPS_THRESHOLD 50 9e3037485SYan-Hsuan Chuang 1027e117e4SYan-Hsuan Chuang #define POWER_MODE_ACK BIT(6) 1104b786e0SYan-Hsuan Chuang #define POWER_MODE_PG BIT(4) 12*5d5d68bcSChin-Yen Lee #define POWER_TX_WAKE BIT(1) 1327e117e4SYan-Hsuan Chuang #define POWER_MODE_LCLK BIT(0) 1427e117e4SYan-Hsuan Chuang 153a2dd6b7SChin-Yen Lee #define LEAVE_LPS_TRY_CNT 5 16f31e039fSChin-Yen Lee #define LEAVE_LPS_TIMEOUT msecs_to_jiffies(100) 173a2dd6b7SChin-Yen Lee 18e3037485SYan-Hsuan Chuang int rtw_enter_ips(struct rtw_dev *rtwdev); 19e3037485SYan-Hsuan Chuang int rtw_leave_ips(struct rtw_dev *rtwdev); 20e3037485SYan-Hsuan Chuang 2127e117e4SYan-Hsuan Chuang void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter); 223d391c06SYan-Hsuan Chuang void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id); 233d391c06SYan-Hsuan Chuang void rtw_leave_lps(struct rtw_dev *rtwdev); 2427e117e4SYan-Hsuan Chuang void rtw_leave_lps_deep(struct rtw_dev *rtwdev); 25fc3ac64aSChin-Yen Lee enum rtw_lps_deep_mode rtw_get_lps_deep_mode(struct rtw_dev *rtwdev); 26e3037485SYan-Hsuan Chuang #endif 27