summaryrefslogtreecommitdiff
path: root/hif/src
diff options
context:
space:
mode:
authorHouston Hoffman <hhoffman@codeaurora.org>2017-03-14 19:34:19 -0700
committerSandeep Puligilla <spuligil@codeaurora.org>2017-03-20 13:36:58 -0700
commit33d91c28e179c91849f21accecfb4edacb02de4a (patch)
treedbe749d583c116813a71b50c9a131d3b5a26b281 /hif/src
parent3e371a3de358d00579ae8bde2c459c48f6752529 (diff)
qcacmn: Update sw index from hw for ce_sendlist_send on data path ces
Fix CE full error when only legacy hif_send_head api is used on a ce configured to use the fastpath logic. Change-Id: I59530a0e5ff8b62a1b97007dcd959daa03025785 CRs-Fixed: 2018893
Diffstat (limited to 'hif/src')
-rw-r--r--hif/src/ce/ce_service.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/hif/src/ce/ce_service.c b/hif/src/ce/ce_service.c
index 7ef2c241088a..036398dbdbfd 100644
--- a/hif/src/ce/ce_service.c
+++ b/hif/src/ce/ce_service.c
@@ -499,10 +499,19 @@ ce_sendlist_send(struct CE_handle *copyeng,
unsigned int num_items = sl->num_items;
unsigned int sw_index;
unsigned int write_index;
+ struct hif_softc *scn = CE_state->scn;
QDF_ASSERT((num_items > 0) && (num_items < src_ring->nentries));
qdf_spin_lock_bh(&CE_state->ce_index_lock);
+
+ if (CE_state->scn->fastpath_mode_on && CE_state->htt_tx_data &&
+ Q_TARGET_ACCESS_BEGIN(scn) == 0) {
+ src_ring->sw_index = CE_SRC_RING_READ_IDX_GET_FROM_DDR(
+ scn, CE_state->ctrl_addr);
+ Q_TARGET_ACCESS_END(scn);
+ }
+
sw_index = src_ring->sw_index;
write_index = src_ring->write_index;