wlan: Downgrade traffic when Medium time is 0

If AP is successfully accepting AddtS request but
providing medium time zero then Host needs to
downgrade traffic.

Change-Id: I40364f94401240cf3579cadb285f7430f2dbe49f
CRs-Fixed: 761674
diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c
index 309ac2d..c608f51 100644
--- a/CORE/HDD/src/wlan_hdd_tx_rx.c
+++ b/CORE/HDD/src/wlan_hdd_tx_rx.c
@@ -1668,9 +1668,17 @@
    {
       /* 1. Check if ACM is set for this AC 
        * 2. If set, check if this AC had already admitted 
-       * 3. If not already admitted, downgrade the UP to next best UP */
+       * 3. If not already admitted, downgrade the UP to next best UP
+       * 4. Allow only when medium time is non zero when Addts accepted else downgrade traffic.
+            we opted downgrading over Delts when medium time is zero because while doing downgradig
+            driver is not clearing the wmm context so consider in subsequent roaming if AP (new or
+            same AP) accept the Addts with valid medium time no application support is required
+            where if we have opted delts Applications have to again do Addts or STA will never
+            go for Addts.*/
+
       if(!pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcAccessRequired ||
-         pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcTspecValid)
+         (pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcTspecValid &&
+          pAdapter->hddWmmStatus.wmmAcStatus[ac].wmmAcTspecInfo.medium_time))
       {
         pPktMetaInfo->ucUP = pktNode->userPriority;
         pPktMetaInfo->ucTID = pPktMetaInfo->ucUP;
diff --git a/CORE/SME/src/QoS/sme_Qos.c b/CORE/SME/src/QoS/sme_Qos.c
index 03924bf..aee50a8 100644
--- a/CORE/SME/src/QoS/sme_Qos.c
+++ b/CORE/SME/src/QoS/sme_Qos.c
@@ -7176,16 +7176,7 @@
       {
          //For downgrading purpose Hdd set WmmTspecValid to false during roaming
          //So need to set that flag we need to call the hdd in successful case.
-         if((hdd_status == SME_QOS_STATUS_SETUP_SUCCESS_IND)
-#if defined (WLAN_FEATURE_VOWIFI_11R)
-            &&
-            (!csrRoamIs11rAssoc(pMac))
-#endif
-#if defined(FEATURE_WLAN_ESE)
-            &&
-            (!csrRoamIsCCXAssoc(pMac))
-#endif
-           )
+         if(hdd_status == SME_QOS_STATUS_SETUP_SUCCESS_IND)
          {
              VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO,
                        "%s calling hdd_wmm_smecallback during  roaming for ac = %d", __func__, ac);