Merge tag 'LA.UM.10.6.2.r1-02500-89xx.0' into int/13/fp3
"LA.UM.10.6.2.r1-02500-89xx.0"
* tag 'LA.UM.10.6.2.r1-02500-89xx.0':
prima: Enable channels 12 and 13 under reg domain FCC
wlan: Update supported rate to 13 if H2E bss information present
wlan: Add RSNXE IE in probe response IE buffer
wlan: Add H2E require flag to extended support rate
wlan: Add RSNXE IE in beacon additional IE buffer
wlan: update rssi on llstats upon disconnect
Change-Id: I9b254573655cd0cdc03635900858975f88a117dd
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 44ad4a2..f07f7fd 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -2056,6 +2056,7 @@
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
WLANTL_InterfaceStatsType *pWifiIfaceStatTL = NULL;
tSirWifiWmmAcStat accessclassStats;
+ v_S7_t rssi_value;
if (FALSE == put_wifi_interface_info(
&pWifiIfaceStat->info,
@@ -2177,6 +2178,18 @@
return FALSE;
}
+ if (pWifiIfaceStat->info.state == WIFI_DISCONNECTED)
+ {
+ /* we are not connected or our SSID is too long
+ so we can report an disconnected rssi */
+ wlan_hdd_get_rssi(pAdapter, &rssi_value);
+ nla_put_s32(vendor_event,
+ QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_RSSI_MGMT,
+ rssi_value);
+ hddLog(VOS_TRACE_LEVEL_INFO,
+ FL("Rssi value on disconnect %d "), rssi_value);
+ }
+
#ifdef FEATURE_EXT_LL_STAT
/*
* Ensure when EXT_LL_STAT is supported by both host and fwr,
@@ -10021,6 +10034,20 @@
return;
}
+/* check SAE/H2E require flag from support rate sets */
+static void wlan_hdd_check_h2e(u8 *pIe, tsap_Config_t *pConfig, u8 num_rates)
+{
+ u8 i;
+
+ for ( i = 0; i < (num_rates + 1) ; i++)
+ {
+ if((BASIC_RATE_MASK | SIR_BSS_MEMBERSHIP_SELECTOR_SAE_H2E) == pIe[i])
+ {
+ pConfig->require_h2e = TRUE;
+ }
+ }
+}
+
static void wlan_hdd_set_sapHwmode(hdd_adapter_t *pHostapdAdapter)
{
tsap_Config_t *pConfig = &pHostapdAdapter->sessionCtx.ap.sapConfig;
@@ -10029,6 +10056,7 @@
u8 checkRatesfor11g = TRUE;
u8 require_ht = FALSE;
u8 *pIe=NULL;
+ u8 num_rates;
pConfig->SapHw_mode= eSAP_DOT11_MODE_11b;
@@ -10037,8 +10065,10 @@
if (pIe != NULL)
{
pIe += 1;
+ num_rates = pIe[0];
wlan_hdd_check_11gmode(pIe, &require_ht, &checkRatesfor11g,
&pConfig->SapHw_mode);
+ wlan_hdd_check_h2e(pIe, pConfig, num_rates);
}
pIe = wlan_hdd_cfg80211_get_ie_ptr(pBeacon->tail, pBeacon->tail_len,
@@ -10047,8 +10077,10 @@
{
pIe += 1;
+ num_rates = pIe[0];
wlan_hdd_check_11gmode(pIe, &require_ht, &checkRatesfor11g,
&pConfig->SapHw_mode);
+ wlan_hdd_check_h2e(pIe, pConfig, num_rates);
}
if( pConfig->channel > 14 )
@@ -10094,6 +10126,55 @@
return 0;
}
+/**
+ * wlan_hdd_add_extra_ie() - add extra ies in beacon
+ * @adapter: Pointer to hostapd adapter
+ * @genie: Pointer to extra ie
+ * @total_ielen: Pointer to store total ie length
+ * @temp_ie_id: ID of extra ie
+ *
+ * Return: none
+ */
+static void wlan_hdd_add_extra_ie(hdd_adapter_t* pHostapdAdapter,
+ v_U8_t *genie, v_U8_t *total_ielen,
+ v_U8_t temp_ie_id)
+{
+ v_U16_t ielen = 0;
+ beacon_data_t *pBeacon = pHostapdAdapter->sessionCtx.ap.beacon;
+ v_U32_t left = pBeacon->tail_len;
+ v_U8_t *ptr = pBeacon->tail;
+ v_U8_t elem_id, elem_len;
+
+ if (NULL == ptr || 0 == left)
+ return;
+
+ while (left >= 2) {
+ elem_id = ptr[0];
+ elem_len = ptr[1];
+ left -= 2;
+ if (elem_len > left) {
+ hddLog( VOS_TRACE_LEVEL_ERROR, "**Invalid IEs***");
+ return;
+ }
+
+ if (temp_ie_id == elem_id)
+ {
+ ielen = ptr[1] + 2;
+ if ((*total_ielen + ielen) <= MAX_GENIE_LEN)
+ {
+ vos_mem_copy(&genie[*total_ielen], ptr, ielen);
+ *total_ielen += ielen;
+ }
+ else
+ {
+ hddLog( VOS_TRACE_LEVEL_ERROR, "**Ie Length is too big***");
+ }
+ }
+ left -= elem_len;
+ ptr += (elem_len + 2);
+ }
+}
+
static void wlan_hdd_add_hostapd_conf_vsie(hdd_adapter_t* pHostapdAdapter,
v_U8_t *genie, v_U8_t *total_ielen)
{
@@ -10171,6 +10252,9 @@
}
pBeacon = pHostapdAdapter->sessionCtx.ap.beacon;
+
+ wlan_hdd_add_extra_ie(pHostapdAdapter, genie, &total_ielen, WLAN_ELEMID_RSNXE);
+
if (0 != wlan_hdd_add_ie(pHostapdAdapter, genie,
&total_ielen, WPS_OUI_TYPE, WPS_OUI_TYPE_SIZE))
{
@@ -11602,6 +11686,7 @@
}
wlan_hdd_set_sapHwmode(pHostapdAdapter);
+ pConfig->require_h2e = pHostapdAdapter->sessionCtx.ap.sapConfig.require_h2e;
#ifdef WLAN_FEATURE_11AC
/* Overwrite the hostapd setting for HW mode only for 11ac.
diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h
index 8715388..d482e9a 100644
--- a/CORE/MAC/inc/aniGlobal.h
+++ b/CORE/MAC/inc/aniGlobal.h
@@ -1112,6 +1112,7 @@
uint32_t sta_auth_retries_for_code17;
uint32_t sta_sap_scc_on_dfs_chan;
bool force_scc_with_ecsa;
+ bool require_h2e;
} tAniSirGlobal;
#ifdef FEATURE_WLAN_TDLS
diff --git a/CORE/MAC/inc/sirMacProtDef.h b/CORE/MAC/inc/sirMacProtDef.h
index 7d580e2..916713c 100644
--- a/CORE/MAC/inc/sirMacProtDef.h
+++ b/CORE/MAC/inc/sirMacProtDef.h
@@ -300,7 +300,7 @@
#define SIR_MAC_SSID_EID_MAX 32
#define SIR_MAC_RATESET_EID 1
#define SIR_MAC_RATESET_EID_MIN 1
-#define SIR_MAC_RATESET_EID_MAX 12
+#define SIR_MAC_RATESET_EID_MAX 13
#define SIR_MAC_FH_PARAM_SET_EID 2
#define SIR_MAC_FH_PARAM_SET_EID_MIN 5
#define SIR_MAC_FH_PARAM_SET_EID_MAX 5
@@ -479,6 +479,8 @@
#define SIR_MAX_NOA_DESCR 2
#define SIR_P2P_IE_HEADER_LEN 6
+#define SIR_MAC_RSNXE 0xf4
+
#define SIR_MAC_CISCO_OUI "\x00\x40\x96"
#define SIR_MAC_CISCO_OUI_SIZE 3
@@ -603,7 +605,7 @@
/// Protocol defined MAX definitions
#define SIR_MAC_ADDR_LENGTH 6
#define SIR_MAC_MAX_SSID_LENGTH 32
-#define SIR_MAC_MAX_NUMBER_OF_RATES 12
+#define SIR_MAC_MAX_NUMBER_OF_RATES 13
#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
#define SIR_MAC_KEY_LENGTH 13 // WEP Maximum key length size
#define SIR_MAC_AUTH_CHALLENGE_LENGTH 253
@@ -2794,6 +2796,7 @@
#define SIR_MAC_RATE_36 0x48
#define SIR_MAC_RATE_48 0x60
#define SIR_MAC_RATE_54 0x6C
+#define SIR_MAC_RATE_SAE_H2E 0xF6
// ANI legacy supported rates
#define SIR_MAC_RATE_72 0x01
@@ -2822,6 +2825,10 @@
#define SIR_MAC_RATE_36_BITMAP (1<<9)
#define SIR_MAC_RATE_48_BITMAP (1<<10)
#define SIR_MAC_RATE_54_BITMAP (1<<11)
+#define SIR_MAC_RATE_SAE_H2E_BITMAP (1<<12)
+
+#define SIR_BSS_MEMBERSHIP_SELECTOR_SAE_H2E 123
+#define SIR_RATE_MASK 0x80
#define sirIsArate(x) ((((tANI_U8)x)==SIR_MAC_RATE_6) || \
(((tANI_U8)x)==SIR_MAC_RATE_9) || \
@@ -2830,12 +2837,14 @@
(((tANI_U8)x)==SIR_MAC_RATE_24)|| \
(((tANI_U8)x)==SIR_MAC_RATE_36)|| \
(((tANI_U8)x)==SIR_MAC_RATE_48)|| \
- (((tANI_U8)x)==SIR_MAC_RATE_54))
+ (((tANI_U8)x)==SIR_MAC_RATE_54)|| \
+ (((tANI_U8)x)==SIR_MAC_RATE_SAE_H2E))
#define sirIsBrate(x) ((((tANI_U8)x)==SIR_MAC_RATE_1) || \
(((tANI_U8)x)==SIR_MAC_RATE_2) || \
(((tANI_U8)x)==SIR_MAC_RATE_5_5)|| \
- (((tANI_U8)x)==SIR_MAC_RATE_11))
+ (((tANI_U8)x)==SIR_MAC_RATE_11) || \
+ (((tANI_U8)x)==SIR_MAC_RATE_SAE_H2E))
#define sirIsGrate(x) ((((tANI_U8)x)==SIR_MAC_RATE_1) || \
(((tANI_U8)x)==SIR_MAC_RATE_2) || \
@@ -2848,7 +2857,8 @@
(((tANI_U8)x)==SIR_MAC_RATE_24) || \
(((tANI_U8)x)==SIR_MAC_RATE_36) || \
(((tANI_U8)x)==SIR_MAC_RATE_48) || \
- (((tANI_U8)x)==SIR_MAC_RATE_54))
+ (((tANI_U8)x)==SIR_MAC_RATE_54) || \
+ (((tANI_U8)x)==SIR_MAC_RATE_SAE_H2E))
#define sirIsProprate(x) ((((tANI_U8)x)==SIR_MAC_RATE_72) || \
(((tANI_U8)x)==SIR_MAC_RATE_96) || \
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index 45a10a7..ab5a817 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -1822,10 +1822,12 @@
else
tempRateSet2.numRates = 0;
- if ((tempRateSet.numRates + tempRateSet2.numRates) > 12)
+ if ((tempRateSet.numRates + tempRateSet2.numRates) >
+ SIR_MAC_MAX_NUMBER_OF_RATES)
{
//we are in big trouble
- limLog(pMac, LOGP, FL("more than 12 rates in CFG"));
+ limLog(pMac, LOGP, FL("more than %d rates in CFG"),
+ SIR_MAC_MAX_NUMBER_OF_RATES);
//panic
goto error;
}
@@ -1969,6 +1971,7 @@
}
if ((psessionEntry->dot11mode == WNI_CFG_DOT11_MODE_11G) ||
(psessionEntry->dot11mode == WNI_CFG_DOT11_MODE_11A) ||
+ (psessionEntry->dot11mode == WNI_CFG_DOT11_MODE_11B) ||
(psessionEntry->dot11mode == WNI_CFG_DOT11_MODE_11N))
{
@@ -2177,9 +2180,11 @@
else
tempRateSet2.numRates = 0;
- if ((tempRateSet.numRates + tempRateSet2.numRates) > 12)
+ if ((tempRateSet.numRates + tempRateSet2.numRates) >
+ SIR_MAC_MAX_NUMBER_OF_RATES)
{
- PELOGE(limLog(pMac, LOGE, FL("more than 12 rates in CFG"));)
+ PELOGE(limLog(pMac, LOGE, FL("more than %d rates in CFG"),
+ SIR_MAC_MAX_NUMBER_OF_RATES);)
goto error;
}
@@ -2189,7 +2194,9 @@
* - sort and the rates into the pSta->rate array
*/
- // Copy all rates in tempRateSet, there are 12 rates max
+ /* Copy all rates in tempRateSet,
+ * there are SIR_MAC_MAX_NUMBER_OF_RATES rates max
+ */
for(i = 0; i < tempRateSet2.numRates; i++)
tempRateSet.rate[i + tempRateSet.numRates] =
tempRateSet2.rate[i];
@@ -2233,13 +2240,14 @@
if (pExtRateSet->numRates)
{
- if((tempRateSet.numRates + pExtRateSet->numRates) > 12 )
+ if((tempRateSet.numRates + pExtRateSet->numRates) >
+ SIR_MAC_MAX_NUMBER_OF_RATES )
{
limLog( pMac, LOG1,
- "Sum of SUPPORTED and EXTENDED Rate Set (%1d) exceeds 12!",
- tempRateSet.numRates + pExtRateSet->numRates );
+ "Sum of SUPPORTED and EXTENDED Rate Set (%1d) exceeds %d!",
+ tempRateSet.numRates + pExtRateSet->numRates, SIR_MAC_MAX_NUMBER_OF_RATES );
- if( tempRateSet.numRates < 12 )
+ if( tempRateSet.numRates < SIR_MAC_MAX_NUMBER_OF_RATES )
{
int found = 0;
int tail = tempRateSet.numRates;
@@ -2262,7 +2270,7 @@
tempRateSet.rate[tempRateSet.numRates++] =
pExtRateSet->rate[i];
- if( tempRateSet.numRates >= 12 )
+ if( tempRateSet.numRates >= SIR_MAC_MAX_NUMBER_OF_RATES )
break;
}
}
diff --git a/CORE/MAC/src/pe/lim/limSerDesUtils.c b/CORE/MAC/src/pe/lim/limSerDesUtils.c
index e6b9e2b..5910bfd 100644
--- a/CORE/MAC/src/pe/lim/limSerDesUtils.c
+++ b/CORE/MAC/src/pe/lim/limSerDesUtils.c
@@ -754,6 +754,8 @@
// Extract extendedRateSet
if ((pStartBssReq->nwType == eSIR_11G_NW_TYPE) ||
+ (pStartBssReq->nwType == eSIR_11A_NW_TYPE) ||
+ (pStartBssReq->nwType == eSIR_11B_NW_TYPE) ||
(pStartBssReq->nwType == eSIR_11N_NW_TYPE ))
{
pStartBssReq->extendedRateSet.numRates = *pBuf++;
diff --git a/CORE/MAC/src/pe/sch/schApi.c b/CORE/MAC/src/pe/sch/schApi.c
index 45d14f1..ffc66cc 100644
--- a/CORE/MAC/src/pe/sch/schApi.c
+++ b/CORE/MAC/src/pe/sch/schApi.c
@@ -391,6 +391,7 @@
tANI_U32 addnIE1Len=0;
tANI_U32 addnIE2Len = 0;
tANI_U32 addnIE3Len = 0;
+ tANI_U32 addnIE4Len = 0;
tANI_U32 totalAddnIeLen = 0;
tSirRetStatus nSirStatus;
tANI_U8 *addIE = NULL;
@@ -451,9 +452,18 @@
return retCode;
}
}
- schLog(pMac,LOG1, FL("addnIE1Len %d, addnIE2Len %d, addnIE3Len %d"),
- addnIE1Len, addnIE2Len, addnIE3Len);
- totalAddnIeLen = addnIE1Len + addnIE2Len + addnIE3Len;
+
+ if((wlan_cfgGetStrLen(pMac, WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA,
+ &addnIE4Len)) != eSIR_SUCCESS)
+ {
+ schLog(pMac, LOGP,
+ FL("Unable to get WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA length"));
+ return retCode;
+ }
+
+ schLog(pMac,LOG1, FL("addnIE1Len %d, addnIE2Len %d, addnIE3Len %d addnIE4Len %d"),
+ addnIE1Len, addnIE2Len, addnIE3Len, addnIE4Len);
+ totalAddnIeLen = addnIE1Len + addnIE2Len + addnIE3Len + addnIE4Len;
addIE = vos_mem_malloc(totalAddnIeLen);
if (NULL == addIE)
@@ -493,7 +503,7 @@
}
if (addnIE3Len && addnIE3Len <= WNI_CFG_PROBE_RSP_ADDNIE_DATA3_LEN &&
- (nBytes + totalAddnIeLen) <= SCH_MAX_PROBE_RESP_SIZE)
+ (nBytes + addnIE1Len + addnIE2Len + addnIE3Len) <= SCH_MAX_PROBE_RESP_SIZE)
{
if ( eSIR_SUCCESS != wlan_cfgGetStr(pMac,
WNI_CFG_PROBE_RSP_ADDNIE_DATA3,
@@ -506,6 +516,20 @@
return retCode;
}
}
+ if (addnIE4Len && addnIE4Len <= WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA_LEN &&
+ (nBytes + totalAddnIeLen) <= SCH_MAX_PROBE_RESP_SIZE)
+ {
+ if ( eSIR_SUCCESS != wlan_cfgGetStr(pMac,
+ WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA,
+ &addIE[addnIE1Len + addnIE2Len + addnIE3Len],
+ &addnIE4Len) )
+ {
+ schLog(pMac, LOGE,
+ FL("Unable to get WNI_CFG_PROBE_RSP_BCN_ADDNIE_DATA String"));
+ vos_mem_free(addIE);
+ return retCode;
+ }
+ }
}
diff --git a/CORE/SAP/inc/sapApi.h b/CORE/SAP/inc/sapApi.h
index 3af07f3..b949d06 100644
--- a/CORE/SAP/inc/sapApi.h
+++ b/CORE/SAP/inc/sapApi.h
@@ -473,7 +473,7 @@
#endif
eCsrBand scanBandPreference;
v_U16_t acsBandSwitchThreshold;
-
+ bool require_h2e;
} tsap_Config_t;
typedef enum {
diff --git a/CORE/SAP/src/sapFsm.c b/CORE/SAP/src/sapFsm.c
index 788d14e..507bfa0 100644
--- a/CORE/SAP/src/sapFsm.c
+++ b/CORE/SAP/src/sapFsm.c
@@ -1534,6 +1534,8 @@
profile->MFPRequired = pconfig_params->mfpRequired ? 1 : 0;
#endif
+ profile->require_h2e = pconfig_params->require_h2e;
+
return eSAP_STATUS_SUCCESS; /* Success. */
}
diff --git a/CORE/SME/inc/csrApi.h b/CORE/SME/inc/csrApi.h
index cac966f..867e84b 100644
--- a/CORE/SME/inc/csrApi.h
+++ b/CORE/SME/inc/csrApi.h
@@ -975,6 +975,7 @@
bool force_24ghz_in_ht20;
tCsrBssid bssid_hint;
bool force_rsne_override;
+ bool require_h2e;
}tCsrRoamProfile;
@@ -1268,6 +1269,7 @@
tANI_U8 num_ba_buff;
bool force_scc_with_ecsa;
bool isPeriodicRoamScanEnabled;
+ bool require_h2e;
}tCsrConfigParam;
//Tush
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 19fef35..55c3de9 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -6784,6 +6784,8 @@
pDstProfile->force_rsne_override = pSrcProfile->force_rsne_override;
vos_mem_copy(&pDstProfile->Keys, &pSrcProfile->Keys,
sizeof(pDstProfile->Keys));
+ pDstProfile->require_h2e = pSrcProfile->require_h2e;
+
#ifdef WLAN_FEATURE_VOWIFI_11R
if (pSrcProfile->MDID.mdiePresent)
{
@@ -12652,6 +12654,13 @@
{
channel = operationChannel;
}
+
+ if (pProfile->require_h2e)
+ {
+ pParam->extendedRateSet.numRates = 1;
+ pParam->extendedRateSet.rate[0] =
+ SIR_BSS_MEMBERSHIP_SELECTOR_SAE_H2E | SIR_RATE_MASK;
+ }
break;
case eSIR_11B_NW_TYPE:
@@ -12669,6 +12678,12 @@
channel = operationChannel;
}
+ if (pProfile->require_h2e)
+ {
+ pParam->extendedRateSet.numRates = 1;
+ pParam->extendedRateSet.rate[0] =
+ SIR_BSS_MEMBERSHIP_SELECTOR_SAE_H2E | SIR_RATE_MASK;
+ }
break;
case eSIR_11G_NW_TYPE:
/* For P2P Client and P2P GO, disable 11b rates */
@@ -12694,9 +12709,13 @@
pParam->operationalRateSet.rate[1] = SIR_MAC_RATE_2 | CSR_DOT11_BASIC_RATE_MASK;
pParam->operationalRateSet.rate[2] = SIR_MAC_RATE_5_5 | CSR_DOT11_BASIC_RATE_MASK;
pParam->operationalRateSet.rate[3] = SIR_MAC_RATE_11 | CSR_DOT11_BASIC_RATE_MASK;
-
- pParam->extendedRateSet.numRates = 8;
- pParam->extendedRateSet.rate[0] = SIR_MAC_RATE_6;
+
+ if (pProfile->require_h2e)
+ pParam->extendedRateSet.numRates = 9;
+ else
+ pParam->extendedRateSet.numRates = 8;
+
+ pParam->extendedRateSet.rate[0] = SIR_MAC_RATE_6;
pParam->extendedRateSet.rate[1] = SIR_MAC_RATE_9;
pParam->extendedRateSet.rate[2] = SIR_MAC_RATE_12;
pParam->extendedRateSet.rate[3] = SIR_MAC_RATE_18;
@@ -12704,6 +12723,9 @@
pParam->extendedRateSet.rate[5] = SIR_MAC_RATE_36;
pParam->extendedRateSet.rate[6] = SIR_MAC_RATE_48;
pParam->extendedRateSet.rate[7] = SIR_MAC_RATE_54;
+ if (pProfile->require_h2e)
+ pParam->extendedRateSet.rate[8] =
+ SIR_BSS_MEMBERSHIP_SELECTOR_SAE_H2E | SIR_RATE_MASK;
}
if ( eCSR_OPERATING_CHANNEL_ANY == operationChannel )
@@ -12724,7 +12746,6 @@
static void csrRoamGetBssStartParmsFromBssDesc( tpAniSirGlobal pMac, tSirBssDescription *pBssDesc,
tDot11fBeaconIEs *pIes, tCsrRoamStartBssParams *pParam )
{
-
if( pParam )
{
pParam->sirNwType = pBssDesc->nwType;
diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c
index 4d543b3..b603994 100644
--- a/CORE/SME/src/csr/csrUtil.c
+++ b/CORE/SME/src/csr/csrUtil.c
@@ -6236,6 +6236,9 @@
case SIR_MAC_RATE_54:
rateBitmap |= SIR_MAC_RATE_54_BITMAP;
break;
+ case SIR_MAC_RATE_SAE_H2E:
+ rateBitmap |= SIR_MAC_RATE_SAE_H2E_BITMAP;
+ break;
}
*pRateBitmap = rateBitmap;
}
@@ -6284,6 +6287,9 @@
case SIR_MAC_RATE_54:
rateBitmap &= SIR_MAC_RATE_54_BITMAP;
break;
+ case SIR_MAC_RATE_SAE_H2E:
+ rateBitmap &= SIR_MAC_RATE_SAE_H2E_BITMAP;
+ break;
}
return !!rateBitmap;
}
@@ -6345,6 +6351,9 @@
case SIR_MAC_RATE_54:
ConvertedRate = 108;
break;
+ case SIR_MAC_RATE_SAE_H2E:
+ ConvertedRate = 246;
+ break;
case SIR_MAC_RATE_72:
ConvertedRate = 144;
diff --git a/CORE/WDA/src/wlan_nv.c b/CORE/WDA/src/wlan_nv.c
index 18100b1..ee52a71 100644
--- a/CORE/WDA/src/wlan_nv.c
+++ b/CORE/WDA/src/wlan_nv.c
@@ -853,8 +853,8 @@
{NV_CHANNEL_ENABLE, 23}, //RF_CHAN_9,
{NV_CHANNEL_ENABLE, 22}, //RF_CHAN_10,
{NV_CHANNEL_ENABLE, 22}, //RF_CHAN_11,
- {NV_CHANNEL_DISABLE, 30}, //RF_CHAN_12,
- {NV_CHANNEL_DISABLE, 30}, //RF_CHAN_13,
+ {NV_CHANNEL_ENABLE, 30}, //RF_CHAN_12,
+ {NV_CHANNEL_ENABLE, 30}, //RF_CHAN_13,
{NV_CHANNEL_DISABLE, 30}, //RF_CHAN_14,
//4.9GHz Band, none CB