mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-23 21:19:04 -04:00
qcacmn: Add DP callbacks for flow_pool create and delete
Current lithim_dp flow pool created in wma_vdev_start, wma_vdev_start is called for same vdev multiple times for vdev. This leads to creation of multiple flow pools for each vdev. Instead create from policy_manager when session become active. Register flow pool create/delete callbacks with policy manager. So that lithium_dp vdev flow pools are created/deleted when vdev become active/not-active. Change-Id: Iaf6aaece47c79c7e6f7745feaee35a6bc5cd1297 CRs-Fixed: 2231601
This commit is contained in:
parent
7f8d1df7e9
commit
cdf1813b35
3 changed files with 13 additions and 0 deletions
|
|
@ -858,11 +858,15 @@ struct policy_mgr_cdp_cbacks {
|
|||
* @hdd_disable_rx_ol_in_concurrency: Callback to disable LRO/GRO offloads
|
||||
* @hdd_set_rx_mode_rps_cb: Callback to set RPS
|
||||
* @hdd_ipa_set_mcc_mode_cb: Callback to set mcc mode for ipa module
|
||||
* @hdd_v2_flow_pool_map: Callback to create vdev flow pool
|
||||
* @hdd_v2_flow_pool_unmap: Callback to delete vdev flow pool
|
||||
*/
|
||||
struct policy_mgr_dp_cbacks {
|
||||
void (*hdd_disable_rx_ol_in_concurrency)(bool);
|
||||
void (*hdd_set_rx_mode_rps_cb)(bool);
|
||||
void (*hdd_ipa_set_mcc_mode_cb)(bool);
|
||||
void (*hdd_v2_flow_pool_map)(int);
|
||||
void (*hdd_v2_flow_pool_unmap)(int);
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1122,6 +1122,8 @@ void policy_mgr_incr_active_session(struct wlan_objmgr_psoc *psoc,
|
|||
break;
|
||||
}
|
||||
|
||||
if (pm_ctx->dp_cbacks.hdd_v2_flow_pool_map)
|
||||
pm_ctx->dp_cbacks.hdd_v2_flow_pool_map(session_id);
|
||||
|
||||
policy_mgr_debug("No.# of active sessions for mode %d = %d",
|
||||
mode, pm_ctx->no_of_active_sessions[mode]);
|
||||
|
|
@ -1212,6 +1214,9 @@ QDF_STATUS policy_mgr_decr_active_session(struct wlan_objmgr_psoc *psoc,
|
|||
break;
|
||||
}
|
||||
|
||||
if (pm_ctx->dp_cbacks.hdd_v2_flow_pool_unmap)
|
||||
pm_ctx->dp_cbacks.hdd_v2_flow_pool_unmap(session_id);
|
||||
|
||||
policy_mgr_debug("No.# of active sessions for mode %d = %d",
|
||||
mode, pm_ctx->no_of_active_sessions[mode]);
|
||||
|
||||
|
|
|
|||
|
|
@ -642,6 +642,10 @@ QDF_STATUS policy_mgr_register_dp_cb(struct wlan_objmgr_psoc *psoc,
|
|||
dp_cbacks->hdd_set_rx_mode_rps_cb;
|
||||
pm_ctx->dp_cbacks.hdd_ipa_set_mcc_mode_cb =
|
||||
dp_cbacks->hdd_ipa_set_mcc_mode_cb;
|
||||
pm_ctx->dp_cbacks.hdd_v2_flow_pool_map =
|
||||
dp_cbacks->hdd_v2_flow_pool_map;
|
||||
pm_ctx->dp_cbacks.hdd_v2_flow_pool_unmap =
|
||||
dp_cbacks->hdd_v2_flow_pool_unmap;
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue