Commit 76403816 authored by Yan-Hsuan Chuang's avatar Yan-Hsuan Chuang Committed by Kalle Valo

rtw88: fix incorrect tx power limit at 5G

Tx power limit is stored separately by 2G and 5G.
But driver did not get tx power limit from 5G and causes incorrect tx
power. Check if the channel is beyond 2G and get the corresponding tx
power limit.
Signed-off-by: default avatarYan-Hsuan Chuang <yhchuang@realtek.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 52280149
...@@ -1466,15 +1466,6 @@ static u8 rtw_phy_get_5g_tx_power_index(struct rtw_dev *rtwdev, ...@@ -1466,15 +1466,6 @@ static u8 rtw_phy_get_5g_tx_power_index(struct rtw_dev *rtwdev,
return tx_power; return tx_power;
} }
static s8 __rtw_phy_get_tx_power_limit(struct rtw_hal *hal,
u8 bw, u8 rs, u8 ch, u8 regd)
{
if (regd > RTW_REGD_WW)
return RTW_MAX_POWER_INDEX;
return hal->tx_pwr_limit_2g[regd][bw][rs][ch];
}
static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band, static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band,
enum rtw_bandwidth bw, u8 rf_path, enum rtw_bandwidth bw, u8 rf_path,
u8 rate, u8 channel, u8 regd) u8 rate, u8 channel, u8 regd)
...@@ -1484,6 +1475,9 @@ static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band, ...@@ -1484,6 +1475,9 @@ static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band,
u8 rs; u8 rs;
int ch_idx; int ch_idx;
if (regd > RTW_REGD_WW)
return RTW_MAX_POWER_INDEX;
if (rate >= DESC_RATE1M && rate <= DESC_RATE11M) if (rate >= DESC_RATE1M && rate <= DESC_RATE11M)
rs = RTW_RATE_SECTION_CCK; rs = RTW_RATE_SECTION_CCK;
else if (rate >= DESC_RATE6M && rate <= DESC_RATE54M) else if (rate >= DESC_RATE6M && rate <= DESC_RATE54M)
...@@ -1503,7 +1497,10 @@ static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band, ...@@ -1503,7 +1497,10 @@ static s8 rtw_phy_get_tx_power_limit(struct rtw_dev *rtwdev, u8 band,
if (ch_idx < 0) if (ch_idx < 0)
goto err; goto err;
power_limit = __rtw_phy_get_tx_power_limit(hal, bw, rs, ch_idx, regd); if (channel <= RTW_MAX_CHANNEL_NUM_2G)
power_limit = hal->tx_pwr_limit_2g[regd][bw][rs][ch_idx];
else
power_limit = hal->tx_pwr_limit_5g[regd][bw][rs][ch_idx];
return power_limit; return power_limit;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment