Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nu11secur1ty
GitHub Repository: nu11secur1ty/Kali-Linux
Path: blob/master/ALFA-W1F1/RTL8814AU/hal/phydm/phydm_adc_sampling.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
* The full GNU General Public License is included in this distribution in the
15
* file called LICENSE.
16
*
17
* Contact Information:
18
* wlanfae <[email protected]>
19
* Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
20
* Hsinchu 300, Taiwan.
21
*
22
* Larry Finger <[email protected]>
23
*
24
*****************************************************************************/
25
26
#ifndef __INC_ADCSMP_H
27
#define __INC_ADCSMP_H
28
29
#if (PHYDM_LA_MODE_SUPPORT)
30
31
/* fix compile time flag*/
32
#define DYNAMIC_LA_MODE "4.1"
33
34
/* @1 ============================================================
35
* 1 Definition
36
* 1 ============================================================
37
*/
38
39
#if (DM_ODM_SUPPORT_TYPE & ODM_AP)
40
#if (RTL8197F_SUPPORT || RTL8198F_SUPPORT || RTL8197G_SUPPORT)
41
#define PHYDM_COMPILE_LA_STORE_IN_IMEM
42
#endif
43
#endif
44
45
#define PHYDM_LA_STORE_IN_IMEM_IC (ODM_RTL8197F | ODM_RTL8198F | ODM_RTL8197G)
46
47
#define FULL_BUFF_MODE_SUPPORT (ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8822C |\
48
ODM_RTL8812F | ODM_RTL8814B)
49
50
/* @ ============================================================
51
* enumrate
52
* ============================================================
53
*/
54
enum la_dump_mode {
55
LA_BB_ADC_DUMP = 0,
56
LA_MAC_DBG_DUMP = 1
57
};
58
59
enum rt_adcsmp_trig_sel {
60
PHYDM_ADC_BB_TRIG = 0,
61
PHYDM_ADC_MAC_TRIG = 1,
62
PHYDM_ADC_RF0_TRIG = 2,
63
PHYDM_ADC_RF1_TRIG = 3,
64
PHYDM_MAC_TRIG = 4
65
};
66
67
enum rt_adcsmp_trig_sig_sel {
68
ADCSMP_TRIG_CRCOK = 0,
69
ADCSMP_TRIG_CRCFAIL = 1,
70
ADCSMP_TRIG_CCA = 2,
71
ADCSMP_TRIG_REG = 3
72
};
73
74
enum rt_adcsmp_state {
75
ADCSMP_STATE_IDLE = 0,
76
ADCSMP_STATE_SET = 1,
77
ADCSMP_STATE_QUERY = 2
78
};
79
80
enum la_buff_mode {
81
ADCSMP_BUFF_HALF = 0,
82
ADCSMP_BUFF_ALL = 1 /*Only use in MP Driver*/
83
};
84
85
/* @ ============================================================
86
* structure
87
* ============================================================
88
*/
89
90
struct rt_adcsmp_string {
91
u32 *octet;
92
u32 length;
93
u32 buffer_size;
94
u32 start_pos;
95
u32 end_pos; /*@buf addr*/
96
};
97
98
#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT
99
struct la_adv_trig {
100
boolean la_adv_bbtrigger_en;
101
boolean la_ori_bb_dis;
102
u8 la_and1_sel;
103
u8 la_and1_val;
104
boolean la_and1_inv;
105
u8 la_and2_sel;
106
u8 la_and2_val;
107
boolean la_and2_inv;
108
u8 la_and3_sel;
109
u8 la_and3_val;
110
boolean la_and3_inv;
111
u32 la_and4_mask;
112
u32 la_and4_bitmap;
113
boolean la_and4_inv;
114
};
115
#endif
116
117
struct rt_adcsmp {
118
struct rt_adcsmp_string adc_smp_buf;
119
enum rt_adcsmp_state adc_smp_state;
120
enum la_buff_mode la_buff_mode;
121
enum la_dump_mode la_dump_mode;
122
u8 la_trig_mode;
123
u32 la_trig_sig_sel;
124
u8 la_dma_type;
125
u32 la_trigger_time;
126
/*@1.BB mode: Dbg port header sel, 2.MAC mode: for reference mask*/
127
u32 la_mac_mask_or_hdr_sel;
128
u32 la_dbg_port;
129
u8 la_trigger_edge;
130
u8 la_smp_rate;
131
u32 la_count;
132
u32 smp_number;
133
u32 smp_number_max;
134
u32 txff_page;
135
boolean is_la_print;
136
boolean en_fake_trig;
137
#if (RTL8197F_SUPPORT)
138
u32 backup_dma;
139
#endif
140
141
#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
142
u8 la_work_item_index;
143
RT_WORK_ITEM adc_smp_work_item;
144
RT_WORK_ITEM adc_smp_work_item_1;
145
#endif
146
147
#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT
148
struct la_adv_trig adv_trig_table;
149
#endif
150
};
151
152
/* @ ============================================================
153
* Function Prototype
154
* ============================================================
155
*/
156
157
void phydm_la_set(void *dm_void);
158
159
void phydm_la_cmd(void *dm_void, char input[][16], u32 *_used, char *output,
160
u32 *_out_len);
161
162
void phydm_la_stop(void *dm_void);
163
164
void phydm_la_init(void *dm_void);
165
166
void adc_smp_de_init(void *dm_void);
167
168
#if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
169
void adc_smp_work_item_callback(void *context);
170
#endif
171
172
#if 0
173
#if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
174
enum rt_status adc_smp_query(void *dm_void, ULONG info_buf_length,
175
void *info_buf, PULONG bytes_written);
176
177
#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
178
179
void adc_smp_query(void *dm_void, void *output, u32 out_len, u32 *pused);
180
181
s32 adc_smp_get_sample_counts(void *dm_void);
182
183
s32 adc_smp_query_single_data(void *dm_void, void *output, u32 out_len,
184
u32 idx);
185
#endif
186
#endif
187
188
#endif
189
#endif
190
191