mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
qcacmn: tgt_if changes for removal of ctrl_path handles
Remove the ctrl_path handles from tgt_if module Change-Id: I32242dc9e66a377bb04bd537999eb86aad375ca7
This commit is contained in:
parent
5f29f5f5c2
commit
7c7089627e
2 changed files with 102 additions and 36 deletions
|
|
@ -33,8 +33,9 @@
|
|||
|
||||
/**
|
||||
* struct reorder_q_setup - reorder queue setup params
|
||||
* @pdev: pdev
|
||||
* @psoc: psoc
|
||||
* @vdev_id: vdev id
|
||||
* @pdev_id: pdev id
|
||||
* @peer_macaddr: peer mac address
|
||||
* @hw_qdesc: hw queue descriptor
|
||||
* @tid: tid number
|
||||
|
|
@ -43,8 +44,9 @@
|
|||
* @ba_window_size: BA window size
|
||||
*/
|
||||
struct reorder_q_setup {
|
||||
struct cdp_ctrl_objmgr_pdev *pdev;
|
||||
struct cdp_ctrl_objmgr_psoc *psoc;
|
||||
uint8_t vdev_id;
|
||||
uint8_t pdev_id;
|
||||
uint8_t peer_mac[QDF_MAC_ADDR_SIZE];
|
||||
qdf_dma_addr_t hw_qdesc_paddr;
|
||||
uint8_t tid;
|
||||
|
|
@ -55,7 +57,8 @@ struct reorder_q_setup {
|
|||
|
||||
/**
|
||||
* target_if_peer_set_default_routing() - set peer default routing
|
||||
* @pdev: pdev pointer
|
||||
* @psoc: psoc pointer
|
||||
* @pdev_id: pdev id
|
||||
* @peer_macaddr: peer mac address
|
||||
* @vdev_id: vdev id
|
||||
* @hash_based: hash based routing
|
||||
|
|
@ -64,13 +67,14 @@ struct reorder_q_setup {
|
|||
* return: void
|
||||
*/
|
||||
void
|
||||
target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id,
|
||||
uint8_t *peer_macaddr, uint8_t vdev_id,
|
||||
bool hash_based, uint8_t ring_num);
|
||||
|
||||
/**
|
||||
* target_if_peer_rx_reorder_queue_setup() - setup rx reorder queue
|
||||
* @pdev: pdev pointer
|
||||
* @pdev_id: pdev id
|
||||
* @vdev_id: vdev id
|
||||
* @peer_macaddr: peer mac address
|
||||
* @hw_qdesc: hw queue descriptor
|
||||
|
|
@ -82,7 +86,8 @@ target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
* return: QDF_STATUS_SUCCESS for success or error code
|
||||
*/
|
||||
QDF_STATUS
|
||||
target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id,
|
||||
uint8_t vdev_id, uint8_t *peer_macaddr,
|
||||
qdf_dma_addr_t hw_qdesc, int tid,
|
||||
uint16_t queue_no,
|
||||
|
|
@ -91,7 +96,8 @@ target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
|
||||
/**
|
||||
* target_if_peer_rx_reorder_queue_remove() - remove rx reorder queue
|
||||
* @pdev: pdev pointer
|
||||
* @psoc: psoc pointer
|
||||
* @pdev_id: pdev id
|
||||
* @vdev_id: vdev id
|
||||
* @peer_macaddr: peer mac address
|
||||
* @peer_tid_bitmap: peer tid bitmap
|
||||
|
|
@ -99,7 +105,8 @@ target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
* return: QDF_STATUS_SUCCESS for success or error code
|
||||
*/
|
||||
QDF_STATUS
|
||||
target_if_peer_rx_reorder_queue_remove(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_peer_rx_reorder_queue_remove(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id,
|
||||
uint8_t vdev_id, uint8_t *peer_macaddr,
|
||||
uint32_t peer_tid_bitmap);
|
||||
|
||||
|
|
@ -111,7 +118,7 @@ target_if_peer_rx_reorder_queue_remove(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
* return: QDF_STATUS_SUCCESS for success or error code
|
||||
*/
|
||||
QDF_STATUS
|
||||
target_if_lro_hash_config(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_lro_hash_config(struct cdp_ctrl_objmgr_psoc *psoc, uint8_t pdev_id,
|
||||
struct cdp_lro_hash_config *lro_hash_cfg);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -25,17 +25,26 @@
|
|||
#include <init_deinit_lmac.h>
|
||||
|
||||
void
|
||||
target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
uint8_t *peer_macaddr, uint8_t vdev_id,
|
||||
target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id, uint8_t *peer_macaddr,
|
||||
uint8_t vdev_id,
|
||||
bool hash_based, uint8_t ring_num)
|
||||
{
|
||||
uint32_t value;
|
||||
struct peer_set_params param;
|
||||
struct wmi_unified *pdev_wmi_handle;
|
||||
struct wlan_objmgr_pdev *pdev =
|
||||
wlan_objmgr_get_pdev_by_id((struct wlan_objmgr_psoc *)psoc,
|
||||
pdev_id, WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
pdev_wmi_handle =
|
||||
lmac_get_pdev_wmi_handle((struct wlan_objmgr_pdev *)pdev);
|
||||
if (!pdev) {
|
||||
target_if_err("pdev with id %d is NULL", pdev_id);
|
||||
return;
|
||||
}
|
||||
|
||||
pdev_wmi_handle = lmac_get_pdev_wmi_handle(pdev);
|
||||
if (!pdev_wmi_handle) {
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
target_if_err("pdev wmi handle NULL");
|
||||
return;
|
||||
}
|
||||
|
|
@ -56,6 +65,7 @@ target_if_peer_set_default_routing(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
QDF_MAC_ADDR_STR,
|
||||
QDF_MAC_ADDR_ARRAY(peer_macaddr));
|
||||
}
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
}
|
||||
|
||||
#ifdef SERIALIZE_QUEUE_SETUP
|
||||
|
|
@ -65,8 +75,9 @@ target_if_rx_reorder_queue_setup(struct scheduler_msg *msg)
|
|||
struct rx_reorder_queue_setup_params param;
|
||||
struct wmi_unified *pdev_wmi_handle;
|
||||
struct reorder_q_setup *q_params;
|
||||
struct cdp_ctrl_objmgr_pdev *pdev;
|
||||
QDF_STATUS status;
|
||||
struct wlan_objmgr_pdev *pdev;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
|
||||
if (!(msg->bodyptr)) {
|
||||
target_if_err("rx_reorder: Invalid message body");
|
||||
|
|
@ -74,9 +85,17 @@ target_if_rx_reorder_queue_setup(struct scheduler_msg *msg)
|
|||
}
|
||||
|
||||
q_params = msg->bodyptr;
|
||||
pdev = q_params->pdev;
|
||||
pdev_wmi_handle =
|
||||
lmac_get_pdev_wmi_handle((struct wlan_objmgr_pdev *)pdev);
|
||||
psoc = (struct wlan_objmgr_psoc *)q_params->psoc;
|
||||
|
||||
pdev = wlan_objmgr_get_pdev_by_id(psoc, q_params->pdev_id,
|
||||
WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
if (!pdev) {
|
||||
target_if_err("pdev with id %d is NULL", q_params->pdev_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
pdev_wmi_handle = lmac_get_pdev_wmi_handle(pdev);
|
||||
if (!pdev_wmi_handle) {
|
||||
target_if_err("pdev wmi handle NULL");
|
||||
status = QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -95,13 +114,15 @@ target_if_rx_reorder_queue_setup(struct scheduler_msg *msg)
|
|||
status = wmi_unified_peer_rx_reorder_queue_setup_send(pdev_wmi_handle,
|
||||
¶m);
|
||||
out:
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
qdf_mem_free(q_params);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id,
|
||||
uint8_t vdev_id, uint8_t *peer_macaddr,
|
||||
qdf_dma_addr_t hw_qdesc, int tid,
|
||||
uint16_t queue_no,
|
||||
|
|
@ -116,8 +137,9 @@ target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
if (!q_params)
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
q_params->pdev = pdev;
|
||||
q_params->psoc = psoc;
|
||||
q_params->vdev_id = vdev_id;
|
||||
q_params->pdev_id = pdev_id;
|
||||
q_params->hw_qdesc_paddr = hw_qdesc;
|
||||
q_params->tid = tid;
|
||||
q_params->queue_no = queue_no;
|
||||
|
|
@ -140,7 +162,8 @@ target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
#else
|
||||
|
||||
QDF_STATUS
|
||||
target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id,
|
||||
uint8_t vdev_id, uint8_t *peer_macaddr,
|
||||
qdf_dma_addr_t hw_qdesc, int tid,
|
||||
uint16_t queue_no,
|
||||
|
|
@ -149,10 +172,19 @@ target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
{
|
||||
struct rx_reorder_queue_setup_params param;
|
||||
struct wmi_unified *pdev_wmi_handle;
|
||||
QDF_STATUS status;
|
||||
struct wlan_objmgr_pdev *pdev =
|
||||
wlan_objmgr_get_pdev_by_id((struct wlan_objmgr_psoc *)psoc,
|
||||
pdev_id, WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
pdev_wmi_handle =
|
||||
lmac_get_pdev_wmi_handle((struct wlan_objmgr_pdev *)pdev);
|
||||
if (!pdev) {
|
||||
target_if_err("pdev with id %d is NULL", pdev_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
pdev_wmi_handle = lmac_get_pdev_wmi_handle(pdev);
|
||||
if (!pdev_wmi_handle) {
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
target_if_err("pdev wmi handle NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
|
@ -165,42 +197,67 @@ target_if_peer_rx_reorder_queue_setup(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
param.ba_window_size_valid = ba_window_size_valid;
|
||||
param.ba_window_size = ba_window_size;
|
||||
|
||||
return wmi_unified_peer_rx_reorder_queue_setup_send(pdev_wmi_handle,
|
||||
¶m);
|
||||
status = wmi_unified_peer_rx_reorder_queue_setup_send(pdev_wmi_handle,
|
||||
¶m);
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
return status;
|
||||
}
|
||||
#endif
|
||||
|
||||
QDF_STATUS
|
||||
target_if_peer_rx_reorder_queue_remove(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_peer_rx_reorder_queue_remove(struct cdp_ctrl_objmgr_psoc *psoc,
|
||||
uint8_t pdev_id,
|
||||
uint8_t vdev_id, uint8_t *peer_macaddr,
|
||||
uint32_t peer_tid_bitmap)
|
||||
{
|
||||
struct rx_reorder_queue_remove_params param;
|
||||
struct wmi_unified *pdev_wmi_handle;
|
||||
QDF_STATUS status;
|
||||
struct wlan_objmgr_pdev *pdev =
|
||||
wlan_objmgr_get_pdev_by_id((struct wlan_objmgr_psoc *)psoc,
|
||||
pdev_id, WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
pdev_wmi_handle =
|
||||
lmac_get_pdev_wmi_handle((struct wlan_objmgr_pdev *)pdev);
|
||||
if (!pdev) {
|
||||
target_if_err("pdev with id %d is NULL", pdev_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
pdev_wmi_handle = lmac_get_pdev_wmi_handle(pdev);
|
||||
if (!pdev_wmi_handle) {
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
target_if_err("pdev wmi handle NULL");
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
param.vdev_id = vdev_id;
|
||||
param.peer_macaddr = peer_macaddr;
|
||||
param.peer_tid_bitmap = peer_tid_bitmap;
|
||||
return wmi_unified_peer_rx_reorder_queue_remove_send(pdev_wmi_handle,
|
||||
¶m);
|
||||
status = wmi_unified_peer_rx_reorder_queue_remove_send(pdev_wmi_handle,
|
||||
¶m);
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
target_if_lro_hash_config(struct cdp_ctrl_objmgr_pdev *pdev,
|
||||
target_if_lro_hash_config(struct cdp_ctrl_objmgr_psoc *psoc, uint8_t pdev_id,
|
||||
struct cdp_lro_hash_config *lro_hash_cfg)
|
||||
{
|
||||
struct wmi_lro_config_cmd_t wmi_lro_cmd = {0};
|
||||
struct wmi_unified *pdev_wmi_handle;
|
||||
QDF_STATUS status;
|
||||
struct wlan_objmgr_pdev *pdev =
|
||||
wlan_objmgr_get_pdev_by_id((struct wlan_objmgr_psoc *)psoc,
|
||||
pdev_id, WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
pdev_wmi_handle =
|
||||
lmac_get_pdev_wmi_handle((struct wlan_objmgr_pdev *)pdev);
|
||||
if (!pdev) {
|
||||
target_if_err("pdev with id %d is NULL", pdev_id);
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
pdev_wmi_handle = lmac_get_pdev_wmi_handle(pdev);
|
||||
if (!lro_hash_cfg || !pdev_wmi_handle) {
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
target_if_err("wmi_handle: 0x%pK, lro_hash_cfg: 0x%pK",
|
||||
pdev_wmi_handle, lro_hash_cfg);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
|
@ -209,8 +266,7 @@ target_if_lro_hash_config(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
wmi_lro_cmd.lro_enable = lro_hash_cfg->lro_enable;
|
||||
wmi_lro_cmd.tcp_flag = lro_hash_cfg->tcp_flag;
|
||||
wmi_lro_cmd.tcp_flag_mask = lro_hash_cfg->tcp_flag_mask;
|
||||
wmi_lro_cmd.pdev_id =
|
||||
lmac_get_pdev_idx((struct wlan_objmgr_pdev *)pdev);
|
||||
wmi_lro_cmd.pdev_id = pdev_id;
|
||||
|
||||
qdf_mem_copy(wmi_lro_cmd.toeplitz_hash_ipv4,
|
||||
lro_hash_cfg->toeplitz_hash_ipv4,
|
||||
|
|
@ -220,6 +276,9 @@ target_if_lro_hash_config(struct cdp_ctrl_objmgr_pdev *pdev,
|
|||
lro_hash_cfg->toeplitz_hash_ipv6,
|
||||
LRO_IPV6_SEED_ARR_SZ * sizeof(uint32_t));
|
||||
|
||||
return wmi_unified_lro_config_cmd(pdev_wmi_handle,
|
||||
&wmi_lro_cmd);
|
||||
status = wmi_unified_lro_config_cmd(pdev_wmi_handle,
|
||||
&wmi_lro_cmd);
|
||||
wlan_objmgr_pdev_release_ref(pdev, WLAN_PDEV_TARGET_IF_ID);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue