|
@@ -14905,6 +14905,19 @@ csr_update_sae_single_pmk_ap_cap(struct mac_context *mac,
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
+static void csr_get_basic_rates(tSirMacRateSet *b_rates, uint32_t chan_freq)
|
|
|
+{
|
|
|
+ /*
|
|
|
+ * Some IOT APs don't send supported rates in
|
|
|
+ * probe resp, hence add BSS basic rates in
|
|
|
+ * supported rates IE of assoc request.
|
|
|
+ */
|
|
|
+ if (WLAN_REG_IS_24GHZ_CH_FREQ(chan_freq))
|
|
|
+ csr_populate_basic_rates(b_rates, false, true);
|
|
|
+ else if (WLAN_REG_IS_5GHZ_CH_FREQ(chan_freq))
|
|
|
+ csr_populate_basic_rates(b_rates, true, true);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* The communication between HDD and LIM is thru mailbox (MB).
|
|
|
* Both sides will access the data structure "struct join_req".
|
|
@@ -15248,17 +15261,11 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|
|
qdf_mem_copy(&csr_join_req->operationalRateSet.
|
|
|
rate, OpRateSet.rate,
|
|
|
OpRateSet.numRates);
|
|
|
- } else if (pProfile->phyMode == eCSR_DOT11_MODE_AUTO &&
|
|
|
- WLAN_REG_IS_24GHZ_CH_FREQ(
|
|
|
- pBssDescription->chan_freq)) {
|
|
|
- /*
|
|
|
- * Some IOT APs don't send supported rates in
|
|
|
- * probe resp, hence add BSS basic rates in
|
|
|
- * supported rates IE of assoc request.
|
|
|
- */
|
|
|
- tSirMacRateSet b_rates;
|
|
|
+ } else if (pProfile->phyMode == eCSR_DOT11_MODE_AUTO) {
|
|
|
+ tSirMacRateSet b_rates = {0};
|
|
|
|
|
|
- csr_populate_basic_rates(&b_rates, false, true);
|
|
|
+ csr_get_basic_rates(&b_rates,
|
|
|
+ pBssDescription->chan_freq);
|
|
|
csr_join_req->operationalRateSet = b_rates;
|
|
|
}
|
|
|
/* ExtendedRateSet */
|
|
@@ -15271,16 +15278,11 @@ QDF_STATUS csr_send_join_req_msg(struct mac_context *mac, uint32_t sessionId,
|
|
|
} else {
|
|
|
csr_join_req->extendedRateSet.numRates = 0;
|
|
|
}
|
|
|
- } else if (pProfile->phyMode == eCSR_DOT11_MODE_AUTO &&
|
|
|
- WLAN_REG_IS_24GHZ_CH_FREQ(
|
|
|
- pBssDescription->chan_freq)) {
|
|
|
- /*
|
|
|
- * To connect IOT AP, add basic rates in supported
|
|
|
- * rates IE of assoc req.
|
|
|
- */
|
|
|
- tSirMacRateSet b_rates;
|
|
|
+ } else if (pProfile->phyMode == eCSR_DOT11_MODE_AUTO) {
|
|
|
+ tSirMacRateSet b_rates = {0};
|
|
|
|
|
|
- csr_populate_basic_rates(&b_rates, false, true);
|
|
|
+ csr_get_basic_rates(&b_rates,
|
|
|
+ pBssDescription->chan_freq);
|
|
|
csr_join_req->operationalRateSet = b_rates;
|
|
|
} else {
|
|
|
csr_join_req->operationalRateSet.numRates = 0;
|