2022-01-13 06:49:09

by Pkshih

[permalink] [raw]
Subject: [PATCH 2/2] rtw89: include subband type in channel params

From: Zong-Zhe Yang <[email protected]>

Make stuffs related to channel be collected in channel_params,
and encapsulate the corresponding decision in get_channel_params().
Then, functions that takes channel_params can also notice subband type.

Signed-off-by: Zong-Zhe Yang <[email protected]>
Signed-off-by: Ping-Ke Shih <[email protected]>
---
drivers/net/wireless/realtek/rtw89/core.c | 34 +++++++++++++----------
drivers/net/wireless/realtek/rtw89/core.h | 1 +
2 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw89/core.c b/drivers/net/wireless/realtek/rtw89/core.c
index e7ca3db4b4cf5..805c9c0e57e55 100644
--- a/drivers/net/wireless/realtek/rtw89/core.c
+++ b/drivers/net/wireless/realtek/rtw89/core.c
@@ -230,6 +230,7 @@ static void rtw89_get_channel_params(struct cfg80211_chan_def *chandef,
u8 bandwidth = RTW89_CHANNEL_WIDTH_20;
u8 primary_chan_idx = 0;
u8 band;
+ u8 subband;

center_chan = channel->hw_value;
primary_freq = channel->center_freq;
@@ -289,11 +290,28 @@ static void rtw89_get_channel_params(struct cfg80211_chan_def *chandef,
break;
}

+ switch (center_chan) {
+ default:
+ case 1 ... 14:
+ subband = RTW89_CH_2G;
+ break;
+ case 36 ... 64:
+ subband = RTW89_CH_5G_BAND_1;
+ break;
+ case 100 ... 144:
+ subband = RTW89_CH_5G_BAND_3;
+ break;
+ case 149 ... 177:
+ subband = RTW89_CH_5G_BAND_4;
+ break;
+ }
+
chan_param->center_chan = center_chan;
chan_param->primary_chan = channel->hw_value;
chan_param->bandwidth = bandwidth;
chan_param->pri_ch_idx = primary_chan_idx;
chan_param->band_type = band;
+ chan_param->subband_type = subband;
}

void rtw89_set_channel(struct rtw89_dev *rtwdev)
@@ -320,21 +338,7 @@ void rtw89_set_channel(struct rtw89_dev *rtwdev)
hal->prev_primary_channel = hal->current_primary_channel;
hal->current_primary_channel = ch_param.primary_chan;
hal->current_band_type = ch_param.band_type;
-
- switch (center_chan) {
- case 1 ... 14:
- hal->current_subband = RTW89_CH_2G;
- break;
- case 36 ... 64:
- hal->current_subband = RTW89_CH_5G_BAND_1;
- break;
- case 100 ... 144:
- hal->current_subband = RTW89_CH_5G_BAND_3;
- break;
- case 149 ... 177:
- hal->current_subband = RTW89_CH_5G_BAND_4;
- break;
- }
+ hal->current_subband = ch_param.subband_type;

rtw89_chip_set_channel_prepare(rtwdev, &bak);

diff --git a/drivers/net/wireless/realtek/rtw89/core.h b/drivers/net/wireless/realtek/rtw89/core.h
index bec1e640cd71b..feffad4ffd68c 100644
--- a/drivers/net/wireless/realtek/rtw89/core.h
+++ b/drivers/net/wireless/realtek/rtw89/core.h
@@ -575,6 +575,7 @@ struct rtw89_channel_params {
u8 bandwidth;
u8 pri_ch_idx;
u8 band_type;
+ u8 subband_type;
};

struct rtw89_channel_help_params {
--
2.25.1