wlan: Kick DXE when TX ring is about to fill
The host needs to kick dxe through smsm notification when the target is in
BMPS mode to enable TX channels. Currently it is done only when both TX
rings are empty. Updated this to send smsm notification when the ring is
about to full also.
Change-Id: I1fc269f03fe55bd81e4287909d982e3d21b52586
CRs-Fixed: 906319
diff --git a/CORE/DXE/src/wlan_qct_dxe.c b/CORE/DXE/src/wlan_qct_dxe.c
index b9ad134..4bacd95 100644
--- a/CORE/DXE/src/wlan_qct_dxe.c
+++ b/CORE/DXE/src/wlan_qct_dxe.c
@@ -3233,7 +3233,7 @@
void *sourcePhysicalAddress = NULL;
wpt_uint32 xferSize = 0;
wpt_iterator iterator;
- wpt_uint32 isEmpty = 0;
+ wpt_uint32 KickDxe = 0;
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_INFO_LOW,
"%s Enter", __func__);
@@ -3242,9 +3242,13 @@
if((0 == tempDxeCtrlBlk->dxeChannel[WDTS_CHANNEL_TX_LOW_PRI].numRsvdDesc) &&
(0 == tempDxeCtrlBlk->dxeChannel[WDTS_CHANNEL_TX_HIGH_PRI].numRsvdDesc))
{
- isEmpty = 1;
+ KickDxe = 1;
}
+ /* Kick DXE when the ring is about to fill */
+ if (WLANDXE_TX_LOW_RES_THRESHOLD >= channelEntry->numFreeDesc)
+ KickDxe = 1;
+
channelEntry->numFragmentCurrentChain = 0;
currentCtrlBlk = channelEntry->headCtrlBlk;
@@ -3365,7 +3369,7 @@
{
/* Update channel head as next avaliable linked slot */
channelEntry->headCtrlBlk = currentCtrlBlk;
- if(isEmpty)
+ if(KickDxe)
{
tempDxeCtrlBlk->ringNotEmpty = eWLAN_PAL_TRUE;
HDXE_MSG(eWLAN_MODULE_DAL_DATA, eWLAN_PAL_TRACE_LEVEL_INFO_LOW,