|
@@ -436,7 +436,14 @@ inline int hal_reo_cmd_queue_stats(hal_ring_handle_t hal_ring_hdl,
|
|
|
HAL_DESC_SET_FIELD(reo_desc, REO_GET_QUEUE_STATS_2, CLEAR_STATS,
|
|
|
cmd->u.stats_params.clear);
|
|
|
|
|
|
- hal_srng_access_end(hal_soc, hal_ring_hdl);
|
|
|
+ if (hif_pm_runtime_get(hal_soc->hif_handle) == 0) {
|
|
|
+ hal_srng_access_end(hal_soc_hdl, hal_ring_hdl);
|
|
|
+ hif_pm_runtime_put(hal_soc->hif_handle);
|
|
|
+ } else {
|
|
|
+ hal_srng_access_end_reap(hal_soc_hdl, hal_ring_hdl);
|
|
|
+ hal_srng_set_event(hal_ring_hdl, HAL_SRNG_FLUSH_EVENT);
|
|
|
+ hal_srng_inc_flush_cnt(hal_ring_hdl);
|
|
|
+ }
|
|
|
|
|
|
val = reo_desc[CMD_HEADER_DW_OFFSET];
|
|
|
return HAL_GET_FIELD(UNIFORM_REO_CMD_HEADER_0, REO_CMD_NUMBER,
|
|
@@ -567,7 +574,15 @@ inline int hal_reo_cmd_flush_cache(hal_ring_handle_t hal_ring_hdl,
|
|
|
HAL_DESC_SET_FIELD(reo_desc, REO_FLUSH_CACHE_2, FLUSH_ENTIRE_CACHE,
|
|
|
cp->flush_all);
|
|
|
|
|
|
- hal_srng_access_end(hal_soc, hal_ring_hdl);
|
|
|
+ if (hif_pm_runtime_get(hal_soc->hif_handle) == 0) {
|
|
|
+ hal_srng_access_end(hal_soc_hdl, hal_ring_hdl);
|
|
|
+ hif_pm_runtime_put(hal_soc->hif_handle);
|
|
|
+ } else {
|
|
|
+ hal_srng_access_end_reap(hal_soc_hdl, hal_ring_hdl);
|
|
|
+ hal_srng_set_event(hal_ring_hdl, HAL_SRNG_FLUSH_EVENT);
|
|
|
+ hal_srng_inc_flush_cnt(hal_ring_hdl);
|
|
|
+ }
|
|
|
+
|
|
|
val = reo_desc[CMD_HEADER_DW_OFFSET];
|
|
|
return HAL_GET_FIELD(UNIFORM_REO_CMD_HEADER_0, REO_CMD_NUMBER,
|
|
|
val);
|