qcacmn: Add HTT HTC tx completion based packet free

Add CE4 tx completion for htt htc packets. current logic
uses htt htc misc list to free packets.

Change-Id: Iea15d0dba544d3cc7581b11aa7ab7e5c0024133a
CRs-Fixed: 2630768
Dieser Commit ist enthalten in:
sandhu
2021-01-28 13:26:57 -08:00
committet von Madan Koyyalamudi
Ursprung 273504da32
Commit 9dc81d7965
5 geänderte Dateien mit 78 neuen und 9 gelöschten Zeilen

Datei anzeigen

@@ -74,6 +74,12 @@ static void hif_target_dump_access_log(void);
#define CE_ATTR_DIAG_FLAGS \
(CE_ATTR_FLAGS | CE_ATTR_DIAG)
#ifdef ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST
#define CE4_COMP_HTT_HTC CE_ATTR_FLAGS
#else
#define CE4_COMP_HTT_HTC (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR)
#endif
#ifdef QCN7605_SUPPORT
#define QCN7605_CE_COUNT 9
@@ -1274,7 +1280,7 @@ static struct CE_attr host_ce_config_wlan_qca6490[] = {
/* host->target WMI */
{ /* CE3 */ CE_ATTR_FLAGS, 0, 32, 2048, 0, NULL,},
/* host->target HTT */
{ /* CE4 */ (CE_ATTR_FLAGS | CE_ATTR_DISABLE_INTR), 0,
{ /* CE4 */ CE4_COMP_HTT_HTC, 0,
CE_HTT_H2T_MSG_SRC_NENTRIES_QCA6490, 256, 0, NULL,},
/* target -> host PKTLOG */
{ /* CE5 */ CE_ATTR_FLAGS, 0, 0, 2048, 512, NULL,},

Datei anzeigen

@@ -2519,7 +2519,7 @@ void hif_send_complete_check(struct hif_opaque_softc *hif_ctx, uint8_t pipe,
1))
return;
}
#if ATH_11AC_TXCOMPACT
#ifdef ATH_11AC_TXCOMPACT
ce_per_engine_servicereap(scn, pipe);
#else
ce_per_engine_service(scn, pipe);

Datei anzeigen

@@ -923,6 +923,27 @@ void ce_per_engine_servicereap(struct hif_softc *scn, unsigned int ce_id)
#endif /*ATH_11AC_TXCOMPACT */
#ifdef ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST
static inline bool check_ce_id_and_epping_enabled(int CE_id, uint32_t mode)
{
// QDF_IS_EPPING_ENABLED is pre lithium feature
// CE4 completion is enabled only lithium and later
// so no need to check for EPPING
return true;
}
#else /* ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST */
static inline bool check_ce_id_and_epping_enabled(int CE_id, uint32_t mode)
{
if (CE_id != CE_HTT_H2T_MSG || QDF_IS_EPPING_ENABLED(mode))
return true;
else
return false;
}
#endif /* ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST */
/*
* ce_engine_service_reg:
*
@@ -1006,8 +1027,7 @@ more_completions:
&id, &sw_idx, &hw_idx,
&toeplitz_hash_result) == QDF_STATUS_SUCCESS) {
if (CE_id != CE_HTT_H2T_MSG ||
QDF_IS_EPPING_ENABLED(mode)) {
if (check_ce_id_and_epping_enabled(CE_id, mode)) {
qdf_spin_unlock(&CE_state->ce_index_lock);
CE_state->send_cb((struct CE_handle *)CE_state,
CE_context, transfer_context,