Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nu11secur1ty
GitHub Repository: nu11secur1ty/Kali-Linux
Path: blob/master/ALFA-W1F1/RTL8814AU/hal/hal_dm_acs.h
1307 views
1
/******************************************************************************
2
*
3
* Copyright(c) 2007 - 2017 Realtek Corporation.
4
*
5
* This program is free software; you can redistribute it and/or modify it
6
* under the terms of version 2 of the GNU General Public License as
7
* published by the Free Software Foundation.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
*****************************************************************************/
15
#ifndef __HAL_DM_ACS_H__
16
#define __HAL_DM_ACS_H__
17
#ifdef CONFIG_RTW_ACS
18
#define RTK_ACS_VERSION 3
19
20
#if (RTK_ACS_VERSION == 3)
21
enum NHM_PID {
22
NHM_PID_ACS,
23
NHM_PID_IEEE_11K_HIGH,
24
NHM_PID_IEEE_11K_LOW,
25
};
26
27
#define init_clm_param(clm, app, lv, time) \
28
do {\
29
clm.clm_app = app;\
30
clm.clm_lv = lv;\
31
clm.mntr_time = time;\
32
} while (0)
33
34
#define init_nhm_param(nhm, txon, cca, cnt_opt, app, lv, time) \
35
do {\
36
nhm.incld_txon = txon;\
37
nhm.incld_cca = cca;\
38
nhm.div_opt = cnt_opt;\
39
nhm.nhm_app = app;\
40
nhm.nhm_lv = lv;\
41
nhm.mntr_time = time;\
42
} while (0)
43
44
45
#define init_acs_clm(clm, time) \
46
init_clm_param(clm, CLM_ACS, CLM_LV_2, time)
47
48
#define init_acs_nhm(nhm, time) \
49
init_nhm_param(nhm, NHM_EXCLUDE_TXON, NHM_EXCLUDE_CCA, NHM_CNT_ALL, NHM_ACS, NHM_LV_2, time)
50
51
#define init_11K_high_nhm(nhm, time) \
52
init_nhm_param(nhm, NHM_EXCLUDE_TXON, NHM_EXCLUDE_CCA, NHM_CNT_ALL, IEEE_11K_HIGH, NHM_LV_2, time)
53
54
#define init_11K_low_nhm(nhm, time) \
55
init_nhm_param(nhm, NHM_EXCLUDE_TXON, NHM_EXCLUDE_CCA, NHM_CNT_ALL, IEEE_11K_LOW, NHM_LV_2, time)
56
57
58
#endif /*(RTK_ACS_VERSION == 3)*/
59
void rtw_acs_version_dump(void *sel, _adapter *adapter);
60
extern void phydm_ccx_monitor_trigger(void *p_dm_void, u16 monitor_time);
61
extern void phydm_ccx_monitor_result(void *p_dm_void);
62
63
#define GET_ACS_STATE(padapter) (ATOMIC_READ(&GET_HAL_DATA(padapter)->acs.state))
64
#define SET_ACS_STATE(padapter, set_state) (ATOMIC_SET(&GET_HAL_DATA(padapter)->acs.state, set_state))
65
#define IS_ACS_ENABLE(padapter) ((GET_ACS_STATE(padapter) == ACS_ENABLE) ? _TRUE : _FALSE)
66
67
enum ACS_STATE {
68
ACS_DISABLE,
69
ACS_ENABLE,
70
};
71
72
#define ACS_BW_20M BIT(0)
73
#define ACS_BW_40M BIT(1)
74
#define ACS_BW_80M BIT(2)
75
#define ACS_BW_160M BIT(3)
76
77
struct auto_chan_sel {
78
ATOMIC_T state;
79
u8 trigger_ch;
80
bool triggered;
81
u8 clm_ratio[MAX_CHANNEL_NUM];
82
u8 nhm_ratio[MAX_CHANNEL_NUM];
83
#if (RTK_ACS_VERSION == 3)
84
u8 nhm[MAX_CHANNEL_NUM][NHM_RPT_NUM];
85
#endif
86
u8 bss_nums[MAX_CHANNEL_NUM];
87
u8 interference_time[MAX_CHANNEL_NUM];
88
u8 cur_ch_clm_ratio;
89
u8 cur_ch_nhm_ratio;
90
u8 best_chan_5g;
91
u8 best_chan_24g;
92
93
#if (RTK_ACS_VERSION == 3)
94
u8 trig_rst;
95
struct env_trig_rpt trig_rpt;
96
#endif
97
98
#ifdef CONFIG_RTW_ACS_DBG
99
RT_SCAN_TYPE scan_type;
100
u16 scan_time;
101
u8 igi;
102
u8 bw;
103
#endif
104
};
105
106
#define rtw_acs_get_best_chan_24g(adapter) (GET_HAL_DATA(adapter)->acs.best_chan_24g)
107
#define rtw_acs_get_best_chan_5g(adapter) (GET_HAL_DATA(adapter)->acs.best_chan_5g)
108
109
#ifdef CONFIG_RTW_ACS_DBG
110
#define rtw_is_acs_passiv_scan(adapter) (((GET_HAL_DATA(adapter)->acs.scan_type) == SCAN_PASSIVE) ? _TRUE : _FALSE)
111
112
#define rtw_acs_get_adv_st(adapter) (GET_HAL_DATA(adapter)->acs.scan_time)
113
#define rtw_is_acs_st_valid(adapter) ((GET_HAL_DATA(adapter)->acs.scan_time) ? _TRUE : _FALSE)
114
115
#define rtw_acs_get_adv_igi(adapter) (GET_HAL_DATA(adapter)->acs.igi)
116
u8 rtw_is_acs_igi_valid(_adapter *adapter);
117
118
#define rtw_acs_get_adv_bw(adapter) (GET_HAL_DATA(adapter)->acs.bw)
119
120
void rtw_acs_adv_setting(_adapter *adapter, RT_SCAN_TYPE scan_type, u16 scan_time, u8 igi, u8 bw);
121
void rtw_acs_adv_reset(_adapter *adapter);
122
#endif
123
124
u8 rtw_acs_get_clm_ratio_by_ch_num(_adapter *adapter, u8 chan);
125
u8 rtw_acs_get_clm_ratio_by_ch_idx(_adapter *adapter, u8 ch_idx);
126
u8 rtw_acs_get_nhm_ratio_by_ch_num(_adapter *adapter, u8 chan);
127
u8 rtw_acs_get_num_ratio_by_ch_idx(_adapter *adapter, u8 ch_idx);
128
129
void rtw_acs_reset(_adapter *adapter);
130
void rtw_acs_trigger(_adapter *adapter, u16 scan_time_ms, u8 scan_chan, enum NHM_PID pid);
131
void rtw_acs_get_rst(_adapter *adapter);
132
void rtw_acs_select_best_chan(_adapter *adapter);
133
void rtw_acs_info_dump(void *sel, _adapter *adapter);
134
void rtw_acs_update_current_info(_adapter *adapter);
135
void rtw_acs_chan_info_dump(void *sel, _adapter *adapter);
136
void rtw_acs_current_info_dump(void *sel, _adapter *adapter);
137
138
void rtw_acs_start(_adapter *adapter);
139
void rtw_acs_stop(_adapter *adapter);
140
141
#endif /*CONFIG_RTW_ACS*/
142
143
#ifdef CONFIG_BACKGROUND_NOISE_MONITOR
144
#define RTK_NOISE_MONITOR_VERSION 3
145
#define GET_NM_STATE(padapter) (ATOMIC_READ(&GET_HAL_DATA(padapter)->nm.state))
146
#define SET_NM_STATE(padapter, set_state) (ATOMIC_SET(&GET_HAL_DATA(padapter)->nm.state, set_state))
147
#define IS_NM_ENABLE(padapter) ((GET_NM_STATE(padapter) == NM_ENABLE) ? _TRUE : _FALSE)
148
149
enum NM_STATE {
150
NM_DISABLE,
151
NM_ENABLE,
152
};
153
154
struct noise_monitor {
155
ATOMIC_T state;
156
s16 noise[MAX_CHANNEL_NUM];
157
u8 bss_nums[MAX_CHANNEL_NUM];
158
};
159
void rtw_nm_enable(_adapter *adapter);
160
void rtw_nm_disable(_adapter *adapter);
161
void rtw_noise_measure(_adapter *adapter, u8 chan, u8 is_pause_dig, u8 igi_value, u32 max_time);
162
s16 rtw_noise_query_by_chan_num(_adapter *adapter, u8 chan);
163
s16 rtw_noise_query_by_chan_idx(_adapter *adapter, u8 ch_idx);
164
s16 rtw_noise_measure_curchan(_adapter *padapter);
165
void rtw_noise_info_dump(void *sel, _adapter *adapter);
166
#endif
167
#endif /* __HAL_DM_ACS_H__ */
168
169