OSDN Git Service

rtw89: include subband type in channel params
authorZong-Zhe Yang <kevin_yang@realtek.com>
Thu, 13 Jan 2022 01:10:42 +0000 (09:10 +0800)
committerKalle Valo <kvalo@kernel.org>
Fri, 28 Jan 2022 15:57:23 +0000 (17:57 +0200)
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 <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220113011042.6705-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.c
drivers/net/wireless/realtek/rtw89/core.h

index 36a25d0..b105e59 100644 (file)
@@ -232,6 +232,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;
@@ -291,11 +292,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)
@@ -322,21 +340,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);
 
index cb3447a..b7e26cf 100644 (file)
@@ -570,6 +570,7 @@ struct rtw89_channel_params {
        u8 bandwidth;
        u8 pri_ch_idx;
        u8 band_type;
+       u8 subband_type;
 };
 
 struct rtw89_channel_help_params {