Commit 2525f188 authored by Sergey Matyukevich's avatar Sergey Matyukevich Committed by Kalle Valo
Browse files

qtnfmac: add support for scan dwell time configuration



Firmware supports scan dwell time tuning for various types of scans.
Enable support for this feature:
- advertise capability to configure channel dwell time to host
- pass scan dwell parameters to wireless card in scan request

Signed-off-by: default avatarSergey Matyukevich <sergey.matyukevich.os@quantenna.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 6d85930f
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1101,6 +1101,10 @@ int qtnf_wiphy_register(struct qtnf_hw_info *hw_info, struct qtnf_wmac *mac)
	if (hw_info->hw_capab & QLINK_HW_CAPAB_DFS_OFFLOAD)
		wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_DFS_OFFLOAD);

	if (hw_info->hw_capab & QLINK_HW_CAPAB_SCAN_DWELL)
		wiphy_ext_feature_set(wiphy,
				      NL80211_EXT_FEATURE_SET_SCAN_DWELL);

	wiphy->probe_resp_offload = NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS |
				    NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2;

+9 −0
Original line number Diff line number Diff line
@@ -2203,6 +2203,15 @@ int qtnf_cmd_send_scan(struct qtnf_wmac *mac)
		qtnf_cmd_skb_put_tlv_tag(cmd_skb, QTN_TLV_ID_SCAN_FLUSH);
	}

	if (scan_req->duration) {
		pr_debug("MAC%u: %s scan duration %u\n", mac->macid,
			 scan_req->duration_mandatory ? "mandatory" : "max",
			 scan_req->duration);

		qtnf_cmd_skb_put_tlv_u16(cmd_skb, QTN_TLV_ID_SCAN_DWELL,
					 scan_req->duration);
	}

	ret = qtnf_cmd_send(mac->bus, cmd_skb);
	if (ret)
		goto out;
+2 −0
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ enum qlink_hw_capab {
	QLINK_HW_CAPAB_SCAN_RANDOM_MAC_ADDR	= BIT(3),
	QLINK_HW_CAPAB_PWR_MGMT			= BIT(4),
	QLINK_HW_CAPAB_OBSS_SCAN		= BIT(5),
	QLINK_HW_CAPAB_SCAN_DWELL		= BIT(6),
};

enum qlink_iface_type {
@@ -1152,6 +1153,7 @@ enum qlink_tlv_id {
	QTN_TLV_ID_WOWLAN_CAPAB		= 0x0410,
	QTN_TLV_ID_WOWLAN_PATTERN	= 0x0411,
	QTN_TLV_ID_SCAN_FLUSH		= 0x0412,
	QTN_TLV_ID_SCAN_DWELL		= 0x0413,
};

struct qlink_tlv_hdr {