Re: [PATCH] staging: r8188eu: use common ieee80211 constants

From: Phillip Potter
Date: Sat Aug 14 2021 - 13:38:00 EST


On Sat, 14 Aug 2021 at 17:56, Michael Straube <straube.linux@xxxxxxxxx> wrote:
>
> Many defined constants in wifi.h are unused and/or available from
> <linux/ieee80211.h>, some with slightly different names. Remove
> the constants from wifi.h and use the common ones. Rename where
> necessary.
>
> Signed-off-by: Michael Straube <straube.linux@xxxxxxxxx>
> ---
> drivers/staging/r8188eu/core/rtw_ap.c | 12 ++---
> drivers/staging/r8188eu/core/rtw_mlme.c | 8 ++--
> drivers/staging/r8188eu/include/wifi.h | 50 --------------------
> drivers/staging/r8188eu/os_dep/ioctl_linux.c | 2 +-
> 4 files changed, 11 insertions(+), 61 deletions(-)
>
> diff --git a/drivers/staging/r8188eu/core/rtw_ap.c b/drivers/staging/r8188eu/core/rtw_ap.c
> index bc4c6dbd5aa3..f1b519d20989 100644
> --- a/drivers/staging/r8188eu/core/rtw_ap.c
> +++ b/drivers/staging/r8188eu/core/rtw_ap.c
> @@ -630,7 +630,7 @@ void update_sta_info_apmode(struct adapter *padapter, struct sta_info *psta)
> phtpriv_sta->sgi = true;
>
> /* bwmode */
> - if ((sta_cap_info & ap_cap_info) & IEEE80211_HT_CAP_SUP_WIDTH) {
> + if ((sta_cap_info & ap_cap_info) & IEEE80211_HT_CAP_SUP_WIDTH_20_40) {
> phtpriv_sta->bwmode = pmlmeext->cur_bwmode;
> phtpriv_sta->ch_offset = pmlmeext->cur_ch_offset;
> }
> @@ -1015,12 +1015,12 @@ int rtw_check_beacon_data(struct adapter *padapter, u8 *pbuf, int len)
>
> if ((psecuritypriv->wpa_pairwise_cipher & WPA_CIPHER_CCMP) ||
> (psecuritypriv->wpa2_pairwise_cipher & WPA_CIPHER_CCMP))
> - pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&(0x07<<2));
> + pht_cap->ampdu_params_info |= (IEEE80211_HT_AMPDU_PARM_DENSITY & (0x07 << 2));
> else
> - pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&0x00);
> + pht_cap->ampdu_params_info |= (IEEE80211_HT_AMPDU_PARM_DENSITY & 0x00);
>
> /* set Max Rx AMPDU size to 64K */
> - pht_cap->ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_FACTOR & 0x03);
> + pht_cap->ampdu_params_info |= (IEEE80211_HT_AMPDU_PARM_FACTOR & 0x03);
>
> if (rf_type == RF_1T1R) {
> pht_cap->mcs.rx_mask[0] = 0xff;
> @@ -1447,7 +1447,7 @@ static int rtw_ht_operation_update(struct adapter *padapter)
> (pmlmepriv->ht_op_mode & HT_INFO_OPERATION_MODE_NON_GF_DEVS_PRESENT))
> new_op_mode = OP_MODE_MIXED;
> else if ((le16_to_cpu(phtpriv_ap->ht_cap.cap_info) &
> - IEEE80211_HT_CAP_SUP_WIDTH) &&
> + IEEE80211_HT_CAP_SUP_WIDTH_20_40) &&
> pmlmepriv->num_sta_ht_20mhz)
> new_op_mode = OP_MODE_20MHZ_HT_STA_ASSOCED;
> else if (pmlmepriv->olbc_ht)
> @@ -1597,7 +1597,7 @@ void bss_cap_update_on_sta_join(struct adapter *padapter, struct sta_info *psta)
> pmlmepriv->num_sta_ht_no_gf);
> }
>
> - if ((ht_capab & IEEE80211_HT_CAP_SUP_WIDTH) == 0) {
> + if ((ht_capab & IEEE80211_HT_CAP_SUP_WIDTH_20_40) == 0) {
> if (!psta->ht_20mhz_set) {
> psta->ht_20mhz_set = 1;
> pmlmepriv->num_sta_ht_20mhz++;
> diff --git a/drivers/staging/r8188eu/core/rtw_mlme.c b/drivers/staging/r8188eu/core/rtw_mlme.c
> index 5088b555f55d..9189f5c845f3 100644
> --- a/drivers/staging/r8188eu/core/rtw_mlme.c
> +++ b/drivers/staging/r8188eu/core/rtw_mlme.c
> @@ -2001,7 +2001,7 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_
>
> memset(&ht_capie, 0, sizeof(struct ieee80211_ht_cap));
>
> - ht_capie.cap_info = cpu_to_le16(IEEE80211_HT_CAP_SUP_WIDTH |
> + ht_capie.cap_info = cpu_to_le16(IEEE80211_HT_CAP_SUP_WIDTH_20_40 |
> IEEE80211_HT_CAP_SGI_20 |
> IEEE80211_HT_CAP_SGI_40 |
> IEEE80211_HT_CAP_TX_STBC |
> @@ -2019,9 +2019,9 @@ unsigned int rtw_restructure_ht_ie(struct adapter *padapter, u8 *in_ie, u8 *out_
> ht_capie.ampdu_params_info = (max_rx_ampdu_factor&0x03);
>
> if (padapter->securitypriv.dot11PrivacyAlgrthm == _AES_)
> - ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&(0x07<<2));
> + ht_capie.ampdu_params_info |= (IEEE80211_HT_AMPDU_PARM_DENSITY & (0x07 << 2));
> else
> - ht_capie.ampdu_params_info |= (IEEE80211_HT_CAP_AMPDU_DENSITY&0x00);
> + ht_capie.ampdu_params_info |= (IEEE80211_HT_AMPDU_PARM_DENSITY & 0x00);
>
> rtw_set_ie(out_ie+out_len, _HT_CAPABILITY_IE_,
> sizeof(struct ieee80211_ht_cap), (unsigned char *)&ht_capie, pout_len);
> @@ -2072,7 +2072,7 @@ void rtw_update_ht_cap(struct adapter *padapter, u8 *pie, uint ie_len)
> p = rtw_get_ie(pie+sizeof(struct ndis_802_11_fixed_ie), _HT_CAPABILITY_IE_, &len, ie_len-sizeof(struct ndis_802_11_fixed_ie));
> if (p && len > 0) {
> pht_capie = (struct ieee80211_ht_cap *)(p+2);
> - max_ampdu_sz = (pht_capie->ampdu_params_info & IEEE80211_HT_CAP_AMPDU_FACTOR);
> + max_ampdu_sz = (pht_capie->ampdu_params_info & IEEE80211_HT_AMPDU_PARM_FACTOR);
> max_ampdu_sz = 1 << (max_ampdu_sz+3); /* max_ampdu_sz (kbytes); */
> phtpriv->rx_ampdu_maxlen = max_ampdu_sz;
> }
> diff --git a/drivers/staging/r8188eu/include/wifi.h b/drivers/staging/r8188eu/include/wifi.h
> index f4212c4f4ada..0b3fd94cea18 100644
> --- a/drivers/staging/r8188eu/include/wifi.h
> +++ b/drivers/staging/r8188eu/include/wifi.h
> @@ -597,10 +597,6 @@ struct rtw_ieee80211_bar {
> __le16 start_seq_num;
> } __packed;
>
> -/* 802.11 BAR control masks */
> -#define IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL 0x0000
> -#define IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA 0x0004
> -
> /**
> * struct ieee80211_ht_cap - HT additional information
> *
> @@ -662,52 +658,6 @@ enum ht_cap_ampdu_factor {
> MAX_AMPDU_FACTOR_64K = 3,
> };
>
> -/* 802.11n HT capabilities masks */
> -#define IEEE80211_HT_CAP_SUP_WIDTH 0x0002
> -#define IEEE80211_HT_CAP_SM_PS 0x000C
> -#define IEEE80211_HT_CAP_GRN_FLD 0x0010
> -#define IEEE80211_HT_CAP_SGI_20 0x0020
> -#define IEEE80211_HT_CAP_SGI_40 0x0040
> -#define IEEE80211_HT_CAP_TX_STBC 0x0080
> -#define IEEE80211_HT_CAP_RX_STBC 0x0300
> -#define IEEE80211_HT_CAP_DELAY_BA 0x0400
> -#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
> -#define IEEE80211_HT_CAP_DSSSCCK40 0x1000
> -/* 802.11n HT capability AMPDU settings */
> -#define IEEE80211_HT_CAP_AMPDU_FACTOR 0x03
> -#define IEEE80211_HT_CAP_AMPDU_DENSITY 0x1C
> -/* 802.11n HT capability MSC set */
> -#define IEEE80211_SUPP_MCS_SET_UEQM 4
> -#define IEEE80211_HT_CAP_MAX_STREAMS 4
> -#define IEEE80211_SUPP_MCS_SET_LEN 10
> -/* maximum streams the spec allows */
> -#define IEEE80211_HT_CAP_MCS_TX_DEFINED 0x01
> -#define IEEE80211_HT_CAP_MCS_TX_RX_DIFF 0x02
> -#define IEEE80211_HT_CAP_MCS_TX_STREAMS 0x0C
> -#define IEEE80211_HT_CAP_MCS_TX_UEQM 0x10
> -/* 802.11n HT IE masks */
> -#define IEEE80211_HT_IE_CHA_SEC_OFFSET 0x03
> -#define IEEE80211_HT_IE_CHA_SEC_NONE 0x00
> -#define IEEE80211_HT_IE_CHA_SEC_ABOVE 0x01
> -#define IEEE80211_HT_IE_CHA_SEC_BELOW 0x03
> -#define IEEE80211_HT_IE_CHA_WIDTH 0x04
> -#define IEEE80211_HT_IE_HT_PROTECTION 0x0003
> -#define IEEE80211_HT_IE_NON_GF_STA_PRSNT 0x0004
> -#define IEEE80211_HT_IE_NON_HT_STA_PRSNT 0x0010
> -
> -/* block-ack parameters */
> -#define IEEE80211_ADDBA_PARAM_POLICY_MASK 0x0002
> -#define IEEE80211_ADDBA_PARAM_TID_MASK 0x003C
> -#define RTW_IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK 0xFFC0
> -#define IEEE80211_DELBA_PARAM_TID_MASK 0xF000
> -#define IEEE80211_DELBA_PARAM_INITIATOR_MASK 0x0800
> -
> -/*
> - * A-PMDU buffer sizes
> - * According to IEEE802.11n spec size varies from 8K to 64K (in powers of 2)
> - */
> -#define IEEE80211_MIN_AMPDU_BUF 0x8
> -
> /* Spatial Multiplexing Power Save Modes */
> #define WLAN_HT_CAP_SM_PS_STATIC 0
> #define WLAN_HT_CAP_SM_PS_DYNAMIC 1
> diff --git a/drivers/staging/r8188eu/os_dep/ioctl_linux.c b/drivers/staging/r8188eu/os_dep/ioctl_linux.c
> index 38ee41f9d2ba..0f82ed1b4469 100644
> --- a/drivers/staging/r8188eu/os_dep/ioctl_linux.c
> +++ b/drivers/staging/r8188eu/os_dep/ioctl_linux.c
> @@ -195,7 +195,7 @@ static char *translate_scan(struct adapter *padapter,
> pht_capie = (struct ieee80211_ht_cap *)(p+2);
> memcpy(&mcs_rate, pht_capie->mcs.rx_mask, 2);
> bw_40MHz = (le16_to_cpu(pht_capie->cap_info) &
> - IEEE80211_HT_CAP_SUP_WIDTH) ? 1 : 0;
> + IEEE80211_HT_CAP_SUP_WIDTH_20_40) ? 1 : 0;
> short_GI = (le16_to_cpu(pht_capie->cap_info) &
> (IEEE80211_HT_CAP_SGI_20|IEEE80211_HT_CAP_SGI_40)) ? 1 : 0;
> }
> --
> 2.32.0
>

Dear Michael,

Constants seem to be correct values still, nice. That said, the other
patches that have come through from others before this prevent this
applying to my copy of staging-testing branch. Assuming Greg takes the
patches in order, this will therefore need reworking. That said, it
builds fine for me when applied directly to fresh staging-testing tip
without the patches that have come in since, so:

Acked-by: Phillip Potter <phil@xxxxxxxxxxxxxxxx>

By all means apply that Acked-by to v2 if needed. Many thanks.

Regards,
Phil