qcacld-3.0: FISA suspend/resume code movement
Move the suspend/resume related handlers for FISA in the DP component. Change-Id: Iba2bcf313f0a6f94a8bd8ff3c6cb29e8ef58f225 CRs-Fixed: 3512042
This commit is contained in:

committed by
Rahul Choudhary

parent
1fe1ac7688
commit
7dde156e8d
@@ -2208,8 +2208,9 @@ void dp_set_fisa_disallowed_for_vdev(struct cdp_soc_t *cdp_soc, uint8_t vdev_id,
|
|||||||
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_RX);
|
dp_vdev_unref_delete(soc, vdev, DP_MOD_ID_RX);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dp_suspend_fse_cache_flush(struct dp_soc *soc)
|
void dp_suspend_fse_cache_flush(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
{
|
{
|
||||||
|
struct dp_soc *soc = (struct dp_soc *)dp_ctx->cdp_soc;
|
||||||
struct dp_rx_fst *dp_fst;
|
struct dp_rx_fst *dp_fst;
|
||||||
|
|
||||||
dp_fst = soc->rx_fst;
|
dp_fst = soc->rx_fst;
|
||||||
@@ -2222,8 +2223,9 @@ void dp_suspend_fse_cache_flush(struct dp_soc *soc)
|
|||||||
dp_info("fse cache flush suspended");
|
dp_info("fse cache flush suspended");
|
||||||
}
|
}
|
||||||
|
|
||||||
void dp_resume_fse_cache_flush(struct dp_soc *soc)
|
void dp_resume_fse_cache_flush(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
{
|
{
|
||||||
|
struct dp_soc *soc = (struct dp_soc *)dp_ctx->cdp_soc;
|
||||||
struct dp_rx_fst *dp_fst;
|
struct dp_rx_fst *dp_fst;
|
||||||
|
|
||||||
dp_fst = soc->rx_fst;
|
dp_fst = soc->rx_fst;
|
||||||
|
@@ -145,11 +145,11 @@ void dp_fisa_rx_fst_update_work(void *arg);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_suspend_fse_cache_flush() - Suspend FSE cache flush
|
* dp_suspend_fse_cache_flush() - Suspend FSE cache flush
|
||||||
* @soc: core txrx main context
|
* @dp_ctx: DP component context
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void dp_suspend_fse_cache_flush(struct dp_soc *soc);
|
void dp_suspend_fse_cache_flush(struct wlan_dp_psoc_context *dp_ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_rx_fst_attach() - Initialize Rx FST and setup necessary parameters
|
* dp_rx_fst_attach() - Initialize Rx FST and setup necessary parameters
|
||||||
@@ -185,11 +185,11 @@ void dp_rx_fst_detach(struct wlan_dp_psoc_context *dp_ctx);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_resume_fse_cache_flush() - Resume FSE cache flush
|
* dp_resume_fse_cache_flush() - Resume FSE cache flush
|
||||||
* @soc: core txrx main context
|
* @dp_ctx: DP component context
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void dp_resume_fse_cache_flush(struct dp_soc *soc);
|
void dp_resume_fse_cache_flush(struct wlan_dp_psoc_context *dp_ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dp_rx_flow_send_fst_fw_setup() - Program FST parameters in FW/HW post-attach
|
* dp_rx_flow_send_fst_fw_setup() - Program FST parameters in FW/HW post-attach
|
||||||
@@ -200,7 +200,31 @@ void dp_resume_fse_cache_flush(struct dp_soc *soc);
|
|||||||
*/
|
*/
|
||||||
QDF_STATUS dp_rx_flow_send_fst_fw_setup(struct dp_soc *soc,
|
QDF_STATUS dp_rx_flow_send_fst_fw_setup(struct dp_soc *soc,
|
||||||
struct dp_pdev *pdev);
|
struct dp_pdev *pdev);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_rx_fst_update_pm_suspend_status() - Update Suspend status in FISA
|
||||||
|
* @dp_ctx: DP component context
|
||||||
|
* @suspended: Flag to indicate suspend or not
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void dp_rx_fst_update_pm_suspend_status(struct wlan_dp_psoc_context *dp_ctx,
|
||||||
|
bool suspended);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dp_rx_fst_requeue_wq() - Re-queue pending work queue tasks
|
||||||
|
* @dp_ctx: DP component context
|
||||||
|
*
|
||||||
|
* Return: None
|
||||||
|
*/
|
||||||
|
void dp_rx_fst_requeue_wq(struct wlan_dp_psoc_context *dp_ctx);
|
||||||
#else
|
#else
|
||||||
|
static inline void
|
||||||
|
dp_rx_fst_update_pm_suspend_status(struct wlan_dp_psoc_context *dp_ctx,
|
||||||
|
bool suspended)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
static QDF_STATUS dp_rx_dump_fisa_stats(struct dp_soc *soc)
|
static QDF_STATUS dp_rx_dump_fisa_stats(struct dp_soc *soc)
|
||||||
{
|
{
|
||||||
return QDF_STATUS_SUCCESS;
|
return QDF_STATUS_SUCCESS;
|
||||||
|
@@ -1618,6 +1618,25 @@ wlan_dp_rx_fisa_cmem_attach(struct wlan_dp_psoc_context *dp_ctx)
|
|||||||
dp_ctx->fst_cmem_base = cdp_get_fst_cem_base(dp_ctx->cdp_soc,
|
dp_ctx->fst_cmem_base = cdp_get_fst_cem_base(dp_ctx->cdp_soc,
|
||||||
DP_CMEM_FST_SIZE);
|
DP_CMEM_FST_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
wlan_dp_fisa_suspend(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
|
{
|
||||||
|
dp_suspend_fse_cache_flush(dp_ctx);
|
||||||
|
dp_rx_fst_update_pm_suspend_status(dp_ctx, true);
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
wlan_dp_fisa_resume(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
|
{
|
||||||
|
dp_resume_fse_cache_flush(dp_ctx);
|
||||||
|
dp_rx_fst_update_pm_suspend_status(dp_ctx, false);
|
||||||
|
dp_rx_fst_requeue_wq(dp_ctx);
|
||||||
|
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
static inline QDF_STATUS
|
static inline QDF_STATUS
|
||||||
wlan_dp_rx_fisa_attach(struct wlan_dp_psoc_context *dp_ctx)
|
wlan_dp_rx_fisa_attach(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
@@ -1635,26 +1654,84 @@ static inline void
|
|||||||
wlan_dp_rx_fisa_cmem_attach(struct wlan_dp_psoc_context *dp_ctx)
|
wlan_dp_rx_fisa_cmem_attach(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
wlan_dp_fisa_suspend(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline QDF_STATUS
|
||||||
|
wlan_dp_fisa_resume(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
|
{
|
||||||
|
return QDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
QDF_STATUS __wlan_dp_runtime_suspend(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
QDF_STATUS __wlan_dp_runtime_suspend(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
return cdp_runtime_suspend(soc, pdev_id);
|
struct wlan_dp_psoc_context *dp_ctx;
|
||||||
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
dp_ctx = dp_get_context();
|
||||||
|
status = cdp_runtime_suspend(soc, pdev_id);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
return status;
|
||||||
|
|
||||||
|
dp_rx_fst_update_pm_suspend_status(dp_ctx, true);
|
||||||
|
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS __wlan_dp_runtime_resume(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
QDF_STATUS __wlan_dp_runtime_resume(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
return cdp_runtime_resume(soc, pdev_id);
|
struct wlan_dp_psoc_context *dp_ctx;
|
||||||
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
dp_ctx = dp_get_context();
|
||||||
|
status = cdp_runtime_resume(soc, pdev_id);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
return status;
|
||||||
|
|
||||||
|
dp_rx_fst_update_pm_suspend_status(dp_ctx, false);
|
||||||
|
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS __wlan_dp_bus_suspend(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
QDF_STATUS __wlan_dp_bus_suspend(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
return cdp_bus_suspend(soc, pdev_id);
|
struct wlan_dp_psoc_context *dp_ctx;
|
||||||
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
dp_ctx = dp_get_context();
|
||||||
|
|
||||||
|
status = cdp_bus_suspend(soc, pdev_id);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
return status;
|
||||||
|
|
||||||
|
status = wlan_dp_fisa_suspend(dp_ctx);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
return status;
|
||||||
|
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
QDF_STATUS __wlan_dp_bus_resume(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
QDF_STATUS __wlan_dp_bus_resume(ol_txrx_soc_handle soc, uint8_t pdev_id)
|
||||||
{
|
{
|
||||||
return cdp_bus_resume(soc, pdev_id);
|
struct wlan_dp_psoc_context *dp_ctx;
|
||||||
|
QDF_STATUS status;
|
||||||
|
|
||||||
|
dp_ctx = dp_get_context();
|
||||||
|
|
||||||
|
status = cdp_bus_resume(soc, pdev_id);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
return status;
|
||||||
|
|
||||||
|
status = wlan_dp_fisa_resume(dp_ctx);
|
||||||
|
if (QDF_IS_STATUS_ERROR(status))
|
||||||
|
return status;
|
||||||
|
|
||||||
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *wlan_dp_txrx_soc_attach(struct dp_txrx_soc_attach_params *params,
|
void *wlan_dp_txrx_soc_attach(struct dp_txrx_soc_attach_params *params,
|
||||||
|
@@ -524,8 +524,10 @@ void dp_rx_fst_update_cmem_params(struct dp_soc *soc, uint16_t num_entries,
|
|||||||
qdf_event_set(&fst->cmem_resp_event);
|
qdf_event_set(&fst->cmem_resp_event);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dp_rx_fst_update_pm_suspend_status(struct dp_soc *soc, bool suspended)
|
void dp_rx_fst_update_pm_suspend_status(struct wlan_dp_psoc_context *dp_ctx,
|
||||||
|
bool suspended)
|
||||||
{
|
{
|
||||||
|
struct dp_soc *soc = (struct dp_soc *)dp_ctx->cdp_soc;
|
||||||
struct dp_rx_fst *fst = soc->rx_fst;
|
struct dp_rx_fst *fst = soc->rx_fst;
|
||||||
|
|
||||||
if (!fst)
|
if (!fst)
|
||||||
@@ -537,8 +539,9 @@ void dp_rx_fst_update_pm_suspend_status(struct dp_soc *soc, bool suspended)
|
|||||||
qdf_atomic_set(&fst->pm_suspended, 0);
|
qdf_atomic_set(&fst->pm_suspended, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void dp_rx_fst_requeue_wq(struct dp_soc *soc)
|
void dp_rx_fst_requeue_wq(struct wlan_dp_psoc_context *dp_ctx)
|
||||||
{
|
{
|
||||||
|
struct dp_soc *soc = (struct dp_soc *)dp_ctx->cdp_soc;
|
||||||
struct dp_rx_fst *fst = soc->rx_fst;
|
struct dp_rx_fst *fst = soc->rx_fst;
|
||||||
|
|
||||||
if (!fst || !fst->fst_wq_defer)
|
if (!fst || !fst->fst_wq_defer)
|
||||||
|
Reference in New Issue
Block a user