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
This commit is contained in:
sandhu
2021-01-28 13:26:57 -08:00
committed by Madan Koyyalamudi
vanhempi 273504da32
commit 9dc81d7965
5 muutettua tiedostoa jossa 78 lisäystä ja 9 poistoa

Näytä tiedosto

@@ -606,6 +606,15 @@ htt_htc_pkt_pool_free(struct htt_soc *soc)
soc->htt_htc_pkt_freelist = NULL;
}
#ifdef ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST
static void
htt_htc_misc_pkt_list_add(struct htt_soc *soc, struct dp_htt_htc_pkt *pkt)
{
}
#else /* ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST */
/*
* htt_htc_misc_pkt_list_trim() - trim misc list
* @htt_soc: HTT SOC handle
@@ -668,6 +677,8 @@ htt_htc_misc_pkt_list_add(struct htt_soc *soc, struct dp_htt_htc_pkt *pkt)
htt_htc_misc_pkt_list_trim(soc, misclist_trim_level);
}
#endif /* ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST */
/**
* DP_HTT_SEND_HTC_PKT() - Send htt packet from host
* @soc : HTT SOC handle
@@ -778,6 +789,7 @@ dp_htt_h2t_send_complete_free_netbuf(
qdf_nbuf_free(netbuf);
}
#ifdef ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST
/*
* dp_htt_h2t_send_complete() - H2T completion handler
* @context: Opaque context (HTT SOC handle)
@@ -785,9 +797,36 @@ dp_htt_h2t_send_complete_free_netbuf(
*/
static void
dp_htt_h2t_send_complete(void *context, HTC_PACKET *htc_pkt)
{
struct htt_soc *soc = (struct htt_soc *) context;
struct dp_htt_htc_pkt *htt_pkt;
qdf_nbuf_t netbuf;
htt_pkt = container_of(htc_pkt, struct dp_htt_htc_pkt, htc_pkt);
/* process (free or keep) the netbuf that held the message */
netbuf = (qdf_nbuf_t) htc_pkt->pNetBufContext;
/*
* adf sendcomplete is required for windows only
*/
/* qdf_nbuf_set_sendcompleteflag(netbuf, TRUE); */
/* free the htt_htc_pkt / HTC_PACKET object */
qdf_nbuf_free(netbuf);
htt_htc_pkt_free(soc, htt_pkt);
}
#else /* ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST */
/*
* * dp_htt_h2t_send_complete() - H2T completion handler
* * @context: Opaque context (HTT SOC handle)
* * @htc_pkt: HTC packet
* */
static void
dp_htt_h2t_send_complete(void *context, HTC_PACKET *htc_pkt)
{
void (*send_complete_part2)(
void *soc, QDF_STATUS status, qdf_nbuf_t msdu);
void *soc, QDF_STATUS status, qdf_nbuf_t msdu);
struct htt_soc *soc = (struct htt_soc *) context;
struct dp_htt_htc_pkt *htt_pkt;
qdf_nbuf_t netbuf;
@@ -800,16 +839,18 @@ dp_htt_h2t_send_complete(void *context, HTC_PACKET *htc_pkt)
netbuf = (qdf_nbuf_t) htc_pkt->pNetBufContext;
/*
* adf sendcomplete is required for windows only
*/
*/
/* qdf_nbuf_set_sendcompleteflag(netbuf, TRUE); */
if (send_complete_part2) {
if (send_complete_part2){
send_complete_part2(
htt_pkt->soc_ctxt, htc_pkt->Status, netbuf);
htt_pkt->soc_ctxt, htc_pkt->Status, netbuf);
}
/* free the htt_htc_pkt / HTC_PACKET object */
htt_htc_pkt_free(soc, htt_pkt);
}
#endif /* ENABLE_CE4_COMP_DISABLE_HTT_HTC_MISC_LIST */
/*
* htt_h2t_ver_req_msg() - Send HTT version request message to target
* @htt_soc: HTT SOC handle