Implemented txpower control

This commit is contained in:
kimocoder 2018-07-16 22:14:20 +02:00
parent b32acfe64d
commit f6461d311d
3 changed files with 27 additions and 2 deletions

View File

@ -36,7 +36,7 @@ CONFIG_AUTOCFG_CP = n
CONFIG_MULTIDRV = n CONFIG_MULTIDRV = n
CONFIG_RTL8188E = n CONFIG_RTL8188E = n
CONFIG_RTL8812A = y CONFIG_RTL8812A = y
CONFIG_RTL8821A = y CONFIG_RTL8821A = n
CONFIG_RTL8192E = n CONFIG_RTL8192E = n
CONFIG_RTL8723B = n CONFIG_RTL8723B = n
CONFIG_RTL8814A = n CONFIG_RTL8814A = n

View File

@ -344,6 +344,7 @@ void rtl8812_init_dm_priv(IN PADAPTER Adapter)
Init_ODM_ComInfo_8812(Adapter); Init_ODM_ComInfo_8812(Adapter);
odm_init_all_timers(podmpriv); odm_init_all_timers(podmpriv);
pHalData->CurrentTxPwrIdx = 13;
} }
void rtl8812_deinit_dm_priv(IN PADAPTER Adapter) void rtl8812_deinit_dm_priv(IN PADAPTER Adapter)

View File

@ -3581,6 +3581,26 @@ static int cfg80211_rtw_set_txpower(struct wiphy *wiphy,
enum tx_power_setting type, int dbm) enum tx_power_setting type, int dbm)
#endif #endif
{ {
_adapter *padapter = wiphy_to_adapter(wiphy);
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
int value;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) || defined(COMPAT_KERNEL_RELEASE)
value = mbm/100;
#else
value = dbm;
#endif
if(value < 0)
value = 0;
if(value > 40)
value = 40;
if(type == NL80211_TX_POWER_FIXED) {
pHalData->CurrentTxPwrIdx = value;
rtw_hal_set_tx_power_level(padapter, pHalData->current_channel);
} else
return -EOPNOTSUPP;
#if 0 #if 0
struct iwm_priv *iwm = wiphy_to_iwm(wiphy); struct iwm_priv *iwm = wiphy_to_iwm(wiphy);
int ret; int ret;
@ -3617,9 +3637,13 @@ static int cfg80211_rtw_get_txpower(struct wiphy *wiphy,
#endif #endif
int *dbm) int *dbm)
{ {
_adapter *padapter = wiphy_to_adapter(wiphy);
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
RTW_INFO("%s\n", __func__); RTW_INFO("%s\n", __func__);
*dbm = (12); // *dbm = (12);
*dbm = pHalData->CurrentTxPwrIdx;
return 0; return 0;
} }