// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
- * Copyright (C) 2005-2014, 2018-2021 Intel Corporation
+ * Copyright (C) 2005-2014, 2018-2022 Intel Corporation
  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
  * Copyright (C) 2016-2017 Intel Deutschland GmbH
  */
                                        IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU |
                                        IEEE80211_HE_MAC_CAP5_HE_DYNAMIC_SM_PS |
                                        IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX,
-                               .phy_cap_info[0] =
-                                       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,
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
                                        IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
                                        IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
                                .mac_cap_info[3] =
                                        IEEE80211_HE_MAC_CAP3_OMI_CONTROL,
-                               .phy_cap_info[0] =
-                                       IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
-                                       IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G,
                                .phy_cap_info[1] =
                                        IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD,
                                .phy_cap_info[2] =
                iftype_data->he_cap.he_cap_elem.mac_cap_info[3] |=
                        IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3;
 
-       if (is_ap && iwlwifi_mod_params.nvm_file)
+       switch (sband->band) {
+       case NL80211_BAND_2GHZ:
                iftype_data->he_cap.he_cap_elem.phy_cap_info[0] |=
-                       IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
+                       IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G;
+               break;
+       case NL80211_BAND_6GHZ:
+       case NL80211_BAND_5GHZ:
+               iftype_data->he_cap.he_cap_elem.phy_cap_info[0] |=
+                       IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G;
+               if (!is_ap || iwlwifi_mod_params.nvm_file)
+                       iftype_data->he_cap.he_cap_elem.phy_cap_info[0] |=
+                               IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G;
+               break;
+       default:
+               WARN_ON(1);
+               break;
+       }
 
        if ((tx_chains & rx_chains) == ANT_AB) {
                iftype_data->he_cap.he_cap_elem.phy_cap_info[2] |=