Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
nu11secur1ty
GitHub Repository: nu11secur1ty/Kali-Linux
Path: blob/master/ALFA-W1F1/RTL8814AU/hal/phydm/halrf/halrf_iqk.h
1308 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 __HALRF_IQK_H__
27
#define __HALRF_IQK_H__
28
29
/*@--------------------------Define Parameters-------------------------------*/
30
#define LOK_delay 1
31
#define WBIQK_delay 10
32
#define TX_IQK 0
33
#define RX_IQK 1
34
#define TXIQK 0
35
#define RXIQK1 1
36
#define RXIQK2 2
37
#define kcount_limit_80m 2
38
#define kcount_limit_others 4
39
#define rxiqk_gs_limit 6
40
#define TXWBIQK_EN 1
41
#define RXWBIQK_EN 1
42
#define NUM 4
43
/*@-----------------------End Define Parameters-----------------------*/
44
45
struct dm_dack_info {
46
u32 ic_a;
47
u32 qc_a;
48
u32 ic_b;
49
u32 qc_b;
50
boolean dack_en;
51
u16 msbk_d[2][2][15];
52
};
53
54
struct dm_iqk_info {
55
boolean lok_fail[NUM];
56
boolean iqk_fail[2][NUM];
57
u32 iqc_matrix[2][NUM];
58
u8 iqk_times;
59
u32 rf_reg18;
60
u32 rf_reg08;
61
u32 lna_idx;
62
u8 iqk_step;
63
u8 rxiqk_step;
64
u8 tmp1bcc;
65
u8 txgain;
66
u32 txgain56;
67
u8 kcount;
68
u8 rfk_ing; /*bit0:IQKing, bit1:LCKing, bit2:DPKing*/
69
boolean rfk_forbidden;
70
u8 rxbb;
71
u32 rf_reg58;
72
boolean segment_iqk;
73
#if (RTL8814A_SUPPORT == 1 || RTL8822B_SUPPORT == 1 || RTL8821C_SUPPORT == 1 ||\
74
RTL8195B_SUPPORT == 1 || RTL8198F_SUPPORT == 1 ||\
75
RTL8814B_SUPPORT == 1 || RTL8822C_SUPPORT == 1 ||\
76
RTL8812F_SUPPORT == 1 || RTL8197G_SUPPORT == 1 ||\
77
RTL8710C_SUPPORT == 1)
78
u32 iqk_channel[2];
79
boolean iqk_fail_report[2][4][2]; /*channel/path/TRX(TX:0, RX:1) */
80
/*channel / path / TRX(TX:0, RX:1) / CFIR_real*/
81
/*channel index = 2 is just for debug*/
82
#if (RTL8812F_SUPPORT == 1 || RTL8822C_SUPPORT == 1 )
83
u16 iqk_cfir_real[3][2][2][17];
84
/*channel / path / TRX(TX:0, RX:1) / CFIR_imag*/
85
/*channel index = 2 is just for debug*/
86
u16 iqk_cfir_imag[3][2][2][17];
87
u32 rx_cfir_real[2][2][17];
88
u32 rx_cfir_imag[2][2][17];
89
u32 rx_cfir[2][2];
90
/*times/path*/
91
#else
92
u32 iqk_cfir_real[3][4][2][8];
93
/*channel / path / TRX(TX:0, RX:1) / CFIR_imag*/
94
/*channel index = 2 is just for debug*/
95
u32 iqk_cfir_imag[3][4][2][8];
96
#endif
97
u8 retry_count[2][4][3]; /* channel / path / (TXK:0, RXK1:1, RXK2:2) */
98
u8 gs_retry_count[2][4][2]; /* channel / path / (GSRXK1:0, GSRXK2:1) */
99
/* channel / path 0:SRXK1 fail, 1:RXK1 fail 2:RXK2 fail */
100
u8 rxiqk_fail_code[2][4];
101
u32 lok_idac[2][4]; /*channel / path*/
102
u16 rxiqk_agc[2][4]; /*channel / path*/
103
u32 bypass_iqk[2][4]; /*channel / 0xc94/0xe94*/
104
u32 txgap_result[8]; /*txagpK result */
105
u32 tmp_gntwl;
106
boolean is_btg;
107
boolean isbnd;
108
boolean is_reload;
109
boolean is_hwtx;
110
boolean xym_read;
111
boolean trximr_enable;
112
u32 rx_xym[2][10];
113
u32 tx_xym[2][10];
114
u32 gs1_xym[2][6];
115
u32 gs2_xym[2][6];
116
u32 rxk1_xym[2][6];
117
u32 txxy[2][2];
118
u32 rxxy[2][2];
119
#endif
120
};
121
122
#endif /*__HALRF_IQK_H__*/
123
124