diff options
| author | gbian <gbian@codeaurora.org> | 2016-09-30 16:58:31 +0800 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2016-11-01 23:18:39 -0700 |
| commit | 31367b3af8704d5d4ede4d694ff7cb380dd08bba (patch) | |
| tree | 54df398df4a61fe4b6ab3bf1d784979ef94f7c3c | |
| parent | 89d1b2dac5584053b1a7898fff478041e8851c31 (diff) | |
qcacld-3.0: improve mboxping TX t-put for SDIO project
qcacld-2.0 to qcacld-3.0 propagation
Return HTC_SEND_FULL_KEEP directly in epping_tx_queue_full function
and give nodrop pkts higher priority over normal pkts
Change-Id: Ib36e1a9f34eb9054b12f0e8ba54a86ace7d6c8f8
CRs-Fixed: 990726
| -rw-r--r-- | core/utils/epping/src/epping_tx.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/core/utils/epping/src/epping_tx.c b/core/utils/epping/src/epping_tx.c index c7acddc9320e..5cfe3d1a57de 100644 --- a/core/utils/epping/src/epping_tx.c +++ b/core/utils/epping/src/epping_tx.c @@ -183,6 +183,7 @@ void epping_tx_timer_expire(epping_adapter_t *pAdapter) /* try to flush nodrop queue */ while ((nodrop_skb = qdf_nbuf_queue_remove(&pAdapter->nodrop_queue))) { + htc_set_nodrop_pkt(pAdapter->pEpping_ctx->HTCHandle, true); if (epping_tx_send_int(nodrop_skb, pAdapter)) { EPPING_LOG(QDF_TRACE_LEVEL_FATAL, "%s: nodrop: %p xmit fail in timer\n", @@ -192,6 +193,7 @@ void epping_tx_timer_expire(epping_adapter_t *pAdapter) nodrop_skb); break; } else { + htc_set_nodrop_pkt(pAdapter->pEpping_ctx->HTCHandle, false); EPPING_LOG(QDF_TRACE_LEVEL_INFO, "%s: nodrop: %p xmit ok in timer\n", __func__, nodrop_skb); @@ -253,6 +255,7 @@ int epping_tx_send(qdf_nbuf_t skb, epping_adapter_t *pAdapter) /* check the nodrop queue first */ while ((nodrop_skb = qdf_nbuf_queue_remove(&pAdapter->nodrop_queue))) { + htc_set_nodrop_pkt(pAdapter->pEpping_ctx->HTCHandle, true); if (epping_tx_send_int(nodrop_skb, pAdapter)) { EPPING_LOG(QDF_TRACE_LEVEL_FATAL, "%s: nodrop: %p xmit fail\n", __func__, @@ -263,6 +266,7 @@ int epping_tx_send(qdf_nbuf_t skb, epping_adapter_t *pAdapter) /* no cookie so free the current skb */ goto tx_fail; } else { + htc_set_nodrop_pkt(pAdapter->pEpping_ctx->HTCHandle, false); EPPING_LOG(QDF_TRACE_LEVEL_INFO, "%s: nodrop: %p xmit ok\n", __func__, nodrop_skb); @@ -303,11 +307,11 @@ tx_fail: #ifdef HIF_SDIO HTC_SEND_FULL_ACTION epping_tx_queue_full(void *Context, HTC_PACKET *pPacket) { - epping_context_t *pEpping_ctx = (epping_context_t *) Context; - epping_adapter_t *pAdapter = pEpping_ctx->epping_adapter; - HTC_SEND_FULL_ACTION action = HTC_SEND_FULL_KEEP; - netif_stop_queue(pAdapter->dev); - return action; + /* + * Call netif_stop_queue frequently will impact the mboxping tx t-put. + * Return HTC_SEND_FULL_KEEP directly in epping_tx_queue_full to avoid. + */ + return HTC_SEND_FULL_KEEP; } #endif /* HIF_SDIO */ void epping_tx_complete_multiple(void *ctx, HTC_PACKET_QUEUE *pPacketQueue) |
