Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion hal/rtl8812a/rtl8812a_dm.c
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@ void rtl8812_init_dm_priv(IN PADAPTER Adapter)
PHYDM_InitDebugSetting(podmpriv);

pHalData->TxPwrInPercentage = TX_PWR_PERCENTAGE_3;

pHalData->CurrentTxPwrIdx = 18;
}

void rtl8812_deinit_dm_priv(IN PADAPTER Adapter)
Expand Down
2 changes: 2 additions & 0 deletions hal/rtl8812a/rtl8812a_phycfg.c
Original file line number Diff line number Diff line change
Expand Up @@ -565,6 +565,8 @@ phy_TxPwrAdjInPercentage(
*pTxPwrIdx -=6;
}

*pTxPwrIdx += pHalData->CurrentTxPwrIdx;

if(*pTxPwrIdx > RF6052_MAX_TX_PWR) // Avoid underflow condition.
*pTxPwrIdx = RF6052_MAX_TX_PWR;
}
Expand Down
1 change: 1 addition & 0 deletions include/hal_data.h
Original file line number Diff line number Diff line change
Expand Up @@ -389,6 +389,7 @@ typedef struct hal_com_data
u8 CurrentOfdm24GTxPwrIdx;
u8 CurrentBW2024GTxPwrIdx;
u8 CurrentBW4024GTxPwrIdx;
u8 CurrentTxPwrIdx;

// Read/write are allow for following hardware information variables
u8 pwrGroupCnt;
Expand Down
49 changes: 21 additions & 28 deletions os_dep/linux/ioctl_cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#define _IOCTL_CFG80211_C_

#include <drv_types.h>
#include <hal_data.h>

#ifdef CONFIG_IOCTL_CFG80211

Expand Down Expand Up @@ -3427,38 +3428,29 @@ static int cfg80211_rtw_set_txpower(struct wiphy *wiphy,
struct wireless_dev *wdev,
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) || defined(COMPAT_KERNEL_RELEASE)
enum nl80211_tx_power_setting type, int mbm)
enum nl80211_tx_power_setting type, int value)
#else
enum tx_power_setting type, int dbm)
enum tx_power_setting type, int value)
#endif
{
#if 0
struct iwm_priv *iwm = wiphy_to_iwm(wiphy);
int ret;
if (type != NL80211_TX_POWER_FIXED)
return -EOPNOTSUPP;

switch (type) {
case NL80211_TX_POWER_AUTOMATIC:
return 0;
case NL80211_TX_POWER_FIXED:
if (mbm < 0 || (mbm % 100))
return -EOPNOTSUPP;
_adapter *padapter = wiphy_to_adapter(wiphy);
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);

if (!test_bit(IWM_STATUS_READY, &iwm->status))
return 0;
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) || defined(COMPAT_KERNEL_RELEASE)
value /= 100;
#endif

ret = iwm_umac_set_config_fix(iwm, UMAC_PARAM_TBL_CFG_FIX,
CFG_TX_PWR_LIMIT_USR,
MBM_TO_DBM(mbm) * 2);
if (ret < 0)
return ret;
if(value < 0)
value = 0;
if(value > 40)
value = 40;

pHalData->CurrentTxPwrIdx = value;
rtw_hal_set_tx_power_level(padapter, pHalData->CurrentChannel);

return iwm_tx_power_trigger(iwm);
default:
IWM_ERR(iwm, "Unsupported power type: %d\n", type);
return -EOPNOTSUPP;
}
#endif
DBG_8192C("%s\n", __func__);
return 0;
}

Expand All @@ -3468,10 +3460,11 @@ static int cfg80211_rtw_get_txpower(struct wiphy *wiphy,
#endif
int *dbm)
{
DBG_8192C("%s\n", __func__);
_adapter *padapter = wiphy_to_adapter(wiphy);
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);

*dbm = pHalData->CurrentTxPwrIdx;

*dbm = (12);

return 0;
}

Expand Down