diff options
author | Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com> | 2014-12-23 02:47:10 -0500 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-01-15 07:31:23 -0500 |
commit | 26a359d914e977aeab582c868236b450762973f7 (patch) | |
tree | 0be0c8c308bbff48d5d2273fbccc2baa5093eafc | |
parent | cbcf58661b43aeef2e2d90aa884f7879d14dd9bf (diff) |
wil6210: delba for responder
Implement delba flow for the responder (Rx) side
Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
-rw-r--r-- | drivers/net/wireless/ath/wil6210/debugfs.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wil6210/wil6210.h | 3 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wil6210/wmi.c | 15 |
3 files changed, 17 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c index b0b5c6ebcc55..b027d87bf1a0 100644 --- a/drivers/net/wireless/ath/wil6210/debugfs.c +++ b/drivers/net/wireless/ath/wil6210/debugfs.c | |||
@@ -598,7 +598,7 @@ static ssize_t wil_write_addba(struct file *file, const char __user *buf, | |||
598 | if (agg_wsize > 0) | 598 | if (agg_wsize > 0) |
599 | wmi_addba(wil, 0, agg_wsize, 0); | 599 | wmi_addba(wil, 0, agg_wsize, 0); |
600 | else | 600 | else |
601 | wmi_delba(wil, 0, 0); | 601 | wmi_delba_tx(wil, 0, 0); |
602 | 602 | ||
603 | return len; | 603 | return len; |
604 | } | 604 | } |
diff --git a/drivers/net/wireless/ath/wil6210/wil6210.h b/drivers/net/wireless/ath/wil6210/wil6210.h index 747052d2c754..1b4efd2ea09f 100644 --- a/drivers/net/wireless/ath/wil6210/wil6210.h +++ b/drivers/net/wireless/ath/wil6210/wil6210.h | |||
@@ -607,7 +607,8 @@ int wmi_rxon(struct wil6210_priv *wil, bool on); | |||
607 | int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_m, u32 *t_r); | 607 | int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_m, u32 *t_r); |
608 | int wmi_disconnect_sta(struct wil6210_priv *wil, const u8 *mac, u16 reason); | 608 | int wmi_disconnect_sta(struct wil6210_priv *wil, const u8 *mac, u16 reason); |
609 | int wmi_addba(struct wil6210_priv *wil, u8 ringid, u8 size, u16 timeout); | 609 | int wmi_addba(struct wil6210_priv *wil, u8 ringid, u8 size, u16 timeout); |
610 | int wmi_delba(struct wil6210_priv *wil, u8 ringid, u16 reason); | 610 | int wmi_delba_tx(struct wil6210_priv *wil, u8 ringid, u16 reason); |
611 | int wmi_delba_rx(struct wil6210_priv *wil, u8 cidxtid, u16 reason); | ||
611 | int wmi_addba_rx_resp(struct wil6210_priv *wil, u8 cid, u8 tid, u8 token, | 612 | int wmi_addba_rx_resp(struct wil6210_priv *wil, u8 cid, u8 tid, u8 token, |
612 | u16 status, bool amsdu, u16 agg_wsize, u16 timeout); | 613 | u16 status, bool amsdu, u16 agg_wsize, u16 timeout); |
613 | int wil_addba_rx_request(struct wil6210_priv *wil, u8 cidxtid, | 614 | int wil_addba_rx_request(struct wil6210_priv *wil, u8 cidxtid, |
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c index 00cba4aca3c0..af2ca461fd86 100644 --- a/drivers/net/wireless/ath/wil6210/wmi.c +++ b/drivers/net/wireless/ath/wil6210/wmi.c | |||
@@ -1184,7 +1184,7 @@ int wmi_addba(struct wil6210_priv *wil, u8 ringid, u8 size, u16 timeout) | |||
1184 | return wmi_send(wil, WMI_VRING_BA_EN_CMDID, &cmd, sizeof(cmd)); | 1184 | return wmi_send(wil, WMI_VRING_BA_EN_CMDID, &cmd, sizeof(cmd)); |
1185 | } | 1185 | } |
1186 | 1186 | ||
1187 | int wmi_delba(struct wil6210_priv *wil, u8 ringid, u16 reason) | 1187 | int wmi_delba_tx(struct wil6210_priv *wil, u8 ringid, u16 reason) |
1188 | { | 1188 | { |
1189 | struct wmi_vring_ba_dis_cmd cmd = { | 1189 | struct wmi_vring_ba_dis_cmd cmd = { |
1190 | .ringid = ringid, | 1190 | .ringid = ringid, |
@@ -1197,6 +1197,19 @@ int wmi_delba(struct wil6210_priv *wil, u8 ringid, u16 reason) | |||
1197 | return wmi_send(wil, WMI_VRING_BA_DIS_CMDID, &cmd, sizeof(cmd)); | 1197 | return wmi_send(wil, WMI_VRING_BA_DIS_CMDID, &cmd, sizeof(cmd)); |
1198 | } | 1198 | } |
1199 | 1199 | ||
1200 | int wmi_delba_rx(struct wil6210_priv *wil, u8 cidxtid, u16 reason) | ||
1201 | { | ||
1202 | struct wmi_rcp_delba_cmd cmd = { | ||
1203 | .cidxtid = cidxtid, | ||
1204 | .reason = cpu_to_le16(reason), | ||
1205 | }; | ||
1206 | |||
1207 | wil_dbg_wmi(wil, "%s(CID %d TID %d reason %d)\n", __func__, | ||
1208 | cidxtid & 0xf, (cidxtid >> 4) & 0xf, reason); | ||
1209 | |||
1210 | return wmi_send(wil, WMI_RCP_DELBA_CMDID, &cmd, sizeof(cmd)); | ||
1211 | } | ||
1212 | |||
1200 | int wmi_addba_rx_resp(struct wil6210_priv *wil, u8 cid, u8 tid, u8 token, | 1213 | int wmi_addba_rx_resp(struct wil6210_priv *wil, u8 cid, u8 tid, u8 token, |
1201 | u16 status, bool amsdu, u16 agg_wsize, u16 timeout) | 1214 | u16 status, bool amsdu, u16 agg_wsize, u16 timeout) |
1202 | { | 1215 | { |