Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 1 | /* |
Kiran Venkatappa | cb001d8 | 2019-01-11 18:10:38 +0530 | [diff] [blame^] | 2 | * Copyright (c) 2014-2019 The Linux Foundation. All rights reserved. |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 3 | * |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 4 | * Permission to use, copy, modify, and/or distribute this software for |
| 5 | * any purpose with or without fee is hereby granted, provided that the |
| 6 | * above copyright notice and this permission notice appear in all |
| 7 | * copies. |
| 8 | * |
| 9 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
| 10 | * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
| 11 | * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
| 12 | * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
| 13 | * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
| 14 | * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| 15 | * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| 16 | * PERFORMANCE OF THIS SOFTWARE. |
| 17 | */ |
| 18 | |
| 19 | /* |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 20 | * Implementation of the Host-side Host InterFace (HIF) API |
| 21 | * for a Host/Target interconnect using Copy Engines over PCIe. |
| 22 | */ |
| 23 | |
| 24 | #ifndef __HIF_PCI_INTERNAL_H__ |
| 25 | #define __HIF_PCI_INTERNAL_H__ |
| 26 | |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 27 | #ifndef CONFIG_WIN |
| 28 | #ifndef PEER_CACHEING_HOST_ENABLE |
| 29 | #define PEER_CACHEING_HOST_ENABLE 0 |
| 30 | #endif |
| 31 | #endif |
| 32 | |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 33 | #define HIF_PCI_DEBUG ATH_DEBUG_MAKE_MODULE_MASK(0) |
| 34 | #define HIF_PCI_IPA_UC_ASSIGNED_CE 5 |
| 35 | |
Srinivas Girigowda | 8a0b665 | 2016-10-19 16:01:31 -0700 | [diff] [blame] | 36 | #if defined(WLAN_DEBUG) || defined(DEBUG) |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 37 | static ATH_DEBUG_MASK_DESCRIPTION g_hif_debug_description[] = { |
| 38 | {HIF_PCI_DEBUG, "hif_pci"}, |
| 39 | }; |
| 40 | |
| 41 | ATH_DEBUG_INSTANTIATE_MODULE_VAR(hif, "hif", "PCIe Host Interface", |
| 42 | ATH_DEBUG_MASK_DEFAULTS | ATH_DEBUG_INFO, |
| 43 | ATH_DEBUG_DESCRIPTION_COUNT |
| 44 | (g_hif_debug_description), |
| 45 | g_hif_debug_description); |
| 46 | #endif |
| 47 | |
| 48 | #ifdef CONFIG_ATH_PCIE_ACCESS_DEBUG |
Houston Hoffman | e633044 | 2016-02-26 12:19:11 -0800 | [diff] [blame] | 49 | /* globals are initialized to 0 by the compiler */; |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 50 | spinlock_t pcie_access_log_lock; |
Houston Hoffman | e633044 | 2016-02-26 12:19:11 -0800 | [diff] [blame] | 51 | unsigned int pcie_access_log_seqnum; |
Manikandan Mohan | bd0ef8a | 2017-04-10 13:10:21 -0700 | [diff] [blame] | 52 | struct HIF_ACCESS_LOG pcie_access_log[PCIE_ACCESS_LOG_NUM]; |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 53 | static void hif_target_dump_access_log(void); |
| 54 | #endif |
| 55 | |
| 56 | /* |
| 57 | * Host software's Copy Engine configuration. |
| 58 | * This table is derived from the CE_PCI TABLE, above. |
| 59 | */ |
| 60 | #ifdef BIG_ENDIAN_HOST |
| 61 | #define CE_ATTR_FLAGS CE_ATTR_BYTE_SWAP_DATA |
| 62 | #else |
| 63 | #define CE_ATTR_FLAGS 0 |
| 64 | #endif |
| 65 | |
| 66 | /* Maximum number of Copy Engine's supported */ |
| 67 | #define CE_HTT_H2T_MSG_SRC_NENTRIES 2048 |
Aravind Narasimhan | c7620c1 | 2016-06-23 15:27:23 +0530 | [diff] [blame] | 68 | #define CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B 4096 |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 69 | |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 70 | #define EPPING_CE_FLAGS_POLL \ |
| 71 | (CE_ATTR_DISABLE_INTR|CE_ATTR_ENABLE_POLL|CE_ATTR_FLAGS) |
Houston Hoffman | abd0077 | 2016-05-06 17:02:48 -0700 | [diff] [blame] | 72 | |
| 73 | #ifdef CONFIG_WIN |
| 74 | #define PIPEDIR_INOUT_H2H 4 |
| 75 | #endif |
| 76 | |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 77 | #define CE_ATTR_DIAG_FLAGS \ |
| 78 | (CE_ATTR_FLAGS | CE_ATTR_DIAG) |
| 79 | |
Nirav Shah | 4c8b78a | 2018-06-12 11:49:35 +0530 | [diff] [blame] | 80 | #ifdef QCN7605_SUPPORT |
| 81 | |
| 82 | #define QCN7605_CE_COUNT 9 |
| 83 | static struct CE_attr host_ce_config_wlan_qcn7605[] = { |
| 84 | /* host->target HTC control and raw streams & WMI Control*/ |
| 85 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 86 | /* target->host HTT + HTC control */ |
| 87 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 88 | /* target->host WMI */ |
| 89 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 90 | /* target->host HTT */ |
| 91 | { /* CE3 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 92 | /* host->target HTT */ |
| 93 | { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 94 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
| 95 | #ifdef IPA_OFFLOAD |
| 96 | /* ipa_uc->target HTC control */ |
| 97 | { /* CE5 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 98 | CE_HTT_H2T_MSG_SRC_NENTRIES, 512, 0, NULL,}, |
| 99 | #else |
| 100 | /* unused */ |
| 101 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 102 | #endif |
| 103 | /* Target autonomous HIF_memcpy */ |
| 104 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 105 | /* target->host PKTLOG */ |
| 106 | { /* CE7 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 107 | #ifdef IPA_OFFLOAD |
| 108 | /* Target to uMC */ |
| 109 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 110 | #else |
| 111 | /* target->host HTT*/ |
| 112 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 113 | #endif |
| 114 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
| 115 | }; |
| 116 | |
| 117 | static struct CE_pipe_config target_ce_config_wlan_qcn7605[] = { |
| 118 | /* host->target HTC control and raw streams */ |
| 119 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 120 | /* target->host HTT */ |
| 121 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 122 | /* target->host WMI + HTC control */ |
| 123 | { /* CE2 */ 2, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS, 0,}, |
| 124 | /* target->host HTT */ |
| 125 | { /* CE3 */ 3, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 126 | /* host->target HTT */ |
| 127 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, |
| 128 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 129 | /* NB: 50% of src nentries, since tx has 2 frags */ |
| 130 | #ifdef IPA_OFFLOAD |
| 131 | /* ipa_uc->target */ |
| 132 | { /* CE5 */ 5, PIPEDIR_OUT, 1024, 64, |
| 133 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 134 | #else |
| 135 | /* unused */ |
| 136 | { /* CE5 */ 5, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, |
| 137 | #endif |
| 138 | /* Reserved for target autonomous HIF_memcpy */ |
| 139 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 140 | /* Target -> host PKTLOG */ |
| 141 | { /* CE7 */ 7, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 142 | #ifdef IPA_OFFLOAD |
| 143 | /* CE8 used only by IPA */ |
| 144 | { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 145 | #else |
| 146 | /* target->host HTT*/ |
| 147 | { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 148 | #endif |
| 149 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
| 150 | }; |
| 151 | #endif |
| 152 | |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 153 | #ifdef QCA_WIFI_3_0 |
| 154 | static struct CE_attr host_ce_config_wlan[] = { |
| 155 | /* host->target HTC control and raw streams */ |
| 156 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 157 | /* target->host HTT + HTC control */ |
| 158 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 159 | /* target->host WMI */ |
Houston Hoffman | 3891949 | 2017-03-02 11:43:05 -0800 | [diff] [blame] | 160 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 161 | /* host->target WMI */ |
| 162 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
| 163 | /* host->target HTT */ |
| 164 | { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 165 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
| 166 | /* ipa_uc->target HTC control */ |
| 167 | { /* CE5 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
Houston Hoffman | 32f8ccf | 2017-02-10 10:35:22 -0800 | [diff] [blame] | 168 | CE_HTT_H2T_MSG_SRC_NENTRIES, 512, 0, NULL,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 169 | /* Target autonomous HIF_memcpy */ |
| 170 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 171 | /* ce_diag, the Diagnostic Window */ |
Govind Singh | ae820d0 | 2017-04-25 10:33:23 +0530 | [diff] [blame] | 172 | { /* CE7 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Sanjay Devnani | 1987957 | 2015-11-12 14:08:57 -0800 | [diff] [blame] | 173 | /* Target to uMC */ |
| 174 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Houston Hoffman | e633044 | 2016-02-26 12:19:11 -0800 | [diff] [blame] | 175 | /* target->host HTT */ |
| 176 | { /* CE9 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 177 | /* target->host HTT */ |
| 178 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
Nirav Shah | 75cc5c8 | 2016-05-25 10:52:38 +0530 | [diff] [blame] | 179 | /* target -> host PKTLOG */ |
| 180 | { /* CE11 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 181 | }; |
| 182 | |
| 183 | static struct CE_pipe_config target_ce_config_wlan[] = { |
| 184 | /* host->target HTC control and raw streams */ |
| 185 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 186 | /* target->host HTT */ |
| 187 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 188 | /* target->host WMI + HTC control */ |
Houston Hoffman | f7d5d8e | 2016-08-02 20:59:13 -0700 | [diff] [blame] | 189 | { /* CE2 */ 2, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS, 0,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 190 | /* host->target WMI */ |
| 191 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 192 | /* host->target HTT */ |
| 193 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, |
| 194 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 195 | /* NB: 50% of src nentries, since tx has 2 frags */ |
| 196 | /* ipa_uc->target */ |
| 197 | { /* CE5 */ 5, PIPEDIR_OUT, 1024, 64, |
| 198 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 199 | /* Reserved for target autonomous HIF_memcpy */ |
Dhanashri Atre | 4236494 | 2016-04-25 13:28:12 -0700 | [diff] [blame] | 200 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 201 | /* CE7 used only by Host */ |
| 202 | { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, |
| 203 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 204 | /* CE8 used only by IPA */ |
Sanjay Devnani | 1987957 | 2015-11-12 14:08:57 -0800 | [diff] [blame] | 205 | { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
Houston Hoffman | e633044 | 2016-02-26 12:19:11 -0800 | [diff] [blame] | 206 | /* CE9 target->host HTT */ |
| 207 | { /* CE9 */ 9, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 208 | /* CE10 target->host HTT */ |
| 209 | { /* CE10 */ 10, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
Nirav Shah | 75cc5c8 | 2016-05-25 10:52:38 +0530 | [diff] [blame] | 210 | /* Target -> host PKTLOG */ |
| 211 | { /* CE11 */ 11, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 212 | }; |
| 213 | |
Nirav Shah | 0d0cce8 | 2018-01-17 17:00:31 +0530 | [diff] [blame] | 214 | #ifdef WLAN_FEATURE_EPPING |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 215 | static struct CE_attr host_ce_config_wlan_epping_poll[] = { |
| 216 | /* host->target HTC control and raw streams */ |
| 217 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 218 | /* target->host EP-ping */ |
| 219 | { /* CE1 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,}, |
| 220 | /* target->host EP-ping */ |
| 221 | { /* CE2 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,}, |
| 222 | /* host->target EP-ping */ |
| 223 | { /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 224 | /* host->target EP-ping */ |
| 225 | { /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 226 | /* EP-ping heartbeat */ |
| 227 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 228 | /* unused */ |
| 229 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 230 | /* ce_diag, the Diagnostic Window */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 231 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 232 | }; |
| 233 | |
| 234 | static struct CE_attr host_ce_config_wlan_epping_irq[] = { |
| 235 | /* host->target HTC control and raw streams */ |
| 236 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 237 | /* target->host EP-ping */ |
| 238 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 239 | /* target->host EP-ping */ |
| 240 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 241 | /* host->target EP-ping */ |
| 242 | { /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 243 | /* host->target EP-ping */ |
| 244 | { /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 245 | /* EP-ping heartbeat */ |
| 246 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 247 | /* unused */ |
| 248 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 249 | /* ce_diag, the Diagnostic Window */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 250 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 251 | }; |
| 252 | /* |
| 253 | * EP-ping firmware's CE configuration |
| 254 | */ |
| 255 | static struct CE_pipe_config target_ce_config_wlan_epping[] = { |
| 256 | /* host->target HTC control and raw streams */ |
| 257 | { /* CE0 */ 0, PIPEDIR_OUT, 16, 2048, CE_ATTR_FLAGS, 0,}, |
| 258 | /* target->host EP-ping */ |
| 259 | { /* CE1 */ 1, PIPEDIR_IN, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 260 | /* target->host EP-ping */ |
| 261 | { /* CE2 */ 2, PIPEDIR_IN, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 262 | /* host->target EP-ping */ |
| 263 | { /* CE3 */ 3, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 264 | /* host->target EP-ping */ |
| 265 | { /* CE4 */ 4, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 266 | /* EP-ping heartbeat */ |
| 267 | { /* CE5 */ 5, PIPEDIR_IN, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 268 | /* unused */ |
| 269 | { /* CE6 */ 6, PIPEDIR_INOUT, 0, 0, CE_ATTR_FLAGS, 0,}, |
| 270 | /* CE7 used only by Host */ |
| 271 | { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, |
| 272 | /* CE8 used only by IPA */ |
| 273 | { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,} |
| 274 | }; |
Nirav Shah | 0d0cce8 | 2018-01-17 17:00:31 +0530 | [diff] [blame] | 275 | #endif |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 276 | #else |
| 277 | static struct CE_attr host_ce_config_wlan[] = { |
| 278 | /* host->target HTC control and raw streams */ |
| 279 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL,}, |
| 280 | /* target->host HTT + HTC control */ |
| 281 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 282 | /* target->host WMI */ |
| 283 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 32, NULL,}, |
| 284 | /* host->target WMI */ |
| 285 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
| 286 | /* host->target HTT */ |
| 287 | { /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, |
| 288 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
| 289 | /* ipa_uc->target HTC control */ |
| 290 | { /* CE5 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, |
| 291 | 1024, 512, 0, NULL,}, |
| 292 | /* Target autonomous HIF_memcpy */ |
| 293 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 294 | /* ce_diag, the Diagnostic Window */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 295 | { /* CE7 */ (CE_ATTR_DIAG_FLAGS | CE_ATTR_DISABLE_INTR), |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 296 | 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL,}, |
| 297 | }; |
| 298 | |
| 299 | static struct CE_pipe_config target_ce_config_wlan[] = { |
| 300 | /* host->target HTC control and raw streams */ |
| 301 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 256, CE_ATTR_FLAGS, 0,}, |
| 302 | /* target->host HTT + HTC control */ |
| 303 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 304 | /* target->host WMI */ |
| 305 | { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 306 | /* host->target WMI */ |
| 307 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 308 | /* host->target HTT */ |
| 309 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, CE_ATTR_FLAGS, 0,}, |
| 310 | /* NB: 50% of src nentries, since tx has 2 frags */ |
| 311 | /* ipa_uc->target HTC control */ |
| 312 | { /* CE5 */ 5, PIPEDIR_OUT, 1024, 64, CE_ATTR_FLAGS, 0,}, |
| 313 | /* Reserved for target autonomous HIF_memcpy */ |
| 314 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 4096, CE_ATTR_FLAGS, 0,}, |
| 315 | /* CE7 used only by Host */ |
| 316 | { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, |
| 317 | /* CE8 used only by IPA */ |
| 318 | { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,} |
| 319 | }; |
| 320 | |
Nirav Shah | 0d0cce8 | 2018-01-17 17:00:31 +0530 | [diff] [blame] | 321 | #ifdef WLAN_FEATURE_EPPING |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 322 | static struct CE_attr host_ce_config_wlan_epping_poll[] = { |
| 323 | /* host->target HTC control and raw streams */ |
| 324 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL,}, |
| 325 | /* target->host EP-ping */ |
| 326 | { /* CE1 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,}, |
| 327 | /* target->host EP-ping */ |
| 328 | { /* CE2 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 128, NULL,}, |
| 329 | /* host->target EP-ping */ |
| 330 | { /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 331 | /* host->target EP-ping */ |
| 332 | { /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 333 | /* EP-ping heartbeat */ |
| 334 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 335 | /* unused */ |
| 336 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 337 | /* ce_diag, the Diagnostic Window */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 338 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL,}, |
Rajeev Kumar | 74f7764 | 2016-04-14 16:54:32 -0700 | [diff] [blame] | 339 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 340 | /* The following CEs are not being used yet */ |
| 341 | { /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 342 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 343 | { /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 344 | }; |
| 345 | static struct CE_attr host_ce_config_wlan_epping_irq[] = { |
| 346 | /* host->target HTC control and raw streams */ |
| 347 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL,}, |
| 348 | /* target->host EP-ping */ |
| 349 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 350 | /* target->host EP-ping */ |
| 351 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 352 | /* host->target EP-ping */ |
| 353 | { /* CE3 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 354 | /* host->target EP-ping */ |
| 355 | { /* CE4 */ CE_ATTR_FLAGS, 0, 128, 2048, 0, NULL,}, |
| 356 | /* EP-ping heartbeat */ |
| 357 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL,}, |
| 358 | /* unused */ |
| 359 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 360 | /* ce_diag, the Diagnostic Window */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 361 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL,}, |
Rajeev Kumar | 74f7764 | 2016-04-14 16:54:32 -0700 | [diff] [blame] | 362 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 363 | /* The following CEs are not being used yet */ |
| 364 | { /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 365 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 366 | { /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 367 | }; |
| 368 | /* |
| 369 | * EP-ping firmware's CE configuration |
| 370 | */ |
| 371 | static struct CE_pipe_config target_ce_config_wlan_epping[] = { |
| 372 | /* host->target HTC control and raw streams */ |
| 373 | { /* CE0 */ 0, PIPEDIR_OUT, 16, 256, CE_ATTR_FLAGS, 0,}, |
| 374 | /* target->host EP-ping */ |
| 375 | { /* CE1 */ 1, PIPEDIR_IN, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 376 | /* target->host EP-ping */ |
| 377 | { /* CE2 */ 2, PIPEDIR_IN, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 378 | /* host->target EP-ping */ |
| 379 | { /* CE3 */ 3, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 380 | /* host->target EP-ping */ |
| 381 | { /* CE4 */ 4, PIPEDIR_OUT, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 382 | /* EP-ping heartbeat */ |
| 383 | { /* CE5 */ 5, PIPEDIR_IN, 128, 2048, CE_ATTR_FLAGS, 0,}, |
| 384 | /* unused */ |
| 385 | { /* CE6 */ 6, PIPEDIR_INOUT, 0, 0, CE_ATTR_FLAGS, 0,}, |
| 386 | /* CE7 used only by Host */ |
| 387 | { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, |
| 388 | /* CE8 used only by IPA */ |
Rajeev Kumar | 74f7764 | 2016-04-14 16:54:32 -0700 | [diff] [blame] | 389 | { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 390 | { /* CE9 */ 9, PIPEDIR_IN, 0, 0, CE_ATTR_FLAGS, 0,}, |
| 391 | { /* CE10 */ 10, PIPEDIR_IN, 0, 0, CE_ATTR_FLAGS, 0,}, |
| 392 | { /* CE11 */ 11, PIPEDIR_IN, 0, 0, CE_ATTR_FLAGS, 0,}, |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 393 | }; |
| 394 | #endif |
Nirav Shah | 0d0cce8 | 2018-01-17 17:00:31 +0530 | [diff] [blame] | 395 | #endif |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 396 | |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 397 | static struct CE_attr host_ce_config_wlan_ar9888[] = { |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 398 | /* host->target HTC control and raw streams */ |
| 399 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, }, |
| 400 | /* target->host BMI + HTC control */ |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 401 | /* could be moved to share CE3 */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 402 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
| 403 | /* target->host WMI */ |
| 404 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, }, |
| 405 | /* host->target WMI */ |
| 406 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, }, |
| 407 | /* host->target HTT */ |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 408 | { /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 409 | CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, }, |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 410 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 411 | /* target->host HTT messages */ |
| 412 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 413 | #else /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 414 | /* unused */ |
| 415 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 416 | #endif /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 417 | /* Target autonomous HIF_memcpy */ |
| 418 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 419 | /* ce_diag, the Diagnostic Window */ |
| 420 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, }, |
| 421 | /* Target autonomous HIF_memcpy */ |
| 422 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 423 | }; |
| 424 | |
| 425 | static struct CE_attr host_ce_config_wlan_ar900b[] = { |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 426 | /* host->target HTC control and raw streams */ |
| 427 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, }, |
| 428 | /* target->host BMI + HTC control */ |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 429 | /* could be moved to share CE3 */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 430 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
| 431 | /* target->host WMI */ |
| 432 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, }, |
| 433 | /* host->target WMI */ |
| 434 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, }, |
| 435 | /* host->target HTT */ |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 436 | { /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 437 | CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, }, |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 438 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 439 | /* target->host HTT messages */ |
| 440 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 441 | #else /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 442 | /* unused */ |
| 443 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 444 | #endif /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 445 | /* Target autonomous HIF_memcpy */ |
| 446 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 447 | /* ce_diag, the Diagnostic Window */ |
| 448 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, }, |
| 449 | /* target->host pktlog */ |
| 450 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, }, |
| 451 | /* Target autonomous HIF_memcpy */ |
| 452 | { /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 453 | /* Target autonomous HIF_memcpy */ |
| 454 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 455 | /* Target autonomous HIF_memcpy */ |
| 456 | { /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 457 | }; |
| 458 | |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 459 | static struct CE_attr host_lowdesc_ce_cfg_wlan_ar9888[] = { |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 460 | /* host->target HTC control and raw streams */ |
| 461 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 462 | /* could be moved to share CE3 */ |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 463 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 464 | /* target->host BMI + HTC control */ |
| 465 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 64, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 466 | #else |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 467 | /* target->host BMI + HTC control */ |
| 468 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 469 | #endif |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 470 | /* target->host WMI */ |
| 471 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, }, |
| 472 | /* host->target WMI */ |
| 473 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, }, |
| 474 | /* host->target HTT */ |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 475 | { /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 476 | CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, }, |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 477 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 478 | /* target->host HTT messages */ |
| 479 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 480 | #else /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 481 | /* unused */ |
| 482 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 483 | #endif /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 484 | /* Target autonomous HIF_memcpy */ |
| 485 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 486 | /* ce_diag, the Diagnostic Window */ |
| 487 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, }, |
| 488 | /* Target autonomous HIF_memcpy */ |
| 489 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 490 | }; |
| 491 | |
| 492 | static struct CE_attr host_lowdesc_ce_cfg_wlan_ar900b[] = { |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 493 | /* host->target HTC control and raw streams */ |
| 494 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 495 | /* could be moved to share CE3 */ |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 496 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 497 | /* target->host BMI + HTC control */ |
| 498 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 64, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 499 | #else |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 500 | /* target->host BMI + HTC control */ |
| 501 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 502 | #endif |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 503 | /* target->host WMI */ |
| 504 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, }, |
| 505 | /* host->target WMI */ |
| 506 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, }, |
| 507 | /* host->target HTT */ |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 508 | { /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 509 | CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, }, |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 510 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 511 | /* target->host HTT messages */ |
| 512 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 513 | #else /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 514 | /* unused */ |
| 515 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 516 | #endif /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 517 | /* Target autonomous HIF_memcpy */ |
| 518 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 519 | /* ce_diag, the Diagnostic Window */ |
| 520 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, }, |
| 521 | /* target->host pktlog */ |
| 522 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, }, |
| 523 | /* Target autonomous HIF_memcpy */ |
| 524 | { /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 525 | /* Target autonomous HIF_memcpy */ |
| 526 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 527 | /* Target autonomous HIF_memcpy */ |
| 528 | { /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 529 | }; |
| 530 | |
| 531 | static struct CE_attr host_lowdesc_ce_cfg_wlan_ar900b_nopktlog[] = { |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 532 | /* host->target HTC control and raw streams */ |
| 533 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 256, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 534 | /* could be moved to share CE3 */ |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 535 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 536 | /* target->host BMI + HTC control */ |
| 537 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 64, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 538 | #else |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 539 | /* target->host BMI + HTC control */ |
| 540 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 541 | #endif |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 542 | /* target->host WMI */ |
| 543 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 128, NULL, }, |
| 544 | /* host->target WMI */ |
| 545 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL, }, |
| 546 | /* host->target HTT */ |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 547 | { /* CE4 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 548 | CE_HTT_H2T_MSG_SRC_NENTRIES_AR900B, 256, 0, NULL, }, |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 549 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 550 | /* target->host HTT messages */ |
| 551 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 512, 512, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 552 | #else /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 553 | /* unused */ |
| 554 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 555 | #endif /* WLAN_FEATURE_FASTPATH */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 556 | /* Target autonomous HIF_memcpy */ |
| 557 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 558 | /* ce_diag, the Diagnostic Window */ |
| 559 | { /* CE7 */ CE_ATTR_DIAG_FLAGS, 0, 2, DIAG_TRANSFER_LIMIT, 2, NULL, }, |
| 560 | /* target->host pktlog */ |
| 561 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 562 | /* Target autonomous HIF_memcpy */ |
| 563 | { /* CE9 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 564 | /* Target autonomous HIF_memcpy */ |
| 565 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
| 566 | /* Target autonomous HIF_memcpy */ |
| 567 | { /* CE11 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL, }, |
Venkateswara Swamy Bandaru | 5432c1b | 2016-10-12 19:00:40 +0530 | [diff] [blame] | 568 | }; |
| 569 | |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 570 | static struct CE_pipe_config target_ce_config_wlan_ar9888[] = { |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 571 | /* host->target HTC control and raw streams */ |
| 572 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 256, CE_ATTR_FLAGS, 0, }, |
| 573 | /* target->host HTC control */ |
| 574 | { /* CE1 */ 1, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, }, |
| 575 | /* target->host WMI */ |
| 576 | { /* CE2 */ 2, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS, 0, }, |
| 577 | /* host->target WMI */ |
| 578 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, }, |
| 579 | /* host->target HTT */ |
| 580 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, CE_ATTR_FLAGS, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 581 | /* NB: 50% of src nentries, since tx has 2 frags */ |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 582 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 583 | /* target->host HTT */ |
| 584 | { /* CE5 */ 5, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 585 | #else |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 586 | /* unused */ |
| 587 | { /* CE5 */ 5, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 588 | #endif |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 589 | /* Reserved for target autonomous HIF_memcpy */ |
| 590 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 4096, CE_ATTR_FLAGS, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 591 | /* CE7 used only by Host */ |
| 592 | }; |
| 593 | |
| 594 | static struct CE_pipe_config target_ce_config_wlan_ar900b[] = { |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 595 | /* host->target HTC control and raw streams */ |
| 596 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 256, CE_ATTR_FLAGS, 0, }, |
| 597 | /* target->host HTC control */ |
| 598 | { /* CE1 */ 1, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, }, |
| 599 | /* target->host WMI */ |
| 600 | { /* CE2 */ 2, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS, 0, }, |
| 601 | /* host->target WMI */ |
| 602 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, }, |
| 603 | /* host->target HTT */ |
| 604 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, CE_ATTR_FLAGS, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 605 | /* NB: 50% of src nentries, since tx has 2 frags */ |
Nirav Shah | 77250fa | 2018-03-11 14:56:22 +0530 | [diff] [blame] | 606 | #ifdef WLAN_FEATURE_FASTPATH |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 607 | /* target->host HTT */ |
| 608 | { /* CE5 */ 5, PIPEDIR_IN, 32, 512, CE_ATTR_FLAGS, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 609 | #else |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 610 | /* unused */ |
| 611 | { /* CE5 */ 5, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 612 | #endif |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 613 | /* Reserved for target autonomous HIF_memcpy */ |
| 614 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 4096, CE_ATTR_FLAGS, 0, }, |
| 615 | /* CE7 used only by Host */ |
| 616 | { /* CE7 */ 7, PIPEDIR_INOUT, 0, 0, 0, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 617 | { /* CE8 */ 8, PIPEDIR_IN, 64, 2048, CE_ATTR_FLAGS |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 618 | /* target->host packtlog */ |
| 619 | | CE_ATTR_DISABLE_INTR, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 620 | #if PEER_CACHEING_HOST_ENABLE |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 621 | /* target autonomous qcache memcpy */ |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 622 | { /* CE9 */ 9, PIPEDIR_INOUT, 32, 2048, CE_ATTR_FLAGS | |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 623 | CE_ATTR_DISABLE_INTR, 0, }, |
Houston Hoffman | fb698ef | 2016-05-05 19:50:44 -0700 | [diff] [blame] | 624 | #endif |
| 625 | }; |
| 626 | |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 627 | static struct CE_attr host_ce_config_wlan_qca8074[] = { |
| 628 | /* host->target HTC control and raw streams */ |
| 629 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 630 | /* target->host HTT + HTC control */ |
| 631 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 632 | /* target->host WMI */ |
Kiran Venkatappa | cb001d8 | 2019-01-11 18:10:38 +0530 | [diff] [blame^] | 633 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 634 | /* host->target WMI (mac0) */ |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 635 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
| 636 | /* host->target HTT */ |
| 637 | { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 638 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
Keyur Parekh | fad6d08 | 2017-05-07 08:54:47 -0700 | [diff] [blame] | 639 | /* target -> host PKTLOG */ |
| 640 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 641 | /* Target autonomous HIF_memcpy */ |
Karunakar Dasineni | 9ff1ef9 | 2018-03-30 16:37:21 -0700 | [diff] [blame] | 642 | { /* CE6 */ CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR, 0, 0, |
| 643 | 0, 0, NULL,}, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 644 | /* host->target WMI (mac1) */ |
| 645 | { /* CE7 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 646 | /* Target to uMC */ |
| 647 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 648 | /* host->target WMI (mac2) */ |
| 649 | { /* CE9 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 650 | /* target->host HTT */ |
| 651 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
Vinay Adella | 77d43a8 | 2018-12-14 11:15:56 +0530 | [diff] [blame] | 652 | { /* CE11 unused */ 0, 0, 0, 0, 0, NULL,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 653 | }; |
| 654 | |
| 655 | static struct CE_pipe_config target_ce_config_wlan_qca8074[] = { |
| 656 | /* host->target HTC control and raw streams */ |
| 657 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 658 | /* target->host HTT */ |
| 659 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 660 | /* target->host WMI + HTC control */ |
| 661 | { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 662 | /* host->target WMI */ |
| 663 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 664 | /* host->target HTT */ |
| 665 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, |
| 666 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 667 | /* NB: 50% of src nentries, since tx has 2 frags */ |
Keyur Parekh | db0fa14 | 2017-07-13 19:40:22 -0700 | [diff] [blame] | 668 | /* Target -> host PKTLOG */ |
| 669 | { /* CE5 */ 5, PIPEDIR_IN, 32, 2048, 0, 0,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 670 | /* Reserved for target autonomous HIF_memcpy */ |
Balamurugan Mahalingam | 20802b2 | 2017-05-02 19:11:38 +0530 | [diff] [blame] | 671 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 65535, 64, 0,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 672 | /* CE7 used only by Host */ |
Balamurugan Mahalingam | 20802b2 | 2017-05-02 19:11:38 +0530 | [diff] [blame] | 673 | { /* CE7 */ 7, PIPEDIR_OUT, 32, 2048, |
| 674 | 8192, 0,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 675 | /* CE8 used only by IPA */ |
Balamurugan Mahalingam | 20802b2 | 2017-05-02 19:11:38 +0530 | [diff] [blame] | 676 | { /* CE8 */ 8, PIPEDIR_INOUT, 32, 65535, 112, 0,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 677 | /* CE9 target->host HTT */ |
Balamurugan Mahalingam | 20802b2 | 2017-05-02 19:11:38 +0530 | [diff] [blame] | 678 | { /* CE9 */ 9, PIPEDIR_OUT, 32, 2048, 8192, 0,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 679 | /* CE10 target->host HTT */ |
Balamurugan Mahalingam | 20802b2 | 2017-05-02 19:11:38 +0530 | [diff] [blame] | 680 | { /* CE10 */ 10, PIPEDIR_INOUT_H2H, 0, 0, 0, 0,}, |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 681 | }; |
Kiran Venkatappa | f41ef2e | 2016-09-05 10:59:58 +0530 | [diff] [blame] | 682 | |
Karunakar Dasineni | f61cb07 | 2016-09-29 11:50:45 -0700 | [diff] [blame] | 683 | static struct CE_attr host_ce_config_wlan_qca8074_pci[] = { |
| 684 | /* host->target HTC control and raw streams */ |
| 685 | { /* CE0 */ EPPING_CE_FLAGS_POLL, 0, 16, 2048, 0, NULL,}, |
| 686 | /* target->host HTT + HTC control */ |
| 687 | { /* CE1 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 512, NULL,}, |
| 688 | /* target->host WMI */ |
Kiran Venkatappa | ca1b9f8 | 2017-12-05 11:29:12 +0530 | [diff] [blame] | 689 | { /* CE2 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 256, NULL,}, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 690 | /* host->target WMI (mac0) */ |
Karunakar Dasineni | f61cb07 | 2016-09-29 11:50:45 -0700 | [diff] [blame] | 691 | { /* CE3 */ EPPING_CE_FLAGS_POLL, 0, 32, 2048, 0, NULL,}, |
| 692 | /* host->target HTT */ |
| 693 | { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 694 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
Keyur Parekh | fad6d08 | 2017-05-07 08:54:47 -0700 | [diff] [blame] | 695 | /* target -> host PKTLOG */ |
| 696 | { /* CE5 */ EPPING_CE_FLAGS_POLL, 0, 0, 2048, 512, NULL,}, |
Karunakar Dasineni | f61cb07 | 2016-09-29 11:50:45 -0700 | [diff] [blame] | 697 | /* Target autonomous HIF_memcpy */ |
| 698 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 699 | /* host->target WMI (mac1) */ |
| 700 | { /* CE7 */ EPPING_CE_FLAGS_POLL, 0, 32, 2048, 0, NULL,}, |
Karunakar Dasineni | f61cb07 | 2016-09-29 11:50:45 -0700 | [diff] [blame] | 701 | /* Target to uMC */ |
| 702 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 703 | /* host->target WMI (mac2) */ |
| 704 | { /* CE9 */ EPPING_CE_FLAGS_POLL, 0, 32, 2048, 0, NULL,}, |
Karunakar Dasineni | f61cb07 | 2016-09-29 11:50:45 -0700 | [diff] [blame] | 705 | /* target->host HTT */ |
| 706 | { /* CE10 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
Vinay Adella | 77d43a8 | 2018-12-14 11:15:56 +0530 | [diff] [blame] | 707 | { /* CE11 unused */ 0, 0, 0, 0, 0, NULL,}, |
Karunakar Dasineni | f61cb07 | 2016-09-29 11:50:45 -0700 | [diff] [blame] | 708 | }; |
Keyur Parekh | fad6d08 | 2017-05-07 08:54:47 -0700 | [diff] [blame] | 709 | |
Karunakar Dasineni | f61cb07 | 2016-09-29 11:50:45 -0700 | [diff] [blame] | 710 | static struct CE_pipe_config target_ce_config_wlan_qca8074_pci[] = { |
| 711 | /* host->target HTC control and raw streams */ |
| 712 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 713 | /* target->host HTT */ |
| 714 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 715 | /* target->host WMI + HTC control */ |
| 716 | { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 717 | /* host->target WMI */ |
| 718 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 719 | /* host->target HTT */ |
| 720 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, |
| 721 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 722 | /* NB: 50% of src nentries, since tx has 2 frags */ |
| 723 | /* ipa_uc->target */ |
| 724 | { /* CE5 */ 5, PIPEDIR_OUT, 1024, 64, |
| 725 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 726 | /* Reserved for target autonomous HIF_memcpy */ |
| 727 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 728 | /* CE7 used only by Host */ |
| 729 | { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, |
| 730 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 731 | /* CE8 used only by IPA */ |
| 732 | { /* CE8 */ 8, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 733 | /* CE9 target->host HTT */ |
| 734 | { /* CE9 */ 9, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 735 | /* CE10 target->host HTT */ |
| 736 | { /* CE10 */ 10, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 737 | /* Target -> host PKTLOG */ |
| 738 | { /* CE11 */ 11, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 739 | }; |
| 740 | |
Houston Hoffman | 710af5a | 2016-11-22 21:59:03 -0800 | [diff] [blame] | 741 | #define QCA_6290_CE_COUNT 9 |
Nandha Kishore Easwaran | 51f80b8 | 2018-02-21 12:04:34 +0530 | [diff] [blame] | 742 | #ifdef CONFIG_WIN |
| 743 | static struct CE_attr host_ce_config_wlan_qca6290[] = { |
| 744 | /* host->target HTC control and raw streams */ |
| 745 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 746 | /* target->host HTT + HTC control */ |
Nandha Kishore Easwaran | 7cdaae2 | 2018-07-30 15:02:51 +0530 | [diff] [blame] | 747 | { /* CE1 */ (CE_ATTR_FLAGS | CE_ATTR_ENABLE_POLL), 0, 0, 2048, |
| 748 | 512, NULL,}, |
Nandha Kishore Easwaran | 51f80b8 | 2018-02-21 12:04:34 +0530 | [diff] [blame] | 749 | /* target->host WMI */ |
Nandha Kishore Easwaran | 7cdaae2 | 2018-07-30 15:02:51 +0530 | [diff] [blame] | 750 | { /* CE2 */ (CE_ATTR_FLAGS | CE_ATTR_ENABLE_POLL), 0, 0, 2048, |
| 751 | 32, NULL,}, |
Nandha Kishore Easwaran | 51f80b8 | 2018-02-21 12:04:34 +0530 | [diff] [blame] | 752 | /* host->target WMI */ |
| 753 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
| 754 | /* host->target HTT */ |
| 755 | { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 756 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
| 757 | /* target -> host PKTLOG */ |
Nandha Kishore Easwaran | 7cdaae2 | 2018-07-30 15:02:51 +0530 | [diff] [blame] | 758 | { /* CE5 */ (CE_ATTR_FLAGS | CE_ATTR_ENABLE_POLL), 0, 0, 2048, |
| 759 | 512, NULL,}, |
Nandha Kishore Easwaran | 51f80b8 | 2018-02-21 12:04:34 +0530 | [diff] [blame] | 760 | /* Target autonomous HIF_memcpy */ |
| 761 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 762 | /* host->target WMI (mac1) */ |
| 763 | { /* CE7 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
| 764 | /* Reserved for target */ |
| 765 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 766 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
| 767 | }; |
| 768 | |
| 769 | static struct CE_pipe_config target_ce_config_wlan_qca6290[] = { |
| 770 | /* host->target HTC control and raw streams */ |
| 771 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 772 | /* target->host HTT */ |
| 773 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 774 | /* target->host WMI + HTC control */ |
| 775 | { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 776 | /* host->target WMI */ |
| 777 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 778 | /* host->target HTT */ |
| 779 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, |
| 780 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 781 | /* Target -> host PKTLOG */ |
| 782 | { /* CE5 */ 5, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 783 | /* Reserved for target autonomous HIF_memcpy */ |
| 784 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 785 | /* CE7 used only by Host */ |
| 786 | { /* CE7 */ 7, PIPEDIR_OUT, 32, 2048, |
| 787 | 8192, 0,}, |
| 788 | /* Reserved for target */ |
| 789 | { /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 790 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
| 791 | }; |
| 792 | #else |
Houston Hoffman | 31b25ec | 2016-09-19 13:12:30 -0700 | [diff] [blame] | 793 | static struct CE_attr host_ce_config_wlan_qca6290[] = { |
| 794 | /* host->target HTC control and raw streams */ |
| 795 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 796 | /* target->host HTT + HTC control */ |
| 797 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 798 | /* target->host WMI */ |
| 799 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 32, NULL,}, |
| 800 | /* host->target WMI */ |
| 801 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
| 802 | /* host->target HTT */ |
| 803 | { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 804 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
Houston Hoffman | 88c896f | 2016-12-14 09:56:35 -0800 | [diff] [blame] | 805 | /* target -> host PKTLOG */ |
| 806 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
Houston Hoffman | 31b25ec | 2016-09-19 13:12:30 -0700 | [diff] [blame] | 807 | /* Target autonomous HIF_memcpy */ |
| 808 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 809 | /* ce_diag, the Diagnostic Window */ |
Kiran Venkatappa | e17e3b6 | 2017-02-10 16:31:49 +0530 | [diff] [blame] | 810 | { /* CE7 */ (CE_ATTR_DIAG_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
Houston Hoffman | 31b25ec | 2016-09-19 13:12:30 -0700 | [diff] [blame] | 811 | 2, DIAG_TRANSFER_LIMIT, 2, NULL,}, |
Houston Hoffman | 710af5a | 2016-11-22 21:59:03 -0800 | [diff] [blame] | 812 | /* Reserved for target */ |
Houston Hoffman | 31b25ec | 2016-09-19 13:12:30 -0700 | [diff] [blame] | 813 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
Houston Hoffman | 710af5a | 2016-11-22 21:59:03 -0800 | [diff] [blame] | 814 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
Houston Hoffman | 31b25ec | 2016-09-19 13:12:30 -0700 | [diff] [blame] | 815 | }; |
| 816 | |
| 817 | static struct CE_pipe_config target_ce_config_wlan_qca6290[] = { |
| 818 | /* host->target HTC control and raw streams */ |
| 819 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 820 | /* target->host HTT */ |
| 821 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 822 | /* target->host WMI + HTC control */ |
| 823 | { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 824 | /* host->target WMI */ |
| 825 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 826 | /* host->target HTT */ |
| 827 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, |
| 828 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
Houston Hoffman | 88c896f | 2016-12-14 09:56:35 -0800 | [diff] [blame] | 829 | /* Target -> host PKTLOG */ |
| 830 | { /* CE5 */ 5, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
Houston Hoffman | 31b25ec | 2016-09-19 13:12:30 -0700 | [diff] [blame] | 831 | /* Reserved for target autonomous HIF_memcpy */ |
| 832 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 833 | /* CE7 used only by Host */ |
| 834 | { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, |
| 835 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
Houston Hoffman | 710af5a | 2016-11-22 21:59:03 -0800 | [diff] [blame] | 836 | /* Reserved for target */ |
| 837 | { /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 838 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
Houston Hoffman | 31b25ec | 2016-09-19 13:12:30 -0700 | [diff] [blame] | 839 | }; |
Nandha Kishore Easwaran | 51f80b8 | 2018-02-21 12:04:34 +0530 | [diff] [blame] | 840 | #endif |
Venkata Sharath Chandra Manchala | 79860aa | 2018-06-12 15:16:36 -0700 | [diff] [blame] | 841 | |
| 842 | #define QCA_6390_CE_COUNT 9 |
| 843 | static struct CE_attr host_ce_config_wlan_qca6390[] = { |
| 844 | /* host->target HTC control and raw streams */ |
| 845 | { /* CE0 */ CE_ATTR_FLAGS, 0, 16, 2048, 0, NULL,}, |
| 846 | /* target->host HTT + HTC control */ |
| 847 | { /* CE1 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,}, |
| 848 | /* target->host WMI */ |
| 849 | { /* CE2 */ CE_ATTR_FLAGS, 0, 0, 2048, 32, NULL,}, |
| 850 | /* host->target WMI */ |
| 851 | { /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,}, |
| 852 | /* host->target HTT */ |
| 853 | { /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 854 | CE_HTT_H2T_MSG_SRC_NENTRIES, 256, 0, NULL,}, |
| 855 | /* target -> host PKTLOG */ |
| 856 | { /* CE5 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 857 | /* Target autonomous HIF_memcpy */ |
| 858 | { /* CE6 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 859 | /* ce_diag, the Diagnostic Window */ |
| 860 | { /* CE7 */ (CE_ATTR_DIAG_FLAGS | CE_ATTR_DISABLE_INTR), 0, |
| 861 | 0, DIAG_TRANSFER_LIMIT, 0, NULL,}, |
| 862 | /* Reserved for target */ |
| 863 | { /* CE8 */ CE_ATTR_FLAGS, 0, 0, 0, 0, NULL,}, |
| 864 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
| 865 | }; |
| 866 | |
| 867 | static struct CE_pipe_config target_ce_config_wlan_qca6390[] = { |
| 868 | /* host->target HTC control and raw streams */ |
| 869 | { /* CE0 */ 0, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 870 | /* target->host HTT */ |
| 871 | { /* CE1 */ 1, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 872 | /* target->host WMI + HTC control */ |
| 873 | { /* CE2 */ 2, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 874 | /* host->target WMI */ |
| 875 | { /* CE3 */ 3, PIPEDIR_OUT, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 876 | /* host->target HTT */ |
| 877 | { /* CE4 */ 4, PIPEDIR_OUT, 256, 256, |
| 878 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 879 | /* Target -> host PKTLOG */ |
| 880 | { /* CE5 */ 5, PIPEDIR_IN, 32, 2048, CE_ATTR_FLAGS, 0,}, |
| 881 | /* Reserved for target autonomous HIF_memcpy */ |
| 882 | { /* CE6 */ 6, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 883 | /* CE7 used only by Host */ |
| 884 | { /* CE7 */ 7, PIPEDIR_INOUT_H2H, 0, 0, |
| 885 | (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,}, |
| 886 | /* Reserved for target */ |
| 887 | { /* CE8 */ 8, PIPEDIR_INOUT, 32, 16384, CE_ATTR_FLAGS, 0,}, |
| 888 | /* CE 9, 10, 11 belong to CoreBsp & MHI driver */ |
| 889 | }; |
Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame] | 890 | #endif /* __HIF_PCI_INTERNAL_H__ */ |