]>
Commit | Line | Data |
---|---|---|
13e8e92f GKH |
1 | From foo@baz Mon Sep 17 12:22:41 CEST 2018 |
2 | From: Surabhi Vishnoi <svishnoi@codeaurora.org> | |
3 | Date: Wed, 25 Jul 2018 10:59:41 +0300 | |
4 | Subject: ath10k: disable bundle mgmt tx completion event support | |
5 | ||
6 | From: Surabhi Vishnoi <svishnoi@codeaurora.org> | |
7 | ||
8 | [ Upstream commit 673bc519c55843c68c3aecff71a4101e79d28d2b ] | |
9 | ||
10 | The tx completion of multiple mgmt frames can be bundled | |
11 | in a single event and sent by the firmware to host, if this | |
12 | capability is not disabled explicitly by the host. If the host | |
13 | cannot handle the bundled mgmt tx completion, this capability | |
14 | support needs to be disabled in the wmi init cmd, sent to the firmware. | |
15 | ||
16 | Add the host capability indication flag in the wmi ready command, | |
17 | to let firmware know the features supported by the host driver. | |
18 | This field is ignored if it is not supported by firmware. | |
19 | ||
20 | Set the host capability indication flag(i.e. host_capab) to zero, | |
21 | for disabling the support of bundle mgmt tx completion. This will | |
22 | indicate the firmware to send completion event for every mgmt tx | |
23 | completion, instead of bundling them together and sending in a single | |
24 | event. | |
25 | ||
26 | Tested HW: WCN3990 | |
27 | Tested FW: WLAN.HL.2.0-01188-QCAHLSWMTPLZ-1 | |
28 | ||
29 | Signed-off-by: Surabhi Vishnoi <svishnoi@codeaurora.org> | |
30 | Signed-off-by: Rakesh Pillai <pillair@codeaurora.org> | |
31 | Signed-off-by: Kalle Valo <kvalo@codeaurora.org> | |
32 | Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> | |
33 | Signed-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 { |