]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: ath12k: clean up 80P80 support
authorPradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
Tue, 1 Jul 2025 01:04:06 +0000 (18:04 -0700)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Wed, 2 Jul 2025 14:02:26 +0000 (07:02 -0700)
Clean up unused 80P80 references as hardware does not support
it. This is applicable to both QCN9274 and WCN7850.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1

Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Link: https://patch.msgid.link/20250701010408.1257201-8-quic_pradeepc@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/mac.c
drivers/net/wireless/ath/ath12k/wmi.c
drivers/net/wireless/ath/ath12k/wmi.h

index aefb620b28e2e4e74bdd1179542b045ed3f31a4e..8fba1bd2e372695f66468938b7b1e87df9bd49e2 100644 (file)
@@ -209,7 +209,7 @@ ath12k_phymodes[NUM_NL80211_BANDS][ATH12K_CHAN_WIDTH_NUM] = {
                        [NL80211_CHAN_WIDTH_40] = MODE_11BE_EHT40,
                        [NL80211_CHAN_WIDTH_80] = MODE_11BE_EHT80,
                        [NL80211_CHAN_WIDTH_160] = MODE_11BE_EHT160,
-                       [NL80211_CHAN_WIDTH_80P80] = MODE_11BE_EHT80_80,
+                       [NL80211_CHAN_WIDTH_80P80] = MODE_UNKNOWN,
                        [NL80211_CHAN_WIDTH_320] = MODE_11BE_EHT320,
        },
        [NL80211_BAND_6GHZ] = {
@@ -220,7 +220,7 @@ ath12k_phymodes[NUM_NL80211_BANDS][ATH12K_CHAN_WIDTH_NUM] = {
                        [NL80211_CHAN_WIDTH_40] = MODE_11BE_EHT40,
                        [NL80211_CHAN_WIDTH_80] = MODE_11BE_EHT80,
                        [NL80211_CHAN_WIDTH_160] = MODE_11BE_EHT160,
-                       [NL80211_CHAN_WIDTH_80P80] = MODE_11BE_EHT80_80,
+                       [NL80211_CHAN_WIDTH_80P80] = MODE_UNKNOWN,
                        [NL80211_CHAN_WIDTH_320] = MODE_11BE_EHT320,
        },
 
@@ -2574,17 +2574,6 @@ static void ath12k_peer_assoc_h_he(struct ath12k *ar,
 
        switch (link_sta->bandwidth) {
        case IEEE80211_STA_RX_BW_160:
-               if (he_cap->he_cap_elem.phy_cap_info[0] &
-                   IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G) {
-                       v = ath12k_peer_assoc_h_he_limit(v, he_mcs_mask);
-                       arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
-
-                       v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80p80);
-                       arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
-
-                       arg->peer_he_mcs_count++;
-                       he_tx_mcs = v;
-               }
                v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160);
                arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
 
@@ -2871,16 +2860,11 @@ static enum wmi_phy_mode ath12k_mac_get_phymode_vht(struct ath12k *ar,
                                                    struct ieee80211_link_sta *link_sta)
 {
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_160) {
-               switch (link_sta->vht_cap.cap &
-                       IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) {
-               case IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ:
-                       return MODE_11AC_VHT160;
-               case IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160_80PLUS80MHZ:
-                       return MODE_11AC_VHT80_80;
-               default:
-                       /* not sure if this is a valid case? */
+               if (link_sta->vht_cap.cap & IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_160MHZ)
                        return MODE_11AC_VHT160;
-               }
+
+               /* not sure if this is a valid case? */
+               return MODE_11AC_VHT160;
        }
 
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_80)
@@ -2902,11 +2886,8 @@ static enum wmi_phy_mode ath12k_mac_get_phymode_he(struct ath12k *ar,
                if (link_sta->he_cap.he_cap_elem.phy_cap_info[0] &
                     IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G)
                        return MODE_11AX_HE160;
-               else if (link_sta->he_cap.he_cap_elem.phy_cap_info[0] &
-                    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)
-                       return MODE_11AX_HE80_80;
-               /* not sure if this is a valid case? */
-               return MODE_11AX_HE160;
+
+               return MODE_UNKNOWN;
        }
 
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_80)
@@ -2934,14 +2915,10 @@ static enum wmi_phy_mode ath12k_mac_get_phymode_eht(struct ath12k *ar,
                    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G)
                        return MODE_11BE_EHT160;
 
-               if (link_sta->he_cap.he_cap_elem.phy_cap_info[0] &
-                        IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)
-                       return MODE_11BE_EHT80_80;
-
                ath12k_warn(ar->ab, "invalid EHT PHY capability info for 160 Mhz: %d\n",
                            link_sta->he_cap.he_cap_elem.phy_cap_info[0]);
 
-               return MODE_11BE_EHT160;
+               return MODE_UNKNOWN;
        }
 
        if (link_sta->bandwidth == IEEE80211_STA_RX_BW_80)
@@ -7828,8 +7805,6 @@ static void ath12k_mac_set_hemcsmap(struct ath12k *ar,
        mcs_nss->tx_mcs_80 = cpu_to_le16(txmcs_map & 0xffff);
        mcs_nss->rx_mcs_160 = cpu_to_le16(rxmcs_map & 0xffff);
        mcs_nss->tx_mcs_160 = cpu_to_le16(txmcs_map & 0xffff);
-       mcs_nss->rx_mcs_80p80 = cpu_to_le16(rxmcs_map & 0xffff);
-       mcs_nss->tx_mcs_80p80 = cpu_to_le16(txmcs_map & 0xffff);
 }
 
 static void ath12k_mac_copy_he_cap(struct ath12k *ar,
@@ -7851,6 +7826,7 @@ static void ath12k_mac_copy_he_cap(struct ath12k *ar,
                IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
                IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
                IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
+       /* 80PLUS80 is not supported */
        he_cap_elem->phy_cap_info[0] &=
                ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G;
        he_cap_elem->phy_cap_info[5] &=
@@ -11541,10 +11517,6 @@ ath12k_mac_has_single_legacy_rate(struct ath12k *ar,
 static __le16
 ath12k_mac_get_tx_mcs_map(const struct ieee80211_sta_he_cap *he_cap)
 {
-       if (he_cap->he_cap_elem.phy_cap_info[0] &
-           IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G)
-               return he_cap->he_mcs_nss_supp.tx_mcs_80p80;
-
        if (he_cap->he_cap_elem.phy_cap_info[0] &
            IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G)
                return he_cap->he_mcs_nss_supp.tx_mcs_160;
index 6c6354b3e18e192fb1b1f9afece9a35fa1c48b6e..05e406273ebfeb90a6cda477e462fae6e33f3aa2 100644 (file)
@@ -1066,8 +1066,6 @@ static void ath12k_wmi_put_wmi_channel(struct ath12k_wmi_channel_params *chan,
                        chan->band_center_freq1 = cpu_to_le32(center_freq1 - 40);
 
                chan->band_center_freq2 = cpu_to_le32(center_freq1);
-       } else if (arg->mode == MODE_11BE_EHT80_80) {
-               chan->band_center_freq2 = cpu_to_le32(arg->band_center_freq2);
        } else {
                chan->band_center_freq2 = 0;
        }
index 59b9e9abf7a8818122c03d400bb279cdd365f05f..79cc3db3f27c3b134753cb333d3363ffac4f6a00 100644 (file)
@@ -3804,7 +3804,6 @@ struct wmi_vdev_install_key_arg {
 #define WMI_HOST_MAX_HE_RATE_SET               3
 #define WMI_HECAP_TXRX_MCS_NSS_IDX_80          0
 #define WMI_HECAP_TXRX_MCS_NSS_IDX_160         1
-#define WMI_HECAP_TXRX_MCS_NSS_IDX_80_80       2
 
 #define ATH12K_WMI_MLO_MAX_PARTNER_LINKS \
        (ATH12K_WMI_MLO_MAX_LINKS + ATH12K_MAX_NUM_BRIDGE_LINKS - 1)