Commit 24e65aac authored by Fabio Aiuto's avatar Fabio Aiuto Committed by Greg Kroah-Hartman

staging: rtl8723bs: remove rf type branching (fourth patch)

remove all function calls to rtw_get_hw_reg made to
read HW_VAR_RF_TYPE and get value of rt_type, which
is always 1T1R. Clean up code on removal sites,
keeping 1T1R code unconditionally.
Signed-off-by: default avatarFabio Aiuto <fabioaiuto83@gmail.com>
Link: https://lore.kernel.org/r/8ca2f788c42d81b9cb4dbc46e23c7549dc27d081.1628329348.git.fabioaiuto83@gmail.comSigned-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent f75b87a6
...@@ -1034,7 +1034,6 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) ...@@ -1034,7 +1034,6 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len)
(pbss_network->ie_length - _BEACON_IE_OFFSET_) (pbss_network->ie_length - _BEACON_IE_OFFSET_)
); );
if (p && ie_len > 0) { if (p && ie_len > 0) {
u8 rf_type = 0;
u8 max_rx_ampdu_factor = 0; u8 max_rx_ampdu_factor = 0;
struct ieee80211_ht_cap *pht_cap = (struct ieee80211_ht_cap *)(p + 2); struct ieee80211_ht_cap *pht_cap = (struct ieee80211_ht_cap *)(p + 2);
...@@ -1080,11 +1079,8 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len) ...@@ -1080,11 +1079,8 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len)
IEEE80211_HT_CAP_AMPDU_FACTOR & max_rx_ampdu_factor IEEE80211_HT_CAP_AMPDU_FACTOR & max_rx_ampdu_factor
); /* set Max Rx AMPDU size to 64K */ ); /* set Max Rx AMPDU size to 64K */
rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
if (rf_type == RF_1T1R) {
pht_cap->mcs.rx_mask[0] = 0xff; pht_cap->mcs.rx_mask[0] = 0xff;
pht_cap->mcs.rx_mask[1] = 0x0; pht_cap->mcs.rx_mask[1] = 0x0;
}
memcpy(&pmlmepriv->htpriv.ht_cap, p + 2, ie_len); memcpy(&pmlmepriv->htpriv.ht_cap, p + 2, ie_len);
} }
......
...@@ -58,21 +58,11 @@ static void dump_4_rf_regs(struct adapter *adapter, int path, int offset) ...@@ -58,21 +58,11 @@ static void dump_4_rf_regs(struct adapter *adapter, int path, int offset)
void rf_reg_dump(struct adapter *adapter) void rf_reg_dump(struct adapter *adapter)
{ {
int i, path; int i, path = 0;
u8 rf_type = 0;
u8 path_nums = 0;
rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
if ((RF_1T2R == rf_type) || (RF_1T1R == rf_type))
path_nums = 1;
else
path_nums = 2;
netdev_dbg(adapter->pnetdev, "======= RF REG =======\n"); netdev_dbg(adapter->pnetdev, "======= RF REG =======\n");
for (path = 0; path < path_nums; path++) {
netdev_dbg(adapter->pnetdev, "RF_Path(%x)\n", path); netdev_dbg(adapter->pnetdev, "RF_Path(%x)\n", path);
for (i = 0; i < 0x100; i++) for (i = 0; i < 0x100; i++)
dump_4_rf_regs(adapter, path, i); dump_4_rf_regs(adapter, path, i);
}
} }
...@@ -1106,11 +1106,10 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork) ...@@ -1106,11 +1106,10 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork)
} }
/* show MCS rate, unit: 100Kbps */ /* show MCS rate, unit: 100Kbps */
u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate) u16 rtw_mcs_rate(u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate)
{ {
u16 max_rate = 0; u16 max_rate = 0;
if (rf_type == RF_1T1R) {
if (MCS_rate[0] & BIT(7)) if (MCS_rate[0] & BIT(7))
max_rate = (bw_40MHz) ? ((short_GI)?1500:1350):((short_GI)?722:650); max_rate = (bw_40MHz) ? ((short_GI)?1500:1350):((short_GI)?722:650);
else if (MCS_rate[0] & BIT(6)) else if (MCS_rate[0] & BIT(6))
...@@ -1127,43 +1126,7 @@ u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate) ...@@ -1127,43 +1126,7 @@ u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate)
max_rate = (bw_40MHz) ? ((short_GI)?300:270):((short_GI)?144:130); max_rate = (bw_40MHz) ? ((short_GI)?300:270):((short_GI)?144:130);
else if (MCS_rate[0] & BIT(0)) else if (MCS_rate[0] & BIT(0))
max_rate = (bw_40MHz) ? ((short_GI)?150:135):((short_GI)?72:65); max_rate = (bw_40MHz) ? ((short_GI)?150:135):((short_GI)?72:65);
} else {
if (MCS_rate[1]) {
if (MCS_rate[1] & BIT(7))
max_rate = (bw_40MHz) ? ((short_GI)?3000:2700):((short_GI)?1444:1300);
else if (MCS_rate[1] & BIT(6))
max_rate = (bw_40MHz) ? ((short_GI)?2700:2430):((short_GI)?1300:1170);
else if (MCS_rate[1] & BIT(5))
max_rate = (bw_40MHz) ? ((short_GI)?2400:2160):((short_GI)?1156:1040);
else if (MCS_rate[1] & BIT(4))
max_rate = (bw_40MHz) ? ((short_GI)?1800:1620):((short_GI)?867:780);
else if (MCS_rate[1] & BIT(3))
max_rate = (bw_40MHz) ? ((short_GI)?1200:1080):((short_GI)?578:520);
else if (MCS_rate[1] & BIT(2))
max_rate = (bw_40MHz) ? ((short_GI)?900:810):((short_GI)?433:390);
else if (MCS_rate[1] & BIT(1))
max_rate = (bw_40MHz) ? ((short_GI)?600:540):((short_GI)?289:260);
else if (MCS_rate[1] & BIT(0))
max_rate = (bw_40MHz) ? ((short_GI)?300:270):((short_GI)?144:130);
} else {
if (MCS_rate[0] & BIT(7))
max_rate = (bw_40MHz) ? ((short_GI)?1500:1350):((short_GI)?722:650);
else if (MCS_rate[0] & BIT(6))
max_rate = (bw_40MHz) ? ((short_GI)?1350:1215):((short_GI)?650:585);
else if (MCS_rate[0] & BIT(5))
max_rate = (bw_40MHz) ? ((short_GI)?1200:1080):((short_GI)?578:520);
else if (MCS_rate[0] & BIT(4))
max_rate = (bw_40MHz) ? ((short_GI)?900:810):((short_GI)?433:390);
else if (MCS_rate[0] & BIT(3))
max_rate = (bw_40MHz) ? ((short_GI)?600:540):((short_GI)?289:260);
else if (MCS_rate[0] & BIT(2))
max_rate = (bw_40MHz) ? ((short_GI)?450:405):((short_GI)?217:195);
else if (MCS_rate[0] & BIT(1))
max_rate = (bw_40MHz) ? ((short_GI)?300:270):((short_GI)?144:130);
else if (MCS_rate[0] & BIT(0))
max_rate = (bw_40MHz) ? ((short_GI)?150:135):((short_GI)?72:65);
}
}
return max_rate; return max_rate;
} }
......
...@@ -541,7 +541,6 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter) ...@@ -541,7 +541,6 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network; struct wlan_bssid_ex *pcur_bss = &pmlmepriv->cur_network.network;
struct sta_info *psta = NULL; struct sta_info *psta = NULL;
u8 short_GI = 0; u8 short_GI = 0;
u8 rf_type = 0;
if ((check_fwstate(pmlmepriv, _FW_LINKED) != true) if ((check_fwstate(pmlmepriv, _FW_LINKED) != true)
&& (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) != true)) && (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) != true))
...@@ -554,10 +553,7 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter) ...@@ -554,10 +553,7 @@ u16 rtw_get_cur_max_rate(struct adapter *adapter)
short_GI = query_ra_short_GI(psta); short_GI = query_ra_short_GI(psta);
if (is_supported_ht(psta->wireless_mode)) { if (is_supported_ht(psta->wireless_mode)) {
rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type)); max_rate = rtw_mcs_rate(psta->bw_mode == CHANNEL_WIDTH_40 ? 1 : 0,
max_rate = rtw_mcs_rate(rf_type,
((psta->bw_mode == CHANNEL_WIDTH_40)?1:0),
short_GI, short_GI,
psta->htpriv.ht_cap.mcs.rx_mask); psta->htpriv.ht_cap.mcs.rx_mask);
} else { } else {
......
...@@ -2313,7 +2313,7 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ ...@@ -2313,7 +2313,7 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_
enum ieee80211_max_ampdu_length_exp max_rx_ampdu_factor; enum ieee80211_max_ampdu_length_exp max_rx_ampdu_factor;
unsigned char *p; unsigned char *p;
struct ieee80211_ht_cap ht_capie; struct ieee80211_ht_cap ht_capie;
u8 cbw40_enable = 0, stbc_rx_enable = 0, rf_type = 0, operation_bw = 0; u8 cbw40_enable = 0, stbc_rx_enable = 0, operation_bw = 0;
struct registry_priv *pregistrypriv = &padapter->registrypriv; struct registry_priv *pregistrypriv = &padapter->registrypriv;
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
struct ht_priv *phtpriv = &pmlmepriv->htpriv; struct ht_priv *phtpriv = &pmlmepriv->htpriv;
...@@ -2392,25 +2392,10 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_ ...@@ -2392,25 +2392,10 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_
memcpy(&ht_capie.mcs, pmlmeext->default_supported_mcs_set, 16); memcpy(&ht_capie.mcs, pmlmeext->default_supported_mcs_set, 16);
/* update default supported_mcs_set */ /* update default supported_mcs_set */
rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
switch (rf_type) {
case RF_1T1R:
if (stbc_rx_enable) if (stbc_rx_enable)
ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_RX_STBC_1R);/* RX STBC One spatial stream */ ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_RX_STBC_1R);/* RX STBC One spatial stream */
set_mcs_rate_by_mask(ht_capie.mcs.rx_mask, MCS_RATE_1R); set_mcs_rate_by_mask(ht_capie.mcs.rx_mask, MCS_RATE_1R);
break;
case RF_2T2R:
case RF_1T2R:
default:
if (stbc_rx_enable)
ht_capie.cap_info |= cpu_to_le16(IEEE80211_HT_CAP_RX_STBC_2R);/* RX STBC two spatial stream */
set_mcs_rate_by_mask(ht_capie.mcs.rx_mask, MCS_RATE_2R);
break;
}
{ {
u32 rx_packet_offset, max_recvbuf_sz; u32 rx_packet_offset, max_recvbuf_sz;
...@@ -2510,24 +2495,13 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len, u8 channe ...@@ -2510,24 +2495,13 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len, u8 channe
(le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) & (le16_to_cpu(pmlmeinfo->HT_caps.u.HT_cap_element.HT_caps_info) &
BIT(1)) && (pmlmeinfo->HT_info.infos[0] & BIT(2))) { BIT(1)) && (pmlmeinfo->HT_info.infos[0] & BIT(2))) {
int i; int i;
u8 rf_type;
rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
/* update the MCS set */ /* update the MCS set */
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i]; pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i];
/* update the MCS rates */ /* update the MCS rates */
switch (rf_type) {
case RF_1T1R:
case RF_1T2R:
set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R); set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R);
break;
case RF_2T2R:
default:
set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R);
}
/* switch to the 40M Hz mode according to the AP */ /* switch to the 40M Hz mode according to the AP */
/* pmlmeext->cur_bwmode = CHANNEL_WIDTH_40; */ /* pmlmeext->cur_bwmode = CHANNEL_WIDTH_40; */
......
...@@ -46,16 +46,7 @@ static u8 rtw_basic_rate_ofdm[3] = { ...@@ -46,16 +46,7 @@ static u8 rtw_basic_rate_ofdm[3] = {
u8 networktype_to_raid_ex(struct adapter *adapter, struct sta_info *psta) u8 networktype_to_raid_ex(struct adapter *adapter, struct sta_info *psta)
{ {
u8 raid, cur_rf_type, rf_type = RF_1T1R; u8 raid;
rtw_hal_get_hwreg(adapter, HW_VAR_RF_TYPE, (u8 *)(&cur_rf_type));
if (cur_rf_type == RF_1T1R) {
rf_type = RF_1T1R;
} else if (is_supported_ht(psta->wireless_mode)) {
if (psta->ra_mask & 0xfff00000)
rf_type = RF_2T2R;
}
switch (psta->wireless_mode) { switch (psta->wireless_mode) {
case WIRELESS_11B: case WIRELESS_11B:
...@@ -69,22 +60,13 @@ u8 networktype_to_raid_ex(struct adapter *adapter, struct sta_info *psta) ...@@ -69,22 +60,13 @@ u8 networktype_to_raid_ex(struct adapter *adapter, struct sta_info *psta)
break; break;
case WIRELESS_11_24N: case WIRELESS_11_24N:
case WIRELESS_11G_24N: case WIRELESS_11G_24N:
if (rf_type == RF_2T2R)
raid = RATEID_IDX_GN_N2SS;
else
raid = RATEID_IDX_GN_N1SS; raid = RATEID_IDX_GN_N1SS;
break; break;
case WIRELESS_11B_24N: case WIRELESS_11B_24N:
case WIRELESS_11BG_24N: case WIRELESS_11BG_24N:
if (psta->bw_mode == CHANNEL_WIDTH_20) { if (psta->bw_mode == CHANNEL_WIDTH_20) {
if (rf_type == RF_2T2R)
raid = RATEID_IDX_BGN_20M_2SS_BN;
else
raid = RATEID_IDX_BGN_20M_1SS_BN; raid = RATEID_IDX_BGN_20M_1SS_BN;
} else { } else {
if (rf_type == RF_2T2R)
raid = RATEID_IDX_BGN_40M_2SS;
else
raid = RATEID_IDX_BGN_40M_1SS; raid = RATEID_IDX_BGN_40M_1SS;
} }
break; break;
...@@ -982,7 +964,6 @@ static void bwmode_update_check(struct adapter *padapter, struct ndis_80211_var_ ...@@ -982,7 +964,6 @@ static void bwmode_update_check(struct adapter *padapter, struct ndis_80211_var_
void HT_caps_handler(struct adapter *padapter, struct ndis_80211_var_ie *pIE) void HT_caps_handler(struct adapter *padapter, struct ndis_80211_var_ie *pIE)
{ {
unsigned int i; unsigned int i;
u8 rf_type;
u8 max_AMPDU_len, min_MPDU_spacing; u8 max_AMPDU_len, min_MPDU_spacing;
u8 cur_ldpc_cap = 0, cur_stbc_cap = 0; u8 cur_ldpc_cap = 0, cur_stbc_cap = 0;
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv; struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
...@@ -1018,22 +999,13 @@ void HT_caps_handler(struct adapter *padapter, struct ndis_80211_var_ie *pIE) ...@@ -1018,22 +999,13 @@ void HT_caps_handler(struct adapter *padapter, struct ndis_80211_var_ie *pIE)
pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para = max_AMPDU_len | min_MPDU_spacing; pmlmeinfo->HT_caps.u.HT_cap_element.AMPDU_para = max_AMPDU_len | min_MPDU_spacing;
} }
} }
rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
/* update the MCS set */ /* update the MCS set */
for (i = 0; i < 16; i++) for (i = 0; i < 16; i++)
pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i]; pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate[i] &= pmlmeext->default_supported_mcs_set[i];
/* update the MCS rates */ /* update the MCS rates */
switch (rf_type) {
case RF_1T1R:
case RF_1T2R:
set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R); set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_1R);
break;
case RF_2T2R:
default:
set_mcs_rate_by_mask(pmlmeinfo->HT_caps.u.HT_cap_element.MCS_rate, MCS_RATE_2R);
}
if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) { if (check_fwstate(pmlmepriv, WIFI_AP_STATE)) {
/* Config STBC setting */ /* Config STBC setting */
......
...@@ -545,7 +545,7 @@ u8 rtw_get_mgntframe_raid(struct adapter *adapter, unsigned char network_type) ...@@ -545,7 +545,7 @@ u8 rtw_get_mgntframe_raid(struct adapter *adapter, unsigned char network_type)
void rtw_hal_update_sta_rate_mask(struct adapter *padapter, struct sta_info *psta) void rtw_hal_update_sta_rate_mask(struct adapter *padapter, struct sta_info *psta)
{ {
u8 i, rf_type, limit; u8 i, limit;
u32 tx_ra_bitmap; u32 tx_ra_bitmap;
if (!psta) if (!psta)
...@@ -561,10 +561,6 @@ void rtw_hal_update_sta_rate_mask(struct adapter *padapter, struct sta_info *pst ...@@ -561,10 +561,6 @@ void rtw_hal_update_sta_rate_mask(struct adapter *padapter, struct sta_info *pst
/* n mode ra_bitmap */ /* n mode ra_bitmap */
if (psta->htpriv.ht_option) { if (psta->htpriv.ht_option) {
rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
if (rf_type == RF_2T2R)
limit = 16; /* 2R */
else
limit = 8; /* 1R */ limit = 8; /* 1R */
for (i = 0; i < limit; i++) { for (i = 0; i < limit; i++) {
......
...@@ -779,7 +779,7 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork); ...@@ -779,7 +779,7 @@ void rtw_get_bcn_info(struct wlan_network *pnetwork);
void rtw_macaddr_cfg(struct device *dev, u8 *mac_addr); void rtw_macaddr_cfg(struct device *dev, u8 *mac_addr);
u16 rtw_mcs_rate(u8 rf_type, u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate); u16 rtw_mcs_rate(u8 bw_40MHz, u8 short_GI, unsigned char *MCS_rate);
int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, u8 *action); int rtw_action_frame_parse(const u8 *frame, u32 frame_len, u8 *category, u8 *action);
const char *action_public_str(u8 action); const char *action_public_str(u8 action);
......
...@@ -2755,7 +2755,7 @@ static int cfg80211_rtw_mgmt_tx(struct wiphy *wiphy, ...@@ -2755,7 +2755,7 @@ static int cfg80211_rtw_mgmt_tx(struct wiphy *wiphy,
return ret; return ret;
} }
static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum nl80211_band band, u8 rf_type) static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum nl80211_band band)
{ {
#define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */ #define MAX_BIT_RATE_40MHZ_MCS15 300 /* Mbps */
...@@ -2788,34 +2788,23 @@ static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum ...@@ -2788,34 +2788,23 @@ static void rtw_cfg80211_init_ht_capab(struct ieee80211_sta_ht_cap *ht_cap, enum
*if BW_40 rx_mask[4]= 0x01; *if BW_40 rx_mask[4]= 0x01;
*highest supported RX rate *highest supported RX rate
*/ */
if (rf_type == RF_1T1R) {
ht_cap->mcs.rx_mask[0] = 0xFF; ht_cap->mcs.rx_mask[0] = 0xFF;
ht_cap->mcs.rx_mask[1] = 0x00; ht_cap->mcs.rx_mask[1] = 0x00;
ht_cap->mcs.rx_mask[4] = 0x01; ht_cap->mcs.rx_mask[4] = 0x01;
ht_cap->mcs.rx_highest = cpu_to_le16(MAX_BIT_RATE_40MHZ_MCS7); ht_cap->mcs.rx_highest = cpu_to_le16(MAX_BIT_RATE_40MHZ_MCS7);
} else if ((rf_type == RF_1T2R) || (rf_type == RF_2T2R)) {
ht_cap->mcs.rx_mask[0] = 0xFF;
ht_cap->mcs.rx_mask[1] = 0xFF;
ht_cap->mcs.rx_mask[4] = 0x01;
ht_cap->mcs.rx_highest = cpu_to_le16(MAX_BIT_RATE_40MHZ_MCS15);
}
} }
void rtw_cfg80211_init_wiphy(struct adapter *padapter) void rtw_cfg80211_init_wiphy(struct adapter *padapter)
{ {
u8 rf_type;
struct ieee80211_supported_band *bands; struct ieee80211_supported_band *bands;
struct wireless_dev *pwdev = padapter->rtw_wdev; struct wireless_dev *pwdev = padapter->rtw_wdev;
struct wiphy *wiphy = pwdev->wiphy; struct wiphy *wiphy = pwdev->wiphy;
rtw_hal_get_hwreg(padapter, HW_VAR_RF_TYPE, (u8 *)(&rf_type));
{ {
bands = wiphy->bands[NL80211_BAND_2GHZ]; bands = wiphy->bands[NL80211_BAND_2GHZ];
if (bands) if (bands)
rtw_cfg80211_init_ht_capab(&bands->ht_cap, NL80211_BAND_2GHZ, rf_type); rtw_cfg80211_init_ht_capab(&bands->ht_cap, NL80211_BAND_2GHZ);
} }
/* copy mac_addr to wiphy */ /* copy mac_addr to wiphy */
......
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