Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/contrib/dev/rtw89/ps.h
48253 views
1
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2
/* Copyright(c) 2019-2020 Realtek Corporation
3
*/
4
5
#ifndef __RTW89_PS_H_
6
#define __RTW89_PS_H_
7
8
void rtw89_enter_lps(struct rtw89_dev *rtwdev, struct rtw89_vif *rtwvif,
9
bool ps_mode);
10
void rtw89_leave_lps(struct rtw89_dev *rtwdev);
11
void __rtw89_leave_ps_mode(struct rtw89_dev *rtwdev);
12
void __rtw89_enter_ps_mode(struct rtw89_dev *rtwdev);
13
void rtw89_leave_ps_mode(struct rtw89_dev *rtwdev);
14
void rtw89_enter_ips(struct rtw89_dev *rtwdev);
15
void rtw89_leave_ips(struct rtw89_dev *rtwdev);
16
void rtw89_set_coex_ctrl_lps(struct rtw89_dev *rtwdev, bool btc_ctrl);
17
void rtw89_process_p2p_ps(struct rtw89_dev *rtwdev,
18
struct rtw89_vif_link *rtwvif_link,
19
struct ieee80211_bss_conf *bss_conf);
20
void rtw89_recalc_lps(struct rtw89_dev *rtwdev);
21
void rtw89_p2p_noa_renew(struct rtw89_vif_link *rtwvif_link);
22
void rtw89_p2p_noa_append(struct rtw89_vif_link *rtwvif_link,
23
const struct ieee80211_p2p_noa_desc *desc);
24
u8 rtw89_p2p_noa_fetch(struct rtw89_vif_link *rtwvif_link, void **data);
25
void rtw89_p2p_noa_once_init(struct rtw89_vif_link *rtwvif_link);
26
void rtw89_p2p_noa_once_deinit(struct rtw89_vif_link *rtwvif_link);
27
void rtw89_p2p_noa_once_recalc(struct rtw89_vif_link *rtwvif_link);
28
void rtw89_p2p_disable_all_noa(struct rtw89_dev *rtwdev,
29
struct rtw89_vif_link *rtwvif_link,
30
struct ieee80211_bss_conf *bss_conf);
31
32
static inline void rtw89_leave_ips_by_hwflags(struct rtw89_dev *rtwdev)
33
{
34
struct ieee80211_hw *hw = rtwdev->hw;
35
36
if (hw->conf.flags & IEEE80211_CONF_IDLE)
37
rtw89_leave_ips(rtwdev);
38
}
39
40
static inline void rtw89_enter_ips_by_hwflags(struct rtw89_dev *rtwdev)
41
{
42
struct ieee80211_hw *hw = rtwdev->hw;
43
44
/* prevent entering IPS after ROC, but it is scanning */
45
if (rtwdev->scanning)
46
return;
47
48
if (hw->conf.flags & IEEE80211_CONF_IDLE)
49
rtw89_enter_ips(rtwdev);
50
}
51
52
#endif
53
54