1a7202704SKiran Venkatappa // SPDX-License-Identifier: BSD-3-Clause-Clear 2a7202704SKiran Venkatappa /* 3a7202704SKiran Venkatappa * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved. 4a7202704SKiran Venkatappa * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 5a7202704SKiran Venkatappa */ 6a7202704SKiran Venkatappa 7a7202704SKiran Venkatappa #include <linux/types.h> 8a7202704SKiran Venkatappa #include <linux/bitops.h> 9a7202704SKiran Venkatappa #include <linux/bitfield.h> 10a7202704SKiran Venkatappa 11a7202704SKiran Venkatappa #include "../core.h" 12a7202704SKiran Venkatappa #include "../ce.h" 13a7202704SKiran Venkatappa #include "ce.h" 14a7202704SKiran Venkatappa #include "../dp_rx.h" 15a7202704SKiran Venkatappa 16a7202704SKiran Venkatappa /* Copy Engine (CE) configs for QCN9274 */ 17a7202704SKiran Venkatappa /* Target firmware's Copy Engine configuration. */ 18*bce3b73dSKiran Venkatappa const struct ce_pipe_config ath12k_wifi7_target_ce_config_wlan_qcn9274[] = { 19a7202704SKiran Venkatappa /* CE0: host->target HTC control and raw streams */ 20a7202704SKiran Venkatappa { 21a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(0), 22a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 23a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 24a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 25a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 26a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 27a7202704SKiran Venkatappa }, 28a7202704SKiran Venkatappa 29a7202704SKiran Venkatappa /* CE1: target->host HTT + HTC control */ 30a7202704SKiran Venkatappa { 31a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(1), 32a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 33a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 34a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 35a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 36a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 37a7202704SKiran Venkatappa }, 38a7202704SKiran Venkatappa 39a7202704SKiran Venkatappa /* CE2: target->host WMI */ 40a7202704SKiran Venkatappa { 41a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(2), 42a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 43a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 44a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 45a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 46a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 47a7202704SKiran Venkatappa }, 48a7202704SKiran Venkatappa 49a7202704SKiran Venkatappa /* CE3: host->target WMI (mac0) */ 50a7202704SKiran Venkatappa { 51a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(3), 52a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 53a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 54a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 55a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 56a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 57a7202704SKiran Venkatappa }, 58a7202704SKiran Venkatappa 59a7202704SKiran Venkatappa /* CE4: host->target HTT */ 60a7202704SKiran Venkatappa { 61a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(4), 62a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 63a7202704SKiran Venkatappa .nentries = __cpu_to_le32(256), 64a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(256), 65a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), 66a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 67a7202704SKiran Venkatappa }, 68a7202704SKiran Venkatappa 69a7202704SKiran Venkatappa /* CE5: target->host Pktlog */ 70a7202704SKiran Venkatappa { 71a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(5), 72a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 73a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 74a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 75a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 76a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 77a7202704SKiran Venkatappa }, 78a7202704SKiran Venkatappa 79a7202704SKiran Venkatappa /* CE6: Reserved for target autonomous hif_memcpy */ 80a7202704SKiran Venkatappa { 81a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(6), 82a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_INOUT), 83a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 84a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(16384), 85a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 86a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 87a7202704SKiran Venkatappa }, 88a7202704SKiran Venkatappa 89a7202704SKiran Venkatappa /* CE7: host->target WMI (mac1) */ 90a7202704SKiran Venkatappa { 91a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(7), 92a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 93a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 94a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 95a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 96a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 97a7202704SKiran Venkatappa }, 98a7202704SKiran Venkatappa 99a7202704SKiran Venkatappa /* CE8: Reserved for target autonomous hif_memcpy */ 100a7202704SKiran Venkatappa { 101a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(8), 102a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_INOUT), 103a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 104a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(16384), 105a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 106a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 107a7202704SKiran Venkatappa }, 108a7202704SKiran Venkatappa 109a7202704SKiran Venkatappa /* CE9, 10 and 11: Reserved for MHI */ 110a7202704SKiran Venkatappa 111a7202704SKiran Venkatappa /* CE12: Target CV prefetch */ 112a7202704SKiran Venkatappa { 113a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(12), 114a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 115a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 116a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 117a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 118a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 119a7202704SKiran Venkatappa }, 120a7202704SKiran Venkatappa 121a7202704SKiran Venkatappa /* CE13: Target CV prefetch */ 122a7202704SKiran Venkatappa { 123a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(13), 124a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 125a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 126a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 127a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 128a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 129a7202704SKiran Venkatappa }, 130a7202704SKiran Venkatappa 131a7202704SKiran Venkatappa /* CE14: WMI logging/CFR/Spectral/Radar */ 132a7202704SKiran Venkatappa { 133a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(14), 134a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 135a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 136a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 137a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 138a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 139a7202704SKiran Venkatappa }, 140a7202704SKiran Venkatappa 141a7202704SKiran Venkatappa /* CE15: Reserved */ 142a7202704SKiran Venkatappa }; 143a7202704SKiran Venkatappa 144a7202704SKiran Venkatappa /* Map from service/endpoint to Copy Engine. 145a7202704SKiran Venkatappa * This table is derived from the CE_PCI TABLE, above. 146a7202704SKiran Venkatappa * It is passed to the Target at startup for use by firmware. 147a7202704SKiran Venkatappa * Pipe direction: 148a7202704SKiran Venkatappa * PIPEDIR_OUT = UL = host -> target 149a7202704SKiran Venkatappa * PIPEDIR_IN = DL = target -> host 150a7202704SKiran Venkatappa */ 151*bce3b73dSKiran Venkatappa const struct service_to_pipe 152*bce3b73dSKiran Venkatappa ath12k_wifi7_target_service_to_ce_map_wlan_qcn9274[] = { 153a7202704SKiran Venkatappa { 154a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO), 155a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 156a7202704SKiran Venkatappa __cpu_to_le32(3), 157a7202704SKiran Venkatappa }, 158a7202704SKiran Venkatappa { 159a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO), 160a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 161a7202704SKiran Venkatappa __cpu_to_le32(2), 162a7202704SKiran Venkatappa }, 163a7202704SKiran Venkatappa { 164a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK), 165a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 166a7202704SKiran Venkatappa __cpu_to_le32(3), 167a7202704SKiran Venkatappa }, 168a7202704SKiran Venkatappa { 169a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK), 170a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 171a7202704SKiran Venkatappa __cpu_to_le32(2), 172a7202704SKiran Venkatappa }, 173a7202704SKiran Venkatappa { 174a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE), 175a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 176a7202704SKiran Venkatappa __cpu_to_le32(3), 177a7202704SKiran Venkatappa }, 178a7202704SKiran Venkatappa { 179a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE), 180a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 181a7202704SKiran Venkatappa __cpu_to_le32(2), 182a7202704SKiran Venkatappa }, 183a7202704SKiran Venkatappa { 184a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI), 185a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 186a7202704SKiran Venkatappa __cpu_to_le32(3), 187a7202704SKiran Venkatappa }, 188a7202704SKiran Venkatappa { 189a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI), 190a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 191a7202704SKiran Venkatappa __cpu_to_le32(2), 192a7202704SKiran Venkatappa }, 193a7202704SKiran Venkatappa { 194a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL), 195a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 196a7202704SKiran Venkatappa __cpu_to_le32(3), 197a7202704SKiran Venkatappa }, 198a7202704SKiran Venkatappa { 199a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL), 200a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 201a7202704SKiran Venkatappa __cpu_to_le32(2), 202a7202704SKiran Venkatappa }, 203a7202704SKiran Venkatappa { 204a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL), 205a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 206a7202704SKiran Venkatappa __cpu_to_le32(0), 207a7202704SKiran Venkatappa }, 208a7202704SKiran Venkatappa { 209a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL), 210a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 211a7202704SKiran Venkatappa __cpu_to_le32(1), 212a7202704SKiran Venkatappa }, 213a7202704SKiran Venkatappa { 214a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS), 215a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 216a7202704SKiran Venkatappa __cpu_to_le32(0), 217a7202704SKiran Venkatappa }, 218a7202704SKiran Venkatappa { 219a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS), 220a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 221a7202704SKiran Venkatappa __cpu_to_le32(1), 222a7202704SKiran Venkatappa }, 223a7202704SKiran Venkatappa { 224a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG), 225a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 226a7202704SKiran Venkatappa __cpu_to_le32(4), 227a7202704SKiran Venkatappa }, 228a7202704SKiran Venkatappa { 229a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG), 230a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 231a7202704SKiran Venkatappa __cpu_to_le32(1), 232a7202704SKiran Venkatappa }, 233a7202704SKiran Venkatappa { 234a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_MAC1), 235a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 236a7202704SKiran Venkatappa __cpu_to_le32(7), 237a7202704SKiran Venkatappa }, 238a7202704SKiran Venkatappa { 239a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_MAC1), 240a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 241a7202704SKiran Venkatappa __cpu_to_le32(2), 242a7202704SKiran Venkatappa }, 243a7202704SKiran Venkatappa { 244a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_PKT_LOG), 245a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 246a7202704SKiran Venkatappa __cpu_to_le32(5), 247a7202704SKiran Venkatappa }, 248a7202704SKiran Venkatappa { 249a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_DIAG), 250a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 251a7202704SKiran Venkatappa __cpu_to_le32(14), 252a7202704SKiran Venkatappa }, 253a7202704SKiran Venkatappa 254a7202704SKiran Venkatappa /* (Additions here) */ 255a7202704SKiran Venkatappa 256a7202704SKiran Venkatappa { /* must be last */ 257a7202704SKiran Venkatappa __cpu_to_le32(0), 258a7202704SKiran Venkatappa __cpu_to_le32(0), 259a7202704SKiran Venkatappa __cpu_to_le32(0), 260a7202704SKiran Venkatappa }, 261a7202704SKiran Venkatappa }; 262a7202704SKiran Venkatappa 263*bce3b73dSKiran Venkatappa const struct ce_attr ath12k_wifi7_host_ce_config_qcn9274[] = { 264a7202704SKiran Venkatappa /* CE0: host->target HTC control and raw streams */ 265a7202704SKiran Venkatappa { 266a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 267a7202704SKiran Venkatappa .src_nentries = 16, 268a7202704SKiran Venkatappa .src_sz_max = 2048, 269a7202704SKiran Venkatappa .dest_nentries = 0, 270a7202704SKiran Venkatappa }, 271a7202704SKiran Venkatappa 272a7202704SKiran Venkatappa /* CE1: target->host HTT + HTC control */ 273a7202704SKiran Venkatappa { 274a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 275a7202704SKiran Venkatappa .src_nentries = 0, 276a7202704SKiran Venkatappa .src_sz_max = 2048, 277a7202704SKiran Venkatappa .dest_nentries = 512, 278a7202704SKiran Venkatappa .recv_cb = ath12k_htc_rx_completion_handler, 279a7202704SKiran Venkatappa }, 280a7202704SKiran Venkatappa 281a7202704SKiran Venkatappa /* CE2: target->host WMI */ 282a7202704SKiran Venkatappa { 283a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 284a7202704SKiran Venkatappa .src_nentries = 0, 285a7202704SKiran Venkatappa .src_sz_max = 2048, 286a7202704SKiran Venkatappa .dest_nentries = 128, 287a7202704SKiran Venkatappa .recv_cb = ath12k_htc_rx_completion_handler, 288a7202704SKiran Venkatappa }, 289a7202704SKiran Venkatappa 290a7202704SKiran Venkatappa /* CE3: host->target WMI (mac0) */ 291a7202704SKiran Venkatappa { 292a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 293a7202704SKiran Venkatappa .src_nentries = 32, 294a7202704SKiran Venkatappa .src_sz_max = 2048, 295a7202704SKiran Venkatappa .dest_nentries = 0, 296a7202704SKiran Venkatappa }, 297a7202704SKiran Venkatappa 298a7202704SKiran Venkatappa /* CE4: host->target HTT */ 299a7202704SKiran Venkatappa { 300a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 301a7202704SKiran Venkatappa .src_nentries = 2048, 302a7202704SKiran Venkatappa .src_sz_max = 256, 303a7202704SKiran Venkatappa .dest_nentries = 0, 304a7202704SKiran Venkatappa }, 305a7202704SKiran Venkatappa 306a7202704SKiran Venkatappa /* CE5: target->host pktlog */ 307a7202704SKiran Venkatappa { 308a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 309a7202704SKiran Venkatappa .src_nentries = 0, 310a7202704SKiran Venkatappa .src_sz_max = 2048, 311a7202704SKiran Venkatappa .dest_nentries = 512, 312a7202704SKiran Venkatappa .recv_cb = ath12k_dp_htt_htc_t2h_msg_handler, 313a7202704SKiran Venkatappa }, 314a7202704SKiran Venkatappa 315a7202704SKiran Venkatappa /* CE6: target autonomous hif_memcpy */ 316a7202704SKiran Venkatappa { 317a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 318a7202704SKiran Venkatappa .src_nentries = 0, 319a7202704SKiran Venkatappa .src_sz_max = 0, 320a7202704SKiran Venkatappa .dest_nentries = 0, 321a7202704SKiran Venkatappa }, 322a7202704SKiran Venkatappa 323a7202704SKiran Venkatappa /* CE7: host->target WMI (mac1) */ 324a7202704SKiran Venkatappa { 325a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 326a7202704SKiran Venkatappa .src_nentries = 32, 327a7202704SKiran Venkatappa .src_sz_max = 2048, 328a7202704SKiran Venkatappa .dest_nentries = 0, 329a7202704SKiran Venkatappa }, 330a7202704SKiran Venkatappa 331a7202704SKiran Venkatappa /* CE8: target autonomous hif_memcpy */ 332a7202704SKiran Venkatappa { 333a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 334a7202704SKiran Venkatappa .src_nentries = 0, 335a7202704SKiran Venkatappa .src_sz_max = 0, 336a7202704SKiran Venkatappa .dest_nentries = 0, 337a7202704SKiran Venkatappa }, 338a7202704SKiran Venkatappa 339a7202704SKiran Venkatappa /* CE9: MHI */ 340a7202704SKiran Venkatappa { 341a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 342a7202704SKiran Venkatappa .src_nentries = 0, 343a7202704SKiran Venkatappa .src_sz_max = 0, 344a7202704SKiran Venkatappa .dest_nentries = 0, 345a7202704SKiran Venkatappa }, 346a7202704SKiran Venkatappa 347a7202704SKiran Venkatappa /* CE10: MHI */ 348a7202704SKiran Venkatappa { 349a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 350a7202704SKiran Venkatappa .src_nentries = 0, 351a7202704SKiran Venkatappa .src_sz_max = 0, 352a7202704SKiran Venkatappa .dest_nentries = 0, 353a7202704SKiran Venkatappa }, 354a7202704SKiran Venkatappa 355a7202704SKiran Venkatappa /* CE11: MHI */ 356a7202704SKiran Venkatappa { 357a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 358a7202704SKiran Venkatappa .src_nentries = 0, 359a7202704SKiran Venkatappa .src_sz_max = 0, 360a7202704SKiran Venkatappa .dest_nentries = 0, 361a7202704SKiran Venkatappa }, 362a7202704SKiran Venkatappa 363a7202704SKiran Venkatappa /* CE12: CV Prefetch */ 364a7202704SKiran Venkatappa { 365a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 366a7202704SKiran Venkatappa .src_nentries = 0, 367a7202704SKiran Venkatappa .src_sz_max = 0, 368a7202704SKiran Venkatappa .dest_nentries = 0, 369a7202704SKiran Venkatappa }, 370a7202704SKiran Venkatappa 371a7202704SKiran Venkatappa /* CE13: CV Prefetch */ 372a7202704SKiran Venkatappa { 373a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 374a7202704SKiran Venkatappa .src_nentries = 0, 375a7202704SKiran Venkatappa .src_sz_max = 0, 376a7202704SKiran Venkatappa .dest_nentries = 0, 377a7202704SKiran Venkatappa }, 378a7202704SKiran Venkatappa 379a7202704SKiran Venkatappa /* CE14: target->host dbg log */ 380a7202704SKiran Venkatappa { 381a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 382a7202704SKiran Venkatappa .src_nentries = 0, 383a7202704SKiran Venkatappa .src_sz_max = 2048, 384a7202704SKiran Venkatappa .dest_nentries = 512, 385a7202704SKiran Venkatappa .recv_cb = ath12k_htc_rx_completion_handler, 386a7202704SKiran Venkatappa }, 387a7202704SKiran Venkatappa 388a7202704SKiran Venkatappa /* CE15: reserved for future use */ 389a7202704SKiran Venkatappa { 390a7202704SKiran Venkatappa .flags = (CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), 391a7202704SKiran Venkatappa .src_nentries = 0, 392a7202704SKiran Venkatappa .src_sz_max = 0, 393a7202704SKiran Venkatappa .dest_nentries = 0, 394a7202704SKiran Venkatappa }, 395a7202704SKiran Venkatappa }; 396a7202704SKiran Venkatappa 397a7202704SKiran Venkatappa /* Copy Engine (CE) configs for WCN7850 */ 398a7202704SKiran Venkatappa /* Target firmware's Copy Engine configuration. */ 399*bce3b73dSKiran Venkatappa const struct ce_pipe_config ath12k_wifi7_target_ce_config_wlan_wcn7850[] = { 400a7202704SKiran Venkatappa /* CE0: host->target HTC control and raw streams */ 401a7202704SKiran Venkatappa { 402a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(0), 403a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 404a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 405a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 406a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 407a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 408a7202704SKiran Venkatappa }, 409a7202704SKiran Venkatappa 410a7202704SKiran Venkatappa /* CE1: target->host HTT + HTC control */ 411a7202704SKiran Venkatappa { 412a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(1), 413a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 414a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 415a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 416a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 417a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 418a7202704SKiran Venkatappa }, 419a7202704SKiran Venkatappa 420a7202704SKiran Venkatappa /* CE2: target->host WMI */ 421a7202704SKiran Venkatappa { 422a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(2), 423a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 424a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 425a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 426a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 427a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 428a7202704SKiran Venkatappa }, 429a7202704SKiran Venkatappa 430a7202704SKiran Venkatappa /* CE3: host->target WMI */ 431a7202704SKiran Venkatappa { 432a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(3), 433a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 434a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 435a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 436a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 437a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 438a7202704SKiran Venkatappa }, 439a7202704SKiran Venkatappa 440a7202704SKiran Venkatappa /* CE4: host->target HTT */ 441a7202704SKiran Venkatappa { 442a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(4), 443a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 444a7202704SKiran Venkatappa .nentries = __cpu_to_le32(256), 445a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(256), 446a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), 447a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 448a7202704SKiran Venkatappa }, 449a7202704SKiran Venkatappa 450a7202704SKiran Venkatappa /* CE5: target->host Pktlog */ 451a7202704SKiran Venkatappa { 452a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(5), 453a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 454a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 455a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 456a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 457a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 458a7202704SKiran Venkatappa }, 459a7202704SKiran Venkatappa 460a7202704SKiran Venkatappa /* CE6: Reserved for target autonomous hif_memcpy */ 461a7202704SKiran Venkatappa { 462a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(6), 463a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_INOUT), 464a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 465a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(16384), 466a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 467a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 468a7202704SKiran Venkatappa }, 469a7202704SKiran Venkatappa 470a7202704SKiran Venkatappa /* CE7 used only by Host */ 471a7202704SKiran Venkatappa { 472a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(7), 473a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_INOUT_H2H), 474a7202704SKiran Venkatappa .nentries = __cpu_to_le32(0), 475a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(0), 476a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), 477a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 478a7202704SKiran Venkatappa }, 479a7202704SKiran Venkatappa 480a7202704SKiran Venkatappa /* CE8 target->host used only by IPA */ 481a7202704SKiran Venkatappa { 482a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(8), 483a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_INOUT), 484a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 485a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(16384), 486a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 487a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 488a7202704SKiran Venkatappa }, 489a7202704SKiran Venkatappa /* CE 9, 10, 11 are used by MHI driver */ 490a7202704SKiran Venkatappa }; 491a7202704SKiran Venkatappa 492*bce3b73dSKiran Venkatappa const struct service_to_pipe 493*bce3b73dSKiran Venkatappa ath12k_wifi7_target_service_to_ce_map_wlan_wcn7850[] = { 494a7202704SKiran Venkatappa { 495a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO), 496a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 497a7202704SKiran Venkatappa __cpu_to_le32(3), 498a7202704SKiran Venkatappa }, 499a7202704SKiran Venkatappa { 500a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO), 501a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 502a7202704SKiran Venkatappa __cpu_to_le32(2), 503a7202704SKiran Venkatappa }, 504a7202704SKiran Venkatappa { 505a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK), 506a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 507a7202704SKiran Venkatappa __cpu_to_le32(3), 508a7202704SKiran Venkatappa }, 509a7202704SKiran Venkatappa { 510a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK), 511a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 512a7202704SKiran Venkatappa __cpu_to_le32(2), 513a7202704SKiran Venkatappa }, 514a7202704SKiran Venkatappa { 515a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE), 516a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 517a7202704SKiran Venkatappa __cpu_to_le32(3), 518a7202704SKiran Venkatappa }, 519a7202704SKiran Venkatappa { 520a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE), 521a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 522a7202704SKiran Venkatappa __cpu_to_le32(2), 523a7202704SKiran Venkatappa }, 524a7202704SKiran Venkatappa { 525a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI), 526a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 527a7202704SKiran Venkatappa __cpu_to_le32(3), 528a7202704SKiran Venkatappa }, 529a7202704SKiran Venkatappa { 530a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI), 531a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 532a7202704SKiran Venkatappa __cpu_to_le32(2), 533a7202704SKiran Venkatappa }, 534a7202704SKiran Venkatappa { 535a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL), 536a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 537a7202704SKiran Venkatappa __cpu_to_le32(3), 538a7202704SKiran Venkatappa }, 539a7202704SKiran Venkatappa { 540a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL), 541a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 542a7202704SKiran Venkatappa __cpu_to_le32(2), 543a7202704SKiran Venkatappa }, 544a7202704SKiran Venkatappa { 545a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL), 546a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 547a7202704SKiran Venkatappa __cpu_to_le32(0), 548a7202704SKiran Venkatappa }, 549a7202704SKiran Venkatappa { 550a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL), 551a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 552a7202704SKiran Venkatappa __cpu_to_le32(2), 553a7202704SKiran Venkatappa }, 554a7202704SKiran Venkatappa { 555a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG), 556a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 557a7202704SKiran Venkatappa __cpu_to_le32(4), 558a7202704SKiran Venkatappa }, 559a7202704SKiran Venkatappa { 560a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG), 561a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 562a7202704SKiran Venkatappa __cpu_to_le32(1), 563a7202704SKiran Venkatappa }, 564a7202704SKiran Venkatappa 565a7202704SKiran Venkatappa /* (Additions here) */ 566a7202704SKiran Venkatappa 567a7202704SKiran Venkatappa { /* must be last */ 568a7202704SKiran Venkatappa __cpu_to_le32(0), 569a7202704SKiran Venkatappa __cpu_to_le32(0), 570a7202704SKiran Venkatappa __cpu_to_le32(0), 571a7202704SKiran Venkatappa }, 572a7202704SKiran Venkatappa }; 573a7202704SKiran Venkatappa 574*bce3b73dSKiran Venkatappa const struct ce_attr ath12k_wifi7_host_ce_config_wcn7850[] = { 575a7202704SKiran Venkatappa /* CE0: host->target HTC control and raw streams */ 576a7202704SKiran Venkatappa { 577a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 578a7202704SKiran Venkatappa .src_nentries = 16, 579a7202704SKiran Venkatappa .src_sz_max = 2048, 580a7202704SKiran Venkatappa .dest_nentries = 0, 581a7202704SKiran Venkatappa }, 582a7202704SKiran Venkatappa 583a7202704SKiran Venkatappa /* CE1: target->host HTT + HTC control */ 584a7202704SKiran Venkatappa { 585a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 586a7202704SKiran Venkatappa .src_nentries = 0, 587a7202704SKiran Venkatappa .src_sz_max = 2048, 588a7202704SKiran Venkatappa .dest_nentries = 512, 589a7202704SKiran Venkatappa .recv_cb = ath12k_htc_rx_completion_handler, 590a7202704SKiran Venkatappa }, 591a7202704SKiran Venkatappa 592a7202704SKiran Venkatappa /* CE2: target->host WMI */ 593a7202704SKiran Venkatappa { 594a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 595a7202704SKiran Venkatappa .src_nentries = 0, 596a7202704SKiran Venkatappa .src_sz_max = 2048, 597a7202704SKiran Venkatappa .dest_nentries = 64, 598a7202704SKiran Venkatappa .recv_cb = ath12k_htc_rx_completion_handler, 599a7202704SKiran Venkatappa }, 600a7202704SKiran Venkatappa 601a7202704SKiran Venkatappa /* CE3: host->target WMI (mac0) */ 602a7202704SKiran Venkatappa { 603a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 604a7202704SKiran Venkatappa .src_nentries = 32, 605a7202704SKiran Venkatappa .src_sz_max = 2048, 606a7202704SKiran Venkatappa .dest_nentries = 0, 607a7202704SKiran Venkatappa }, 608a7202704SKiran Venkatappa 609a7202704SKiran Venkatappa /* CE4: host->target HTT */ 610a7202704SKiran Venkatappa { 611a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 612a7202704SKiran Venkatappa .src_nentries = 2048, 613a7202704SKiran Venkatappa .src_sz_max = 256, 614a7202704SKiran Venkatappa .dest_nentries = 0, 615a7202704SKiran Venkatappa }, 616a7202704SKiran Venkatappa 617a7202704SKiran Venkatappa /* CE5: target->host pktlog */ 618a7202704SKiran Venkatappa { 619a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 620a7202704SKiran Venkatappa .src_nentries = 0, 621a7202704SKiran Venkatappa .src_sz_max = 0, 622a7202704SKiran Venkatappa .dest_nentries = 0, 623a7202704SKiran Venkatappa }, 624a7202704SKiran Venkatappa 625a7202704SKiran Venkatappa /* CE6: target autonomous hif_memcpy */ 626a7202704SKiran Venkatappa { 627a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 628a7202704SKiran Venkatappa .src_nentries = 0, 629a7202704SKiran Venkatappa .src_sz_max = 0, 630a7202704SKiran Venkatappa .dest_nentries = 0, 631a7202704SKiran Venkatappa }, 632a7202704SKiran Venkatappa 633a7202704SKiran Venkatappa /* CE7: host->target WMI (mac1) */ 634a7202704SKiran Venkatappa { 635a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 636a7202704SKiran Venkatappa .src_nentries = 0, 637a7202704SKiran Venkatappa .src_sz_max = 2048, 638a7202704SKiran Venkatappa .dest_nentries = 0, 639a7202704SKiran Venkatappa }, 640a7202704SKiran Venkatappa 641a7202704SKiran Venkatappa /* CE8: target autonomous hif_memcpy */ 642a7202704SKiran Venkatappa { 643a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 644a7202704SKiran Venkatappa .src_nentries = 0, 645a7202704SKiran Venkatappa .src_sz_max = 0, 646a7202704SKiran Venkatappa .dest_nentries = 0, 647a7202704SKiran Venkatappa }, 648a7202704SKiran Venkatappa }; 649a7202704SKiran Venkatappa 650a7202704SKiran Venkatappa /* Copy Engine (CE) configs for IPQ5332 */ 651a7202704SKiran Venkatappa /* Target firmware's Copy Engine configuration. */ 652*bce3b73dSKiran Venkatappa const struct ce_pipe_config ath12k_wifi7_target_ce_config_wlan_ipq5332[] = { 653a7202704SKiran Venkatappa /* CE0: host->target HTC control and raw streams */ 654a7202704SKiran Venkatappa { 655a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(0), 656a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 657a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 658a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 659a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 660a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 661a7202704SKiran Venkatappa }, 662a7202704SKiran Venkatappa 663a7202704SKiran Venkatappa /* CE1: target->host HTT */ 664a7202704SKiran Venkatappa { 665a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(1), 666a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 667a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 668a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 669a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 670a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 671a7202704SKiran Venkatappa }, 672a7202704SKiran Venkatappa 673a7202704SKiran Venkatappa /* CE2: target->host WMI + HTC control */ 674a7202704SKiran Venkatappa { 675a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(2), 676a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 677a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 678a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 679a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 680a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 681a7202704SKiran Venkatappa }, 682a7202704SKiran Venkatappa 683a7202704SKiran Venkatappa /* CE3: host->target WMI */ 684a7202704SKiran Venkatappa { 685a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(3), 686a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 687a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 688a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 689a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 690a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 691a7202704SKiran Venkatappa }, 692a7202704SKiran Venkatappa 693a7202704SKiran Venkatappa /* CE4: host->target HTT */ 694a7202704SKiran Venkatappa { 695a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(4), 696a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 697a7202704SKiran Venkatappa .nentries = __cpu_to_le32(256), 698a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(256), 699a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS | CE_ATTR_DIS_INTR), 700a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 701a7202704SKiran Venkatappa }, 702a7202704SKiran Venkatappa 703a7202704SKiran Venkatappa /* CE5: Target -> host PKTLOG */ 704a7202704SKiran Venkatappa { 705a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(5), 706a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 707a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 708a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 709a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 710a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 711a7202704SKiran Venkatappa }, 712a7202704SKiran Venkatappa 713a7202704SKiran Venkatappa /* CE6: Reserved for target autonomous HIF_memcpy */ 714a7202704SKiran Venkatappa { 715a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(6), 716a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_INOUT), 717a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 718a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(16384), 719a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 720a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 721a7202704SKiran Venkatappa }, 722a7202704SKiran Venkatappa 723a7202704SKiran Venkatappa /* CE7: Reserved for CV Prefetch */ 724a7202704SKiran Venkatappa { 725a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(7), 726a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_OUT), 727a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 728a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 729a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 730a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 731a7202704SKiran Venkatappa }, 732a7202704SKiran Venkatappa 733a7202704SKiran Venkatappa /* CE8: Reserved for target generic HIF memcpy */ 734a7202704SKiran Venkatappa { 735a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(8), 736a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_INOUT), 737a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 738a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(16384), 739a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 740a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 741a7202704SKiran Venkatappa }, 742a7202704SKiran Venkatappa 743a7202704SKiran Venkatappa /* CE9: WMI logging/CFR/Spectral/Radar/ */ 744a7202704SKiran Venkatappa { 745a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(9), 746a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_IN), 747a7202704SKiran Venkatappa .nentries = __cpu_to_le32(32), 748a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(2048), 749a7202704SKiran Venkatappa .flags = __cpu_to_le32(CE_ATTR_FLAGS), 750a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 751a7202704SKiran Venkatappa }, 752a7202704SKiran Venkatappa 753a7202704SKiran Venkatappa /* CE10: Unused TBD */ 754a7202704SKiran Venkatappa { 755a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(10), 756a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_NONE), 757a7202704SKiran Venkatappa .nentries = __cpu_to_le32(0), 758a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(0), 759a7202704SKiran Venkatappa .flags = __cpu_to_le32(0), 760a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 761a7202704SKiran Venkatappa }, 762a7202704SKiran Venkatappa /* CE11: Unused TBD */ 763a7202704SKiran Venkatappa { 764a7202704SKiran Venkatappa .pipenum = __cpu_to_le32(11), 765a7202704SKiran Venkatappa .pipedir = __cpu_to_le32(PIPEDIR_NONE), 766a7202704SKiran Venkatappa .nentries = __cpu_to_le32(0), 767a7202704SKiran Venkatappa .nbytes_max = __cpu_to_le32(0), 768a7202704SKiran Venkatappa .flags = __cpu_to_le32(0), 769a7202704SKiran Venkatappa .reserved = __cpu_to_le32(0), 770a7202704SKiran Venkatappa }, 771a7202704SKiran Venkatappa }; 772a7202704SKiran Venkatappa 773*bce3b73dSKiran Venkatappa const struct service_to_pipe 774*bce3b73dSKiran Venkatappa ath12k_wifi7_target_service_to_ce_map_wlan_ipq5332[] = { 775a7202704SKiran Venkatappa { 776a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO), 777a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 778a7202704SKiran Venkatappa __cpu_to_le32(3), 779a7202704SKiran Venkatappa }, 780a7202704SKiran Venkatappa { 781a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VO), 782a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 783a7202704SKiran Venkatappa __cpu_to_le32(2), 784a7202704SKiran Venkatappa }, 785a7202704SKiran Venkatappa { 786a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK), 787a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 788a7202704SKiran Venkatappa __cpu_to_le32(3), 789a7202704SKiran Venkatappa }, 790a7202704SKiran Venkatappa { 791a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BK), 792a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 793a7202704SKiran Venkatappa __cpu_to_le32(2), 794a7202704SKiran Venkatappa }, 795a7202704SKiran Venkatappa { 796a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE), 797a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 798a7202704SKiran Venkatappa __cpu_to_le32(3), 799a7202704SKiran Venkatappa }, 800a7202704SKiran Venkatappa { 801a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_BE), 802a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 803a7202704SKiran Venkatappa __cpu_to_le32(2), 804a7202704SKiran Venkatappa }, 805a7202704SKiran Venkatappa { 806a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI), 807a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 808a7202704SKiran Venkatappa __cpu_to_le32(3), 809a7202704SKiran Venkatappa }, 810a7202704SKiran Venkatappa { 811a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_DATA_VI), 812a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 813a7202704SKiran Venkatappa __cpu_to_le32(2), 814a7202704SKiran Venkatappa }, 815a7202704SKiran Venkatappa { 816a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL), 817a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 818a7202704SKiran Venkatappa __cpu_to_le32(3), 819a7202704SKiran Venkatappa }, 820a7202704SKiran Venkatappa { 821a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL), 822a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 823a7202704SKiran Venkatappa __cpu_to_le32(2), 824a7202704SKiran Venkatappa }, 825a7202704SKiran Venkatappa { 826a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL), 827a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 828a7202704SKiran Venkatappa __cpu_to_le32(0), 829a7202704SKiran Venkatappa }, 830a7202704SKiran Venkatappa { 831a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_RSVD_CTRL), 832a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 833a7202704SKiran Venkatappa __cpu_to_le32(1), 834a7202704SKiran Venkatappa }, 835a7202704SKiran Venkatappa { 836a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS), 837a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 838a7202704SKiran Venkatappa __cpu_to_le32(0), 839a7202704SKiran Venkatappa }, 840a7202704SKiran Venkatappa { 841a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_TEST_RAW_STREAMS), 842a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 843a7202704SKiran Venkatappa __cpu_to_le32(1), 844a7202704SKiran Venkatappa }, 845a7202704SKiran Venkatappa { 846a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG), 847a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_OUT), 848a7202704SKiran Venkatappa __cpu_to_le32(4), 849a7202704SKiran Venkatappa }, 850a7202704SKiran Venkatappa { 851a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_HTT_DATA_MSG), 852a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 853a7202704SKiran Venkatappa __cpu_to_le32(1), 854a7202704SKiran Venkatappa }, 855a7202704SKiran Venkatappa { 856a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_PKT_LOG), 857a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 858a7202704SKiran Venkatappa __cpu_to_le32(5), 859a7202704SKiran Venkatappa }, 860a7202704SKiran Venkatappa { 861a7202704SKiran Venkatappa __cpu_to_le32(ATH12K_HTC_SVC_ID_WMI_CONTROL_DIAG), 862a7202704SKiran Venkatappa __cpu_to_le32(PIPEDIR_IN), 863a7202704SKiran Venkatappa __cpu_to_le32(9), 864a7202704SKiran Venkatappa }, 865a7202704SKiran Venkatappa /* (Additions here) */ 866a7202704SKiran Venkatappa 867a7202704SKiran Venkatappa { /* must be last */ 868a7202704SKiran Venkatappa __cpu_to_le32(0), 869a7202704SKiran Venkatappa __cpu_to_le32(0), 870a7202704SKiran Venkatappa __cpu_to_le32(0), 871a7202704SKiran Venkatappa }, 872a7202704SKiran Venkatappa }; 873a7202704SKiran Venkatappa 874*bce3b73dSKiran Venkatappa const struct ce_attr ath12k_wifi7_host_ce_config_ipq5332[] = { 875a7202704SKiran Venkatappa /* CE0: host->target HTC control and raw streams */ 876a7202704SKiran Venkatappa { 877a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 878a7202704SKiran Venkatappa .src_nentries = 16, 879a7202704SKiran Venkatappa .src_sz_max = 2048, 880a7202704SKiran Venkatappa .dest_nentries = 0, 881a7202704SKiran Venkatappa }, 882a7202704SKiran Venkatappa 883a7202704SKiran Venkatappa /* CE1: target->host HTT + HTC control */ 884a7202704SKiran Venkatappa { 885a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 886a7202704SKiran Venkatappa .src_nentries = 0, 887a7202704SKiran Venkatappa .src_sz_max = 2048, 888a7202704SKiran Venkatappa .dest_nentries = 512, 889a7202704SKiran Venkatappa .recv_cb = ath12k_htc_rx_completion_handler, 890a7202704SKiran Venkatappa }, 891a7202704SKiran Venkatappa 892a7202704SKiran Venkatappa /* CE2: target->host WMI */ 893a7202704SKiran Venkatappa { 894a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 895a7202704SKiran Venkatappa .src_nentries = 0, 896a7202704SKiran Venkatappa .src_sz_max = 2048, 897a7202704SKiran Venkatappa .dest_nentries = 128, 898a7202704SKiran Venkatappa .recv_cb = ath12k_htc_rx_completion_handler, 899a7202704SKiran Venkatappa }, 900a7202704SKiran Venkatappa 901a7202704SKiran Venkatappa /* CE3: host->target WMI */ 902a7202704SKiran Venkatappa { 903a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 904a7202704SKiran Venkatappa .src_nentries = 32, 905a7202704SKiran Venkatappa .src_sz_max = 2048, 906a7202704SKiran Venkatappa .dest_nentries = 0, 907a7202704SKiran Venkatappa }, 908a7202704SKiran Venkatappa 909a7202704SKiran Venkatappa /* CE4: host->target HTT */ 910a7202704SKiran Venkatappa { 911a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 912a7202704SKiran Venkatappa .src_nentries = 2048, 913a7202704SKiran Venkatappa .src_sz_max = 256, 914a7202704SKiran Venkatappa .dest_nentries = 0, 915a7202704SKiran Venkatappa }, 916a7202704SKiran Venkatappa 917a7202704SKiran Venkatappa /* CE5: target -> host PKTLOG */ 918a7202704SKiran Venkatappa { 919a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 920a7202704SKiran Venkatappa .src_nentries = 0, 921a7202704SKiran Venkatappa .src_sz_max = 2048, 922a7202704SKiran Venkatappa .dest_nentries = 512, 923a7202704SKiran Venkatappa .recv_cb = ath12k_dp_htt_htc_t2h_msg_handler, 924a7202704SKiran Venkatappa }, 925a7202704SKiran Venkatappa 926a7202704SKiran Venkatappa /* CE6: Target autonomous HIF_memcpy */ 927a7202704SKiran Venkatappa { 928a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 929a7202704SKiran Venkatappa .src_nentries = 0, 930a7202704SKiran Venkatappa .src_sz_max = 0, 931a7202704SKiran Venkatappa .dest_nentries = 0, 932a7202704SKiran Venkatappa }, 933a7202704SKiran Venkatappa 934a7202704SKiran Venkatappa /* CE7: CV Prefetch */ 935a7202704SKiran Venkatappa { 936a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 937a7202704SKiran Venkatappa .src_nentries = 0, 938a7202704SKiran Venkatappa .src_sz_max = 0, 939a7202704SKiran Venkatappa .dest_nentries = 0, 940a7202704SKiran Venkatappa }, 941a7202704SKiran Venkatappa 942a7202704SKiran Venkatappa /* CE8: Target HIF memcpy (Generic HIF memcypy) */ 943a7202704SKiran Venkatappa { 944a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 945a7202704SKiran Venkatappa .src_nentries = 0, 946a7202704SKiran Venkatappa .src_sz_max = 0, 947a7202704SKiran Venkatappa .dest_nentries = 0, 948a7202704SKiran Venkatappa }, 949a7202704SKiran Venkatappa 950a7202704SKiran Venkatappa /* CE9: WMI logging/CFR/Spectral/Radar */ 951a7202704SKiran Venkatappa { 952a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS, 953a7202704SKiran Venkatappa .src_nentries = 0, 954a7202704SKiran Venkatappa .src_sz_max = 2048, 955a7202704SKiran Venkatappa .dest_nentries = 128, 956a7202704SKiran Venkatappa }, 957a7202704SKiran Venkatappa 958a7202704SKiran Venkatappa /* CE10: Unused */ 959a7202704SKiran Venkatappa { 960a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 961a7202704SKiran Venkatappa .src_nentries = 0, 962a7202704SKiran Venkatappa .src_sz_max = 0, 963a7202704SKiran Venkatappa .dest_nentries = 0, 964a7202704SKiran Venkatappa }, 965a7202704SKiran Venkatappa 966a7202704SKiran Venkatappa /* CE11: Unused */ 967a7202704SKiran Venkatappa { 968a7202704SKiran Venkatappa .flags = CE_ATTR_FLAGS | CE_ATTR_DIS_INTR, 969a7202704SKiran Venkatappa .src_nentries = 0, 970a7202704SKiran Venkatappa .src_sz_max = 0, 971a7202704SKiran Venkatappa .dest_nentries = 0, 972a7202704SKiran Venkatappa }, 973a7202704SKiran Venkatappa }; 974