1 /* 2 * Copyright (c) 2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 #ifndef __DP_LI_H 20 #define __DP_LI_H 21 22 #include <dp_types.h> 23 #ifdef WIFI_MONITOR_SUPPORT 24 #include <dp_mon.h> 25 #endif 26 #include <hal_li_tx.h> 27 #include <hal_li_rx.h> 28 29 /* WBM2SW ring id for rx release */ 30 #define WBM2SW_REL_ERR_RING_NUM 3 31 32 /** 33 * struct dp_soc_li - Extended DP soc for LI targets 34 * @soc: dp soc structure 35 */ 36 struct dp_soc_li { 37 struct dp_soc soc; 38 }; 39 40 /** 41 * struct dp_pdev_li - Extended DP pdev for LI targets 42 * @pdev: dp_pdev structure 43 */ 44 struct dp_pdev_li { 45 struct dp_pdev pdev; 46 }; 47 48 /** 49 * struct dp_vdev_li - Extended DP vdev for LI targets 50 * @vdev: dp_vdev structure 51 */ 52 struct dp_vdev_li { 53 struct dp_vdev vdev; 54 }; 55 56 /** 57 * struct dp_peer_li - Extended DP peer for LI targets 58 * @peer: dp_peer structure 59 */ 60 struct dp_peer_li { 61 struct dp_peer peer; 62 }; 63 64 /** 65 * dp_get_soc_context_size_li() - get context size for dp_soc_li 66 * 67 * Return: value in bytes for LI specific soc structure 68 */ 69 qdf_size_t dp_get_soc_context_size_li(void); 70 71 /** 72 * dp_initialize_arch_ops_li() - initialize LI specific arch ops 73 * @arch_ops: arch ops pointer 74 * 75 * Return: none 76 */ 77 void dp_initialize_arch_ops_li(struct dp_arch_ops *arch_ops); 78 79 /** 80 * dp_get_context_size_li() - get LI specific size for peer/vdev/pdev/soc 81 * @context_type: DP context type for which the size is needed 82 * 83 * Return: size in bytes for the context_type 84 */ 85 86 qdf_size_t dp_get_context_size_li(enum dp_context_type context_type); 87 #endif 88