]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.9.128/ath10k-disable-bundle-mgmt-tx-completion-event-support.patch
Fixes for 4.19
[thirdparty/kernel/stable-queue.git] / releases / 4.9.128 / ath10k-disable-bundle-mgmt-tx-completion-event-support.patch
CommitLineData
13e8e92f
GKH
1From foo@baz Mon Sep 17 12:22:41 CEST 2018
2From: Surabhi Vishnoi <svishnoi@codeaurora.org>
3Date: Wed, 25 Jul 2018 10:59:41 +0300
4Subject: ath10k: disable bundle mgmt tx completion event support
5
6From: Surabhi Vishnoi <svishnoi@codeaurora.org>
7
8[ Upstream commit 673bc519c55843c68c3aecff71a4101e79d28d2b ]
9
10The tx completion of multiple mgmt frames can be bundled
11in a single event and sent by the firmware to host, if this
12capability is not disabled explicitly by the host. If the host
13cannot handle the bundled mgmt tx completion, this capability
14support needs to be disabled in the wmi init cmd, sent to the firmware.
15
16Add the host capability indication flag in the wmi ready command,
17to let firmware know the features supported by the host driver.
18This field is ignored if it is not supported by firmware.
19
20Set the host capability indication flag(i.e. host_capab) to zero,
21for disabling the support of bundle mgmt tx completion. This will
22indicate the firmware to send completion event for every mgmt tx
23completion, instead of bundling them together and sending in a single
24event.
25
26Tested HW: WCN3990
27Tested FW: WLAN.HL.2.0-01188-QCAHLSWMTPLZ-1
28
29Signed-off-by: Surabhi Vishnoi <svishnoi@codeaurora.org>
30Signed-off-by: Rakesh Pillai <pillair@codeaurora.org>
31Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
32Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
33Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
34---
35 drivers/net/wireless/ath/ath10k/wmi-tlv.c | 5 +++++
36 drivers/net/wireless/ath/ath10k/wmi-tlv.h | 5 +++++
37 2 files changed, 10 insertions(+)
38
39--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c
40+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c
41@@ -1451,6 +1451,11 @@ static struct sk_buff *ath10k_wmi_tlv_op
42 cfg->keep_alive_pattern_size = __cpu_to_le32(0);
43 cfg->max_tdls_concurrent_sleep_sta = __cpu_to_le32(1);
44 cfg->max_tdls_concurrent_buffer_sta = __cpu_to_le32(1);
45+ cfg->wmi_send_separate = __cpu_to_le32(0);
46+ cfg->num_ocb_vdevs = __cpu_to_le32(0);
47+ cfg->num_ocb_channels = __cpu_to_le32(0);
48+ cfg->num_ocb_schedules = __cpu_to_le32(0);
49+ cfg->host_capab = __cpu_to_le32(0);
50
51 ath10k_wmi_put_host_mem_chunks(ar, chunks);
52
53--- a/drivers/net/wireless/ath/ath10k/wmi-tlv.h
54+++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.h
55@@ -1227,6 +1227,11 @@ struct wmi_tlv_resource_config {
56 __le32 keep_alive_pattern_size;
57 __le32 max_tdls_concurrent_sleep_sta;
58 __le32 max_tdls_concurrent_buffer_sta;
59+ __le32 wmi_send_separate;
60+ __le32 num_ocb_vdevs;
61+ __le32 num_ocb_channels;
62+ __le32 num_ocb_schedules;
63+ __le32 host_capab;
64 } __packed;
65
66 struct wmi_tlv_init_cmd {