The previous implementation performs check for the band in each iteration, which is unnecessary and further more there is a else condition which will never get triggered, since a check is done to see if the band is either 2G or 5G earlier and the band either be any of those 2. We can refactor this by assigning a pointer to the appropriate power offset array based on the band before the loop and updating this. Signed-off-by: Mohammed Anees <pvmohammedanees2003@xxxxxxxxx> --- drivers/net/wireless/realtek/rtw88/phy.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/net/wireless/realtek/rtw88/phy.c b/drivers/net/wireless/realtek/rtw88/phy.c index 37ef80c9091d..17d61f1d9257 100644 --- a/drivers/net/wireless/realtek/rtw88/phy.c +++ b/drivers/net/wireless/realtek/rtw88/phy.c @@ -1465,15 +1465,14 @@ static void rtw_phy_store_tx_power_by_rate(struct rtw_dev *rtwdev, rate_num > RTW_RF_PATH_MAX)) return; + s8 (*tx_pwr_by_rate_offset) = (band == PHY_BANK_2G) + ? hal->tx_pwr_by_rate_offset_2g[rfpath] + : hal->tx_pwr_by_rate_offset_5g[rfpath]; + for (i = 0; i < rate_num; i++) { offset = pwr_by_rate[i]; rate = rates[i]; - if (band == PHY_BAND_2G) - hal->tx_pwr_by_rate_offset_2g[rfpath][rate] = offset; - else if (band == PHY_BAND_5G) - hal->tx_pwr_by_rate_offset_5g[rfpath][rate] = offset; - else - continue; + tx_pwr_by_rate_offset[rate] = offset; } } -- 2.47.0