Commit be4f00cf authored by Mikhail Karpenko's avatar Mikhail Karpenko Committed by Kalle Valo

qtnfmac: add TLV for extension IEs

Extension information elements have additional field for ID. This
commit adds TLV for such elements and a structure for interface HE
capabilities communication with firmware.
Signed-off-by: default avatarMikhail Karpenko <mkarpenko@quantenna.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 1db35994
...@@ -1269,6 +1269,7 @@ struct qlink_event_mic_failure { ...@@ -1269,6 +1269,7 @@ struct qlink_event_mic_failure {
* @QTN_TLV_ID_SCAN_SAMPLE_DURATION: total duration of sampling a single channel * @QTN_TLV_ID_SCAN_SAMPLE_DURATION: total duration of sampling a single channel
* during a scan including off-channel dwell time and operating channel * during a scan including off-channel dwell time and operating channel
* time. * time.
* @QTN_TLV_ID_IFTYPE_DATA: supported band data.
*/ */
enum qlink_tlv_id { enum qlink_tlv_id {
QTN_TLV_ID_FRAG_THRESH = 0x0201, QTN_TLV_ID_FRAG_THRESH = 0x0201,
...@@ -1304,6 +1305,7 @@ enum qlink_tlv_id { ...@@ -1304,6 +1305,7 @@ enum qlink_tlv_id {
QTN_TLV_ID_SCAN_DWELL_ACTIVE = 0x0413, QTN_TLV_ID_SCAN_DWELL_ACTIVE = 0x0413,
QTN_TLV_ID_SCAN_DWELL_PASSIVE = 0x0416, QTN_TLV_ID_SCAN_DWELL_PASSIVE = 0x0416,
QTN_TLV_ID_SCAN_SAMPLE_DURATION = 0x0417, QTN_TLV_ID_SCAN_SAMPLE_DURATION = 0x0417,
QTN_TLV_ID_IFTYPE_DATA = 0x0418,
}; };
struct qlink_tlv_hdr { struct qlink_tlv_hdr {
...@@ -1465,6 +1467,39 @@ struct qlink_tlv_ie_set { ...@@ -1465,6 +1467,39 @@ struct qlink_tlv_ie_set {
u8 ie_data[0]; u8 ie_data[0];
} __packed; } __packed;
/**
* struct qlink_tlv_ext_ie - extension IE
*
* @eid_ext: element ID extension, one of &enum ieee80211_eid_ext.
* @ie_data: IEs data.
*/
struct qlink_tlv_ext_ie {
struct qlink_tlv_hdr hdr;
u8 eid_ext;
u8 ie_data[0];
} __packed;
#define IEEE80211_HE_PPE_THRES_MAX_LEN 25
struct qlink_sband_iftype_data {
__le16 types_mask;
struct ieee80211_he_cap_elem he_cap_elem;
struct ieee80211_he_mcs_nss_supp he_mcs_nss_supp;
u8 ppe_thres[IEEE80211_HE_PPE_THRES_MAX_LEN];
} __packed;
/**
* struct qlink_tlv_iftype_data - data for QTN_TLV_ID_IFTYPE_DATA
*
* @n_iftype_data: number of entries in iftype_data.
* @iftype_data: interface type data entries.
*/
struct qlink_tlv_iftype_data {
struct qlink_tlv_hdr hdr;
u8 n_iftype_data;
u8 rsvd[3];
struct qlink_sband_iftype_data iftype_data[0];
} __packed;
struct qlink_chan_stats { struct qlink_chan_stats {
__le32 chan_num; __le32 chan_num;
__le32 cca_tx; __le32 cca_tx;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment