qcacmn: Enable management rx reo scheduler
Enable management Rx reorder scheduler. CRs-Fixed: 3410648 Change-Id: I90fad2bb3c118f3d9021dc94ecdd1a300c9ab00c
This commit is contained in:

committed by
Madan Koyyalamudi

parent
fd71acd187
commit
4855c6ef1a
@@ -129,7 +129,6 @@ target_if_mgmt_rx_reo_extract_reo_params(wmi_unified_t wmi_handle,
|
||||
QDF_STATUS
|
||||
target_if_mgmt_rx_reo_host_drop_handler(struct wlan_objmgr_pdev *pdev,
|
||||
struct mgmt_rx_event_params *params);
|
||||
|
||||
/**
|
||||
* target_if_mgmt_rx_reo_release_frames() - API to release the management
|
||||
* frames of a given psoc
|
||||
@@ -212,5 +211,16 @@ target_if_mgmt_rx_reo_host_drop_handler(struct wlan_objmgr_pdev *pdev,
|
||||
/* Nothing to do when REO is compiled off */
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* target_if_mgmt_rx_reo_release_frames() - API to release the management
|
||||
* frames of a given psoc
|
||||
* @arg: Pointer to void * argument
|
||||
*
|
||||
* Return: void
|
||||
*/
|
||||
static inline void target_if_mgmt_rx_reo_release_frames(void *arg)
|
||||
{
|
||||
}
|
||||
#endif /* WLAN_MGMT_RX_REO_SUPPORT */
|
||||
#endif /* _TARGET_IF_MGMT_TXRX_RX_REO_H_ */
|
||||
|
@@ -99,6 +99,32 @@ target_if_mgmt_rx_reo_fw_consumed_event_handler(
|
||||
return 0;
|
||||
}
|
||||
|
||||
void target_if_mgmt_rx_reo_release_frames(void *arg)
|
||||
{
|
||||
ol_scn_t scn = arg;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct wlan_lmac_if_mgmt_rx_reo_rx_ops *mgmt_rx_reo_rx_ops;
|
||||
QDF_STATUS status;
|
||||
|
||||
psoc = target_if_get_psoc_from_scn_hdl(scn);
|
||||
if (!psoc) {
|
||||
mgmt_rx_reo_err("null psoc");
|
||||
return;
|
||||
}
|
||||
|
||||
mgmt_rx_reo_rx_ops = target_if_mgmt_rx_reo_get_rx_ops(psoc);
|
||||
if (!mgmt_rx_reo_rx_ops) {
|
||||
mgmt_rx_reo_err("rx_ops of MGMT Rx REO module is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
status = mgmt_rx_reo_rx_ops->release_frames(psoc);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
mgmt_rx_reo_err("Failed to release entries, ret = %d", status);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
QDF_STATUS
|
||||
target_if_mgmt_rx_reo_register_event_handlers(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
@@ -619,14 +645,10 @@ target_if_mgmt_rx_reo_extract_reo_params(
|
||||
static QDF_STATUS
|
||||
target_if_mgmt_rx_reo_schedule_delivery(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct hif_opaque_softc *hif_handle;
|
||||
struct wmi_unified *wmi_handle;
|
||||
|
||||
hif_handle = lmac_get_hif_hdl(psoc);
|
||||
if (!hif_handle) {
|
||||
mgmt_rx_reo_err("HIF handle is null");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
QDF_STATUS status;
|
||||
HTC_ENDPOINT_ID wmi_endpoint_id;
|
||||
HTC_HANDLE htc_handle;
|
||||
|
||||
wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
|
||||
if (!wmi_handle) {
|
||||
@@ -634,6 +656,20 @@ target_if_mgmt_rx_reo_schedule_delivery(struct wlan_objmgr_psoc *psoc)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
htc_handle = lmac_get_htc_hdl(psoc);
|
||||
if (!htc_handle) {
|
||||
mgmt_rx_reo_err("HTC_handle is NULL");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
wmi_endpoint_id = wmi_get_endpoint(wmi_handle);
|
||||
|
||||
status = htc_enable_custom_cb(htc_handle, wmi_endpoint_id);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
mgmt_rx_reo_err("Failed to schedule delivery");
|
||||
return status;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -647,14 +683,10 @@ target_if_mgmt_rx_reo_schedule_delivery(struct wlan_objmgr_psoc *psoc)
|
||||
static QDF_STATUS
|
||||
target_if_mgmt_rx_reo_cancel_scheduled_delivery(struct wlan_objmgr_psoc *psoc)
|
||||
{
|
||||
struct hif_opaque_softc *hif_handle;
|
||||
struct wmi_unified *wmi_handle;
|
||||
|
||||
hif_handle = lmac_get_hif_hdl(psoc);
|
||||
if (!hif_handle) {
|
||||
mgmt_rx_reo_err("HIF handle is null");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
QDF_STATUS status;
|
||||
HTC_ENDPOINT_ID wmi_endpoint_id;
|
||||
HTC_HANDLE htc_handle;
|
||||
|
||||
wmi_handle = get_wmi_unified_hdl_from_psoc(psoc);
|
||||
if (!wmi_handle) {
|
||||
@@ -662,6 +694,20 @@ target_if_mgmt_rx_reo_cancel_scheduled_delivery(struct wlan_objmgr_psoc *psoc)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
htc_handle = lmac_get_htc_hdl(psoc);
|
||||
if (!htc_handle) {
|
||||
mgmt_rx_reo_err("HTC_handle is NULL");
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
wmi_endpoint_id = wmi_get_endpoint(wmi_handle);
|
||||
|
||||
status = htc_disable_custom_cb(htc_handle, wmi_endpoint_id);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
mgmt_rx_reo_err("Failed to cancel scheduled delivery");
|
||||
return status;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -719,29 +765,3 @@ target_if_mgmt_rx_reo_host_drop_handler(struct wlan_objmgr_pdev *pdev,
|
||||
|
||||
return mgmt_rx_reo_rx_ops->host_drop_handler(pdev, params->reo_params);
|
||||
}
|
||||
|
||||
void target_if_mgmt_rx_reo_release_frames(void *arg)
|
||||
{
|
||||
ol_scn_t scn = arg;
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
struct wlan_lmac_if_mgmt_rx_reo_rx_ops *mgmt_rx_reo_rx_ops;
|
||||
QDF_STATUS status;
|
||||
|
||||
psoc = target_if_get_psoc_from_scn_hdl(scn);
|
||||
if (!psoc) {
|
||||
mgmt_rx_reo_err("null psoc");
|
||||
return;
|
||||
}
|
||||
|
||||
mgmt_rx_reo_rx_ops = target_if_mgmt_rx_reo_get_rx_ops(psoc);
|
||||
if (!mgmt_rx_reo_rx_ops) {
|
||||
mgmt_rx_reo_err("rx_ops of MGMT Rx REO module is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
status = mgmt_rx_reo_rx_ops->release_frames(psoc);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
mgmt_rx_reo_err("Failed to release entries, ret = %d", status);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user