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) 1227e117e4SYan-Hsuan Chuang #define POWER_MODE_LCLK BIT(0) 1327e117e4SYan-Hsuan Chuang 143a2dd6b7SChin-Yen Lee #define LEAVE_LPS_TRY_CNT 5 15f31e039fSChin-Yen Lee #define LEAVE_LPS_TIMEOUT msecs_to_jiffies(100) 163a2dd6b7SChin-Yen Lee 17e3037485SYan-Hsuan Chuang int rtw_enter_ips(struct rtw_dev *rtwdev); 18e3037485SYan-Hsuan Chuang int rtw_leave_ips(struct rtw_dev *rtwdev); 19e3037485SYan-Hsuan Chuang 2027e117e4SYan-Hsuan Chuang void rtw_power_mode_change(struct rtw_dev *rtwdev, bool enter); 213d391c06SYan-Hsuan Chuang void rtw_enter_lps(struct rtw_dev *rtwdev, u8 port_id); 223d391c06SYan-Hsuan Chuang void rtw_leave_lps(struct rtw_dev *rtwdev); 2327e117e4SYan-Hsuan Chuang void rtw_leave_lps_deep(struct rtw_dev *rtwdev); 24*fc3ac64aSChin-Yen Lee enum rtw_lps_deep_mode rtw_get_lps_deep_mode(struct rtw_dev *rtwdev); 25e3037485SYan-Hsuan Chuang #endif 26