qcacmn: Force unwake in ce_per_engine_service for fastpath

ce_per_engine_service fails to call Q_TARGET_ACCESS_END in fastpath
execution flow.

Change-Id: I0caed62a4775e6e1231fead6eaa1ad7f38bc9ba2
CRs-Fixed: 1017064
Šī revīzija ir iekļauta:
Houston Hoffman
2016-05-12 21:05:15 -07:00
revīziju iesūtīja Gerrit - the friendly Code Review server
vecāks 5364165a30
revīzija c8993b5509

Parādīt failu

@@ -1819,8 +1819,7 @@ int ce_per_engine_service(struct hif_softc *scn, unsigned int CE_id)
if (ce_is_fastpath_handler_registered(CE_state)) {
/* For datapath only Rx CEs */
ce_per_engine_service_fast(scn, CE_id);
qdf_spin_unlock(&CE_state->ce_index_lock);
return CE_state->receive_count;
goto unlock_end;
}
more_completions:
@@ -1857,10 +1856,7 @@ more_completions:
*/
if (qdf_unlikely(CE_state->force_break)) {
qdf_atomic_set(&CE_state->rx_pending, 1);
if (Q_TARGET_ACCESS_END(scn) < 0)
HIF_ERROR("<--[premature rc=%d]\n",
CE_state->receive_count);
return CE_state->receive_count;
goto target_access_end;
}
qdf_spin_lock(&CE_state->ce_index_lock);
}
@@ -1993,9 +1989,11 @@ more_watermarks:
}
}
qdf_spin_unlock(&CE_state->ce_index_lock);
qdf_atomic_set(&CE_state->rx_pending, 0);
unlock_end:
qdf_spin_unlock(&CE_state->ce_index_lock);
target_access_end:
if (Q_TARGET_ACCESS_END(scn) < 0)
HIF_ERROR("<--[premature rc=%d]\n", CE_state->receive_count);
return CE_state->receive_count;