qcacld-3.0: Instrument fastpath for runtime_pm
Fastpath needs gets and puts to work with runtime_pm enabled.
Change-Id: I2248d1e77c842ab12fcc10e3f29fa3ef4dd76052
CRs-Fixed: 935300
diff --git a/core/hif/src/ce/ce_service.c b/core/hif/src/ce/ce_service.c
index 0d97b49..0437f2d 100644
--- a/core/hif/src/ce/ce_service.c
+++ b/core/hif/src/ce/ce_service.c
@@ -548,6 +548,7 @@
struct CE_src_desc *shadow_src_desc =
CE_SRC_RING_TO_DESC(shadow_base, write_index);
+ hif_pm_runtime_get_noresume(scn);
msdu = msdus[i];
/*
@@ -619,10 +620,15 @@
/* Write the final index to h/w one-shot */
if (i) {
src_ring->write_index = write_index;
- /* Don't call WAR_XXX from here
- * Just call XXX instead, that has the reqd. intel
- */
- war_ce_src_ring_write_idx_set(scn, ctrl_addr, write_index);
+
+ if (hif_pm_runtime_get(scn) == 0) {
+ /* Don't call WAR_XXX from here
+ * Just call XXX instead, that has the reqd. intel
+ */
+ war_ce_src_ring_write_idx_set(scn, ctrl_addr,
+ write_index);
+ hif_pm_runtime_put(scn);
+ }
}
cdf_spin_unlock_bh(&ce_state->ce_index_lock);