diff options
| author | Houston Hoffman <hhoffman@codeaurora.org> | 2017-03-14 19:34:19 -0700 |
|---|---|---|
| committer | Sandeep Puligilla <spuligil@codeaurora.org> | 2017-03-20 13:36:58 -0700 |
| commit | 33d91c28e179c91849f21accecfb4edacb02de4a (patch) | |
| tree | dbe749d583c116813a71b50c9a131d3b5a26b281 /hif/src | |
| parent | 3e371a3de358d00579ae8bde2c459c48f6752529 (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.c | 9 |
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; |
