Selaa lähdekoodia

qcacld-3.0: Use global opclass if freq not present in that country

In MLO connection, MLO AP is operating in country US domain and sending
op class and channel number based on global opclass. Due to which,
MLO sta is failed to get the channel freq because driver is checking
in the US domain list only.

Fix is, if freq is present in the particular domain then use it
or else check in global domain.

Change-Id: If376405c4c57c2c84028952f000abf45759ba316
CRs-Fixed: 3212004
Deeksha Gupta 2 vuotta sitten
vanhempi
sitoutus
a8e86d2c59

+ 3 - 2
core/mac/src/pe/lim/lim_send_sme_rsp_messages.c

@@ -437,8 +437,9 @@ static void lim_copy_ml_partner_info(struct cm_vdev_join_rsp *rsp,
 						  link_id, &chan, &op_class);
 		if (chan) {
 			rsp_partner_info->partner_link_info[i].chan_freq =
-				wlan_reg_chan_opclass_to_freq(chan, op_class,
-							      false);
+				wlan_reg_chan_opclass_to_freq_auto(chan,
+								   op_class,
+								   false);
 		} else {
 			pe_debug("Failed to get channel info for link ID:%d",
 				 link_id);

+ 2 - 2
core/mac/src/sys/legacy/src/utils/src/parser_api.c

@@ -10448,8 +10448,8 @@ QDF_STATUS populate_dot11f_assoc_req_mlo_ie(struct mac_context *mac_ctx,
 			       QDF_MAC_ADDR_REF(link_info->link_addr.bytes));
 			continue;
 		}
-		chan_freq = wlan_reg_chan_opclass_to_freq(chan, op_class,
-							  false);
+		chan_freq = wlan_reg_chan_opclass_to_freq_auto(chan, op_class,
+							       false);
 		is_2g = WLAN_REG_IS_24GHZ_CH_FREQ(chan_freq);
 		if (is_2g) {
 			wlan_populate_basic_rates(&b_rates, false, true);