1 // SPDX-License-Identifier: GPL-2.0
2 /******************************************************************************
4 * Copyright(c) 2007 - 2016 Realtek Corporation.
7 * wlanfae <wlanfae@realtek.com>
8 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,
11 * Larry Finger <Larry.Finger@lwfinger.net>
13 *****************************************************************************/
15 /* ************************************************************
17 * *************************************************************/
18 #include "mp_precomp.h"
19 #include "phydm_precomp.h"
21 void odm_dynamic_tx_power_init(void *dm_void)
23 struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
25 dm->last_dtp_lvl = tx_high_pwr_level_normal;
26 dm->dynamic_tx_high_power_lvl = tx_high_pwr_level_normal;
27 dm->tx_agc_ofdm_18_6 =
28 odm_get_bb_reg(dm, 0xC24, MASKDWORD); /*TXAGC {18M 12M 9M 6M}*/
31 void odm_dynamic_tx_power_save_power_index(void *dm_void) {}
33 void odm_dynamic_tx_power_restore_power_index(void *dm_void) {}
35 void odm_dynamic_tx_power_write_power_index(void *dm_void, u8 value)
37 struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
39 u32 power_index_reg[6] = {0xc90, 0xc91, 0xc92, 0xc98, 0xc99, 0xc9a};
41 for (index = 0; index < 6; index++)
42 odm_write_1byte(dm, power_index_reg[index], value);
45 static void odm_dynamic_tx_power_nic_ce(void *dm_void) {}
47 void odm_dynamic_tx_power(void *dm_void)
50 /* For AP/ADSL use struct rtl8192cd_priv* */
51 /* For CE/NIC use struct void* */
53 struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
55 if (!(dm->support_ability & ODM_BB_DYNAMIC_TXPWR))
57 /* 2011/09/29 MH In HW integration first stage, we provide 4 different
58 * handle to operate at the same time.
59 * In the stage2/3, we need to prive universal interface and merge all
60 * HW dynamic mechanism.
62 switch (dm->support_platform) {
64 odm_dynamic_tx_power_nic(dm);
67 odm_dynamic_tx_power_nic_ce(dm);
70 odm_dynamic_tx_power_ap(dm);
77 void odm_dynamic_tx_power_nic(void *dm_void)
79 struct phy_dm_struct *dm = (struct phy_dm_struct *)dm_void;
81 if (!(dm->support_ability & ODM_BB_DYNAMIC_TXPWR))
85 void odm_dynamic_tx_power_ap(void *dm_void
91 void odm_dynamic_tx_power_8821(void *dm_void, u8 *desc, u8 mac_id) {}