qtnfmac: advertise support of inactivity timeout
authorIgor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Mon, 30 Oct 2017 10:13:50 +0000 (13:13 +0300)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 30 Oct 2017 10:51:49 +0000 (12:51 +0200)
Wireless device may implement a logic to kick-out STA due to inactivity
for a certain period of time. This feature needs to be advertised to
higher layers if supported. Timeout value is still taken from
parameters to START_AP command, nothing changes here.

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/qlink.h

index 64db4082c9d2ff84b7b1159180eb01c4d451232a..e70f5bd5e498864661f456bd24a202b7f98d49e5 100644 (file)
@@ -956,7 +956,10 @@ int qtnf_wiphy_register(struct qtnf_hw_info *hw_info, struct qtnf_wmac *mac)
 
        ether_addr_copy(wiphy->perm_addr, mac->macaddr);
 
-       if (hw_info->hw_capab & QLINK_HW_SUPPORTS_REG_UPDATE) {
+       if (hw_info->hw_capab & QLINK_HW_CAPAB_STA_INACT_TIMEOUT)
+               wiphy->features |= NL80211_FEATURE_INACTIVITY_TIMER;
+
+       if (hw_info->hw_capab & QLINK_HW_CAPAB_REG_UPDATE) {
                wiphy->regulatory_flags |= REGULATORY_STRICT_REG |
                        REGULATORY_CUSTOM_REG;
                wiphy->reg_notifier = qtnf_cfg80211_reg_notifier;
index babdc600c19308a9f34d6c0e95b30d6e6d9ab732..b81f81bd1411b2ec7ec518d15db0e27952dad443 100644 (file)
@@ -975,10 +975,11 @@ qtnf_cmd_resp_proc_hw_info(struct qtnf_bus *bus,
                return -EINVAL;
        }
 
-       pr_info("fw_version=%d, MACs map %#x, alpha2=\"%c%c\", chains Tx=%u Rx=%u\n",
+       pr_info("fw_version=%d, MACs map %#x, alpha2=\"%c%c\", chains Tx=%u Rx=%u, capab=0x%x\n",
                hwinfo->fw_ver, hwinfo->mac_bitmap,
                hwinfo->rd->alpha2[0], hwinfo->rd->alpha2[1],
-               hwinfo->total_tx_chain, hwinfo->total_rx_chain);
+               hwinfo->total_tx_chain, hwinfo->total_rx_chain,
+               hwinfo->hw_capab);
 
        return 0;
 }
index 7b313d38c30b9d1764b93e28e8e527dd96dee5c8..0f582782682fc0a3a1dfb899727012d116267a8c 100644 (file)
@@ -61,8 +61,17 @@ struct qlink_msg_header {
 /* Generic definitions of data and information carried in QLINK messages
  */
 
+/**
+ * enum qlink_hw_capab - device capabilities.
+ *
+ * @QLINK_HW_CAPAB_REG_UPDATE: device can update it's regulatory region.
+ * @QLINK_HW_CAPAB_STA_INACT_TIMEOUT: device implements a logic to kick-out
+ *     associated STAs due to inactivity. Inactivity timeout period is taken
+ *     from QLINK_CMD_START_AP parameters.
+ */
 enum qlink_hw_capab {
-       QLINK_HW_SUPPORTS_REG_UPDATE    = BIT(0),
+       QLINK_HW_CAPAB_REG_UPDATE = BIT(0),
+       QLINK_HW_CAPAB_STA_INACT_TIMEOUT = BIT(1),
 };
 
 enum qlink_phy_mode {