void rtl8188e_PHY_RF6052SetOFDMTxPower( struct adapter *Adapter, u8 *pPowerLevelOFDM, u8 *pPowerLevelBW20, u8 *pPowerLevelBW40, u8 Channel) { struct hal_data_8188e *pHalData = GET_HAL_DATA(Adapter); u32 writeVal[2], powerBase0[2], powerBase1[2], pwrtrac_value; u8 direction; u8 index = 0; getpowerbase88e(Adapter, pPowerLevelOFDM, pPowerLevelBW20, pPowerLevelBW40, Channel, &powerBase0[0], &powerBase1[0]); /* 2012/04/23 MH According to power tracking value, we need to revise OFDM tx power. */ /* This is ued to fix unstable power tracking mode. */ ODM_TxPwrTrackAdjust88E(&pHalData->odmpriv, 0, &direction, &pwrtrac_value); for (index = 0; index < 6; index++) { get_rx_power_val_by_reg(Adapter, Channel, index, &powerBase0[0], &powerBase1[0], &writeVal[0]); if (direction == 1) { writeVal[0] += pwrtrac_value; writeVal[1] += pwrtrac_value; } else if (direction == 2) { writeVal[0] -= pwrtrac_value; writeVal[1] -= pwrtrac_value; } writeOFDMPowerReg88E(Adapter, index, &writeVal[0]); } }
void rtl88eu_phy_rf6052_set_ofdm_txpower(struct adapter *adapt, u8 *pwr_level_ofdm, u8 *pwr_level_bw20, u8 *pwr_level_bw40, u8 channel) { struct hal_data_8188e *hal_data = GET_HAL_DATA(adapt); u32 write_val[2], powerbase0[2], powerbase1[2], pwrtrac_value; u8 direction; u8 index = 0; getpowerbase88e(adapt, pwr_level_ofdm, pwr_level_bw20, pwr_level_bw40, channel, &powerbase0[0], &powerbase1[0]); rtl88eu_dm_txpower_track_adjust(&hal_data->odmpriv, 0, &direction, &pwrtrac_value); for (index = 0; index < 6; index++) { get_rx_power_val_by_reg(adapt, channel, index, &powerbase0[0], &powerbase1[0], &write_val[0]); if (direction == 1) { write_val[0] += pwrtrac_value; write_val[1] += pwrtrac_value; } else if (direction == 2) { write_val[0] -= pwrtrac_value; write_val[1] -= pwrtrac_value; } write_ofdm_pwr_reg(adapt, index, &write_val[0]); } }