1 /* 2 * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. 3 * 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 /** 20 * DOC: This target interface shall be used by DP 21 * to communicate with target using WMI. 22 */ 23 24 #ifndef _WLAN_TARGET_IF_DP_H_ 25 #define _WLAN_TARGET_IF_DP_H_ 26 27 #include <qdf_types.h> 28 #include <qdf_status.h> 29 #include <wmi_unified_priv.h> 30 #include <wlan_objmgr_psoc_obj.h> 31 #include <target_if.h> 32 #include <cdp_txrx_ops.h> 33 34 /** 35 * struct reorder_q_setup - reorder queue setup params 36 * @pdev: pdev 37 * @vdev_id: vdev id 38 * @peer_macaddr: peer mac address 39 * @hw_qdesc: hw queue descriptor 40 * @tid: tid number 41 * @queue_no: queue number 42 * @ba_window_size_valid: BA window size validity flag 43 * @ba_window_size: BA window size 44 */ 45 struct reorder_q_setup { 46 struct cdp_ctrl_objmgr_pdev *pdev; 47 uint8_t vdev_id; 48 uint8_t peer_mac[QDF_MAC_ADDR_SIZE]; 49 qdf_dma_addr_t hw_qdesc_paddr; 50 uint8_t tid; 51 uint16_t queue_no; 52 uint8_t ba_window_size_valid; 53 uint16_t ba_window_size; 54 }; 55 56 /** 57 * target_if_peer_set_default_routing() - set peer default routing 58 * @pdev: pdev pointer 59 * @peer_macaddr: peer mac address 60 * @vdev_id: vdev id 61 * @hash_based: hash based routing 62 * @ring_num: ring number 63 * 64 * return: void 65 */ 66 void 67 target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_pdev *pdev, 68 uint8_t *peer_macaddr, uint8_t vdev_id, 69 bool hash_based, uint8_t ring_num); 70 71 /** 72 * target_if_peer_rx_reorder_queue_setup() - setup rx reorder queue 73 * @pdev: pdev pointer 74 * @vdev_id: vdev id 75 * @peer_macaddr: peer mac address 76 * @hw_qdesc: hw queue descriptor 77 * @tid: tid number 78 * @queue_no: queue number 79 * @ba_window_size_valid: BA window size validity flag 80 * @ba_window_size: BA window size 81 * 82 * return: QDF_STATUS_SUCCESS for success or error code 83 */ 84 QDF_STATUS 85 target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev, 86 uint8_t vdev_id, uint8_t *peer_macaddr, 87 qdf_dma_addr_t hw_qdesc, int tid, 88 uint16_t queue_no, 89 uint8_t ba_window_size_valid, 90 uint16_t ba_window_size); 91 92 /** 93 * target_if_peer_rx_reorder_queue_remove() - remove rx reorder queue 94 * @pdev: pdev pointer 95 * @vdev_id: vdev id 96 * @peer_macaddr: peer mac address 97 * @peer_tid_bitmap: peer tid bitmap 98 * 99 * return: QDF_STATUS_SUCCESS for success or error code 100 */ 101 QDF_STATUS 102 target_if_peer_rx_reorder_queue_remove(struct cdp_ctrl_objmgr_pdev *pdev, 103 uint8_t vdev_id, uint8_t *peer_macaddr, 104 uint32_t peer_tid_bitmap); 105 106 /** 107 * target_if_lro_hash_config() - send LRO hash config to FW 108 * @psoc_handle: psoc handle pointer 109 * @lro_hash_cfg: LRO hash config parameters 110 * 111 * return: QDF_STATUS_SUCCESS for success or error code 112 */ 113 QDF_STATUS 114 target_if_lro_hash_config(struct cdp_ctrl_objmgr_pdev *pdev, 115 struct cdp_lro_hash_config *lro_hash_cfg); 116 117 #endif 118