diff options
author | Igor Mitsyanko <igor.mitsyanko.os@quantenna.com> | 2017-10-30 21:04:52 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2017-11-09 21:30:57 -0500 |
commit | 4d1f0fabdc4515db1b57da2dfdfdeb931cd49e92 (patch) | |
tree | 1bee56509811c4d0560ee135ba0ebb16110b157b | |
parent | 5face518d4467868e7a82a321955236b2bb65bdc (diff) |
qtnfmac: convert "Append IEs" command to QTN_TLV_ID_IE_SET usage
Data contained within "Append IEs" command (QLINK_CMD_MGMT_SET_APPIE)
duplicates QTN_TLV_ID_IE_SET TLV. Convert the command to use that TLV
instead.
Signed-off-by: Igor Mitsyanko <igor.mitsyanko.os@quantenna.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r-- | drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | 12 | ||||
-rw-r--r-- | drivers/net/wireless/quantenna/qtnfmac/commands.c | 17 | ||||
-rw-r--r-- | drivers/net/wireless/quantenna/qtnfmac/qlink.h | 15 |
3 files changed, 10 insertions, 34 deletions
diff --git a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c index 1a0c538a38d2..27b11dc1e6fd 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c +++ b/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c | |||
@@ -217,10 +217,10 @@ static int qtnf_mgmt_set_appie(struct qtnf_vif *vif, | |||
217 | int ret = 0; | 217 | int ret = 0; |
218 | 218 | ||
219 | if (!info->beacon_ies || !info->beacon_ies_len) { | 219 | if (!info->beacon_ies || !info->beacon_ies_len) { |
220 | ret = qtnf_cmd_send_mgmt_set_appie(vif, QLINK_MGMT_FRAME_BEACON, | 220 | ret = qtnf_cmd_send_mgmt_set_appie(vif, QLINK_IE_SET_BEACON_IES, |
221 | NULL, 0); | 221 | NULL, 0); |
222 | } else { | 222 | } else { |
223 | ret = qtnf_cmd_send_mgmt_set_appie(vif, QLINK_MGMT_FRAME_BEACON, | 223 | ret = qtnf_cmd_send_mgmt_set_appie(vif, QLINK_IE_SET_BEACON_IES, |
224 | info->beacon_ies, | 224 | info->beacon_ies, |
225 | info->beacon_ies_len); | 225 | info->beacon_ies_len); |
226 | } | 226 | } |
@@ -230,11 +230,11 @@ static int qtnf_mgmt_set_appie(struct qtnf_vif *vif, | |||
230 | 230 | ||
231 | if (!info->proberesp_ies || !info->proberesp_ies_len) { | 231 | if (!info->proberesp_ies || !info->proberesp_ies_len) { |
232 | ret = qtnf_cmd_send_mgmt_set_appie(vif, | 232 | ret = qtnf_cmd_send_mgmt_set_appie(vif, |
233 | QLINK_MGMT_FRAME_PROBE_RESP, | 233 | QLINK_IE_SET_PROBE_RESP_IES, |
234 | NULL, 0); | 234 | NULL, 0); |
235 | } else { | 235 | } else { |
236 | ret = qtnf_cmd_send_mgmt_set_appie(vif, | 236 | ret = qtnf_cmd_send_mgmt_set_appie(vif, |
237 | QLINK_MGMT_FRAME_PROBE_RESP, | 237 | QLINK_IE_SET_PROBE_RESP_IES, |
238 | info->proberesp_ies, | 238 | info->proberesp_ies, |
239 | info->proberesp_ies_len); | 239 | info->proberesp_ies_len); |
240 | } | 240 | } |
@@ -244,11 +244,11 @@ static int qtnf_mgmt_set_appie(struct qtnf_vif *vif, | |||
244 | 244 | ||
245 | if (!info->assocresp_ies || !info->assocresp_ies_len) { | 245 | if (!info->assocresp_ies || !info->assocresp_ies_len) { |
246 | ret = qtnf_cmd_send_mgmt_set_appie(vif, | 246 | ret = qtnf_cmd_send_mgmt_set_appie(vif, |
247 | QLINK_MGMT_FRAME_ASSOC_RESP, | 247 | QLINK_IE_SET_ASSOC_RESP, |
248 | NULL, 0); | 248 | NULL, 0); |
249 | } else { | 249 | } else { |
250 | ret = qtnf_cmd_send_mgmt_set_appie(vif, | 250 | ret = qtnf_cmd_send_mgmt_set_appie(vif, |
251 | QLINK_MGMT_FRAME_ASSOC_RESP, | 251 | QLINK_IE_SET_ASSOC_RESP, |
252 | info->assocresp_ies, | 252 | info->assocresp_ies, |
253 | info->assocresp_ies_len); | 253 | info->assocresp_ies_len); |
254 | } | 254 | } |
diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/net/wireless/quantenna/qtnfmac/commands.c index 8d3cdba99390..294418c7e59b 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/commands.c +++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c | |||
@@ -395,11 +395,10 @@ int qtnf_cmd_send_mgmt_set_appie(struct qtnf_vif *vif, u8 frame_type, | |||
395 | const u8 *buf, size_t len) | 395 | const u8 *buf, size_t len) |
396 | { | 396 | { |
397 | struct sk_buff *cmd_skb; | 397 | struct sk_buff *cmd_skb; |
398 | struct qlink_cmd_mgmt_append_ie *cmd; | ||
399 | u16 res_code = QLINK_CMD_RESULT_OK; | 398 | u16 res_code = QLINK_CMD_RESULT_OK; |
400 | int ret; | 399 | int ret; |
401 | 400 | ||
402 | if (sizeof(*cmd) + len > QTNF_MAX_CMD_BUF_SIZE) { | 401 | if (len > QTNF_MAX_CMD_BUF_SIZE) { |
403 | pr_warn("VIF%u.%u: %u frame is too big: %zu\n", vif->mac->macid, | 402 | pr_warn("VIF%u.%u: %u frame is too big: %zu\n", vif->mac->macid, |
404 | vif->vifid, frame_type, len); | 403 | vif->vifid, frame_type, len); |
405 | return -E2BIG; | 404 | return -E2BIG; |
@@ -407,21 +406,13 @@ int qtnf_cmd_send_mgmt_set_appie(struct qtnf_vif *vif, u8 frame_type, | |||
407 | 406 | ||
408 | cmd_skb = qtnf_cmd_alloc_new_cmdskb(vif->mac->macid, vif->vifid, | 407 | cmd_skb = qtnf_cmd_alloc_new_cmdskb(vif->mac->macid, vif->vifid, |
409 | QLINK_CMD_MGMT_SET_APPIE, | 408 | QLINK_CMD_MGMT_SET_APPIE, |
410 | sizeof(*cmd)); | 409 | sizeof(struct qlink_cmd)); |
411 | if (unlikely(!cmd_skb)) | 410 | if (unlikely(!cmd_skb)) |
412 | return -ENOMEM; | 411 | return -ENOMEM; |
413 | 412 | ||
414 | qtnf_bus_lock(vif->mac->bus); | 413 | qtnf_cmd_tlv_ie_set_add(cmd_skb, frame_type, buf, len); |
415 | |||
416 | cmd = (struct qlink_cmd_mgmt_append_ie *)cmd_skb->data; | ||
417 | cmd->type = frame_type; | ||
418 | cmd->flags = 0; | ||
419 | 414 | ||
420 | /* If len == 0 then IE buf for specified frame type | 415 | qtnf_bus_lock(vif->mac->bus); |
421 | * should be cleared on EP. | ||
422 | */ | ||
423 | if (len && buf) | ||
424 | qtnf_cmd_skb_put_buffer(cmd_skb, buf, len); | ||
425 | 416 | ||
426 | ret = qtnf_cmd_send(vif->mac->bus, cmd_skb, &res_code); | 417 | ret = qtnf_cmd_send(vif->mac->bus, cmd_skb, &res_code); |
427 | 418 | ||
diff --git a/drivers/net/wireless/quantenna/qtnfmac/qlink.h b/drivers/net/wireless/quantenna/qtnfmac/qlink.h index 81effd21075c..43ce45106aad 100644 --- a/drivers/net/wireless/quantenna/qtnfmac/qlink.h +++ b/drivers/net/wireless/quantenna/qtnfmac/qlink.h | |||
@@ -299,21 +299,6 @@ struct qlink_cmd_mgmt_frame_tx { | |||
299 | } __packed; | 299 | } __packed; |
300 | 300 | ||
301 | /** | 301 | /** |
302 | * struct qlink_cmd_mgmt_append_ie - data for QLINK_CMD_MGMT_SET_APPIE command | ||
303 | * | ||
304 | * @type: type of MGMT frame to appent requested IEs to, one of | ||
305 | * &enum qlink_mgmt_frame_type. | ||
306 | * @flags: for future use. | ||
307 | * @ie_data: IEs data to append. | ||
308 | */ | ||
309 | struct qlink_cmd_mgmt_append_ie { | ||
310 | struct qlink_cmd chdr; | ||
311 | u8 type; | ||
312 | u8 flags; | ||
313 | u8 ie_data[0]; | ||
314 | } __packed; | ||
315 | |||
316 | /** | ||
317 | * struct qlink_cmd_get_sta_info - data for QLINK_CMD_GET_STA_INFO command | 302 | * struct qlink_cmd_get_sta_info - data for QLINK_CMD_GET_STA_INFO command |
318 | * | 303 | * |
319 | * @sta_addr: MAC address of the STA statistics is requested for. | 304 | * @sta_addr: MAC address of the STA statistics is requested for. |