From ac99ac8eea67da05e10c38d43d69e74ebed471c4 Mon Sep 17 00:00:00 2001 From: Houston Hoffman Date: Tue, 14 Mar 2017 19:34:19 -0700 Subject: [PATCH] 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 --- hif/src/ce/ce_service.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hif/src/ce/ce_service.c b/hif/src/ce/ce_service.c index 4a57a43b99d2..3b4977947498 100644 --- a/hif/src/ce/ce_service.c +++ b/hif/src/ce/ce_service.c @@ -521,10 +521,19 @@ ce_sendlist_send_legacy(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;