qtnfmac: initialize HT/VHT caps "can override" masks
authorIgor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Tue, 31 Oct 2017 01:04:48 +0000 (18:04 -0700)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 10 Nov 2017 02:30:55 +0000 (04:30 +0200)
Information on which HT/VHT capabilities can be overridden is reported
per-MAC by wireless device.

Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/quantenna/qtnfmac/cfg80211.c
drivers/net/wireless/quantenna/qtnfmac/commands.c
drivers/net/wireless/quantenna/qtnfmac/core.h
drivers/net/wireless/quantenna/qtnfmac/qlink.h

index 2f60331..b6a2540 100644 (file)
@@ -925,6 +925,8 @@ int qtnf_wiphy_register(struct qtnf_hw_info *hw_info, struct qtnf_wmac *mac)
        wiphy->available_antennas_rx = mac->macinfo.num_rx_chain;
 
        wiphy->max_ap_assoc_sta = mac->macinfo.max_ap_assoc_sta;
+       wiphy->ht_capa_mod_mask = &mac->macinfo.ht_cap_mod_mask;
+       wiphy->vht_capa_mod_mask = &mac->macinfo.vht_cap_mod_mask;
 
        ether_addr_copy(wiphy->perm_addr, mac->macaddr);
 
index a7422c5..35ff7e8 100644 (file)
@@ -1110,9 +1110,10 @@ qtnf_cmd_resp_proc_mac_info(struct qtnf_wmac *mac,
                        qlink_chan_width_mask_to_nl(le16_to_cpu(
                                        resp_info->radar_detect_widths));
 
-       memcpy(&mac_info->ht_cap, &resp_info->ht_cap, sizeof(mac_info->ht_cap));
-       memcpy(&mac_info->vht_cap, &resp_info->vht_cap,
-              sizeof(mac_info->vht_cap));
+       memcpy(&mac_info->ht_cap_mod_mask, &resp_info->ht_cap_mod_mask,
+              sizeof(mac_info->ht_cap_mod_mask));
+       memcpy(&mac_info->vht_cap_mod_mask, &resp_info->vht_cap_mod_mask,
+              sizeof(mac_info->vht_cap_mod_mask));
 }
 
 static void qtnf_cmd_resp_band_fill_htcap(const u8 *info,
index da2c24e..74b94ce 100644 (file)
@@ -103,8 +103,8 @@ struct qtnf_mac_info {
        u8 sretry_limit;
        u8 coverage_class;
        u8 radar_detect_widths;
-       struct ieee80211_ht_cap ht_cap;
-       struct ieee80211_vht_cap vht_cap;
+       struct ieee80211_ht_cap ht_cap_mod_mask;
+       struct ieee80211_vht_cap vht_cap_mod_mask;
        struct ieee80211_iface_limit *limits;
        size_t n_limits;
 };
index dfef7fa..b2c4e27 100644 (file)
@@ -636,8 +636,8 @@ struct qlink_resp {
  *     specified WMAC).
  * @num_tx_chain: Number of transmit chains used by WMAC.
  * @num_rx_chain: Number of receive chains used by WMAC.
- * @vht_cap: VHT capabilities.
- * @ht_cap: HT capabilities.
+ * @vht_cap_mod_mask: mask specifying which VHT capabilities can be altered.
+ * @ht_cap_mod_mask: mask specifying which HT capabilities can be altered.
  * @bands_cap: wireless bands WMAC can operate in, bitmap of &enum qlink_band.
  * @phymode_cap: PHY modes WMAC can operate in, bitmap of &enum qlink_phy_mode.
  * @max_ap_assoc_sta: Maximum number of associations supported by WMAC.
@@ -649,8 +649,8 @@ struct qlink_resp_get_mac_info {
        u8 dev_mac[ETH_ALEN];
        u8 num_tx_chain;
        u8 num_rx_chain;
-       struct ieee80211_vht_cap vht_cap;
-       struct ieee80211_ht_cap ht_cap;
+       struct ieee80211_vht_cap vht_cap_mod_mask;
+       struct ieee80211_ht_cap ht_cap_mod_mask;
        u8 bands_cap;
        u8 phymode_cap;
        __le16 max_ap_assoc_sta;