diff options
author | Mike McCormack <mikem@ring3k.org> | 2011-03-03 08:45:08 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-03-07 16:31:43 -0500 |
commit | d9ffa6c2e9752bb3c87995e2d97444c713dbc07f (patch) | |
tree | 06cc8722ff24b690740ba3635bf75e789fdaf0d7 /drivers/staging/rtl8192e | |
parent | 5aa68752f993b9e411196bbc44a202aadee42de2 (diff) |
staging: rtl8192e: Pass r8192e_priv to phy functions
Phy functions shouldn't be associated with net_device.
Signed-off-by: Mike McCormack <mikem@ring3k.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/rtl8192e')
-rw-r--r-- | drivers/staging/rtl8192e/r8190_rtl8256.c | 89 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r8190_rtl8256.h | 10 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r8192E_core.c | 40 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r8192E_dm.c | 84 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r819xE_phy.c | 284 | ||||
-rw-r--r-- | drivers/staging/rtl8192e/r819xE_phy.h | 32 |
6 files changed, 256 insertions, 283 deletions
diff --git a/drivers/staging/rtl8192e/r8190_rtl8256.c b/drivers/staging/rtl8192e/r8190_rtl8256.c index b4d45d6fd92..3cf96aa8d7c 100644 --- a/drivers/staging/rtl8192e/r8190_rtl8256.c +++ b/drivers/staging/rtl8192e/r8190_rtl8256.c | |||
@@ -23,15 +23,14 @@ | |||
23 | * Return: NONE | 23 | * Return: NONE |
24 | * Note: 8226 support both 20M and 40 MHz | 24 | * Note: 8226 support both 20M and 40 MHz |
25 | *---------------------------------------------------------------------------*/ | 25 | *---------------------------------------------------------------------------*/ |
26 | void PHY_SetRF8256Bandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth) //20M or 40M | 26 | void PHY_SetRF8256Bandwidth(struct r8192_priv *priv, HT_CHANNEL_WIDTH Bandwidth) //20M or 40M |
27 | { | 27 | { |
28 | u8 eRFPath; | 28 | u8 eRFPath; |
29 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
30 | 29 | ||
31 | //for(eRFPath = RF90_PATH_A; eRFPath <pHalData->NumTotalRFPath; eRFPath++) | 30 | //for(eRFPath = RF90_PATH_A; eRFPath <pHalData->NumTotalRFPath; eRFPath++) |
32 | for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++) | 31 | for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++) |
33 | { | 32 | { |
34 | if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath)) | 33 | if (!rtl8192_phy_CheckIsLegalRFPath(priv, eRFPath)) |
35 | continue; | 34 | continue; |
36 | 35 | ||
37 | switch(Bandwidth) | 36 | switch(Bandwidth) |
@@ -39,9 +38,9 @@ void PHY_SetRF8256Bandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth) | |||
39 | case HT_CHANNEL_WIDTH_20: | 38 | case HT_CHANNEL_WIDTH_20: |
40 | if(priv->card_8192_version == VERSION_8190_BD || priv->card_8192_version == VERSION_8190_BE)// 8256 D-cut, E-cut, xiong: consider it later! | 39 | if(priv->card_8192_version == VERSION_8190_BD || priv->card_8192_version == VERSION_8190_BE)// 8256 D-cut, E-cut, xiong: consider it later! |
41 | { | 40 | { |
42 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x0b, bMask12Bits, 0x100); //phy para:1ba | 41 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, 0x0b, bMask12Bits, 0x100); //phy para:1ba |
43 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x2c, bMask12Bits, 0x3d7); | 42 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, 0x2c, bMask12Bits, 0x3d7); |
44 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x0e, bMask12Bits, 0x021); | 43 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, 0x0e, bMask12Bits, 0x021); |
45 | 44 | ||
46 | //cosa add for sd3's request 01/23/2008 | 45 | //cosa add for sd3's request 01/23/2008 |
47 | //rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x14, bMask12Bits, 0x5ab); | 46 | //rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x14, bMask12Bits, 0x5ab); |
@@ -55,9 +54,9 @@ void PHY_SetRF8256Bandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth) | |||
55 | case HT_CHANNEL_WIDTH_20_40: | 54 | case HT_CHANNEL_WIDTH_20_40: |
56 | if(priv->card_8192_version == VERSION_8190_BD ||priv->card_8192_version == VERSION_8190_BE)// 8256 D-cut, E-cut, xiong: consider it later! | 55 | if(priv->card_8192_version == VERSION_8190_BD ||priv->card_8192_version == VERSION_8190_BE)// 8256 D-cut, E-cut, xiong: consider it later! |
57 | { | 56 | { |
58 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x0b, bMask12Bits, 0x300); //phy para:3ba | 57 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, 0x0b, bMask12Bits, 0x300); //phy para:3ba |
59 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x2c, bMask12Bits, 0x3ff); | 58 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, 0x2c, bMask12Bits, 0x3ff); |
60 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x0e, bMask12Bits, 0x0e1); | 59 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, 0x0e, bMask12Bits, 0x0e1); |
61 | 60 | ||
62 | } | 61 | } |
63 | else | 62 | else |
@@ -80,43 +79,43 @@ void PHY_SetRF8256Bandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth) | |||
80 | * Output: NONE | 79 | * Output: NONE |
81 | * Return: NONE | 80 | * Return: NONE |
82 | *---------------------------------------------------------------------------*/ | 81 | *---------------------------------------------------------------------------*/ |
83 | RT_STATUS PHY_RF8256_Config(struct net_device* dev) | 82 | RT_STATUS PHY_RF8256_Config(struct r8192_priv *priv) |
84 | { | 83 | { |
85 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
86 | // Initialize general global value | 84 | // Initialize general global value |
87 | // | 85 | // |
88 | RT_STATUS rtStatus = RT_STATUS_SUCCESS; | 86 | RT_STATUS rtStatus = RT_STATUS_SUCCESS; |
89 | // TODO: Extend RF_PATH_C and RF_PATH_D in the future | 87 | // TODO: Extend RF_PATH_C and RF_PATH_D in the future |
90 | priv->NumTotalRFPath = RTL819X_TOTAL_RF_PATH; | 88 | priv->NumTotalRFPath = RTL819X_TOTAL_RF_PATH; |
91 | // Config BB and RF | 89 | // Config BB and RF |
92 | rtStatus = phy_RF8256_Config_ParaFile(dev); | 90 | rtStatus = phy_RF8256_Config_ParaFile(priv); |
93 | 91 | ||
94 | return rtStatus; | 92 | return rtStatus; |
95 | } | 93 | } |
94 | |||
96 | /*-------------------------------------------------------------------------- | 95 | /*-------------------------------------------------------------------------- |
97 | * Overview: Interface to config 8256 | 96 | * Overview: Interface to config 8256 |
98 | * Input: struct net_device* dev | 97 | * Input: struct net_device* dev |
99 | * Output: NONE | 98 | * Output: NONE |
100 | * Return: NONE | 99 | * Return: NONE |
101 | *---------------------------------------------------------------------------*/ | 100 | *---------------------------------------------------------------------------*/ |
102 | RT_STATUS phy_RF8256_Config_ParaFile(struct net_device* dev) | 101 | RT_STATUS phy_RF8256_Config_ParaFile(struct r8192_priv *priv) |
103 | { | 102 | { |
104 | u32 u4RegValue = 0; | 103 | u32 u4RegValue = 0; |
105 | u8 eRFPath; | 104 | u8 eRFPath; |
106 | RT_STATUS rtStatus = RT_STATUS_SUCCESS; | 105 | RT_STATUS rtStatus = RT_STATUS_SUCCESS; |
107 | BB_REGISTER_DEFINITION_T *pPhyReg; | 106 | BB_REGISTER_DEFINITION_T *pPhyReg; |
108 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
109 | u32 RegOffSetToBeCheck = 0x3; | 107 | u32 RegOffSetToBeCheck = 0x3; |
110 | u32 RegValueToBeCheck = 0x7f1; | 108 | u32 RegValueToBeCheck = 0x7f1; |
111 | u32 RF3_Final_Value = 0; | 109 | u32 RF3_Final_Value = 0; |
112 | u8 ConstRetryTimes = 5, RetryTimes = 5; | 110 | u8 ConstRetryTimes = 5, RetryTimes = 5; |
113 | u8 ret = 0; | 111 | u8 ret = 0; |
112 | |||
114 | //3//----------------------------------------------------------------- | 113 | //3//----------------------------------------------------------------- |
115 | //3// <2> Initialize RF | 114 | //3// <2> Initialize RF |
116 | //3//----------------------------------------------------------------- | 115 | //3//----------------------------------------------------------------- |
117 | for(eRFPath = (RF90_RADIO_PATH_E)RF90_PATH_A; eRFPath <priv->NumTotalRFPath; eRFPath++) | 116 | for(eRFPath = (RF90_RADIO_PATH_E)RF90_PATH_A; eRFPath <priv->NumTotalRFPath; eRFPath++) |
118 | { | 117 | { |
119 | if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath)) | 118 | if (!rtl8192_phy_CheckIsLegalRFPath(priv, eRFPath)) |
120 | continue; | 119 | continue; |
121 | 120 | ||
122 | pPhyReg = &priv->PHYRegDef[eRFPath]; | 121 | pPhyReg = &priv->PHYRegDef[eRFPath]; |
@@ -126,29 +125,29 @@ RT_STATUS phy_RF8256_Config_ParaFile(struct net_device* dev) | |||
126 | { | 125 | { |
127 | case RF90_PATH_A: | 126 | case RF90_PATH_A: |
128 | case RF90_PATH_C: | 127 | case RF90_PATH_C: |
129 | u4RegValue = rtl8192_QueryBBReg(dev, pPhyReg->rfintfs, bRFSI_RFENV); | 128 | u4RegValue = rtl8192_QueryBBReg(priv, pPhyReg->rfintfs, bRFSI_RFENV); |
130 | break; | 129 | break; |
131 | case RF90_PATH_B : | 130 | case RF90_PATH_B : |
132 | case RF90_PATH_D: | 131 | case RF90_PATH_D: |
133 | u4RegValue = rtl8192_QueryBBReg(dev, pPhyReg->rfintfs, bRFSI_RFENV<<16); | 132 | u4RegValue = rtl8192_QueryBBReg(priv, pPhyReg->rfintfs, bRFSI_RFENV<<16); |
134 | break; | 133 | break; |
135 | } | 134 | } |
136 | 135 | ||
137 | /*----Set RF_ENV enable----*/ | 136 | /*----Set RF_ENV enable----*/ |
138 | rtl8192_setBBreg(dev, pPhyReg->rfintfe, bRFSI_RFENV<<16, 0x1); | 137 | rtl8192_setBBreg(priv, pPhyReg->rfintfe, bRFSI_RFENV<<16, 0x1); |
139 | 138 | ||
140 | /*----Set RF_ENV output high----*/ | 139 | /*----Set RF_ENV output high----*/ |
141 | rtl8192_setBBreg(dev, pPhyReg->rfintfo, bRFSI_RFENV, 0x1); | 140 | rtl8192_setBBreg(priv, pPhyReg->rfintfo, bRFSI_RFENV, 0x1); |
142 | 141 | ||
143 | /* Set bit number of Address and Data for RF register */ | 142 | /* Set bit number of Address and Data for RF register */ |
144 | rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, b3WireAddressLength, 0x0); // Set 0 to 4 bits for Z-serial and set 1 to 6 bits for 8258 | 143 | rtl8192_setBBreg(priv, pPhyReg->rfHSSIPara2, b3WireAddressLength, 0x0); // Set 0 to 4 bits for Z-serial and set 1 to 6 bits for 8258 |
145 | rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, b3WireDataLength, 0x0); // Set 0 to 12 bits for Z-serial and 8258, and set 1 to 14 bits for ??? | 144 | rtl8192_setBBreg(priv, pPhyReg->rfHSSIPara2, b3WireDataLength, 0x0); // Set 0 to 12 bits for Z-serial and 8258, and set 1 to 14 bits for ??? |
146 | 145 | ||
147 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E) eRFPath, 0x0, bMask12Bits, 0xbf); | 146 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E) eRFPath, 0x0, bMask12Bits, 0xbf); |
148 | 147 | ||
149 | /*----Check RF block (for FPGA platform only)----*/ | 148 | /*----Check RF block (for FPGA platform only)----*/ |
150 | // TODO: this function should be removed on ASIC , Emily 2007.2.2 | 149 | // TODO: this function should be removed on ASIC , Emily 2007.2.2 |
151 | rtStatus = rtl8192_phy_checkBBAndRF(dev, HW90_BLOCK_RF, (RF90_RADIO_PATH_E)eRFPath); | 150 | rtStatus = rtl8192_phy_checkBBAndRF(priv, HW90_BLOCK_RF, (RF90_RADIO_PATH_E)eRFPath); |
152 | if(rtStatus!= RT_STATUS_SUCCESS) | 151 | if(rtStatus!= RT_STATUS_SUCCESS) |
153 | { | 152 | { |
154 | RT_TRACE(COMP_ERR, "PHY_RF8256_Config():Check Radio[%d] Fail!!\n", eRFPath); | 153 | RT_TRACE(COMP_ERR, "PHY_RF8256_Config():Check Radio[%d] Fail!!\n", eRFPath); |
@@ -163,8 +162,8 @@ RT_STATUS phy_RF8256_Config_ParaFile(struct net_device* dev) | |||
163 | case RF90_PATH_A: | 162 | case RF90_PATH_A: |
164 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) | 163 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) |
165 | { | 164 | { |
166 | ret = rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath); | 165 | ret = rtl8192_phy_ConfigRFWithHeaderFile(priv,(RF90_RADIO_PATH_E)eRFPath); |
167 | RF3_Final_Value = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); | 166 | RF3_Final_Value = rtl8192_phy_QueryRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); |
168 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); | 167 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); |
169 | RetryTimes--; | 168 | RetryTimes--; |
170 | } | 169 | } |
@@ -172,8 +171,8 @@ RT_STATUS phy_RF8256_Config_ParaFile(struct net_device* dev) | |||
172 | case RF90_PATH_B: | 171 | case RF90_PATH_B: |
173 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) | 172 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) |
174 | { | 173 | { |
175 | ret = rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath); | 174 | ret = rtl8192_phy_ConfigRFWithHeaderFile(priv,(RF90_RADIO_PATH_E)eRFPath); |
176 | RF3_Final_Value = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); | 175 | RF3_Final_Value = rtl8192_phy_QueryRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); |
177 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); | 176 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); |
178 | RetryTimes--; | 177 | RetryTimes--; |
179 | } | 178 | } |
@@ -181,8 +180,8 @@ RT_STATUS phy_RF8256_Config_ParaFile(struct net_device* dev) | |||
181 | case RF90_PATH_C: | 180 | case RF90_PATH_C: |
182 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) | 181 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) |
183 | { | 182 | { |
184 | ret = rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath); | 183 | ret = rtl8192_phy_ConfigRFWithHeaderFile(priv,(RF90_RADIO_PATH_E)eRFPath); |
185 | RF3_Final_Value = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); | 184 | RF3_Final_Value = rtl8192_phy_QueryRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); |
186 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); | 185 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); |
187 | RetryTimes--; | 186 | RetryTimes--; |
188 | } | 187 | } |
@@ -190,8 +189,8 @@ RT_STATUS phy_RF8256_Config_ParaFile(struct net_device* dev) | |||
190 | case RF90_PATH_D: | 189 | case RF90_PATH_D: |
191 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) | 190 | while(RF3_Final_Value!=RegValueToBeCheck && RetryTimes!=0) |
192 | { | 191 | { |
193 | ret = rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath); | 192 | ret = rtl8192_phy_ConfigRFWithHeaderFile(priv,(RF90_RADIO_PATH_E)eRFPath); |
194 | RF3_Final_Value = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); | 193 | RF3_Final_Value = rtl8192_phy_QueryRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, RegOffSetToBeCheck, bMask12Bits); |
195 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); | 194 | RT_TRACE(COMP_RF, "RF %d %d register final value: %x\n", eRFPath, RegOffSetToBeCheck, RF3_Final_Value); |
196 | RetryTimes--; | 195 | RetryTimes--; |
197 | } | 196 | } |
@@ -203,11 +202,11 @@ RT_STATUS phy_RF8256_Config_ParaFile(struct net_device* dev) | |||
203 | { | 202 | { |
204 | case RF90_PATH_A: | 203 | case RF90_PATH_A: |
205 | case RF90_PATH_C: | 204 | case RF90_PATH_C: |
206 | rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV, u4RegValue); | 205 | rtl8192_setBBreg(priv, pPhyReg->rfintfs, bRFSI_RFENV, u4RegValue); |
207 | break; | 206 | break; |
208 | case RF90_PATH_B : | 207 | case RF90_PATH_B : |
209 | case RF90_PATH_D: | 208 | case RF90_PATH_D: |
210 | rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV<<16, u4RegValue); | 209 | rtl8192_setBBreg(priv, pPhyReg->rfintfs, bRFSI_RFENV<<16, u4RegValue); |
211 | break; | 210 | break; |
212 | } | 211 | } |
213 | 212 | ||
@@ -227,10 +226,9 @@ phy_RF8256_Config_ParaFile_Fail: | |||
227 | } | 226 | } |
228 | 227 | ||
229 | 228 | ||
230 | void PHY_SetRF8256CCKTxPower(struct net_device* dev, u8 powerlevel) | 229 | void PHY_SetRF8256CCKTxPower(struct r8192_priv *priv, u8 powerlevel) |
231 | { | 230 | { |
232 | u32 TxAGC=0; | 231 | u32 TxAGC=0; |
233 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
234 | 232 | ||
235 | TxAGC = powerlevel; | 233 | TxAGC = powerlevel; |
236 | if(priv->bDynamicTxLowPower == true)//cosa 04282008 for cck long range | 234 | if(priv->bDynamicTxLowPower == true)//cosa 04282008 for cck long range |
@@ -242,13 +240,12 @@ void PHY_SetRF8256CCKTxPower(struct net_device* dev, u8 powerlevel) | |||
242 | } | 240 | } |
243 | if(TxAGC > 0x24) | 241 | if(TxAGC > 0x24) |
244 | TxAGC = 0x24; | 242 | TxAGC = 0x24; |
245 | rtl8192_setBBreg(dev, rTxAGC_CCK_Mcs32, bTxAGCRateCCK, TxAGC); | 243 | rtl8192_setBBreg(priv, rTxAGC_CCK_Mcs32, bTxAGCRateCCK, TxAGC); |
246 | } | 244 | } |
247 | 245 | ||
248 | 246 | ||
249 | void PHY_SetRF8256OFDMTxPower(struct net_device* dev, u8 powerlevel) | 247 | void PHY_SetRF8256OFDMTxPower(struct r8192_priv *priv, u8 powerlevel) |
250 | { | 248 | { |
251 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
252 | 249 | ||
253 | u32 writeVal, powerBase0, powerBase1, writeVal_tmp; | 250 | u32 writeVal, powerBase0, powerBase1, writeVal_tmp; |
254 | u8 index = 0; | 251 | u8 index = 0; |
@@ -290,7 +287,7 @@ void PHY_SetRF8256OFDMTxPower(struct net_device* dev, u8 powerlevel) | |||
290 | { | 287 | { |
291 | writeVal = (byte3<<24) | (byte2<<16) |(byte1<<8) |byte0; | 288 | writeVal = (byte3<<24) | (byte2<<16) |(byte1<<8) |byte0; |
292 | } | 289 | } |
293 | rtl8192_setBBreg(dev, RegOffset[index], 0x7f7f7f7f, writeVal); | 290 | rtl8192_setBBreg(priv, RegOffset[index], 0x7f7f7f7f, writeVal); |
294 | } | 291 | } |
295 | } | 292 | } |
296 | 293 | ||
@@ -356,22 +353,22 @@ SetRFPowerState8190(struct net_device *dev, RT_RF_POWER_STATE eRFPowerState) | |||
356 | write_nic_byte(priv, ANAPAR, 0x37);//160MHz | 353 | write_nic_byte(priv, ANAPAR, 0x37);//160MHz |
357 | mdelay(1); | 354 | mdelay(1); |
358 | //enable clock 80/88 MHz | 355 | //enable clock 80/88 MHz |
359 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x4, 0x1); // 0x880[2] | 356 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x4, 0x1); // 0x880[2] |
360 | priv->bHwRfOffAction = 0; | 357 | priv->bHwRfOffAction = 0; |
361 | 358 | ||
362 | //RF-A, RF-B | 359 | //RF-A, RF-B |
363 | //enable RF-Chip A/B | 360 | //enable RF-Chip A/B |
364 | rtl8192_setBBreg(dev, rFPGA0_XA_RFInterfaceOE, BIT4, 0x1); // 0x860[4] | 361 | rtl8192_setBBreg(priv, rFPGA0_XA_RFInterfaceOE, BIT4, 0x1); // 0x860[4] |
365 | //analog to digital on | 362 | //analog to digital on |
366 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0x300, 0x3);// 0x88c[9:8] | 363 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter4, 0x300, 0x3);// 0x88c[9:8] |
367 | //digital to analog on | 364 | //digital to analog on |
368 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x18, 0x3); // 0x880[4:3] | 365 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x18, 0x3); // 0x880[4:3] |
369 | //rx antenna on | 366 | //rx antenna on |
370 | rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0x3, 0x3);// 0xc04[1:0] | 367 | rtl8192_setBBreg(priv, rOFDM0_TRxPathEnable, 0x3, 0x3);// 0xc04[1:0] |
371 | //rx antenna on | 368 | //rx antenna on |
372 | rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, 0x3, 0x3);// 0xd04[1:0] | 369 | rtl8192_setBBreg(priv, rOFDM1_TRxPathEnable, 0x3, 0x3);// 0xd04[1:0] |
373 | //analog to digital part2 on | 370 | //analog to digital part2 on |
374 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x60, 0x3); // 0x880[6:5] | 371 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x60, 0x3); // 0x880[6:5] |
375 | 372 | ||
376 | } | 373 | } |
377 | 374 | ||
diff --git a/drivers/staging/rtl8192e/r8190_rtl8256.h b/drivers/staging/rtl8192e/r8190_rtl8256.h index d9347fa4615..e3297ecb37f 100644 --- a/drivers/staging/rtl8192e/r8190_rtl8256.h +++ b/drivers/staging/rtl8192e/r8190_rtl8256.h | |||
@@ -12,15 +12,15 @@ | |||
12 | 12 | ||
13 | #define RTL819X_TOTAL_RF_PATH 2 /* for 8192E */ | 13 | #define RTL819X_TOTAL_RF_PATH 2 /* for 8192E */ |
14 | 14 | ||
15 | void PHY_SetRF8256Bandwidth(struct net_device *dev, | 15 | void PHY_SetRF8256Bandwidth(struct r8192_priv *priv, |
16 | HT_CHANNEL_WIDTH Bandwidth); | 16 | HT_CHANNEL_WIDTH Bandwidth); |
17 | 17 | ||
18 | RT_STATUS PHY_RF8256_Config(struct net_device *dev); | 18 | RT_STATUS PHY_RF8256_Config(struct r8192_priv *priv); |
19 | 19 | ||
20 | RT_STATUS phy_RF8256_Config_ParaFile(struct net_device *dev); | 20 | RT_STATUS phy_RF8256_Config_ParaFile(struct r8192_priv *priv); |
21 | 21 | ||
22 | void PHY_SetRF8256CCKTxPower(struct net_device *dev, u8 powerlevel); | 22 | void PHY_SetRF8256CCKTxPower(struct r8192_priv *priv, u8 powerlevel); |
23 | void PHY_SetRF8256OFDMTxPower(struct net_device *dev, u8 powerlevel); | 23 | void PHY_SetRF8256OFDMTxPower(struct r8192_priv *priv, u8 powerlevel); |
24 | 24 | ||
25 | bool MgntActSet_RF_State(struct net_device *dev, | 25 | bool MgntActSet_RF_State(struct net_device *dev, |
26 | RT_RF_POWER_STATE StateToSet, | 26 | RT_RF_POWER_STATE StateToSet, |
diff --git a/drivers/staging/rtl8192e/r8192E_core.c b/drivers/staging/rtl8192e/r8192E_core.c index 950089864aa..50480ac3513 100644 --- a/drivers/staging/rtl8192e/r8192E_core.c +++ b/drivers/staging/rtl8192e/r8192E_core.c | |||
@@ -752,18 +752,18 @@ void PHY_SetRtl8192eRfOff(struct net_device* dev) | |||
752 | struct r8192_priv *priv = ieee80211_priv(dev); | 752 | struct r8192_priv *priv = ieee80211_priv(dev); |
753 | 753 | ||
754 | //disable RF-Chip A/B | 754 | //disable RF-Chip A/B |
755 | rtl8192_setBBreg(dev, rFPGA0_XA_RFInterfaceOE, BIT4, 0x0); | 755 | rtl8192_setBBreg(priv, rFPGA0_XA_RFInterfaceOE, BIT4, 0x0); |
756 | //analog to digital off, for power save | 756 | //analog to digital off, for power save |
757 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0x300, 0x0); | 757 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter4, 0x300, 0x0); |
758 | //digital to analog off, for power save | 758 | //digital to analog off, for power save |
759 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x18, 0x0); | 759 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x18, 0x0); |
760 | //rx antenna off | 760 | //rx antenna off |
761 | rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0xf, 0x0); | 761 | rtl8192_setBBreg(priv, rOFDM0_TRxPathEnable, 0xf, 0x0); |
762 | //rx antenna off | 762 | //rx antenna off |
763 | rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, 0xf, 0x0); | 763 | rtl8192_setBBreg(priv, rOFDM1_TRxPathEnable, 0xf, 0x0); |
764 | //analog to digital part2 off, for power save | 764 | //analog to digital part2 off, for power save |
765 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x60, 0x0); | 765 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x60, 0x0); |
766 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x4, 0x0); | 766 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x4, 0x0); |
767 | // Analog parameter!!Change bias and Lbus control. | 767 | // Analog parameter!!Change bias and Lbus control. |
768 | write_nic_byte(priv, ANAPAR_FOR_8192PciE, 0x07); | 768 | write_nic_byte(priv, ANAPAR_FOR_8192PciE, 0x07); |
769 | 769 | ||
@@ -2659,7 +2659,7 @@ static RT_STATUS rtl8192_adapter_start(struct net_device *dev) | |||
2659 | //3// Initialize BB before MAC | 2659 | //3// Initialize BB before MAC |
2660 | //3// | 2660 | //3// |
2661 | RT_TRACE(COMP_INIT, "BB Config Start!\n"); | 2661 | RT_TRACE(COMP_INIT, "BB Config Start!\n"); |
2662 | rtStatus = rtl8192_BBConfig(dev); | 2662 | rtStatus = rtl8192_BBConfig(priv); |
2663 | if(rtStatus != RT_STATUS_SUCCESS) | 2663 | if(rtStatus != RT_STATUS_SUCCESS) |
2664 | { | 2664 | { |
2665 | RT_TRACE(COMP_ERR, "BB Config failed\n"); | 2665 | RT_TRACE(COMP_ERR, "BB Config failed\n"); |
@@ -2768,11 +2768,11 @@ static RT_STATUS rtl8192_adapter_start(struct net_device *dev) | |||
2768 | //2======================================================= | 2768 | //2======================================================= |
2769 | // Set PHY related configuration defined in MAC register bank | 2769 | // Set PHY related configuration defined in MAC register bank |
2770 | //2======================================================= | 2770 | //2======================================================= |
2771 | rtl8192_phy_configmac(dev); | 2771 | rtl8192_phy_configmac(priv); |
2772 | 2772 | ||
2773 | if (priv->card_8192_version > (u8) VERSION_8190_BD) { | 2773 | if (priv->card_8192_version > (u8) VERSION_8190_BD) { |
2774 | rtl8192_phy_getTxPower(dev); | 2774 | rtl8192_phy_getTxPower(priv); |
2775 | rtl8192_phy_setTxPower(dev, priv->chan); | 2775 | rtl8192_phy_setTxPower(priv, priv->chan); |
2776 | } | 2776 | } |
2777 | 2777 | ||
2778 | //if D or C cut | 2778 | //if D or C cut |
@@ -2811,7 +2811,7 @@ static RT_STATUS rtl8192_adapter_start(struct net_device *dev) | |||
2811 | if(priv->ResetProgress == RESET_TYPE_NORESET) | 2811 | if(priv->ResetProgress == RESET_TYPE_NORESET) |
2812 | { | 2812 | { |
2813 | RT_TRACE(COMP_INIT, "RF Config Started!\n"); | 2813 | RT_TRACE(COMP_INIT, "RF Config Started!\n"); |
2814 | rtStatus = rtl8192_phy_RFConfig(dev); | 2814 | rtStatus = rtl8192_phy_RFConfig(priv); |
2815 | if(rtStatus != RT_STATUS_SUCCESS) | 2815 | if(rtStatus != RT_STATUS_SUCCESS) |
2816 | { | 2816 | { |
2817 | RT_TRACE(COMP_ERR, "RF Config failed\n"); | 2817 | RT_TRACE(COMP_ERR, "RF Config failed\n"); |
@@ -2819,11 +2819,11 @@ static RT_STATUS rtl8192_adapter_start(struct net_device *dev) | |||
2819 | } | 2819 | } |
2820 | RT_TRACE(COMP_INIT, "RF Config Finished!\n"); | 2820 | RT_TRACE(COMP_INIT, "RF Config Finished!\n"); |
2821 | } | 2821 | } |
2822 | rtl8192_phy_updateInitGain(dev); | 2822 | rtl8192_phy_updateInitGain(priv); |
2823 | 2823 | ||
2824 | /*---- Set CCK and OFDM Block "ON"----*/ | 2824 | /*---- Set CCK and OFDM Block "ON"----*/ |
2825 | rtl8192_setBBreg(dev, rFPGA0_RFMOD, bCCKEn, 0x1); | 2825 | rtl8192_setBBreg(priv, rFPGA0_RFMOD, bCCKEn, 0x1); |
2826 | rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, 0x1); | 2826 | rtl8192_setBBreg(priv, rFPGA0_RFMOD, bOFDMEn, 0x1); |
2827 | 2827 | ||
2828 | //Enable Led | 2828 | //Enable Led |
2829 | write_nic_byte(priv, 0x87, 0x0); | 2829 | write_nic_byte(priv, 0x87, 0x0); |
@@ -2864,8 +2864,8 @@ static RT_STATUS rtl8192_adapter_start(struct net_device *dev) | |||
2864 | 2864 | ||
2865 | if(priv->IC_Cut >= IC_VersionCut_D) | 2865 | if(priv->IC_Cut >= IC_VersionCut_D) |
2866 | { | 2866 | { |
2867 | tmpRegA= rtl8192_QueryBBReg(dev,rOFDM0_XATxIQImbalance,bMaskDWord); | 2867 | tmpRegA = rtl8192_QueryBBReg(priv, rOFDM0_XATxIQImbalance, bMaskDWord); |
2868 | tmpRegC= rtl8192_QueryBBReg(dev,rOFDM0_XCTxIQImbalance,bMaskDWord); | 2868 | tmpRegC = rtl8192_QueryBBReg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord); |
2869 | for(i = 0; i<TxBBGainTableLength; i++) | 2869 | for(i = 0; i<TxBBGainTableLength; i++) |
2870 | { | 2870 | { |
2871 | if(tmpRegA == priv->txbbgain_table[i].txbbgain_value) | 2871 | if(tmpRegA == priv->txbbgain_table[i].txbbgain_value) |
@@ -2877,7 +2877,7 @@ static RT_STATUS rtl8192_adapter_start(struct net_device *dev) | |||
2877 | } | 2877 | } |
2878 | } | 2878 | } |
2879 | 2879 | ||
2880 | TempCCk = rtl8192_QueryBBReg(dev, rCCK0_TxFilter1, bMaskByte2); | 2880 | TempCCk = rtl8192_QueryBBReg(priv, rCCK0_TxFilter1, bMaskByte2); |
2881 | 2881 | ||
2882 | for(i=0 ; i<CCKTxBBGainTableLength ; i++) | 2882 | for(i=0 ; i<CCKTxBBGainTableLength ; i++) |
2883 | { | 2883 | { |
@@ -3873,7 +3873,7 @@ static void rtl8192_process_phyinfo(struct r8192_priv * priv, u8* buffer,struct | |||
3873 | { | 3873 | { |
3874 | for (rfpath = RF90_PATH_A; rfpath < RF90_PATH_C; rfpath++) | 3874 | for (rfpath = RF90_PATH_A; rfpath < RF90_PATH_C; rfpath++) |
3875 | { | 3875 | { |
3876 | if (!rtl8192_phy_CheckIsLegalRFPath(priv->ieee80211->dev, rfpath)) | 3876 | if (!rtl8192_phy_CheckIsLegalRFPath(priv, rfpath)) |
3877 | continue; | 3877 | continue; |
3878 | RT_TRACE(COMP_DBG, "pPreviousstats->RxMIMOSignalStrength[rfpath] = %d\n", pprevious_stats->RxMIMOSignalStrength[rfpath]); | 3878 | RT_TRACE(COMP_DBG, "pPreviousstats->RxMIMOSignalStrength[rfpath] = %d\n", pprevious_stats->RxMIMOSignalStrength[rfpath]); |
3879 | //Fixed by Jacken 2008-03-20 | 3879 | //Fixed by Jacken 2008-03-20 |
@@ -4125,7 +4125,7 @@ static void rtl8192_query_rxphystatus( | |||
4125 | /*2007.08.30 requested by SD3 Jerry */ | 4125 | /*2007.08.30 requested by SD3 Jerry */ |
4126 | if (priv->phy_check_reg824 == 0) | 4126 | if (priv->phy_check_reg824 == 0) |
4127 | { | 4127 | { |
4128 | priv->phy_reg824_bit9 = rtl8192_QueryBBReg(priv->ieee80211->dev, rFPGA0_XA_HSSIParameter2, 0x200); | 4128 | priv->phy_reg824_bit9 = rtl8192_QueryBBReg(priv, rFPGA0_XA_HSSIParameter2, 0x200); |
4129 | priv->phy_check_reg824 = 1; | 4129 | priv->phy_check_reg824 = 1; |
4130 | } | 4130 | } |
4131 | 4131 | ||
diff --git a/drivers/staging/rtl8192e/r8192E_dm.c b/drivers/staging/rtl8192e/r8192E_dm.c index 330e9d9e258..22bcc920ef4 100644 --- a/drivers/staging/rtl8192e/r8192E_dm.c +++ b/drivers/staging/rtl8192e/r8192E_dm.c | |||
@@ -586,20 +586,20 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) | |||
586 | if(priv->rfa_txpowertrackingindex_real > 4) | 586 | if(priv->rfa_txpowertrackingindex_real > 4) |
587 | { | 587 | { |
588 | priv->rfa_txpowertrackingindex_real--; | 588 | priv->rfa_txpowertrackingindex_real--; |
589 | rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); | 589 | rtl8192_setBBreg(priv, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); |
590 | } | 590 | } |
591 | 591 | ||
592 | priv->rfc_txpowertrackingindex--; | 592 | priv->rfc_txpowertrackingindex--; |
593 | if(priv->rfc_txpowertrackingindex_real > 4) | 593 | if(priv->rfc_txpowertrackingindex_real > 4) |
594 | { | 594 | { |
595 | priv->rfc_txpowertrackingindex_real--; | 595 | priv->rfc_txpowertrackingindex_real--; |
596 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); | 596 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); |
597 | } | 597 | } |
598 | } | 598 | } |
599 | else | 599 | else |
600 | { | 600 | { |
601 | rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); | 601 | rtl8192_setBBreg(priv, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); |
602 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); | 602 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); |
603 | } | 603 | } |
604 | } | 604 | } |
605 | else | 605 | else |
@@ -610,11 +610,11 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) | |||
610 | if(priv->rfc_txpowertrackingindex_real > 4) | 610 | if(priv->rfc_txpowertrackingindex_real > 4) |
611 | { | 611 | { |
612 | priv->rfc_txpowertrackingindex_real--; | 612 | priv->rfc_txpowertrackingindex_real--; |
613 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); | 613 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); |
614 | } | 614 | } |
615 | } | 615 | } |
616 | else | 616 | else |
617 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); | 617 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value); |
618 | } | 618 | } |
619 | } | 619 | } |
620 | else | 620 | else |
@@ -625,15 +625,15 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) | |||
625 | { | 625 | { |
626 | priv->rfa_txpowertrackingindex++; | 626 | priv->rfa_txpowertrackingindex++; |
627 | priv->rfa_txpowertrackingindex_real++; | 627 | priv->rfa_txpowertrackingindex_real++; |
628 | rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); | 628 | rtl8192_setBBreg(priv, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value); |
629 | priv->rfc_txpowertrackingindex++; | 629 | priv->rfc_txpowertrackingindex++; |
630 | priv->rfc_txpowertrackingindex_real++; | 630 | priv->rfc_txpowertrackingindex_real++; |
631 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); | 631 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); |
632 | } | 632 | } |
633 | else | 633 | else |
634 | { | 634 | { |
635 | rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); | 635 | rtl8192_setBBreg(priv, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); |
636 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); | 636 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); |
637 | } | 637 | } |
638 | } | 638 | } |
639 | else | 639 | else |
@@ -642,10 +642,10 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev) | |||
642 | { | 642 | { |
643 | priv->rfc_txpowertrackingindex++; | 643 | priv->rfc_txpowertrackingindex++; |
644 | priv->rfc_txpowertrackingindex_real++; | 644 | priv->rfc_txpowertrackingindex_real++; |
645 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); | 645 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value); |
646 | } | 646 | } |
647 | else | 647 | else |
648 | rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); | 648 | rtl8192_setBBreg(priv, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value); |
649 | } | 649 | } |
650 | } | 650 | } |
651 | if (RF_Type == RF_2T4R) | 651 | if (RF_Type == RF_2T4R) |
@@ -721,7 +721,7 @@ static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) | |||
721 | if(!priv->btxpower_trackingInit) | 721 | if(!priv->btxpower_trackingInit) |
722 | { | 722 | { |
723 | //Query OFDM default setting | 723 | //Query OFDM default setting |
724 | tmpRegA= rtl8192_QueryBBReg(dev, rOFDM0_XATxIQImbalance, bMaskDWord); | 724 | tmpRegA = rtl8192_QueryBBReg(priv, rOFDM0_XATxIQImbalance, bMaskDWord); |
725 | for(i=0; i<OFDM_Table_Length; i++) //find the index | 725 | for(i=0; i<OFDM_Table_Length; i++) //find the index |
726 | { | 726 | { |
727 | if(tmpRegA == OFDMSwingTable[i]) | 727 | if(tmpRegA == OFDMSwingTable[i]) |
@@ -733,7 +733,7 @@ static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) | |||
733 | } | 733 | } |
734 | 734 | ||
735 | //Query CCK default setting From 0xa22 | 735 | //Query CCK default setting From 0xa22 |
736 | TempCCk = rtl8192_QueryBBReg(dev, rCCK0_TxFilter1, bMaskByte2); | 736 | TempCCk = rtl8192_QueryBBReg(priv, rCCK0_TxFilter1, bMaskByte2); |
737 | for(i=0 ; i<CCK_Table_length ; i++) | 737 | for(i=0 ; i<CCK_Table_length ; i++) |
738 | { | 738 | { |
739 | if(TempCCk == (u32)CCKSwingTable_Ch1_Ch13[i][0]) | 739 | if(TempCCk == (u32)CCKSwingTable_Ch1_Ch13[i][0]) |
@@ -750,7 +750,7 @@ static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) | |||
750 | } | 750 | } |
751 | 751 | ||
752 | // read and filter out unreasonable value | 752 | // read and filter out unreasonable value |
753 | tmpRegA = rtl8192_phy_QueryRFReg(dev, RF90_PATH_A, 0x12, 0x078); // 0x12: RF Reg[10:7] | 753 | tmpRegA = rtl8192_phy_QueryRFReg(priv, RF90_PATH_A, 0x12, 0x078); // 0x12: RF Reg[10:7] |
754 | RT_TRACE(COMP_POWER_TRACKING, "Readback ThermalMeterA = %d\n", tmpRegA); | 754 | RT_TRACE(COMP_POWER_TRACKING, "Readback ThermalMeterA = %d\n", tmpRegA); |
755 | if(tmpRegA < 3 || tmpRegA > 13) | 755 | if(tmpRegA < 3 || tmpRegA > 13) |
756 | return; | 756 | return; |
@@ -817,7 +817,7 @@ static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev) | |||
817 | if(priv->OFDM_index != tmpOFDMindex) | 817 | if(priv->OFDM_index != tmpOFDMindex) |
818 | { | 818 | { |
819 | priv->OFDM_index = tmpOFDMindex; | 819 | priv->OFDM_index = tmpOFDMindex; |
820 | rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, OFDMSwingTable[priv->OFDM_index]); | 820 | rtl8192_setBBreg(priv, rOFDM0_XATxIQImbalance, bMaskDWord, OFDMSwingTable[priv->OFDM_index]); |
821 | RT_TRACE(COMP_POWER_TRACKING, "Update OFDMSwing[%d] = 0x%x\n", | 821 | RT_TRACE(COMP_POWER_TRACKING, "Update OFDMSwing[%d] = 0x%x\n", |
822 | priv->OFDM_index, OFDMSwingTable[priv->OFDM_index]); | 822 | priv->OFDM_index, OFDMSwingTable[priv->OFDM_index]); |
823 | } | 823 | } |
@@ -1014,10 +1014,10 @@ static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev) | |||
1014 | { | 1014 | { |
1015 | //Attention!! You have to wirte all 12bits data to RF, or it may cause RF to crash | 1015 | //Attention!! You have to wirte all 12bits data to RF, or it may cause RF to crash |
1016 | //actually write reg0x02 bit1=0, then bit1=1. | 1016 | //actually write reg0x02 bit1=0, then bit1=1. |
1017 | rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); | 1017 | rtl8192_phy_SetRFReg(priv, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); |
1018 | rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); | 1018 | rtl8192_phy_SetRFReg(priv, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); |
1019 | rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); | 1019 | rtl8192_phy_SetRFReg(priv, RF90_PATH_A, 0x02, bMask12Bits, 0x4d); |
1020 | rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); | 1020 | rtl8192_phy_SetRFReg(priv, RF90_PATH_A, 0x02, bMask12Bits, 0x4f); |
1021 | TM_Trigger = 1; | 1021 | TM_Trigger = 1; |
1022 | return; | 1022 | return; |
1023 | } | 1023 | } |
@@ -1049,40 +1049,40 @@ static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14) | |||
1049 | TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] + | 1049 | TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] + |
1050 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ; | 1050 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ; |
1051 | 1051 | ||
1052 | rtl8192_setBBreg(dev, rCCK0_TxFilter1,bMaskHWord, TempVal); | 1052 | rtl8192_setBBreg(priv, rCCK0_TxFilter1, bMaskHWord, TempVal); |
1053 | //Write 0xa24 ~ 0xa27 | 1053 | //Write 0xa24 ~ 0xa27 |
1054 | TempVal = 0; | 1054 | TempVal = 0; |
1055 | TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] + | 1055 | TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] + |
1056 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) + | 1056 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) + |
1057 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+ | 1057 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+ |
1058 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24)); | 1058 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24)); |
1059 | rtl8192_setBBreg(dev, rCCK0_TxFilter2,bMaskDWord, TempVal); | 1059 | rtl8192_setBBreg(priv, rCCK0_TxFilter2, bMaskDWord, TempVal); |
1060 | //Write 0xa28 0xa29 | 1060 | //Write 0xa28 0xa29 |
1061 | TempVal = 0; | 1061 | TempVal = 0; |
1062 | TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] + | 1062 | TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] + |
1063 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ; | 1063 | (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ; |
1064 | 1064 | ||
1065 | rtl8192_setBBreg(dev, rCCK0_DebugPort,bMaskLWord, TempVal); | 1065 | rtl8192_setBBreg(priv, rCCK0_DebugPort, bMaskLWord, TempVal); |
1066 | } | 1066 | } |
1067 | else | 1067 | else |
1068 | { | 1068 | { |
1069 | TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] + | 1069 | TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] + |
1070 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ; | 1070 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ; |
1071 | 1071 | ||
1072 | rtl8192_setBBreg(dev, rCCK0_TxFilter1,bMaskHWord, TempVal); | 1072 | rtl8192_setBBreg(priv, rCCK0_TxFilter1, bMaskHWord, TempVal); |
1073 | //Write 0xa24 ~ 0xa27 | 1073 | //Write 0xa24 ~ 0xa27 |
1074 | TempVal = 0; | 1074 | TempVal = 0; |
1075 | TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] + | 1075 | TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] + |
1076 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) + | 1076 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) + |
1077 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+ | 1077 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+ |
1078 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24)); | 1078 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24)); |
1079 | rtl8192_setBBreg(dev, rCCK0_TxFilter2,bMaskDWord, TempVal); | 1079 | rtl8192_setBBreg(priv, rCCK0_TxFilter2, bMaskDWord, TempVal); |
1080 | //Write 0xa28 0xa29 | 1080 | //Write 0xa28 0xa29 |
1081 | TempVal = 0; | 1081 | TempVal = 0; |
1082 | TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] + | 1082 | TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] + |
1083 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ; | 1083 | (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ; |
1084 | 1084 | ||
1085 | rtl8192_setBBreg(dev, rCCK0_DebugPort,bMaskLWord, TempVal); | 1085 | rtl8192_setBBreg(priv, rCCK0_DebugPort, bMaskLWord, TempVal); |
1086 | } | 1086 | } |
1087 | 1087 | ||
1088 | 1088 | ||
@@ -1099,7 +1099,7 @@ static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH | |||
1099 | //Write 0xa22 0xa23 | 1099 | //Write 0xa22 0xa23 |
1100 | TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][0] + | 1100 | TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][0] + |
1101 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][1]<<8) ; | 1101 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][1]<<8) ; |
1102 | rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal); | 1102 | rtl8192_setBBreg(priv, rCCK0_TxFilter1, bMaskHWord, TempVal); |
1103 | RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", | 1103 | RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", |
1104 | rCCK0_TxFilter1, TempVal); | 1104 | rCCK0_TxFilter1, TempVal); |
1105 | //Write 0xa24 ~ 0xa27 | 1105 | //Write 0xa24 ~ 0xa27 |
@@ -1108,7 +1108,7 @@ static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH | |||
1108 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][3]<<8) + | 1108 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][3]<<8) + |
1109 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][4]<<16 )+ | 1109 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][4]<<16 )+ |
1110 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][5]<<24); | 1110 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][5]<<24); |
1111 | rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); | 1111 | rtl8192_setBBreg(priv, rCCK0_TxFilter2, bMaskDWord, TempVal); |
1112 | RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", | 1112 | RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", |
1113 | rCCK0_TxFilter2, TempVal); | 1113 | rCCK0_TxFilter2, TempVal); |
1114 | //Write 0xa28 0xa29 | 1114 | //Write 0xa28 0xa29 |
@@ -1116,7 +1116,7 @@ static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH | |||
1116 | TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][6] + | 1116 | TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][6] + |
1117 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][7]<<8) ; | 1117 | (CCKSwingTable_Ch1_Ch13[priv->CCK_index][7]<<8) ; |
1118 | 1118 | ||
1119 | rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal); | 1119 | rtl8192_setBBreg(priv, rCCK0_DebugPort, bMaskLWord, TempVal); |
1120 | RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", | 1120 | RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n", |
1121 | rCCK0_DebugPort, TempVal); | 1121 | rCCK0_DebugPort, TempVal); |
1122 | } | 1122 | } |
@@ -1127,7 +1127,7 @@ static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH | |||
1127 | TempVal = CCKSwingTable_Ch14[priv->CCK_index][0] + | 1127 | TempVal = CCKSwingTable_Ch14[priv->CCK_index][0] + |
1128 | (CCKSwingTable_Ch14[priv->CCK_index][1]<<8) ; | 1128 | (CCKSwingTable_Ch14[priv->CCK_index][1]<<8) ; |
1129 | 1129 | ||
1130 | rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal); | 1130 | rtl8192_setBBreg(priv, rCCK0_TxFilter1, bMaskHWord, TempVal); |
1131 | RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n", | 1131 | RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n", |
1132 | rCCK0_TxFilter1, TempVal); | 1132 | rCCK0_TxFilter1, TempVal); |
1133 | //Write 0xa24 ~ 0xa27 | 1133 | //Write 0xa24 ~ 0xa27 |
@@ -1136,7 +1136,7 @@ static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH | |||
1136 | (CCKSwingTable_Ch14[priv->CCK_index][3]<<8) + | 1136 | (CCKSwingTable_Ch14[priv->CCK_index][3]<<8) + |
1137 | (CCKSwingTable_Ch14[priv->CCK_index][4]<<16 )+ | 1137 | (CCKSwingTable_Ch14[priv->CCK_index][4]<<16 )+ |
1138 | (CCKSwingTable_Ch14[priv->CCK_index][5]<<24); | 1138 | (CCKSwingTable_Ch14[priv->CCK_index][5]<<24); |
1139 | rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal); | 1139 | rtl8192_setBBreg(priv, rCCK0_TxFilter2, bMaskDWord, TempVal); |
1140 | RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n", | 1140 | RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n", |
1141 | rCCK0_TxFilter2, TempVal); | 1141 | rCCK0_TxFilter2, TempVal); |
1142 | //Write 0xa28 0xa29 | 1142 | //Write 0xa28 0xa29 |
@@ -1144,7 +1144,7 @@ static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH | |||
1144 | TempVal = CCKSwingTable_Ch14[priv->CCK_index][6] + | 1144 | TempVal = CCKSwingTable_Ch14[priv->CCK_index][6] + |
1145 | (CCKSwingTable_Ch14[priv->CCK_index][7]<<8) ; | 1145 | (CCKSwingTable_Ch14[priv->CCK_index][7]<<8) ; |
1146 | 1146 | ||
1147 | rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal); | 1147 | rtl8192_setBBreg(priv, rCCK0_DebugPort, bMaskLWord, TempVal); |
1148 | RT_TRACE(COMP_POWER_TRACKING,"CCK chnl 14, reg 0x%x = 0x%x\n", | 1148 | RT_TRACE(COMP_POWER_TRACKING,"CCK chnl 14, reg 0x%x = 0x%x\n", |
1149 | rCCK0_DebugPort, TempVal); | 1149 | rCCK0_DebugPort, TempVal); |
1150 | } | 1150 | } |
@@ -1295,7 +1295,7 @@ static void dm_ctrl_initgain_byrssi_by_driverrssi( | |||
1295 | if(fw_dig <= 3) // execute several times to make sure the FW Dig is disabled | 1295 | if(fw_dig <= 3) // execute several times to make sure the FW Dig is disabled |
1296 | {// FW DIG Off | 1296 | {// FW DIG Off |
1297 | for(i=0; i<3; i++) | 1297 | for(i=0; i<3; i++) |
1298 | rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); // Only clear byte 1 and rewrite. | 1298 | rtl8192_setBBreg(priv, UFWP, bMaskByte1, 0x8); // Only clear byte 1 and rewrite. |
1299 | fw_dig++; | 1299 | fw_dig++; |
1300 | dm_digtable.dig_state = DM_STA_DIG_OFF; //fw dig off. | 1300 | dm_digtable.dig_state = DM_STA_DIG_OFF; //fw dig off. |
1301 | } | 1301 | } |
@@ -1332,7 +1332,7 @@ static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( | |||
1332 | dm_digtable.dig_state = DM_STA_DIG_MAX; | 1332 | dm_digtable.dig_state = DM_STA_DIG_MAX; |
1333 | // Fw DIG On. | 1333 | // Fw DIG On. |
1334 | for(i=0; i<3; i++) | 1334 | for(i=0; i<3; i++) |
1335 | rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1); // Only clear byte 1 and rewrite. | 1335 | rtl8192_setBBreg(priv, UFWP, bMaskByte1, 0x1); // Only clear byte 1 and rewrite. |
1336 | dm_digtable.dig_algorithm_switch = 0; | 1336 | dm_digtable.dig_algorithm_switch = 0; |
1337 | } | 1337 | } |
1338 | 1338 | ||
@@ -1367,7 +1367,7 @@ static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( | |||
1367 | dm_digtable.dig_state = DM_STA_DIG_OFF; | 1367 | dm_digtable.dig_state = DM_STA_DIG_OFF; |
1368 | 1368 | ||
1369 | // 1.1 DIG Off. | 1369 | // 1.1 DIG Off. |
1370 | rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); // Only clear byte 1 and rewrite. | 1370 | rtl8192_setBBreg(priv, UFWP, bMaskByte1, 0x8); // Only clear byte 1 and rewrite. |
1371 | 1371 | ||
1372 | // 1.2 Set initial gain. | 1372 | // 1.2 Set initial gain. |
1373 | write_nic_byte(priv, rOFDM0_XAAGCCore1, 0x17); | 1373 | write_nic_byte(priv, rOFDM0_XAAGCCore1, 0x17); |
@@ -1451,7 +1451,7 @@ static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm( | |||
1451 | //PlatformEFIOWrite4Byte(pAdapter, rOFDM0_ECCAThreshold, 0x346); | 1451 | //PlatformEFIOWrite4Byte(pAdapter, rOFDM0_ECCAThreshold, 0x346); |
1452 | 1452 | ||
1453 | // 2.5 DIG On. | 1453 | // 2.5 DIG On. |
1454 | rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1); // Only clear byte 1 and rewrite. | 1454 | rtl8192_setBBreg(priv, UFWP, bMaskByte1, 0x1); // Only clear byte 1 and rewrite. |
1455 | 1455 | ||
1456 | } | 1456 | } |
1457 | 1457 | ||
@@ -2227,8 +2227,8 @@ static void dm_rxpath_sel_byrssi(struct net_device * dev) | |||
2227 | //record the enabled rssi threshold | 2227 | //record the enabled rssi threshold |
2228 | DM_RxPathSelTable.rf_enable_rssi_th[min_rssi_index] = tmp_max_rssi+5; | 2228 | DM_RxPathSelTable.rf_enable_rssi_th[min_rssi_index] = tmp_max_rssi+5; |
2229 | //disable the BB Rx path, OFDM | 2229 | //disable the BB Rx path, OFDM |
2230 | rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0x1<<min_rssi_index, 0x0); // 0xc04[3:0] | 2230 | rtl8192_setBBreg(priv, rOFDM0_TRxPathEnable, 0x1<<min_rssi_index, 0x0); // 0xc04[3:0] |
2231 | rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, 0x1<<min_rssi_index, 0x0); // 0xd04[3:0] | 2231 | rtl8192_setBBreg(priv, rOFDM1_TRxPathEnable, 0x1<<min_rssi_index, 0x0); // 0xd04[3:0] |
2232 | disabled_rf_cnt++; | 2232 | disabled_rf_cnt++; |
2233 | } | 2233 | } |
2234 | if(DM_RxPathSelTable.cck_method == CCK_Rx_Version_1) | 2234 | if(DM_RxPathSelTable.cck_method == CCK_Rx_Version_1) |
@@ -2243,7 +2243,7 @@ static void dm_rxpath_sel_byrssi(struct net_device * dev) | |||
2243 | if(update_cck_rx_path) | 2243 | if(update_cck_rx_path) |
2244 | { | 2244 | { |
2245 | DM_RxPathSelTable.cck_Rx_path = (cck_default_Rx<<2)|(cck_optional_Rx); | 2245 | DM_RxPathSelTable.cck_Rx_path = (cck_default_Rx<<2)|(cck_optional_Rx); |
2246 | rtl8192_setBBreg(dev, rCCK0_AFESetting, 0x0f000000, DM_RxPathSelTable.cck_Rx_path); | 2246 | rtl8192_setBBreg(priv, rCCK0_AFESetting, 0x0f000000, DM_RxPathSelTable.cck_Rx_path); |
2247 | } | 2247 | } |
2248 | 2248 | ||
2249 | if(DM_RxPathSelTable.disabledRF) | 2249 | if(DM_RxPathSelTable.disabledRF) |
@@ -2255,8 +2255,8 @@ static void dm_rxpath_sel_byrssi(struct net_device * dev) | |||
2255 | if(tmp_max_rssi >= DM_RxPathSelTable.rf_enable_rssi_th[i]) | 2255 | if(tmp_max_rssi >= DM_RxPathSelTable.rf_enable_rssi_th[i]) |
2256 | { | 2256 | { |
2257 | //enable the BB Rx path | 2257 | //enable the BB Rx path |
2258 | rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0x1<<i, 0x1); // 0xc04[3:0] | 2258 | rtl8192_setBBreg(priv, rOFDM0_TRxPathEnable, 0x1<<i, 0x1); // 0xc04[3:0] |
2259 | rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, 0x1<<i, 0x1); // 0xd04[3:0] | 2259 | rtl8192_setBBreg(priv, rOFDM1_TRxPathEnable, 0x1<<i, 0x1); // 0xd04[3:0] |
2260 | DM_RxPathSelTable.rf_enable_rssi_th[i] = 100; | 2260 | DM_RxPathSelTable.rf_enable_rssi_th[i] = 100; |
2261 | disabled_rf_cnt--; | 2261 | disabled_rf_cnt--; |
2262 | } | 2262 | } |
@@ -2696,7 +2696,7 @@ static void dm_dynamic_txpower(struct net_device *dev) | |||
2696 | RT_TRACE(COMP_TXAGC, "SetTxPowerLevel8190() channel = %d\n", priv->ieee80211->current_network.channel); | 2696 | RT_TRACE(COMP_TXAGC, "SetTxPowerLevel8190() channel = %d\n", priv->ieee80211->current_network.channel); |
2697 | 2697 | ||
2698 | 2698 | ||
2699 | rtl8192_phy_setTxPower(dev,priv->ieee80211->current_network.channel); | 2699 | rtl8192_phy_setTxPower(priv, priv->ieee80211->current_network.channel); |
2700 | 2700 | ||
2701 | } | 2701 | } |
2702 | priv->bLastDTPFlag_High = priv->bDynamicTxHighPower; | 2702 | priv->bLastDTPFlag_High = priv->bDynamicTxHighPower; |
diff --git a/drivers/staging/rtl8192e/r819xE_phy.c b/drivers/staging/rtl8192e/r819xE_phy.c index 44e1123797c..e8a8b3424f3 100644 --- a/drivers/staging/rtl8192e/r819xE_phy.c +++ b/drivers/staging/rtl8192e/r819xE_phy.c | |||
@@ -564,8 +564,9 @@ static u32 Rtl8192PciERadioD_Array[RadioD_ArrayLength] = { | |||
564 | 564 | ||
565 | /*************************Define local function prototype**********************/ | 565 | /*************************Define local function prototype**********************/ |
566 | 566 | ||
567 | static u32 phy_FwRFSerialRead(struct net_device* dev,RF90_RADIO_PATH_E eRFPath,u32 Offset); | 567 | static u32 phy_FwRFSerialRead(struct r8192_priv *priv, RF90_RADIO_PATH_E eRFPath, u32 Offset); |
568 | static void phy_FwRFSerialWrite(struct net_device* dev,RF90_RADIO_PATH_E eRFPath,u32 Offset,u32 Data); | 568 | static void phy_FwRFSerialWrite(struct r8192_priv *priv, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data); |
569 | |||
569 | /*************************Define local function prototype**********************/ | 570 | /*************************Define local function prototype**********************/ |
570 | /****************************************************************************** | 571 | /****************************************************************************** |
571 | *function: This function read BB parameters from Header file we gen, | 572 | *function: This function read BB parameters from Header file we gen, |
@@ -590,10 +591,9 @@ static u32 rtl8192_CalculateBitShift(u32 dwBitMask) | |||
590 | * output: none | 591 | * output: none |
591 | * return: 0(illegal, false), 1(legal,true) | 592 | * return: 0(illegal, false), 1(legal,true) |
592 | * ***************************************************************************/ | 593 | * ***************************************************************************/ |
593 | u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device* dev, u32 eRFPath) | 594 | u8 rtl8192_phy_CheckIsLegalRFPath(struct r8192_priv *priv, u32 eRFPath) |
594 | { | 595 | { |
595 | u8 ret = 1; | 596 | u8 ret = 1; |
596 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
597 | 597 | ||
598 | if (priv->rf_type == RF_2T4R) | 598 | if (priv->rf_type == RF_2T4R) |
599 | ret = 0; | 599 | ret = 0; |
@@ -617,9 +617,8 @@ u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device* dev, u32 eRFPath) | |||
617 | * return: none | 617 | * return: none |
618 | * notice: | 618 | * notice: |
619 | * ****************************************************************************/ | 619 | * ****************************************************************************/ |
620 | void rtl8192_setBBreg(struct net_device* dev, u32 dwRegAddr, u32 dwBitMask, u32 dwData) | 620 | void rtl8192_setBBreg(struct r8192_priv *priv, u32 dwRegAddr, u32 dwBitMask, u32 dwData) |
621 | { | 621 | { |
622 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
623 | u32 OriginalValue, BitShift, NewValue; | 622 | u32 OriginalValue, BitShift, NewValue; |
624 | 623 | ||
625 | if(dwBitMask!= bMaskDWord) | 624 | if(dwBitMask!= bMaskDWord) |
@@ -640,9 +639,8 @@ void rtl8192_setBBreg(struct net_device* dev, u32 dwRegAddr, u32 dwBitMask, u32 | |||
640 | * return: u32 Data //the readback register value | 639 | * return: u32 Data //the readback register value |
641 | * notice: | 640 | * notice: |
642 | * ****************************************************************************/ | 641 | * ****************************************************************************/ |
643 | u32 rtl8192_QueryBBReg(struct net_device* dev, u32 dwRegAddr, u32 dwBitMask) | 642 | u32 rtl8192_QueryBBReg(struct r8192_priv *priv, u32 dwRegAddr, u32 dwBitMask) |
644 | { | 643 | { |
645 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
646 | u32 OriginalValue, BitShift; | 644 | u32 OriginalValue, BitShift; |
647 | 645 | ||
648 | OriginalValue = read_nic_dword(priv, dwRegAddr); | 646 | OriginalValue = read_nic_dword(priv, dwRegAddr); |
@@ -658,9 +656,9 @@ u32 rtl8192_QueryBBReg(struct net_device* dev, u32 dwRegAddr, u32 dwBitMask) | |||
658 | * return: u32 readback value | 656 | * return: u32 readback value |
659 | * notice: There are three types of serial operations:(1) Software serial write.(2)Hardware LSSI-Low Speed Serial Interface.(3)Hardware HSSI-High speed serial write. Driver here need to implement (1) and (2)---need more spec for this information. | 657 | * notice: There are three types of serial operations:(1) Software serial write.(2)Hardware LSSI-Low Speed Serial Interface.(3)Hardware HSSI-High speed serial write. Driver here need to implement (1) and (2)---need more spec for this information. |
660 | * ****************************************************************************/ | 658 | * ****************************************************************************/ |
661 | static u32 rtl8192_phy_RFSerialRead(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset) | 659 | static u32 rtl8192_phy_RFSerialRead(struct r8192_priv *priv, |
660 | RF90_RADIO_PATH_E eRFPath, u32 Offset) | ||
662 | { | 661 | { |
663 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
664 | u32 ret = 0; | 662 | u32 ret = 0; |
665 | u32 NewOffset = 0; | 663 | u32 NewOffset = 0; |
666 | BB_REGISTER_DEFINITION_T* pPhyReg = &priv->PHYRegDef[eRFPath]; | 664 | BB_REGISTER_DEFINITION_T* pPhyReg = &priv->PHYRegDef[eRFPath]; |
@@ -670,12 +668,12 @@ static u32 rtl8192_phy_RFSerialRead(struct net_device* dev, RF90_RADIO_PATH_E eR | |||
670 | 668 | ||
671 | //switch page for 8256 RF IC | 669 | //switch page for 8256 RF IC |
672 | //analog to digital off, for protection | 670 | //analog to digital off, for protection |
673 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0x0);// 0x88c[11:8] | 671 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter4, 0xf00, 0x0);// 0x88c[11:8] |
674 | if (Offset >= 31) | 672 | if (Offset >= 31) |
675 | { | 673 | { |
676 | priv->RfReg0Value[eRFPath] |= 0x140; | 674 | priv->RfReg0Value[eRFPath] |= 0x140; |
677 | //Switch to Reg_Mode2 for Reg 31-45 | 675 | //Switch to Reg_Mode2 for Reg 31-45 |
678 | rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath]<<16) ); | 676 | rtl8192_setBBreg(priv, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath]<<16) ); |
679 | //modify offset | 677 | //modify offset |
680 | NewOffset = Offset -30; | 678 | NewOffset = Offset -30; |
681 | } | 679 | } |
@@ -684,7 +682,7 @@ static u32 rtl8192_phy_RFSerialRead(struct net_device* dev, RF90_RADIO_PATH_E eR | |||
684 | priv->RfReg0Value[eRFPath] |= 0x100; | 682 | priv->RfReg0Value[eRFPath] |= 0x100; |
685 | priv->RfReg0Value[eRFPath] &= (~0x40); | 683 | priv->RfReg0Value[eRFPath] &= (~0x40); |
686 | //Switch to Reg_Mode 1 for Reg16-30 | 684 | //Switch to Reg_Mode 1 for Reg16-30 |
687 | rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath]<<16) ); | 685 | rtl8192_setBBreg(priv, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath]<<16) ); |
688 | 686 | ||
689 | NewOffset = Offset - 15; | 687 | NewOffset = Offset - 15; |
690 | } | 688 | } |
@@ -692,30 +690,30 @@ static u32 rtl8192_phy_RFSerialRead(struct net_device* dev, RF90_RADIO_PATH_E eR | |||
692 | NewOffset = Offset; | 690 | NewOffset = Offset; |
693 | 691 | ||
694 | //put desired read addr to LSSI control Register | 692 | //put desired read addr to LSSI control Register |
695 | rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadAddress, NewOffset); | 693 | rtl8192_setBBreg(priv, pPhyReg->rfHSSIPara2, bLSSIReadAddress, NewOffset); |
696 | //Issue a posedge trigger | 694 | //Issue a posedge trigger |
697 | // | 695 | // |
698 | rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x0); | 696 | rtl8192_setBBreg(priv, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x0); |
699 | rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x1); | 697 | rtl8192_setBBreg(priv, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x1); |
700 | 698 | ||
701 | 699 | ||
702 | // TODO: we should not delay such a long time. Ask help from SD3 | 700 | // TODO: we should not delay such a long time. Ask help from SD3 |
703 | msleep(1); | 701 | msleep(1); |
704 | 702 | ||
705 | ret = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBack, bLSSIReadBackData); | 703 | ret = rtl8192_QueryBBReg(priv, pPhyReg->rfLSSIReadBack, bLSSIReadBackData); |
706 | 704 | ||
707 | 705 | ||
708 | // Switch back to Reg_Mode0; | 706 | // Switch back to Reg_Mode0; |
709 | priv->RfReg0Value[eRFPath] &= 0xebf; | 707 | priv->RfReg0Value[eRFPath] &= 0xebf; |
710 | 708 | ||
711 | rtl8192_setBBreg( | 709 | rtl8192_setBBreg( |
712 | dev, | 710 | priv, |
713 | pPhyReg->rf3wireOffset, | 711 | pPhyReg->rf3wireOffset, |
714 | bMaskDWord, | 712 | bMaskDWord, |
715 | (priv->RfReg0Value[eRFPath] << 16)); | 713 | (priv->RfReg0Value[eRFPath] << 16)); |
716 | 714 | ||
717 | //analog to digital on | 715 | //analog to digital on |
718 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0x300, 0x3);// 0x88c[9:8] | 716 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter4, 0x300, 0x3);// 0x88c[9:8] |
719 | 717 | ||
720 | return ret; | 718 | return ret; |
721 | } | 719 | } |
@@ -740,28 +738,29 @@ static u32 rtl8192_phy_RFSerialRead(struct net_device* dev, RF90_RADIO_PATH_E eR | |||
740 | * Reg_Mode2 1 1 Reg 31 ~ 45(0x1 ~ 0xf) | 738 | * Reg_Mode2 1 1 Reg 31 ~ 45(0x1 ~ 0xf) |
741 | *------------------------------------------------------------------ | 739 | *------------------------------------------------------------------ |
742 | * ****************************************************************************/ | 740 | * ****************************************************************************/ |
743 | static void rtl8192_phy_RFSerialWrite(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data) | 741 | static void rtl8192_phy_RFSerialWrite(struct r8192_priv *priv, |
742 | RF90_RADIO_PATH_E eRFPath, u32 Offset, | ||
743 | u32 Data) | ||
744 | { | 744 | { |
745 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
746 | u32 DataAndAddr = 0, NewOffset = 0; | 745 | u32 DataAndAddr = 0, NewOffset = 0; |
747 | BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; | 746 | BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; |
748 | 747 | ||
749 | Offset &= 0x3f; | 748 | Offset &= 0x3f; |
750 | 749 | ||
751 | //analog to digital off, for protection | 750 | //analog to digital off, for protection |
752 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0x0);// 0x88c[11:8] | 751 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter4, 0xf00, 0x0);// 0x88c[11:8] |
753 | 752 | ||
754 | if (Offset >= 31) | 753 | if (Offset >= 31) |
755 | { | 754 | { |
756 | priv->RfReg0Value[eRFPath] |= 0x140; | 755 | priv->RfReg0Value[eRFPath] |= 0x140; |
757 | rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath] << 16)); | 756 | rtl8192_setBBreg(priv, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath] << 16)); |
758 | NewOffset = Offset - 30; | 757 | NewOffset = Offset - 30; |
759 | } | 758 | } |
760 | else if (Offset >= 16) | 759 | else if (Offset >= 16) |
761 | { | 760 | { |
762 | priv->RfReg0Value[eRFPath] |= 0x100; | 761 | priv->RfReg0Value[eRFPath] |= 0x100; |
763 | priv->RfReg0Value[eRFPath] &= (~0x40); | 762 | priv->RfReg0Value[eRFPath] &= (~0x40); |
764 | rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath]<<16)); | 763 | rtl8192_setBBreg(priv, pPhyReg->rf3wireOffset, bMaskDWord, (priv->RfReg0Value[eRFPath]<<16)); |
765 | NewOffset = Offset - 15; | 764 | NewOffset = Offset - 15; |
766 | } | 765 | } |
767 | else | 766 | else |
@@ -771,7 +770,7 @@ static void rtl8192_phy_RFSerialWrite(struct net_device* dev, RF90_RADIO_PATH_E | |||
771 | DataAndAddr = (Data<<16) | (NewOffset&0x3f); | 770 | DataAndAddr = (Data<<16) | (NewOffset&0x3f); |
772 | 771 | ||
773 | // Write Operation | 772 | // Write Operation |
774 | rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, DataAndAddr); | 773 | rtl8192_setBBreg(priv, pPhyReg->rf3wireOffset, bMaskDWord, DataAndAddr); |
775 | 774 | ||
776 | 775 | ||
777 | if(Offset==0x0) | 776 | if(Offset==0x0) |
@@ -782,19 +781,18 @@ static void rtl8192_phy_RFSerialWrite(struct net_device* dev, RF90_RADIO_PATH_E | |||
782 | { | 781 | { |
783 | priv->RfReg0Value[eRFPath] &= 0xebf; | 782 | priv->RfReg0Value[eRFPath] &= 0xebf; |
784 | rtl8192_setBBreg( | 783 | rtl8192_setBBreg( |
785 | dev, | 784 | priv, |
786 | pPhyReg->rf3wireOffset, | 785 | pPhyReg->rf3wireOffset, |
787 | bMaskDWord, | 786 | bMaskDWord, |
788 | (priv->RfReg0Value[eRFPath] << 16)); | 787 | (priv->RfReg0Value[eRFPath] << 16)); |
789 | } | 788 | } |
790 | //analog to digital on | 789 | //analog to digital on |
791 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0x300, 0x3);// 0x88c[9:8] | 790 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter4, 0x300, 0x3);// 0x88c[9:8] |
792 | } | 791 | } |
793 | 792 | ||
794 | /****************************************************************************** | 793 | /****************************************************************************** |
795 | *function: This function set specific bits to RF register | 794 | *function: This function set specific bits to RF register |
796 | * input: net_device dev | 795 | * input: RF90_RADIO_PATH_E eRFPath //radio path of A/B/C/D |
797 | * RF90_RADIO_PATH_E eRFPath //radio path of A/B/C/D | ||
798 | * u32 RegAddr //target addr to be modified | 796 | * u32 RegAddr //target addr to be modified |
799 | * u32 BitMask //taget bit pos in the addr to be modified | 797 | * u32 BitMask //taget bit pos in the addr to be modified |
800 | * u32 Data //value to be write | 798 | * u32 Data //value to be write |
@@ -802,13 +800,13 @@ static void rtl8192_phy_RFSerialWrite(struct net_device* dev, RF90_RADIO_PATH_E | |||
802 | * return: none | 800 | * return: none |
803 | * notice: | 801 | * notice: |
804 | * ****************************************************************************/ | 802 | * ****************************************************************************/ |
805 | void rtl8192_phy_SetRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask, u32 Data) | 803 | void rtl8192_phy_SetRFReg(struct r8192_priv *priv, RF90_RADIO_PATH_E eRFPath, |
804 | u32 RegAddr, u32 BitMask, u32 Data) | ||
806 | { | 805 | { |
807 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
808 | u32 Original_Value, BitShift, New_Value; | 806 | u32 Original_Value, BitShift, New_Value; |
809 | // u8 time = 0; | 807 | // u8 time = 0; |
810 | 808 | ||
811 | if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath)) | 809 | if (!rtl8192_phy_CheckIsLegalRFPath(priv, eRFPath)) |
812 | return; | 810 | return; |
813 | if (priv->eRFPowerState != eRfOn && !priv->being_init_adapter) | 811 | if (priv->eRFPowerState != eRfOn && !priv->being_init_adapter) |
814 | return; | 812 | return; |
@@ -819,13 +817,13 @@ void rtl8192_phy_SetRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 | |||
819 | { | 817 | { |
820 | if (BitMask != bMask12Bits) // RF data is 12 bits only | 818 | if (BitMask != bMask12Bits) // RF data is 12 bits only |
821 | { | 819 | { |
822 | Original_Value = phy_FwRFSerialRead(dev, eRFPath, RegAddr); | 820 | Original_Value = phy_FwRFSerialRead(priv, eRFPath, RegAddr); |
823 | BitShift = rtl8192_CalculateBitShift(BitMask); | 821 | BitShift = rtl8192_CalculateBitShift(BitMask); |
824 | New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift)); | 822 | New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift)); |
825 | 823 | ||
826 | phy_FwRFSerialWrite(dev, eRFPath, RegAddr, New_Value); | 824 | phy_FwRFSerialWrite(priv, eRFPath, RegAddr, New_Value); |
827 | }else | 825 | }else |
828 | phy_FwRFSerialWrite(dev, eRFPath, RegAddr, Data); | 826 | phy_FwRFSerialWrite(priv, eRFPath, RegAddr, Data); |
829 | udelay(200); | 827 | udelay(200); |
830 | 828 | ||
831 | } | 829 | } |
@@ -833,13 +831,13 @@ void rtl8192_phy_SetRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 | |||
833 | { | 831 | { |
834 | if (BitMask != bMask12Bits) // RF data is 12 bits only | 832 | if (BitMask != bMask12Bits) // RF data is 12 bits only |
835 | { | 833 | { |
836 | Original_Value = rtl8192_phy_RFSerialRead(dev, eRFPath, RegAddr); | 834 | Original_Value = rtl8192_phy_RFSerialRead(priv, eRFPath, RegAddr); |
837 | BitShift = rtl8192_CalculateBitShift(BitMask); | 835 | BitShift = rtl8192_CalculateBitShift(BitMask); |
838 | New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift)); | 836 | New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift)); |
839 | 837 | ||
840 | rtl8192_phy_RFSerialWrite(dev, eRFPath, RegAddr, New_Value); | 838 | rtl8192_phy_RFSerialWrite(priv, eRFPath, RegAddr, New_Value); |
841 | }else | 839 | }else |
842 | rtl8192_phy_RFSerialWrite(dev, eRFPath, RegAddr, Data); | 840 | rtl8192_phy_RFSerialWrite(priv, eRFPath, RegAddr, Data); |
843 | } | 841 | } |
844 | //up(&priv->rf_sem); | 842 | //up(&priv->rf_sem); |
845 | } | 843 | } |
@@ -853,23 +851,24 @@ void rtl8192_phy_SetRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 | |||
853 | * return: u32 Data //the readback register value | 851 | * return: u32 Data //the readback register value |
854 | * notice: | 852 | * notice: |
855 | * ****************************************************************************/ | 853 | * ****************************************************************************/ |
856 | u32 rtl8192_phy_QueryRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask) | 854 | u32 rtl8192_phy_QueryRFReg(struct r8192_priv *priv, RF90_RADIO_PATH_E eRFPath, |
855 | u32 RegAddr, u32 BitMask) | ||
857 | { | 856 | { |
858 | u32 Original_Value, Readback_Value, BitShift; | 857 | u32 Original_Value, Readback_Value, BitShift; |
859 | struct r8192_priv *priv = ieee80211_priv(dev); | 858 | |
860 | if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath)) | 859 | if (!rtl8192_phy_CheckIsLegalRFPath(priv, eRFPath)) |
861 | return 0; | 860 | return 0; |
862 | if (priv->eRFPowerState != eRfOn && !priv->being_init_adapter) | 861 | if (priv->eRFPowerState != eRfOn && !priv->being_init_adapter) |
863 | return 0; | 862 | return 0; |
864 | down(&priv->rf_sem); | 863 | down(&priv->rf_sem); |
865 | if (priv->Rf_Mode == RF_OP_By_FW) | 864 | if (priv->Rf_Mode == RF_OP_By_FW) |
866 | { | 865 | { |
867 | Original_Value = phy_FwRFSerialRead(dev, eRFPath, RegAddr); | 866 | Original_Value = phy_FwRFSerialRead(priv, eRFPath, RegAddr); |
868 | udelay(200); | 867 | udelay(200); |
869 | } | 868 | } |
870 | else | 869 | else |
871 | { | 870 | { |
872 | Original_Value = rtl8192_phy_RFSerialRead(dev, eRFPath, RegAddr); | 871 | Original_Value = rtl8192_phy_RFSerialRead(priv, eRFPath, RegAddr); |
873 | 872 | ||
874 | } | 873 | } |
875 | BitShift = rtl8192_CalculateBitShift(BitMask); | 874 | BitShift = rtl8192_CalculateBitShift(BitMask); |
@@ -886,12 +885,9 @@ u32 rtl8192_phy_QueryRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u3 | |||
886 | * return: none | 885 | * return: none |
887 | * notice: | 886 | * notice: |
888 | * ***************************************************************************/ | 887 | * ***************************************************************************/ |
889 | static u32 phy_FwRFSerialRead( | 888 | static u32 phy_FwRFSerialRead(struct r8192_priv *priv, |
890 | struct net_device* dev, | 889 | RF90_RADIO_PATH_E eRFPath, u32 Offset) |
891 | RF90_RADIO_PATH_E eRFPath, | ||
892 | u32 Offset ) | ||
893 | { | 890 | { |
894 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
895 | u32 Data = 0; | 891 | u32 Data = 0; |
896 | u8 time = 0; | 892 | u8 time = 0; |
897 | //DbgPrint("FW RF CTRL\n\r"); | 893 | //DbgPrint("FW RF CTRL\n\r"); |
@@ -944,14 +940,9 @@ static u32 phy_FwRFSerialRead( | |||
944 | * return: none | 940 | * return: none |
945 | * notice: | 941 | * notice: |
946 | * ***************************************************************************/ | 942 | * ***************************************************************************/ |
947 | static void | 943 | static void phy_FwRFSerialWrite(struct r8192_priv *priv, |
948 | phy_FwRFSerialWrite( | 944 | RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data) |
949 | struct net_device* dev, | ||
950 | RF90_RADIO_PATH_E eRFPath, | ||
951 | u32 Offset, | ||
952 | u32 Data ) | ||
953 | { | 945 | { |
954 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
955 | u8 time = 0; | 946 | u8 time = 0; |
956 | 947 | ||
957 | //DbgPrint("N FW RF CTRL RF-%d OF%02x DATA=%03x\n\r", eRFPath, Offset, Data); | 948 | //DbgPrint("N FW RF CTRL RF-%d OF%02x DATA=%03x\n\r", eRFPath, Offset, Data); |
@@ -1002,11 +993,10 @@ phy_FwRFSerialWrite( | |||
1002 | * notice: BB parameters may change all the time, so please make | 993 | * notice: BB parameters may change all the time, so please make |
1003 | * sure it has been synced with the newest. | 994 | * sure it has been synced with the newest. |
1004 | * ***************************************************************************/ | 995 | * ***************************************************************************/ |
1005 | void rtl8192_phy_configmac(struct net_device* dev) | 996 | void rtl8192_phy_configmac(struct r8192_priv *priv) |
1006 | { | 997 | { |
1007 | u32 dwArrayLen = 0, i = 0; | 998 | u32 dwArrayLen = 0, i = 0; |
1008 | u32* pdwArray = NULL; | 999 | u32* pdwArray = NULL; |
1009 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1010 | #ifdef TO_DO_LIST | 1000 | #ifdef TO_DO_LIST |
1011 | if(Adapter->bInHctTest) | 1001 | if(Adapter->bInHctTest) |
1012 | { | 1002 | { |
@@ -1038,7 +1028,7 @@ if(Adapter->bInHctTest) | |||
1038 | //DbgPrint("ptrArray[i], ptrArray[i+1], ptrArray[i+2] = %x, %x, %x\n", | 1028 | //DbgPrint("ptrArray[i], ptrArray[i+1], ptrArray[i+2] = %x, %x, %x\n", |
1039 | // ptrArray[i], ptrArray[i+1], ptrArray[i+2]); | 1029 | // ptrArray[i], ptrArray[i+1], ptrArray[i+2]); |
1040 | } | 1030 | } |
1041 | rtl8192_setBBreg(dev, pdwArray[i], pdwArray[i+1], pdwArray[i+2]); | 1031 | rtl8192_setBBreg(priv, pdwArray[i], pdwArray[i+1], pdwArray[i+2]); |
1042 | } | 1032 | } |
1043 | } | 1033 | } |
1044 | 1034 | ||
@@ -1051,14 +1041,13 @@ if(Adapter->bInHctTest) | |||
1051 | * sure it has been synced with the newest. | 1041 | * sure it has been synced with the newest. |
1052 | * ***************************************************************************/ | 1042 | * ***************************************************************************/ |
1053 | 1043 | ||
1054 | void rtl8192_phyConfigBB(struct net_device* dev, u8 ConfigType) | 1044 | void rtl8192_phyConfigBB(struct r8192_priv *priv, u8 ConfigType) |
1055 | { | 1045 | { |
1056 | int i; | 1046 | int i; |
1057 | //u8 ArrayLength; | 1047 | //u8 ArrayLength; |
1058 | u32* Rtl819XPHY_REGArray_Table = NULL; | 1048 | u32* Rtl819XPHY_REGArray_Table = NULL; |
1059 | u32* Rtl819XAGCTAB_Array_Table = NULL; | 1049 | u32* Rtl819XAGCTAB_Array_Table = NULL; |
1060 | u16 AGCTAB_ArrayLen, PHY_REGArrayLen = 0; | 1050 | u16 AGCTAB_ArrayLen, PHY_REGArrayLen = 0; |
1061 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1062 | #ifdef TO_DO_LIST | 1051 | #ifdef TO_DO_LIST |
1063 | u32 *rtl8192PhyRegArrayTable = NULL, *rtl8192AgcTabArrayTable = NULL; | 1052 | u32 *rtl8192PhyRegArrayTable = NULL, *rtl8192AgcTabArrayTable = NULL; |
1064 | if(Adapter->bInHctTest) | 1053 | if(Adapter->bInHctTest) |
@@ -1098,7 +1087,7 @@ void rtl8192_phyConfigBB(struct net_device* dev, u8 ConfigType) | |||
1098 | { | 1087 | { |
1099 | for (i=0; i<PHY_REGArrayLen; i+=2) | 1088 | for (i=0; i<PHY_REGArrayLen; i+=2) |
1100 | { | 1089 | { |
1101 | rtl8192_setBBreg(dev, Rtl819XPHY_REGArray_Table[i], bMaskDWord, Rtl819XPHY_REGArray_Table[i+1]); | 1090 | rtl8192_setBBreg(priv, Rtl819XPHY_REGArray_Table[i], bMaskDWord, Rtl819XPHY_REGArray_Table[i+1]); |
1102 | RT_TRACE(COMP_DBG, "i: %x, The Rtl819xUsbPHY_REGArray[0] is %x Rtl819xUsbPHY_REGArray[1] is %x\n",i, Rtl819XPHY_REGArray_Table[i], Rtl819XPHY_REGArray_Table[i+1]); | 1091 | RT_TRACE(COMP_DBG, "i: %x, The Rtl819xUsbPHY_REGArray[0] is %x Rtl819xUsbPHY_REGArray[1] is %x\n",i, Rtl819XPHY_REGArray_Table[i], Rtl819XPHY_REGArray_Table[i+1]); |
1103 | } | 1092 | } |
1104 | } | 1093 | } |
@@ -1106,7 +1095,7 @@ void rtl8192_phyConfigBB(struct net_device* dev, u8 ConfigType) | |||
1106 | { | 1095 | { |
1107 | for (i=0; i<AGCTAB_ArrayLen; i+=2) | 1096 | for (i=0; i<AGCTAB_ArrayLen; i+=2) |
1108 | { | 1097 | { |
1109 | rtl8192_setBBreg(dev, Rtl819XAGCTAB_Array_Table[i], bMaskDWord, Rtl819XAGCTAB_Array_Table[i+1]); | 1098 | rtl8192_setBBreg(priv, Rtl819XAGCTAB_Array_Table[i], bMaskDWord, Rtl819XAGCTAB_Array_Table[i+1]); |
1110 | RT_TRACE(COMP_DBG, "i:%x, The rtl819XAGCTAB_Array[0] is %x rtl819XAGCTAB_Array[1] is %x\n",i, Rtl819XAGCTAB_Array_Table[i], Rtl819XAGCTAB_Array_Table[i+1]); | 1099 | RT_TRACE(COMP_DBG, "i:%x, The rtl819XAGCTAB_Array[0] is %x rtl819XAGCTAB_Array[1] is %x\n",i, Rtl819XAGCTAB_Array_Table[i], Rtl819XAGCTAB_Array_Table[i+1]); |
1111 | } | 1100 | } |
1112 | } | 1101 | } |
@@ -1119,9 +1108,8 @@ void rtl8192_phyConfigBB(struct net_device* dev, u8 ConfigType) | |||
1119 | * return: none | 1108 | * return: none |
1120 | * notice: Initialization value here is constant and it should never be changed | 1109 | * notice: Initialization value here is constant and it should never be changed |
1121 | * ***************************************************************************/ | 1110 | * ***************************************************************************/ |
1122 | static void rtl8192_InitBBRFRegDef(struct net_device* dev) | 1111 | static void rtl8192_InitBBRFRegDef(struct r8192_priv *priv) |
1123 | { | 1112 | { |
1124 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1125 | // RF Interface Sowrtware Control | 1113 | // RF Interface Sowrtware Control |
1126 | priv->PHYRegDef[RF90_PATH_A].rfintfs = rFPGA0_XAB_RFInterfaceSW; // 16 LSBs if read 32-bit from 0x870 | 1114 | priv->PHYRegDef[RF90_PATH_A].rfintfs = rFPGA0_XAB_RFInterfaceSW; // 16 LSBs if read 32-bit from 0x870 |
1127 | priv->PHYRegDef[RF90_PATH_B].rfintfs = rFPGA0_XAB_RFInterfaceSW; // 16 MSBs if read 32-bit from 0x870 (16-bit for 0x872) | 1115 | priv->PHYRegDef[RF90_PATH_B].rfintfs = rFPGA0_XAB_RFInterfaceSW; // 16 MSBs if read 32-bit from 0x870 (16-bit for 0x872) |
@@ -1234,9 +1222,10 @@ static void rtl8192_InitBBRFRegDef(struct net_device* dev) | |||
1234 | * return: return whether BB and RF is ok(0:OK; 1:Fail) | 1222 | * return: return whether BB and RF is ok(0:OK; 1:Fail) |
1235 | * notice: This function may be removed in the ASIC | 1223 | * notice: This function may be removed in the ASIC |
1236 | * ***************************************************************************/ | 1224 | * ***************************************************************************/ |
1237 | RT_STATUS rtl8192_phy_checkBBAndRF(struct net_device* dev, HW90_BLOCK_E CheckBlock, RF90_RADIO_PATH_E eRFPath) | 1225 | RT_STATUS rtl8192_phy_checkBBAndRF(struct r8192_priv *priv, |
1226 | HW90_BLOCK_E CheckBlock, | ||
1227 | RF90_RADIO_PATH_E eRFPath) | ||
1238 | { | 1228 | { |
1239 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1240 | // BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; | 1229 | // BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath]; |
1241 | RT_STATUS ret = RT_STATUS_SUCCESS; | 1230 | RT_STATUS ret = RT_STATUS_SUCCESS; |
1242 | u32 i, CheckTimes = 4, dwRegRead = 0; | 1231 | u32 i, CheckTimes = 4, dwRegRead = 0; |
@@ -1268,10 +1257,10 @@ RT_STATUS rtl8192_phy_checkBBAndRF(struct net_device* dev, HW90_BLOCK_E CheckBlo | |||
1268 | 1257 | ||
1269 | case HW90_BLOCK_RF: | 1258 | case HW90_BLOCK_RF: |
1270 | WriteData[i] &= 0xfff; | 1259 | WriteData[i] &= 0xfff; |
1271 | rtl8192_phy_SetRFReg(dev, eRFPath, WriteAddr[HW90_BLOCK_RF], bMask12Bits, WriteData[i]); | 1260 | rtl8192_phy_SetRFReg(priv, eRFPath, WriteAddr[HW90_BLOCK_RF], bMask12Bits, WriteData[i]); |
1272 | // TODO: we should not delay for such a long time. Ask SD3 | 1261 | // TODO: we should not delay for such a long time. Ask SD3 |
1273 | mdelay(10); | 1262 | mdelay(10); |
1274 | dwRegRead = rtl8192_phy_QueryRFReg(dev, eRFPath, WriteAddr[HW90_BLOCK_RF], bMaskDWord); | 1263 | dwRegRead = rtl8192_phy_QueryRFReg(priv, eRFPath, WriteAddr[HW90_BLOCK_RF], bMaskDWord); |
1275 | mdelay(10); | 1264 | mdelay(10); |
1276 | break; | 1265 | break; |
1277 | 1266 | ||
@@ -1304,10 +1293,10 @@ RT_STATUS rtl8192_phy_checkBBAndRF(struct net_device* dev, HW90_BLOCK_E CheckBlo | |||
1304 | * notice: Initialization value may change all the time, so please make | 1293 | * notice: Initialization value may change all the time, so please make |
1305 | * sure it has been synced with the newest. | 1294 | * sure it has been synced with the newest. |
1306 | * ***************************************************************************/ | 1295 | * ***************************************************************************/ |
1307 | static RT_STATUS rtl8192_BB_Config_ParaFile(struct net_device* dev) | 1296 | static RT_STATUS rtl8192_BB_Config_ParaFile(struct r8192_priv *priv) |
1308 | { | 1297 | { |
1309 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1310 | RT_STATUS rtStatus = RT_STATUS_SUCCESS; | 1298 | RT_STATUS rtStatus = RT_STATUS_SUCCESS; |
1299 | |||
1311 | u8 bRegValue = 0, eCheckItem = 0; | 1300 | u8 bRegValue = 0, eCheckItem = 0; |
1312 | u32 dwRegValue = 0; | 1301 | u32 dwRegValue = 0; |
1313 | /************************************** | 1302 | /************************************** |
@@ -1326,7 +1315,7 @@ static RT_STATUS rtl8192_BB_Config_ParaFile(struct net_device* dev) | |||
1326 | // TODO: this function should be removed on ASIC , Emily 2007.2.2 | 1315 | // TODO: this function should be removed on ASIC , Emily 2007.2.2 |
1327 | for(eCheckItem=(HW90_BLOCK_E)HW90_BLOCK_PHY0; eCheckItem<=HW90_BLOCK_PHY1; eCheckItem++) | 1316 | for(eCheckItem=(HW90_BLOCK_E)HW90_BLOCK_PHY0; eCheckItem<=HW90_BLOCK_PHY1; eCheckItem++) |
1328 | { | 1317 | { |
1329 | rtStatus = rtl8192_phy_checkBBAndRF(dev, (HW90_BLOCK_E)eCheckItem, (RF90_RADIO_PATH_E)0); //don't care RF path | 1318 | rtStatus = rtl8192_phy_checkBBAndRF(priv, (HW90_BLOCK_E)eCheckItem, (RF90_RADIO_PATH_E)0); //don't care RF path |
1330 | if(rtStatus != RT_STATUS_SUCCESS) | 1319 | if(rtStatus != RT_STATUS_SUCCESS) |
1331 | { | 1320 | { |
1332 | RT_TRACE((COMP_ERR | COMP_PHY), "PHY_RF8256_Config():Check PHY%d Fail!!\n", eCheckItem-1); | 1321 | RT_TRACE((COMP_ERR | COMP_PHY), "PHY_RF8256_Config():Check PHY%d Fail!!\n", eCheckItem-1); |
@@ -1334,10 +1323,10 @@ static RT_STATUS rtl8192_BB_Config_ParaFile(struct net_device* dev) | |||
1334 | } | 1323 | } |
1335 | } | 1324 | } |
1336 | /*---- Set CCK and OFDM Block "OFF"----*/ | 1325 | /*---- Set CCK and OFDM Block "OFF"----*/ |
1337 | rtl8192_setBBreg(dev, rFPGA0_RFMOD, bCCKEn|bOFDMEn, 0x0); | 1326 | rtl8192_setBBreg(priv, rFPGA0_RFMOD, bCCKEn|bOFDMEn, 0x0); |
1338 | /*----BB Register Initilazation----*/ | 1327 | /*----BB Register Initilazation----*/ |
1339 | //==m==>Set PHY REG From Header<==m== | 1328 | //==m==>Set PHY REG From Header<==m== |
1340 | rtl8192_phyConfigBB(dev, BaseBand_Config_PHY_REG); | 1329 | rtl8192_phyConfigBB(priv, BaseBand_Config_PHY_REG); |
1341 | 1330 | ||
1342 | /*----Set BB reset de-Active----*/ | 1331 | /*----Set BB reset de-Active----*/ |
1343 | dwRegValue = read_nic_dword(priv, CPU_GEN); | 1332 | dwRegValue = read_nic_dword(priv, CPU_GEN); |
@@ -1345,7 +1334,7 @@ static RT_STATUS rtl8192_BB_Config_ParaFile(struct net_device* dev) | |||
1345 | 1334 | ||
1346 | /*----BB AGC table Initialization----*/ | 1335 | /*----BB AGC table Initialization----*/ |
1347 | //==m==>Set PHY REG From Header<==m== | 1336 | //==m==>Set PHY REG From Header<==m== |
1348 | rtl8192_phyConfigBB(dev, BaseBand_Config_AGC_TAB); | 1337 | rtl8192_phyConfigBB(priv, BaseBand_Config_AGC_TAB); |
1349 | 1338 | ||
1350 | if (priv->card_8192_version > VERSION_8190_BD) | 1339 | if (priv->card_8192_version > VERSION_8190_BD) |
1351 | { | 1340 | { |
@@ -1358,13 +1347,13 @@ static RT_STATUS rtl8192_BB_Config_ParaFile(struct net_device* dev) | |||
1358 | } | 1347 | } |
1359 | else | 1348 | else |
1360 | dwRegValue = 0x0; //Antenna gain offset doesn't make sense in RF 1T2R. | 1349 | dwRegValue = 0x0; //Antenna gain offset doesn't make sense in RF 1T2R. |
1361 | rtl8192_setBBreg(dev, rFPGA0_TxGainStage, | 1350 | rtl8192_setBBreg(priv, rFPGA0_TxGainStage, |
1362 | (bXBTxAGC|bXCTxAGC|bXDTxAGC), dwRegValue); | 1351 | (bXBTxAGC|bXCTxAGC|bXDTxAGC), dwRegValue); |
1363 | 1352 | ||
1364 | 1353 | ||
1365 | //XSTALLCap | 1354 | //XSTALLCap |
1366 | dwRegValue = priv->CrystalCap; | 1355 | dwRegValue = priv->CrystalCap; |
1367 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, bXtalCap92x, dwRegValue); | 1356 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, bXtalCap92x, dwRegValue); |
1368 | } | 1357 | } |
1369 | 1358 | ||
1370 | // Check if the CCK HighPower is turned ON. | 1359 | // Check if the CCK HighPower is turned ON. |
@@ -1380,12 +1369,12 @@ static RT_STATUS rtl8192_BB_Config_ParaFile(struct net_device* dev) | |||
1380 | * notice: Initialization value may change all the time, so please make | 1369 | * notice: Initialization value may change all the time, so please make |
1381 | * sure it has been synced with the newest. | 1370 | * sure it has been synced with the newest. |
1382 | * ***************************************************************************/ | 1371 | * ***************************************************************************/ |
1383 | RT_STATUS rtl8192_BBConfig(struct net_device* dev) | 1372 | RT_STATUS rtl8192_BBConfig(struct r8192_priv *priv) |
1384 | { | 1373 | { |
1385 | rtl8192_InitBBRFRegDef(dev); | 1374 | rtl8192_InitBBRFRegDef(priv); |
1386 | //config BB&RF. As hardCode based initialization has not been well | 1375 | //config BB&RF. As hardCode based initialization has not been well |
1387 | //implemented, so use file first.FIXME:should implement it for hardcode? | 1376 | //implemented, so use file first.FIXME:should implement it for hardcode? |
1388 | return rtl8192_BB_Config_ParaFile(dev); | 1377 | return rtl8192_BB_Config_ParaFile(priv); |
1389 | } | 1378 | } |
1390 | 1379 | ||
1391 | /****************************************************************************** | 1380 | /****************************************************************************** |
@@ -1394,10 +1383,8 @@ RT_STATUS rtl8192_BBConfig(struct net_device* dev) | |||
1394 | * output: none | 1383 | * output: none |
1395 | * return: none | 1384 | * return: none |
1396 | * ***************************************************************************/ | 1385 | * ***************************************************************************/ |
1397 | void rtl8192_phy_getTxPower(struct net_device* dev) | 1386 | void rtl8192_phy_getTxPower(struct r8192_priv *priv) |
1398 | { | 1387 | { |
1399 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1400 | |||
1401 | priv->MCSTxPowerLevelOriginalOffset[0] = | 1388 | priv->MCSTxPowerLevelOriginalOffset[0] = |
1402 | read_nic_dword(priv, rTxAGC_Rate18_06); | 1389 | read_nic_dword(priv, rTxAGC_Rate18_06); |
1403 | priv->MCSTxPowerLevelOriginalOffset[1] = | 1390 | priv->MCSTxPowerLevelOriginalOffset[1] = |
@@ -1435,9 +1422,8 @@ void rtl8192_phy_getTxPower(struct net_device* dev) | |||
1435 | * output: none | 1422 | * output: none |
1436 | * return: none | 1423 | * return: none |
1437 | * ***************************************************************************/ | 1424 | * ***************************************************************************/ |
1438 | void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel) | 1425 | void rtl8192_phy_setTxPower(struct r8192_priv *priv, u8 channel) |
1439 | { | 1426 | { |
1440 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1441 | u8 powerlevel = 0,powerlevelOFDM24G = 0; | 1427 | u8 powerlevel = 0,powerlevelOFDM24G = 0; |
1442 | char ant_pwr_diff; | 1428 | char ant_pwr_diff; |
1443 | u32 u4RegValue; | 1429 | u32 u4RegValue; |
@@ -1477,7 +1463,7 @@ void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel) | |||
1477 | priv->AntennaTxPwDiff[1]<<4 | | 1463 | priv->AntennaTxPwDiff[1]<<4 | |
1478 | priv->AntennaTxPwDiff[0]); | 1464 | priv->AntennaTxPwDiff[0]); |
1479 | 1465 | ||
1480 | rtl8192_setBBreg(dev, rFPGA0_TxGainStage, | 1466 | rtl8192_setBBreg(priv, rFPGA0_TxGainStage, |
1481 | (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue); | 1467 | (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue); |
1482 | } | 1468 | } |
1483 | } | 1469 | } |
@@ -1532,8 +1518,8 @@ void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel) | |||
1532 | pHalData->CurrentCckTxPwrIdx = powerlevel; | 1518 | pHalData->CurrentCckTxPwrIdx = powerlevel; |
1533 | pHalData->CurrentOfdm24GTxPwrIdx = powerlevelOFDM24G; | 1519 | pHalData->CurrentOfdm24GTxPwrIdx = powerlevelOFDM24G; |
1534 | #endif | 1520 | #endif |
1535 | PHY_SetRF8256CCKTxPower(dev, powerlevel); //need further implement | 1521 | PHY_SetRF8256CCKTxPower(priv, powerlevel); //need further implement |
1536 | PHY_SetRF8256OFDMTxPower(dev, powerlevelOFDM24G); | 1522 | PHY_SetRF8256OFDMTxPower(priv, powerlevelOFDM24G); |
1537 | } | 1523 | } |
1538 | 1524 | ||
1539 | /****************************************************************************** | 1525 | /****************************************************************************** |
@@ -1542,9 +1528,9 @@ void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel) | |||
1542 | * output: none | 1528 | * output: none |
1543 | * return: only 8256 is supported | 1529 | * return: only 8256 is supported |
1544 | * ***************************************************************************/ | 1530 | * ***************************************************************************/ |
1545 | RT_STATUS rtl8192_phy_RFConfig(struct net_device* dev) | 1531 | RT_STATUS rtl8192_phy_RFConfig(struct r8192_priv *priv) |
1546 | { | 1532 | { |
1547 | return PHY_RF8256_Config(dev); | 1533 | return PHY_RF8256_Config(priv); |
1548 | } | 1534 | } |
1549 | 1535 | ||
1550 | /****************************************************************************** | 1536 | /****************************************************************************** |
@@ -1553,7 +1539,7 @@ RT_STATUS rtl8192_phy_RFConfig(struct net_device* dev) | |||
1553 | * output: none | 1539 | * output: none |
1554 | * return: As Windows has not implemented this, wait for complement | 1540 | * return: As Windows has not implemented this, wait for complement |
1555 | * ***************************************************************************/ | 1541 | * ***************************************************************************/ |
1556 | void rtl8192_phy_updateInitGain(struct net_device* dev) | 1542 | void rtl8192_phy_updateInitGain(struct r8192_priv *priv) |
1557 | { | 1543 | { |
1558 | } | 1544 | } |
1559 | 1545 | ||
@@ -1564,7 +1550,8 @@ void rtl8192_phy_updateInitGain(struct net_device* dev) | |||
1564 | * return: return code show if RF configuration is successful(0:pass, 1:fail) | 1550 | * return: return code show if RF configuration is successful(0:pass, 1:fail) |
1565 | * Note: Delay may be required for RF configuration | 1551 | * Note: Delay may be required for RF configuration |
1566 | * ***************************************************************************/ | 1552 | * ***************************************************************************/ |
1567 | u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E eRFPath) | 1553 | u8 rtl8192_phy_ConfigRFWithHeaderFile(struct r8192_priv *priv, |
1554 | RF90_RADIO_PATH_E eRFPath) | ||
1568 | { | 1555 | { |
1569 | 1556 | ||
1570 | int i; | 1557 | int i; |
@@ -1579,7 +1566,7 @@ u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E | |||
1579 | msleep(100); | 1566 | msleep(100); |
1580 | continue; | 1567 | continue; |
1581 | } | 1568 | } |
1582 | rtl8192_phy_SetRFReg(dev, eRFPath, Rtl819XRadioA_Array[i], bMask12Bits, Rtl819XRadioA_Array[i+1]); | 1569 | rtl8192_phy_SetRFReg(priv, eRFPath, Rtl819XRadioA_Array[i], bMask12Bits, Rtl819XRadioA_Array[i+1]); |
1583 | //msleep(1); | 1570 | //msleep(1); |
1584 | 1571 | ||
1585 | } | 1572 | } |
@@ -1591,7 +1578,7 @@ u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E | |||
1591 | msleep(100); | 1578 | msleep(100); |
1592 | continue; | 1579 | continue; |
1593 | } | 1580 | } |
1594 | rtl8192_phy_SetRFReg(dev, eRFPath, Rtl819XRadioB_Array[i], bMask12Bits, Rtl819XRadioB_Array[i+1]); | 1581 | rtl8192_phy_SetRFReg(priv, eRFPath, Rtl819XRadioB_Array[i], bMask12Bits, Rtl819XRadioB_Array[i+1]); |
1595 | //msleep(1); | 1582 | //msleep(1); |
1596 | 1583 | ||
1597 | } | 1584 | } |
@@ -1603,7 +1590,7 @@ u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E | |||
1603 | msleep(100); | 1590 | msleep(100); |
1604 | continue; | 1591 | continue; |
1605 | } | 1592 | } |
1606 | rtl8192_phy_SetRFReg(dev, eRFPath, Rtl819XRadioC_Array[i], bMask12Bits, Rtl819XRadioC_Array[i+1]); | 1593 | rtl8192_phy_SetRFReg(priv, eRFPath, Rtl819XRadioC_Array[i], bMask12Bits, Rtl819XRadioC_Array[i+1]); |
1607 | //msleep(1); | 1594 | //msleep(1); |
1608 | 1595 | ||
1609 | } | 1596 | } |
@@ -1615,7 +1602,7 @@ u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E | |||
1615 | msleep(100); | 1602 | msleep(100); |
1616 | continue; | 1603 | continue; |
1617 | } | 1604 | } |
1618 | rtl8192_phy_SetRFReg(dev, eRFPath, Rtl819XRadioD_Array[i], bMask12Bits, Rtl819XRadioD_Array[i+1]); | 1605 | rtl8192_phy_SetRFReg(priv, eRFPath, Rtl819XRadioD_Array[i], bMask12Bits, Rtl819XRadioD_Array[i+1]); |
1619 | //msleep(1); | 1606 | //msleep(1); |
1620 | 1607 | ||
1621 | } | 1608 | } |
@@ -1635,14 +1622,13 @@ u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E | |||
1635 | * return: none | 1622 | * return: none |
1636 | * Note: | 1623 | * Note: |
1637 | * ***************************************************************************/ | 1624 | * ***************************************************************************/ |
1638 | static void rtl8192_SetTxPowerLevel(struct net_device *dev, u8 channel) | 1625 | static void rtl8192_SetTxPowerLevel(struct r8192_priv *priv, u8 channel) |
1639 | { | 1626 | { |
1640 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1641 | u8 powerlevel = priv->TxPowerLevelCCK[channel-1]; | 1627 | u8 powerlevel = priv->TxPowerLevelCCK[channel-1]; |
1642 | u8 powerlevelOFDM24G = priv->TxPowerLevelOFDM24G[channel-1]; | 1628 | u8 powerlevelOFDM24G = priv->TxPowerLevelOFDM24G[channel-1]; |
1643 | 1629 | ||
1644 | PHY_SetRF8256CCKTxPower(dev, powerlevel); | 1630 | PHY_SetRF8256CCKTxPower(priv, powerlevel); |
1645 | PHY_SetRF8256OFDMTxPower(dev, powerlevelOFDM24G); | 1631 | PHY_SetRF8256OFDMTxPower(priv, powerlevelOFDM24G); |
1646 | } | 1632 | } |
1647 | 1633 | ||
1648 | /**************************************************************************************** | 1634 | /**************************************************************************************** |
@@ -1701,9 +1687,9 @@ static u8 rtl8192_phy_SetSwChnlCmdArray( | |||
1701 | * return: true if finished, false otherwise | 1687 | * return: true if finished, false otherwise |
1702 | * Note: Wait for simpler function to replace it //wb | 1688 | * Note: Wait for simpler function to replace it //wb |
1703 | * ***************************************************************************/ | 1689 | * ***************************************************************************/ |
1704 | static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, u8* stage, u8* step, u32* delay) | 1690 | static u8 rtl8192_phy_SwChnlStepByStep(struct r8192_priv *priv, u8 channel, |
1691 | u8* stage, u8* step, u32* delay) | ||
1705 | { | 1692 | { |
1706 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1707 | // PCHANNEL_ACCESS_SETTING pChnlAccessSetting; | 1693 | // PCHANNEL_ACCESS_SETTING pChnlAccessSetting; |
1708 | SwChnlCmd PreCommonCmd[MAX_PRECMD_CNT]; | 1694 | SwChnlCmd PreCommonCmd[MAX_PRECMD_CNT]; |
1709 | u32 PreCommonCmdCnt; | 1695 | u32 PreCommonCmdCnt; |
@@ -1792,7 +1778,7 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, u8* s | |||
1792 | { | 1778 | { |
1793 | case CmdID_SetTxPowerLevel: | 1779 | case CmdID_SetTxPowerLevel: |
1794 | if(priv->card_8192_version > (u8)VERSION_8190_BD) //xiong: consider it later! | 1780 | if(priv->card_8192_version > (u8)VERSION_8190_BD) //xiong: consider it later! |
1795 | rtl8192_SetTxPowerLevel(dev,channel); | 1781 | rtl8192_SetTxPowerLevel(priv, channel); |
1796 | break; | 1782 | break; |
1797 | case CmdID_WritePortUlong: | 1783 | case CmdID_WritePortUlong: |
1798 | write_nic_dword(priv, CurrentCmd->Para1, CurrentCmd->Para2); | 1784 | write_nic_dword(priv, CurrentCmd->Para1, CurrentCmd->Para2); |
@@ -1805,7 +1791,7 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, u8* s | |||
1805 | break; | 1791 | break; |
1806 | case CmdID_RF_WriteReg: | 1792 | case CmdID_RF_WriteReg: |
1807 | for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++) | 1793 | for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++) |
1808 | rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bMask12Bits, CurrentCmd->Para2<<7); | 1794 | rtl8192_phy_SetRFReg(priv, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bMask12Bits, CurrentCmd->Para2<<7); |
1809 | break; | 1795 | break; |
1810 | default: | 1796 | default: |
1811 | break; | 1797 | break; |
@@ -1828,12 +1814,11 @@ static u8 rtl8192_phy_SwChnlStepByStep(struct net_device *dev, u8 channel, u8* s | |||
1828 | * return: noin | 1814 | * return: noin |
1829 | * Note: We should not call this function directly | 1815 | * Note: We should not call this function directly |
1830 | * ***************************************************************************/ | 1816 | * ***************************************************************************/ |
1831 | static void rtl8192_phy_FinishSwChnlNow(struct net_device *dev, u8 channel) | 1817 | static void rtl8192_phy_FinishSwChnlNow(struct r8192_priv *priv, u8 channel) |
1832 | { | 1818 | { |
1833 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1834 | u32 delay = 0; | 1819 | u32 delay = 0; |
1835 | 1820 | ||
1836 | while(!rtl8192_phy_SwChnlStepByStep(dev,channel,&priv->SwChnlStage,&priv->SwChnlStep,&delay)) | 1821 | while (!rtl8192_phy_SwChnlStepByStep(priv, channel, &priv->SwChnlStage, &priv->SwChnlStep, &delay)) |
1837 | { | 1822 | { |
1838 | if(delay>0) | 1823 | if(delay>0) |
1839 | msleep(delay);//or mdelay? need further consideration | 1824 | msleep(delay);//or mdelay? need further consideration |
@@ -1848,16 +1833,13 @@ static void rtl8192_phy_FinishSwChnlNow(struct net_device *dev, u8 channel) | |||
1848 | * output: none | 1833 | * output: none |
1849 | * return: noin | 1834 | * return: noin |
1850 | * ***************************************************************************/ | 1835 | * ***************************************************************************/ |
1851 | void rtl8192_SwChnl_WorkItem(struct net_device *dev) | 1836 | void rtl8192_SwChnl_WorkItem(struct r8192_priv *priv) |
1852 | { | 1837 | { |
1853 | |||
1854 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
1855 | |||
1856 | RT_TRACE(COMP_TRACE, "==> SwChnlCallback819xUsbWorkItem()\n"); | 1838 | RT_TRACE(COMP_TRACE, "==> SwChnlCallback819xUsbWorkItem()\n"); |
1857 | 1839 | ||
1858 | RT_TRACE(COMP_TRACE, "=====>--%s(), set chan:%d, priv:%p\n", __FUNCTION__, priv->chan, priv); | 1840 | RT_TRACE(COMP_TRACE, "=====>--%s(), set chan:%d, priv:%p\n", __FUNCTION__, priv->chan, priv); |
1859 | 1841 | ||
1860 | rtl8192_phy_FinishSwChnlNow(dev , priv->chan); | 1842 | rtl8192_phy_FinishSwChnlNow(priv, priv->chan); |
1861 | 1843 | ||
1862 | RT_TRACE(COMP_TRACE, "<== SwChnlCallback819xUsbWorkItem()\n"); | 1844 | RT_TRACE(COMP_TRACE, "<== SwChnlCallback819xUsbWorkItem()\n"); |
1863 | } | 1845 | } |
@@ -1916,19 +1898,16 @@ u8 rtl8192_phy_SwChnl(struct net_device* dev, u8 channel) | |||
1916 | 1898 | ||
1917 | priv->SwChnlStage=0; | 1899 | priv->SwChnlStage=0; |
1918 | priv->SwChnlStep=0; | 1900 | priv->SwChnlStep=0; |
1919 | // schedule_work(&(priv->SwChnlWorkItem)); | 1901 | if (priv->up) |
1920 | // rtl8192_SwChnl_WorkItem(dev); | 1902 | rtl8192_SwChnl_WorkItem(priv); |
1921 | if(priv->up) { | 1903 | |
1922 | // queue_work(priv->priv_wq,&(priv->SwChnlWorkItem)); | ||
1923 | rtl8192_SwChnl_WorkItem(dev); | ||
1924 | } | ||
1925 | priv->SwChnlInProgress = false; | 1904 | priv->SwChnlInProgress = false; |
1926 | return true; | 1905 | return true; |
1927 | } | 1906 | } |
1928 | 1907 | ||
1929 | static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct net_device *dev ) | 1908 | static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct r8192_priv *priv) |
1930 | { | 1909 | { |
1931 | struct r8192_priv *priv = ieee80211_priv(dev); | 1910 | struct net_device *dev = priv->ieee80211->dev; |
1932 | 1911 | ||
1933 | switch(priv->CurrentChannelBW) | 1912 | switch(priv->CurrentChannelBW) |
1934 | { | 1913 | { |
@@ -1987,9 +1966,9 @@ static void CCK_Tx_Power_Track_BW_Switch_TSSI(struct net_device *dev ) | |||
1987 | } | 1966 | } |
1988 | } | 1967 | } |
1989 | 1968 | ||
1990 | static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct net_device *dev) | 1969 | static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct r8192_priv *priv) |
1991 | { | 1970 | { |
1992 | struct r8192_priv *priv = ieee80211_priv(dev); | 1971 | struct net_device *dev = priv->ieee80211->dev; |
1993 | 1972 | ||
1994 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) | 1973 | if(priv->ieee80211->current_network.channel == 14 && !priv->bcck_in_ch14) |
1995 | priv->bcck_in_ch14 = TRUE; | 1974 | priv->bcck_in_ch14 = TRUE; |
@@ -2016,15 +1995,14 @@ static void CCK_Tx_Power_Track_BW_Switch_ThermalMeter(struct net_device *dev) | |||
2016 | dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); | 1995 | dm_cck_txpower_adjust(dev, priv->bcck_in_ch14); |
2017 | } | 1996 | } |
2018 | 1997 | ||
2019 | static void CCK_Tx_Power_Track_BW_Switch(struct net_device *dev) | 1998 | static void CCK_Tx_Power_Track_BW_Switch(struct r8192_priv *priv) |
2020 | { | 1999 | { |
2021 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2022 | 2000 | ||
2023 | //if(pHalData->bDcut == TRUE) | 2001 | //if(pHalData->bDcut == TRUE) |
2024 | if(priv->IC_Cut >= IC_VersionCut_D) | 2002 | if(priv->IC_Cut >= IC_VersionCut_D) |
2025 | CCK_Tx_Power_Track_BW_Switch_TSSI(dev); | 2003 | CCK_Tx_Power_Track_BW_Switch_TSSI(priv); |
2026 | else | 2004 | else |
2027 | CCK_Tx_Power_Track_BW_Switch_ThermalMeter(dev); | 2005 | CCK_Tx_Power_Track_BW_Switch_ThermalMeter(priv); |
2028 | } | 2006 | } |
2029 | 2007 | ||
2030 | 2008 | ||
@@ -2039,10 +2017,8 @@ static void CCK_Tx_Power_Track_BW_Switch(struct net_device *dev) | |||
2039 | * Note: I doubt whether SetBWModeInProgress flag is necessary as we can | 2017 | * Note: I doubt whether SetBWModeInProgress flag is necessary as we can |
2040 | * test whether current work in the queue or not.//do I? | 2018 | * test whether current work in the queue or not.//do I? |
2041 | * ***************************************************************************/ | 2019 | * ***************************************************************************/ |
2042 | void rtl8192_SetBWModeWorkItem(struct net_device *dev) | 2020 | void rtl8192_SetBWModeWorkItem(struct r8192_priv *priv) |
2043 | { | 2021 | { |
2044 | |||
2045 | struct r8192_priv *priv = ieee80211_priv(dev); | ||
2046 | u8 regBwOpMode; | 2022 | u8 regBwOpMode; |
2047 | 2023 | ||
2048 | RT_TRACE(COMP_SWBW, "==>rtl8192_SetBWModeWorkItem() Switch to %s bandwidth\n", | 2024 | RT_TRACE(COMP_SWBW, "==>rtl8192_SetBWModeWorkItem() Switch to %s bandwidth\n", |
@@ -2081,8 +2057,8 @@ void rtl8192_SetBWModeWorkItem(struct net_device *dev) | |||
2081 | { | 2057 | { |
2082 | case HT_CHANNEL_WIDTH_20: | 2058 | case HT_CHANNEL_WIDTH_20: |
2083 | // Add by Vivi 20071119 | 2059 | // Add by Vivi 20071119 |
2084 | rtl8192_setBBreg(dev, rFPGA0_RFMOD, bRFMOD, 0x0); | 2060 | rtl8192_setBBreg(priv, rFPGA0_RFMOD, bRFMOD, 0x0); |
2085 | rtl8192_setBBreg(dev, rFPGA1_RFMOD, bRFMOD, 0x0); | 2061 | rtl8192_setBBreg(priv, rFPGA1_RFMOD, bRFMOD, 0x0); |
2086 | // rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x00100000, 1); | 2062 | // rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x00100000, 1); |
2087 | 2063 | ||
2088 | // Correct the tx power for CCK rate in 20M. Suggest by YN, 20071207 | 2064 | // Correct the tx power for CCK rate in 20M. Suggest by YN, 20071207 |
@@ -2096,14 +2072,14 @@ void rtl8192_SetBWModeWorkItem(struct net_device *dev) | |||
2096 | write_nic_dword(priv, rCCK0_DebugPort, 0x00000204); | 2072 | write_nic_dword(priv, rCCK0_DebugPort, 0x00000204); |
2097 | } | 2073 | } |
2098 | else | 2074 | else |
2099 | CCK_Tx_Power_Track_BW_Switch(dev); | 2075 | CCK_Tx_Power_Track_BW_Switch(priv); |
2100 | 2076 | ||
2101 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x00100000, 1); | 2077 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x00100000, 1); |
2102 | break; | 2078 | break; |
2103 | case HT_CHANNEL_WIDTH_20_40: | 2079 | case HT_CHANNEL_WIDTH_20_40: |
2104 | // Add by Vivi 20071119 | 2080 | // Add by Vivi 20071119 |
2105 | rtl8192_setBBreg(dev, rFPGA0_RFMOD, bRFMOD, 0x1); | 2081 | rtl8192_setBBreg(priv, rFPGA0_RFMOD, bRFMOD, 0x1); |
2106 | rtl8192_setBBreg(dev, rFPGA1_RFMOD, bRFMOD, 0x1); | 2082 | rtl8192_setBBreg(priv, rFPGA1_RFMOD, bRFMOD, 0x1); |
2107 | //rtl8192_setBBreg(dev, rCCK0_System, bCCKSideBand, (priv->nCur40MhzPrimeSC>>1)); | 2083 | //rtl8192_setBBreg(dev, rCCK0_System, bCCKSideBand, (priv->nCur40MhzPrimeSC>>1)); |
2108 | //rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x00100000, 0); | 2084 | //rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x00100000, 0); |
2109 | //rtl8192_setBBreg(dev, rOFDM1_LSTF, 0xC00, priv->nCur40MhzPrimeSC); | 2085 | //rtl8192_setBBreg(dev, rOFDM1_LSTF, 0xC00, priv->nCur40MhzPrimeSC); |
@@ -2119,14 +2095,14 @@ void rtl8192_SetBWModeWorkItem(struct net_device *dev) | |||
2119 | write_nic_dword(priv, rCCK0_DebugPort, 0x00000409); | 2095 | write_nic_dword(priv, rCCK0_DebugPort, 0x00000409); |
2120 | } | 2096 | } |
2121 | else | 2097 | else |
2122 | CCK_Tx_Power_Track_BW_Switch(dev); | 2098 | CCK_Tx_Power_Track_BW_Switch(priv); |
2123 | 2099 | ||
2124 | // Set Control channel to upper or lower. These settings are required only for 40MHz | 2100 | // Set Control channel to upper or lower. These settings are required only for 40MHz |
2125 | rtl8192_setBBreg(dev, rCCK0_System, bCCKSideBand, (priv->nCur40MhzPrimeSC>>1)); | 2101 | rtl8192_setBBreg(priv, rCCK0_System, bCCKSideBand, (priv->nCur40MhzPrimeSC>>1)); |
2126 | rtl8192_setBBreg(dev, rOFDM1_LSTF, 0xC00, priv->nCur40MhzPrimeSC); | 2102 | rtl8192_setBBreg(priv, rOFDM1_LSTF, 0xC00, priv->nCur40MhzPrimeSC); |
2127 | 2103 | ||
2128 | 2104 | ||
2129 | rtl8192_setBBreg(dev, rFPGA0_AnalogParameter1, 0x00100000, 0); | 2105 | rtl8192_setBBreg(priv, rFPGA0_AnalogParameter1, 0x00100000, 0); |
2130 | break; | 2106 | break; |
2131 | default: | 2107 | default: |
2132 | RT_TRACE(COMP_ERR, "SetChannelBandwidth819xUsb(): unknown Bandwidth: %#X\n" ,priv->CurrentChannelBW); | 2108 | RT_TRACE(COMP_ERR, "SetChannelBandwidth819xUsb(): unknown Bandwidth: %#X\n" ,priv->CurrentChannelBW); |
@@ -2136,7 +2112,7 @@ void rtl8192_SetBWModeWorkItem(struct net_device *dev) | |||
2136 | //Skip over setting of J-mode in BB register here. Default value is "None J mode". Emily 20070315 | 2112 | //Skip over setting of J-mode in BB register here. Default value is "None J mode". Emily 20070315 |
2137 | 2113 | ||
2138 | //<3>Set RF related register | 2114 | //<3>Set RF related register |
2139 | PHY_SetRF8256Bandwidth(dev, priv->CurrentChannelBW); | 2115 | PHY_SetRF8256Bandwidth(priv, priv->CurrentChannelBW); |
2140 | 2116 | ||
2141 | atomic_dec(&(priv->ieee80211->atm_swbw)); | 2117 | atomic_dec(&(priv->ieee80211->atm_swbw)); |
2142 | priv->SetBWModeInProgress= false; | 2118 | priv->SetBWModeInProgress= false; |
@@ -2176,7 +2152,7 @@ void rtl8192_SetBWMode(struct net_device *dev, HT_CHANNEL_WIDTH Bandwidth, HT_EX | |||
2176 | 2152 | ||
2177 | //queue_work(priv->priv_wq, &(priv->SetBWModeWorkItem)); | 2153 | //queue_work(priv->priv_wq, &(priv->SetBWModeWorkItem)); |
2178 | // schedule_work(&(priv->SetBWModeWorkItem)); | 2154 | // schedule_work(&(priv->SetBWModeWorkItem)); |
2179 | rtl8192_SetBWModeWorkItem(dev); | 2155 | rtl8192_SetBWModeWorkItem(priv); |
2180 | 2156 | ||
2181 | } | 2157 | } |
2182 | 2158 | ||
@@ -2198,13 +2174,13 @@ void InitialGain819xPci(struct net_device *dev, u8 Operation) | |||
2198 | initial_gain = SCAN_RX_INITIAL_GAIN;//pHalData->DefaultInitialGain[0];// | 2174 | initial_gain = SCAN_RX_INITIAL_GAIN;//pHalData->DefaultInitialGain[0];// |
2199 | BitMask = bMaskByte0; | 2175 | BitMask = bMaskByte0; |
2200 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) | 2176 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) |
2201 | rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); // FW DIG OFF | 2177 | rtl8192_setBBreg(priv, UFWP, bMaskByte1, 0x8); // FW DIG OFF |
2202 | priv->initgain_backup.xaagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XAAGCCore1, BitMask); | 2178 | priv->initgain_backup.xaagccore1 = (u8)rtl8192_QueryBBReg(priv, rOFDM0_XAAGCCore1, BitMask); |
2203 | priv->initgain_backup.xbagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XBAGCCore1, BitMask); | 2179 | priv->initgain_backup.xbagccore1 = (u8)rtl8192_QueryBBReg(priv, rOFDM0_XBAGCCore1, BitMask); |
2204 | priv->initgain_backup.xcagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XCAGCCore1, BitMask); | 2180 | priv->initgain_backup.xcagccore1 = (u8)rtl8192_QueryBBReg(priv, rOFDM0_XCAGCCore1, BitMask); |
2205 | priv->initgain_backup.xdagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XDAGCCore1, BitMask); | 2181 | priv->initgain_backup.xdagccore1 = (u8)rtl8192_QueryBBReg(priv, rOFDM0_XDAGCCore1, BitMask); |
2206 | BitMask = bMaskByte2; | 2182 | BitMask = bMaskByte2; |
2207 | priv->initgain_backup.cca = (u8)rtl8192_QueryBBReg(dev, rCCK0_CCA, BitMask); | 2183 | priv->initgain_backup.cca = (u8)rtl8192_QueryBBReg(priv, rCCK0_CCA, BitMask); |
2208 | 2184 | ||
2209 | RT_TRACE(COMP_SCAN, "Scan InitialGainBackup 0xc50 is %x\n",priv->initgain_backup.xaagccore1); | 2185 | RT_TRACE(COMP_SCAN, "Scan InitialGainBackup 0xc50 is %x\n",priv->initgain_backup.xaagccore1); |
2210 | RT_TRACE(COMP_SCAN, "Scan InitialGainBackup 0xc58 is %x\n",priv->initgain_backup.xbagccore1); | 2186 | RT_TRACE(COMP_SCAN, "Scan InitialGainBackup 0xc58 is %x\n",priv->initgain_backup.xbagccore1); |
@@ -2224,14 +2200,14 @@ void InitialGain819xPci(struct net_device *dev, u8 Operation) | |||
2224 | RT_TRACE(COMP_SCAN, "IG_Restore, restore the initial gain.\n"); | 2200 | RT_TRACE(COMP_SCAN, "IG_Restore, restore the initial gain.\n"); |
2225 | BitMask = 0x7f; //Bit0~ Bit6 | 2201 | BitMask = 0x7f; //Bit0~ Bit6 |
2226 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) | 2202 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) |
2227 | rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8); // FW DIG OFF | 2203 | rtl8192_setBBreg(priv, UFWP, bMaskByte1, 0x8); // FW DIG OFF |
2228 | 2204 | ||
2229 | rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, BitMask, (u32)priv->initgain_backup.xaagccore1); | 2205 | rtl8192_setBBreg(priv, rOFDM0_XAAGCCore1, BitMask, (u32)priv->initgain_backup.xaagccore1); |
2230 | rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, BitMask, (u32)priv->initgain_backup.xbagccore1); | 2206 | rtl8192_setBBreg(priv, rOFDM0_XBAGCCore1, BitMask, (u32)priv->initgain_backup.xbagccore1); |
2231 | rtl8192_setBBreg(dev, rOFDM0_XCAGCCore1, BitMask, (u32)priv->initgain_backup.xcagccore1); | 2207 | rtl8192_setBBreg(priv, rOFDM0_XCAGCCore1, BitMask, (u32)priv->initgain_backup.xcagccore1); |
2232 | rtl8192_setBBreg(dev, rOFDM0_XDAGCCore1, BitMask, (u32)priv->initgain_backup.xdagccore1); | 2208 | rtl8192_setBBreg(priv, rOFDM0_XDAGCCore1, BitMask, (u32)priv->initgain_backup.xdagccore1); |
2233 | BitMask = bMaskByte2; | 2209 | BitMask = bMaskByte2; |
2234 | rtl8192_setBBreg(dev, rCCK0_CCA, BitMask, (u32)priv->initgain_backup.cca); | 2210 | rtl8192_setBBreg(priv, rCCK0_CCA, BitMask, (u32)priv->initgain_backup.cca); |
2235 | 2211 | ||
2236 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xc50 is %x\n",priv->initgain_backup.xaagccore1); | 2212 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xc50 is %x\n",priv->initgain_backup.xaagccore1); |
2237 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xc58 is %x\n",priv->initgain_backup.xbagccore1); | 2213 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xc58 is %x\n",priv->initgain_backup.xbagccore1); |
@@ -2239,11 +2215,11 @@ void InitialGain819xPci(struct net_device *dev, u8 Operation) | |||
2239 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xc68 is %x\n",priv->initgain_backup.xdagccore1); | 2215 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xc68 is %x\n",priv->initgain_backup.xdagccore1); |
2240 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xa0a is %x\n",priv->initgain_backup.cca); | 2216 | RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xa0a is %x\n",priv->initgain_backup.cca); |
2241 | 2217 | ||
2242 | rtl8192_phy_setTxPower(dev,priv->ieee80211->current_network.channel); | 2218 | rtl8192_phy_setTxPower(priv, priv->ieee80211->current_network.channel); |
2243 | 2219 | ||
2244 | 2220 | ||
2245 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) | 2221 | if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) |
2246 | rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1); // FW DIG ON | 2222 | rtl8192_setBBreg(priv, UFWP, bMaskByte1, 0x1); // FW DIG ON |
2247 | break; | 2223 | break; |
2248 | default: | 2224 | default: |
2249 | RT_TRACE(COMP_SCAN, "Unknown IG Operation.\n"); | 2225 | RT_TRACE(COMP_SCAN, "Unknown IG Operation.\n"); |
diff --git a/drivers/staging/rtl8192e/r819xE_phy.h b/drivers/staging/rtl8192e/r819xE_phy.h index c676c3ad0c8..46008eee512 100644 --- a/drivers/staging/rtl8192e/r819xE_phy.h +++ b/drivers/staging/rtl8192e/r819xE_phy.h | |||
@@ -82,39 +82,39 @@ typedef enum _RF90_RADIO_PATH { | |||
82 | #define bMaskLWord 0x0000ffff | 82 | #define bMaskLWord 0x0000ffff |
83 | #define bMaskDWord 0xffffffff | 83 | #define bMaskDWord 0xffffffff |
84 | 84 | ||
85 | u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device *dev, u32 eRFPath); | 85 | u8 rtl8192_phy_CheckIsLegalRFPath(struct r8192_priv *priv, u32 eRFPath); |
86 | 86 | ||
87 | void rtl8192_setBBreg(struct net_device *dev, u32 dwRegAddr, | 87 | void rtl8192_setBBreg(struct r8192_priv *priv, u32 dwRegAddr, |
88 | u32 dwBitMask, u32 dwData); | 88 | u32 dwBitMask, u32 dwData); |
89 | 89 | ||
90 | u32 rtl8192_QueryBBReg(struct net_device *dev, u32 dwRegAddr, | 90 | u32 rtl8192_QueryBBReg(struct r8192_priv *priv, u32 dwRegAddr, |
91 | u32 dwBitMask); | 91 | u32 dwBitMask); |
92 | 92 | ||
93 | void rtl8192_phy_SetRFReg(struct net_device *dev, | 93 | void rtl8192_phy_SetRFReg(struct r8192_priv *priv, |
94 | RF90_RADIO_PATH_E eRFPath, u32 RegAddr, | 94 | RF90_RADIO_PATH_E eRFPath, u32 RegAddr, |
95 | u32 BitMask, u32 Data); | 95 | u32 BitMask, u32 Data); |
96 | 96 | ||
97 | u32 rtl8192_phy_QueryRFReg(struct net_device *dev, | 97 | u32 rtl8192_phy_QueryRFReg(struct r8192_priv *priv, |
98 | RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask); | 98 | RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask); |
99 | 99 | ||
100 | void rtl8192_phy_configmac(struct net_device *dev); | 100 | void rtl8192_phy_configmac(struct r8192_priv *priv); |
101 | 101 | ||
102 | void rtl8192_phyConfigBB(struct net_device *dev, u8 ConfigType); | 102 | void rtl8192_phyConfigBB(struct r8192_priv *priv, u8 ConfigType); |
103 | 103 | ||
104 | RT_STATUS rtl8192_phy_checkBBAndRF(struct net_device *dev, | 104 | RT_STATUS rtl8192_phy_checkBBAndRF(struct r8192_priv *priv, |
105 | HW90_BLOCK_E CheckBlock, RF90_RADIO_PATH_E eRFPath); | 105 | HW90_BLOCK_E CheckBlock, RF90_RADIO_PATH_E eRFPath); |
106 | 106 | ||
107 | RT_STATUS rtl8192_BBConfig(struct net_device *dev); | 107 | RT_STATUS rtl8192_BBConfig(struct r8192_priv *priv); |
108 | 108 | ||
109 | void rtl8192_phy_getTxPower(struct net_device *dev); | 109 | void rtl8192_phy_getTxPower(struct r8192_priv *priv); |
110 | 110 | ||
111 | void rtl8192_phy_setTxPower(struct net_device *dev, u8 channel); | 111 | void rtl8192_phy_setTxPower(struct r8192_priv *priv, u8 channel); |
112 | 112 | ||
113 | RT_STATUS rtl8192_phy_RFConfig(struct net_device* dev); | 113 | RT_STATUS rtl8192_phy_RFConfig(struct r8192_priv *priv); |
114 | 114 | ||
115 | void rtl8192_phy_updateInitGain(struct net_device* dev); | 115 | void rtl8192_phy_updateInitGain(struct r8192_priv *priv); |
116 | 116 | ||
117 | u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device *dev, | 117 | u8 rtl8192_phy_ConfigRFWithHeaderFile(struct r8192_priv *priv, |
118 | RF90_RADIO_PATH_E eRFPath); | 118 | RF90_RADIO_PATH_E eRFPath); |
119 | 119 | ||
120 | u8 rtl8192_phy_SwChnl(struct net_device *dev, u8 channel); | 120 | u8 rtl8192_phy_SwChnl(struct net_device *dev, u8 channel); |
@@ -122,9 +122,9 @@ u8 rtl8192_phy_SwChnl(struct net_device *dev, u8 channel); | |||
122 | void rtl8192_SetBWMode(struct net_device *dev, | 122 | void rtl8192_SetBWMode(struct net_device *dev, |
123 | HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset); | 123 | HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset); |
124 | 124 | ||
125 | void rtl8192_SwChnl_WorkItem(struct net_device *dev); | 125 | void rtl8192_SwChnl_WorkItem(struct r8192_priv *priv); |
126 | 126 | ||
127 | void rtl8192_SetBWModeWorkItem(struct net_device *dev); | 127 | void rtl8192_SetBWModeWorkItem(struct r8192_priv *priv); |
128 | 128 | ||
129 | void InitialGain819xPci(struct net_device *dev, u8 Operation); | 129 | void InitialGain819xPci(struct net_device *dev, u8 Operation); |
130 | 130 | ||