Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc6d87c5 authored by CNSS_WLAN Service's avatar CNSS_WLAN Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "wlan: Resume tx transmission on beacon receive after CSA to DFS...

Merge "wlan: Resume tx transmission on beacon receive after CSA to DFS channel" into wlan-driver.lnx.1.0
parents e5598953 c5cfde09
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -707,6 +707,7 @@ typedef struct sLimSpecMgmtInfo
        
    tANI_BOOLEAN       fRadarDetCurOperChan; /* Radar detected in cur oper chan on AP */
    tANI_BOOLEAN       fRadarIntrConfigured; /* Whether radar interrupt has been configured */
    tANI_BOOLEAN       dfs_channel_csa; /* whether received channel switch to DFS channel */
}tLimSpecMgmtInfo, *tpLimSpecMgmtInfo;

#ifdef FEATURE_WLAN_TDLS
+6 −0
Original line number Diff line number Diff line
@@ -543,6 +543,12 @@ void limHandleHeartBeatFailure(tpAniSirGlobal pMac,tpPESession psessionEntry)
        {
            PELOGW(limLog(pMac, LOGW,
              FL("Heart Beat missed from AP on DFS chanel moving to passive"));)

            if (psessionEntry->gLimSpecMgmt.dfs_channel_csa) {
               limFrameTransmissionControl(pMac, eLIM_TX_ALL, eLIM_RESUME_TX);
               psessionEntry->gLimSpecMgmt.dfs_channel_csa = false;
	    }

            if (psessionEntry->currentOperChannel < SIR_MAX_24G_5G_CHANNEL_RANGE){
               limCovertChannelScanType(pMac, psessionEntry->currentOperChannel, false);
               pMac->lim.dfschannelList.timeStamp[psessionEntry->currentOperChannel] = 0;
+5 −0
Original line number Diff line number Diff line
@@ -383,6 +383,11 @@ void peDeleteSession(tpAniSirGlobal pMac, tpPESession psessionEntry)
           psessionEntry->operMode, psessionEntry->bssIdx,
           MAC_ADDR_ARRAY(psessionEntry->bssId));

    if (psessionEntry->gLimSpecMgmt.dfs_channel_csa) {
        limFrameTransmissionControl(pMac, eLIM_TX_ALL, eLIM_RESUME_TX);
       psessionEntry->gLimSpecMgmt.dfs_channel_csa = false;
    }

    for (n = 0; n < pMac->lim.maxStation; n++)
    {
        timer_ptr = &pMac->lim.limTimers.gpLimCnfWaitTimer[n];
+7 −2
Original line number Diff line number Diff line
@@ -7032,8 +7032,13 @@ limRestorePreChannelSwitchState(tpAniSirGlobal pMac, tpPESession psessionEntry)
    /* Channel switch should be ready for the next time */
    psessionEntry->gLimSpecMgmt.dot11hChanSwState = eLIM_11H_CHANSW_INIT;

    /* Restore the frame transmission, all the time. */
    /* Restore the frame transmission, if switched channel is NON-DFS.
     * Else tx should be resumed after receiving first beacon on DFS channel
     */
    if(!limIsconnectedOnDFSChannel(psessionEntry->currentOperChannel))
        limFrameTransmissionControl(pMac, eLIM_TX_ALL, eLIM_RESUME_TX);
    else
        psessionEntry->gLimSpecMgmt.dfs_channel_csa = true;

    /* Free to enter BMPS */
    limSendSmePostChannelSwitchInd(pMac);
+5 −0
Original line number Diff line number Diff line
@@ -383,6 +383,11 @@ static void __schBeaconProcessForSession( tpAniSirGlobal pMac,
           goto fail;
        }

        if (psessionEntry->gLimSpecMgmt.dfs_channel_csa) {
           limFrameTransmissionControl(pMac, eLIM_TX_ALL, eLIM_RESUME_TX);
           psessionEntry->gLimSpecMgmt.dfs_channel_csa = false;
        }

        if(RF_CHAN_14 >= psessionEntry->currentOperChannel)
        {
            if (psessionEntry->force_24ghz_in_ht20)