staging: rtl8192e: Remove bb tx gains from r8192_priv
r8192_priv structure had 2 big arrays with tx gain register values: - cck_txbbgain_table - cck_txbbgain_ch14_table - txbbgain_table This arrays were read-only - filled in driver init code and look like firmware/chip-specific. This patch removes them from r8192_priv and puts them in (global) variables. tx_bb_gain is also flattened - register values are stored in array; Amplification value can be calculated using dm_tx_bb_gain_idx_to_amplify(). Signed-off-by: Mateusz Kulikowski <mateusz.kulikowski@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f669228512
commit
20b7ec0990
|
@ -918,8 +918,7 @@ start:
|
|||
tmpRegC = rtl8192_QueryBBReg(dev,
|
||||
rOFDM0_XCTxIQImbalance, bMaskDWord);
|
||||
for (i = 0; i < TxBBGainTableLength; i++) {
|
||||
if (tmpRegA ==
|
||||
priv->txbbgain_table[i].txbbgain_value) {
|
||||
if (tmpRegA == dm_tx_bb_gain[i]) {
|
||||
priv->rfa_txpowertrackingindex = (u8)i;
|
||||
priv->rfa_txpowertrackingindex_real =
|
||||
(u8)i;
|
||||
|
@ -933,7 +932,7 @@ start:
|
|||
rCCK0_TxFilter1, bMaskByte2);
|
||||
|
||||
for (i = 0; i < CCKTxBBGainTableLength; i++) {
|
||||
if (TempCCk == priv->cck_txbbgain_table[i].ccktxbb_valuearray[0]) {
|
||||
if (TempCCk == dm_cck_tx_bb_gain[i][0]) {
|
||||
priv->CCKPresentAttentuation_20Mdefault = (u8)i;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -451,15 +451,6 @@ enum two_port_status {
|
|||
TWO_PORT_STATUS__WITHOUT_ANY_ASSOCIATE
|
||||
};
|
||||
|
||||
struct txbbgain_struct {
|
||||
long txbb_iq_amplifygain;
|
||||
u32 txbbgain_value;
|
||||
};
|
||||
|
||||
struct ccktxbbgain {
|
||||
u8 ccktxbb_valuearray[8];
|
||||
};
|
||||
|
||||
struct init_gain {
|
||||
u8 xaagccore1;
|
||||
u8 xbagccore1;
|
||||
|
@ -567,11 +558,6 @@ struct r8192_priv {
|
|||
struct bb_reg_definition PHYRegDef[4];
|
||||
struct rate_adaptive rate_adaptive;
|
||||
|
||||
struct ccktxbbgain cck_txbbgain_table[CCKTxBBGainTableLength];
|
||||
struct ccktxbbgain cck_txbbgain_ch14_table[CCKTxBBGainTableLength];
|
||||
|
||||
struct txbbgain_struct txbbgain_table[TxBBGainTableLength];
|
||||
|
||||
enum acm_method AcmMethod;
|
||||
|
||||
struct rt_firmware *pFirmware;
|
||||
|
|
|
@ -60,6 +60,99 @@ static u32 edca_setting_UL[HT_IOT_PEER_MAX] = {
|
|||
|
||||
#define RTK_UL_EDCA 0xa44f
|
||||
#define RTK_DL_EDCA 0x5e4322
|
||||
|
||||
const u32 dm_tx_bb_gain[TxBBGainTableLength] = {
|
||||
0x7f8001fe, /* 12 dB */
|
||||
0x788001e2, /* 11 dB */
|
||||
0x71c001c7,
|
||||
0x6b8001ae,
|
||||
0x65400195,
|
||||
0x5fc0017f,
|
||||
0x5a400169,
|
||||
0x55400155,
|
||||
0x50800142,
|
||||
0x4c000130,
|
||||
0x47c0011f,
|
||||
0x43c0010f,
|
||||
0x40000100,
|
||||
0x3c8000f2,
|
||||
0x390000e4,
|
||||
0x35c000d7,
|
||||
0x32c000cb,
|
||||
0x300000c0,
|
||||
0x2d4000b5,
|
||||
0x2ac000ab,
|
||||
0x288000a2,
|
||||
0x26000098,
|
||||
0x24000090,
|
||||
0x22000088,
|
||||
0x20000080,
|
||||
0x1a00006c,
|
||||
0x1c800072,
|
||||
0x18000060,
|
||||
0x19800066,
|
||||
0x15800056,
|
||||
0x26c0005b,
|
||||
0x14400051,
|
||||
0x24400051,
|
||||
0x1300004c,
|
||||
0x12000048,
|
||||
0x11000044,
|
||||
0x10000040, /* -24 dB */
|
||||
};
|
||||
|
||||
const u8 dm_cck_tx_bb_gain[CCKTxBBGainTableLength][8] = {
|
||||
{0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04},
|
||||
{0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04},
|
||||
{0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03},
|
||||
{0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03},
|
||||
{0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03},
|
||||
{0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03},
|
||||
{0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03},
|
||||
{0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03},
|
||||
{0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02},
|
||||
{0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02},
|
||||
{0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02},
|
||||
{0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02},
|
||||
{0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02},
|
||||
{0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02},
|
||||
{0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02},
|
||||
{0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02},
|
||||
{0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01},
|
||||
{0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02},
|
||||
{0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01},
|
||||
{0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},
|
||||
{0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},
|
||||
{0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01},
|
||||
{0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}
|
||||
};
|
||||
|
||||
const u8 dm_cck_tx_bb_gain_ch14[CCKTxBBGainTableLength][8] = {
|
||||
{0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x2d, 0x2d, 0x27, 0x17, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x28, 0x28, 0x22, 0x14, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}
|
||||
};
|
||||
|
||||
/*---------------------------Define Local Constant---------------------------*/
|
||||
|
||||
|
||||
|
@ -590,7 +683,7 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev)
|
|||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfa_txpowertrackingindex_real]);
|
||||
}
|
||||
|
||||
priv->rfc_txpowertrackingindex--;
|
||||
|
@ -599,15 +692,16 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev)
|
|||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XCTxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfc_txpowertrackingindex_real]);
|
||||
}
|
||||
} else {
|
||||
rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
|
||||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[4].txbbgain_value);
|
||||
dm_tx_bb_gain[4]);
|
||||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XCTxIQImbalance,
|
||||
bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
|
||||
bMaskDWord, dm_tx_bb_gain[4]);
|
||||
}
|
||||
} else {
|
||||
if (priv->rfa_txpowertrackingindex > 0) {
|
||||
|
@ -617,11 +711,11 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev)
|
|||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfa_txpowertrackingindex_real]);
|
||||
}
|
||||
} else
|
||||
rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
|
||||
bMaskDWord, dm_tx_bb_gain[4]);
|
||||
|
||||
}
|
||||
} else {
|
||||
|
@ -635,22 +729,21 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev)
|
|||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table
|
||||
[priv->rfa_txpowertrackingindex_real].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfa_txpowertrackingindex_real]);
|
||||
priv->rfc_txpowertrackingindex++;
|
||||
priv->rfc_txpowertrackingindex_real++;
|
||||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XCTxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfc_txpowertrackingindex_real]);
|
||||
} else {
|
||||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
|
||||
dm_tx_bb_gain[TxBBGainTableLength - 1]);
|
||||
rtl8192_setBBreg(dev,
|
||||
rOFDM0_XCTxIQImbalance,
|
||||
bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
|
||||
bMaskDWord, dm_tx_bb_gain[TxBBGainTableLength - 1]);
|
||||
}
|
||||
} else {
|
||||
if (priv->rfa_txpowertrackingindex < (TxBBGainTableLength - 1)) {
|
||||
|
@ -658,11 +751,11 @@ static void dm_TXPowerTrackingCallback_TSSI(struct net_device *dev)
|
|||
priv->rfa_txpowertrackingindex_real++;
|
||||
rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfa_txpowertrackingindex_real]);
|
||||
} else
|
||||
rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance,
|
||||
bMaskDWord,
|
||||
priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
|
||||
dm_tx_bb_gain[TxBBGainTableLength - 1]);
|
||||
}
|
||||
}
|
||||
if (RF_Type == RF_2T4R) {
|
||||
|
@ -848,496 +941,6 @@ static void dm_InitializeTXPowerTracking_TSSI(struct net_device *dev)
|
|||
{
|
||||
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
|
||||
priv->txbbgain_table[0].txbb_iq_amplifygain = 12;
|
||||
priv->txbbgain_table[0].txbbgain_value = 0x7f8001fe;
|
||||
priv->txbbgain_table[1].txbb_iq_amplifygain = 11;
|
||||
priv->txbbgain_table[1].txbbgain_value = 0x788001e2;
|
||||
priv->txbbgain_table[2].txbb_iq_amplifygain = 10;
|
||||
priv->txbbgain_table[2].txbbgain_value = 0x71c001c7;
|
||||
priv->txbbgain_table[3].txbb_iq_amplifygain = 9;
|
||||
priv->txbbgain_table[3].txbbgain_value = 0x6b8001ae;
|
||||
priv->txbbgain_table[4].txbb_iq_amplifygain = 8;
|
||||
priv->txbbgain_table[4].txbbgain_value = 0x65400195;
|
||||
priv->txbbgain_table[5].txbb_iq_amplifygain = 7;
|
||||
priv->txbbgain_table[5].txbbgain_value = 0x5fc0017f;
|
||||
priv->txbbgain_table[6].txbb_iq_amplifygain = 6;
|
||||
priv->txbbgain_table[6].txbbgain_value = 0x5a400169;
|
||||
priv->txbbgain_table[7].txbb_iq_amplifygain = 5;
|
||||
priv->txbbgain_table[7].txbbgain_value = 0x55400155;
|
||||
priv->txbbgain_table[8].txbb_iq_amplifygain = 4;
|
||||
priv->txbbgain_table[8].txbbgain_value = 0x50800142;
|
||||
priv->txbbgain_table[9].txbb_iq_amplifygain = 3;
|
||||
priv->txbbgain_table[9].txbbgain_value = 0x4c000130;
|
||||
priv->txbbgain_table[10].txbb_iq_amplifygain = 2;
|
||||
priv->txbbgain_table[10].txbbgain_value = 0x47c0011f;
|
||||
priv->txbbgain_table[11].txbb_iq_amplifygain = 1;
|
||||
priv->txbbgain_table[11].txbbgain_value = 0x43c0010f;
|
||||
priv->txbbgain_table[12].txbb_iq_amplifygain = 0;
|
||||
priv->txbbgain_table[12].txbbgain_value = 0x40000100;
|
||||
priv->txbbgain_table[13].txbb_iq_amplifygain = -1;
|
||||
priv->txbbgain_table[13].txbbgain_value = 0x3c8000f2;
|
||||
priv->txbbgain_table[14].txbb_iq_amplifygain = -2;
|
||||
priv->txbbgain_table[14].txbbgain_value = 0x390000e4;
|
||||
priv->txbbgain_table[15].txbb_iq_amplifygain = -3;
|
||||
priv->txbbgain_table[15].txbbgain_value = 0x35c000d7;
|
||||
priv->txbbgain_table[16].txbb_iq_amplifygain = -4;
|
||||
priv->txbbgain_table[16].txbbgain_value = 0x32c000cb;
|
||||
priv->txbbgain_table[17].txbb_iq_amplifygain = -5;
|
||||
priv->txbbgain_table[17].txbbgain_value = 0x300000c0;
|
||||
priv->txbbgain_table[18].txbb_iq_amplifygain = -6;
|
||||
priv->txbbgain_table[18].txbbgain_value = 0x2d4000b5;
|
||||
priv->txbbgain_table[19].txbb_iq_amplifygain = -7;
|
||||
priv->txbbgain_table[19].txbbgain_value = 0x2ac000ab;
|
||||
priv->txbbgain_table[20].txbb_iq_amplifygain = -8;
|
||||
priv->txbbgain_table[20].txbbgain_value = 0x288000a2;
|
||||
priv->txbbgain_table[21].txbb_iq_amplifygain = -9;
|
||||
priv->txbbgain_table[21].txbbgain_value = 0x26000098;
|
||||
priv->txbbgain_table[22].txbb_iq_amplifygain = -10;
|
||||
priv->txbbgain_table[22].txbbgain_value = 0x24000090;
|
||||
priv->txbbgain_table[23].txbb_iq_amplifygain = -11;
|
||||
priv->txbbgain_table[23].txbbgain_value = 0x22000088;
|
||||
priv->txbbgain_table[24].txbb_iq_amplifygain = -12;
|
||||
priv->txbbgain_table[24].txbbgain_value = 0x20000080;
|
||||
priv->txbbgain_table[25].txbb_iq_amplifygain = -13;
|
||||
priv->txbbgain_table[25].txbbgain_value = 0x1a00006c;
|
||||
priv->txbbgain_table[26].txbb_iq_amplifygain = -14;
|
||||
priv->txbbgain_table[26].txbbgain_value = 0x1c800072;
|
||||
priv->txbbgain_table[27].txbb_iq_amplifygain = -15;
|
||||
priv->txbbgain_table[27].txbbgain_value = 0x18000060;
|
||||
priv->txbbgain_table[28].txbb_iq_amplifygain = -16;
|
||||
priv->txbbgain_table[28].txbbgain_value = 0x19800066;
|
||||
priv->txbbgain_table[29].txbb_iq_amplifygain = -17;
|
||||
priv->txbbgain_table[29].txbbgain_value = 0x15800056;
|
||||
priv->txbbgain_table[30].txbb_iq_amplifygain = -18;
|
||||
priv->txbbgain_table[30].txbbgain_value = 0x26c0005b;
|
||||
priv->txbbgain_table[31].txbb_iq_amplifygain = -19;
|
||||
priv->txbbgain_table[31].txbbgain_value = 0x14400051;
|
||||
priv->txbbgain_table[32].txbb_iq_amplifygain = -20;
|
||||
priv->txbbgain_table[32].txbbgain_value = 0x24400051;
|
||||
priv->txbbgain_table[33].txbb_iq_amplifygain = -21;
|
||||
priv->txbbgain_table[33].txbbgain_value = 0x1300004c;
|
||||
priv->txbbgain_table[34].txbb_iq_amplifygain = -22;
|
||||
priv->txbbgain_table[34].txbbgain_value = 0x12000048;
|
||||
priv->txbbgain_table[35].txbb_iq_amplifygain = -23;
|
||||
priv->txbbgain_table[35].txbbgain_value = 0x11000044;
|
||||
priv->txbbgain_table[36].txbb_iq_amplifygain = -24;
|
||||
priv->txbbgain_table[36].txbbgain_value = 0x10000040;
|
||||
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[0] = 0x36;
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[1] = 0x35;
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[2] = 0x2e;
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[3] = 0x25;
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[4] = 0x1c;
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[5] = 0x12;
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[6] = 0x09;
|
||||
priv->cck_txbbgain_table[0].ccktxbb_valuearray[7] = 0x04;
|
||||
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[0] = 0x33;
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[1] = 0x32;
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[2] = 0x2b;
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[3] = 0x23;
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[4] = 0x1a;
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[5] = 0x11;
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[6] = 0x08;
|
||||
priv->cck_txbbgain_table[1].ccktxbb_valuearray[7] = 0x04;
|
||||
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[0] = 0x30;
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[1] = 0x2f;
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[2] = 0x29;
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[3] = 0x21;
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[4] = 0x19;
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[5] = 0x10;
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[6] = 0x08;
|
||||
priv->cck_txbbgain_table[2].ccktxbb_valuearray[7] = 0x03;
|
||||
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[0] = 0x2d;
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[1] = 0x2d;
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[2] = 0x27;
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[3] = 0x1f;
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[4] = 0x18;
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[5] = 0x0f;
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[6] = 0x08;
|
||||
priv->cck_txbbgain_table[3].ccktxbb_valuearray[7] = 0x03;
|
||||
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[0] = 0x2b;
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[1] = 0x2a;
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[2] = 0x25;
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[3] = 0x1e;
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[4] = 0x16;
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[5] = 0x0e;
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[6] = 0x07;
|
||||
priv->cck_txbbgain_table[4].ccktxbb_valuearray[7] = 0x03;
|
||||
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[0] = 0x28;
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[1] = 0x28;
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[2] = 0x22;
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[3] = 0x1c;
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[4] = 0x15;
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[5] = 0x0d;
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[6] = 0x07;
|
||||
priv->cck_txbbgain_table[5].ccktxbb_valuearray[7] = 0x03;
|
||||
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[0] = 0x26;
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[1] = 0x25;
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[2] = 0x21;
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[3] = 0x1b;
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[4] = 0x14;
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[5] = 0x0d;
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[6] = 0x06;
|
||||
priv->cck_txbbgain_table[6].ccktxbb_valuearray[7] = 0x03;
|
||||
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[0] = 0x24;
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[1] = 0x23;
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[2] = 0x1f;
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[3] = 0x19;
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[4] = 0x13;
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[5] = 0x0c;
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[6] = 0x06;
|
||||
priv->cck_txbbgain_table[7].ccktxbb_valuearray[7] = 0x03;
|
||||
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[0] = 0x22;
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[1] = 0x21;
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[2] = 0x1d;
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[3] = 0x18;
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[4] = 0x11;
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[5] = 0x0b;
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[6] = 0x06;
|
||||
priv->cck_txbbgain_table[8].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[0] = 0x20;
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[1] = 0x20;
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[2] = 0x1b;
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[3] = 0x16;
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[4] = 0x11;
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[5] = 0x08;
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[6] = 0x05;
|
||||
priv->cck_txbbgain_table[9].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[0] = 0x1f;
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[1] = 0x1e;
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[2] = 0x1a;
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[3] = 0x15;
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[4] = 0x10;
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[5] = 0x0a;
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[6] = 0x05;
|
||||
priv->cck_txbbgain_table[10].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[0] = 0x1d;
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[1] = 0x1c;
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[2] = 0x18;
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[3] = 0x14;
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[4] = 0x0f;
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[5] = 0x0a;
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[6] = 0x05;
|
||||
priv->cck_txbbgain_table[11].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[0] = 0x1b;
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[1] = 0x1a;
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[2] = 0x17;
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[3] = 0x13;
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[4] = 0x0e;
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[5] = 0x09;
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[6] = 0x04;
|
||||
priv->cck_txbbgain_table[12].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[0] = 0x1a;
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[1] = 0x19;
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[2] = 0x16;
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[3] = 0x12;
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[4] = 0x0d;
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[5] = 0x09;
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[6] = 0x04;
|
||||
priv->cck_txbbgain_table[13].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[0] = 0x18;
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[1] = 0x17;
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[2] = 0x15;
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[3] = 0x11;
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[4] = 0x0c;
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[5] = 0x08;
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[6] = 0x04;
|
||||
priv->cck_txbbgain_table[14].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[0] = 0x17;
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[1] = 0x16;
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[2] = 0x13;
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[3] = 0x10;
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[4] = 0x0c;
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[5] = 0x08;
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[6] = 0x04;
|
||||
priv->cck_txbbgain_table[15].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[0] = 0x16;
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[1] = 0x15;
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[2] = 0x12;
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[3] = 0x0f;
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[4] = 0x0b;
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[5] = 0x07;
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[6] = 0x04;
|
||||
priv->cck_txbbgain_table[16].ccktxbb_valuearray[7] = 0x01;
|
||||
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[0] = 0x14;
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[1] = 0x14;
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[2] = 0x11;
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[3] = 0x0e;
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[4] = 0x0b;
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[5] = 0x07;
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[6] = 0x03;
|
||||
priv->cck_txbbgain_table[17].ccktxbb_valuearray[7] = 0x02;
|
||||
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[0] = 0x13;
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[1] = 0x13;
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[2] = 0x10;
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[3] = 0x0d;
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[4] = 0x0a;
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[5] = 0x06;
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[6] = 0x03;
|
||||
priv->cck_txbbgain_table[18].ccktxbb_valuearray[7] = 0x01;
|
||||
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[0] = 0x12;
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[1] = 0x12;
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[2] = 0x0f;
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[3] = 0x0c;
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[4] = 0x09;
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[5] = 0x06;
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[6] = 0x03;
|
||||
priv->cck_txbbgain_table[19].ccktxbb_valuearray[7] = 0x01;
|
||||
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[0] = 0x11;
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[1] = 0x11;
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[2] = 0x0f;
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[3] = 0x0c;
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[4] = 0x09;
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[5] = 0x06;
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[6] = 0x03;
|
||||
priv->cck_txbbgain_table[20].ccktxbb_valuearray[7] = 0x01;
|
||||
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[0] = 0x10;
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[1] = 0x10;
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[2] = 0x0e;
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[3] = 0x0b;
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[4] = 0x08;
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[5] = 0x05;
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[6] = 0x03;
|
||||
priv->cck_txbbgain_table[21].ccktxbb_valuearray[7] = 0x01;
|
||||
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[0] = 0x0f;
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[1] = 0x0f;
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[2] = 0x0d;
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[3] = 0x0b;
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[4] = 0x08;
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[5] = 0x05;
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[6] = 0x03;
|
||||
priv->cck_txbbgain_table[22].ccktxbb_valuearray[7] = 0x01;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[0] = 0x36;
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[1] = 0x35;
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[2] = 0x2e;
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[3] = 0x1b;
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[0] = 0x33;
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[1] = 0x32;
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[2] = 0x2b;
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[3] = 0x19;
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[0] = 0x30;
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[1] = 0x2f;
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[2] = 0x29;
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[3] = 0x18;
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[0] = 0x2d;
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[1] = 0x2d;
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[2] = 0x27;
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[3] = 0x17;
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[0] = 0x2b;
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[1] = 0x2a;
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[2] = 0x25;
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[3] = 0x15;
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[0] = 0x28;
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[1] = 0x28;
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[2] = 0x22;
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[3] = 0x14;
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[0] = 0x26;
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[1] = 0x25;
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[2] = 0x21;
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[3] = 0x13;
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[0] = 0x24;
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[1] = 0x23;
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[2] = 0x1f;
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[3] = 0x12;
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[0] = 0x22;
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[1] = 0x21;
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[2] = 0x1d;
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[3] = 0x11;
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[0] = 0x20;
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[1] = 0x20;
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[2] = 0x1b;
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[3] = 0x10;
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[0] = 0x1f;
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[1] = 0x1e;
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[2] = 0x1a;
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[3] = 0x0f;
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[0] = 0x1d;
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[1] = 0x1c;
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[2] = 0x18;
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[3] = 0x0e;
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[0] = 0x1b;
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[1] = 0x1a;
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[2] = 0x17;
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[3] = 0x0e;
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[0] = 0x1a;
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[1] = 0x19;
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[2] = 0x16;
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[3] = 0x0d;
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[0] = 0x18;
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[1] = 0x17;
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[2] = 0x15;
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[3] = 0x0c;
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[0] = 0x17;
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[1] = 0x16;
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[2] = 0x13;
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[3] = 0x0b;
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[0] = 0x16;
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[1] = 0x15;
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[2] = 0x12;
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[3] = 0x0b;
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[0] = 0x14;
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[1] = 0x14;
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[2] = 0x11;
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[3] = 0x0a;
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[0] = 0x13;
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[1] = 0x13;
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[2] = 0x10;
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[3] = 0x0a;
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[0] = 0x12;
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[1] = 0x12;
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[2] = 0x0f;
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[3] = 0x09;
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[0] = 0x11;
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[1] = 0x11;
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[2] = 0x0f;
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[3] = 0x09;
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[0] = 0x10;
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[1] = 0x10;
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[2] = 0x0e;
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[3] = 0x08;
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[0] = 0x0f;
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[1] = 0x0f;
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[2] = 0x0d;
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[3] = 0x08;
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[4] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[5] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[6] = 0x00;
|
||||
priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[7] = 0x00;
|
||||
|
||||
priv->btxpower_tracking = true;
|
||||
priv->txpower_count = 0;
|
||||
priv->btxpower_trackingInit = false;
|
||||
|
@ -1436,39 +1039,38 @@ static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14)
|
|||
{
|
||||
u32 TempVal;
|
||||
struct r8192_priv *priv = rtllib_priv(dev);
|
||||
u8 attenuation = (u8)priv->CCKPresentAttentuation;
|
||||
|
||||
TempVal = 0;
|
||||
if (!bInCH14) {
|
||||
TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] +
|
||||
(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8));
|
||||
TempVal = (u32)(dm_cck_tx_bb_gain[attenuation][0] +
|
||||
(dm_cck_tx_bb_gain[attenuation][1] << 8));
|
||||
|
||||
rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
|
||||
TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] +
|
||||
(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) +
|
||||
(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16)+
|
||||
(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24));
|
||||
TempVal = (u32)((dm_cck_tx_bb_gain[attenuation][2]) +
|
||||
(dm_cck_tx_bb_gain[attenuation][3] << 8) +
|
||||
(dm_cck_tx_bb_gain[attenuation][4] << 16)+
|
||||
(dm_cck_tx_bb_gain[attenuation][5] << 24));
|
||||
rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
|
||||
TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] +
|
||||
(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8));
|
||||
TempVal = (u32)(dm_cck_tx_bb_gain[attenuation][6] +
|
||||
(dm_cck_tx_bb_gain[attenuation][7] << 8));
|
||||
|
||||
rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal);
|
||||
} else {
|
||||
TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] +
|
||||
(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8));
|
||||
TempVal = (u32)((dm_cck_tx_bb_gain_ch14[attenuation][0]) +
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][1] << 8));
|
||||
|
||||
rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
|
||||
TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] +
|
||||
(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) +
|
||||
(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16)+
|
||||
(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24));
|
||||
TempVal = (u32)((dm_cck_tx_bb_gain_ch14[attenuation][2]) +
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][3] << 8) +
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][4] << 16)+
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][5] << 24));
|
||||
rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
|
||||
TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] +
|
||||
(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8));
|
||||
TempVal = (u32)((dm_cck_tx_bb_gain_ch14[attenuation][6]) +
|
||||
(dm_cck_tx_bb_gain_ch14[attenuation][7] << 8));
|
||||
|
||||
rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH14)
|
||||
|
@ -1535,26 +1137,30 @@ static void dm_txpower_reset_recovery(struct net_device *dev)
|
|||
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Start Reset Recovery ==>\n");
|
||||
rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord,
|
||||
priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfa_txpowertrackingindex]);
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in 0xc80 is %08x\n",
|
||||
priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbbgain_value);
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in RFA_txPowerTrackingIndex is %x\n",
|
||||
dm_tx_bb_gain[priv->rfa_txpowertrackingindex]);
|
||||
RT_TRACE(COMP_POWER_TRACKING,
|
||||
"Reset Recovery: Fill in RFA_txPowerTrackingIndex is %x\n",
|
||||
priv->rfa_txpowertrackingindex);
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery : RF A I/Q Amplify Gain is %ld\n",
|
||||
priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbb_iq_amplifygain);
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: CCK Attenuation is %d dB\n",
|
||||
RT_TRACE(COMP_POWER_TRACKING,
|
||||
"Reset Recovery : RF A I/Q Amplify Gain is %d\n",
|
||||
dm_tx_bb_gain_idx_to_amplify(priv->rfa_txpowertrackingindex));
|
||||
RT_TRACE(COMP_POWER_TRACKING,
|
||||
"Reset Recovery: CCK Attenuation is %d dB\n",
|
||||
priv->CCKPresentAttentuation);
|
||||
dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
|
||||
|
||||
rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord,
|
||||
priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbbgain_value);
|
||||
dm_tx_bb_gain[priv->rfc_txpowertrackingindex]);
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in 0xc90 is %08x\n",
|
||||
priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbbgain_value);
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in RFC_txPowerTrackingIndex is %x\n",
|
||||
dm_tx_bb_gain[priv->rfc_txpowertrackingindex]);
|
||||
RT_TRACE(COMP_POWER_TRACKING,
|
||||
"Reset Recovery: Fill in RFC_txPowerTrackingIndex is %x\n",
|
||||
priv->rfc_txpowertrackingindex);
|
||||
RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery : RF C I/Q Amplify Gain is %ld\n",
|
||||
priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbb_iq_amplifygain);
|
||||
|
||||
RT_TRACE(COMP_POWER_TRACKING,
|
||||
"Reset Recovery : RF C I/Q Amplify Gain is %d\n",
|
||||
dm_tx_bb_gain_idx_to_amplify(priv->rfc_txpowertrackingindex));
|
||||
}
|
||||
|
||||
void dm_restore_dynamic_mechanism_state(struct net_device *dev)
|
||||
|
|
|
@ -252,11 +252,20 @@ extern u8 dm_shadow[16][256];
|
|||
extern struct drx_path_sel DM_RxPathSelTable;
|
||||
|
||||
extern u8 test_flag;
|
||||
|
||||
/* Pre-calculated gain tables */
|
||||
extern const u32 dm_tx_bb_gain[TxBBGainTableLength];
|
||||
extern const u8 dm_cck_tx_bb_gain[CCKTxBBGainTableLength][8];
|
||||
extern const u8 dm_cck_tx_bb_gain_ch14[CCKTxBBGainTableLength][8];
|
||||
/* Maps table index to iq amplify gain (dB, 12 to -24dB) */
|
||||
#define dm_tx_bb_gain_idx_to_amplify(idx) (-idx + 12)
|
||||
|
||||
/*------------------------Export global variable----------------------------*/
|
||||
|
||||
|
||||
/*--------------------------Exported Function prototype---------------------*/
|
||||
/*--------------------------Exported Function prototype---------------------*/
|
||||
|
||||
extern void init_hal_dm(struct net_device *dev);
|
||||
extern void deinit_hal_dm(struct net_device *dev);
|
||||
|
||||
|
|
Loading…
Reference in New Issue