Browse Source

qcacmn: Fix incorrect channel state for NOL channel

For 2G and 5G, the secondary channel list is coming from
master channel list which is not filtered by NOL.
Fix by using cur_chan_list to fill the secondary channel
list for 2G and 5G part.

Change-Id: I5e9ede6e39a66ad1a2f0e6c32c151ef175be6dab
CRs-Fixed: 2976916
Liangwei Dong 4 years ago
parent
commit
143f8487df
1 changed files with 3 additions and 3 deletions
  1. 3 3
      umac/regulatory/core/src/reg_build_chan_list.c

+ 3 - 3
umac/regulatory/core/src/reg_build_chan_list.c

@@ -1048,7 +1048,7 @@ reg_populate_secondary_cur_chan_list(struct wlan_regulatory_pdev_priv_obj
 				     *pdev_priv_obj)
 				     *pdev_priv_obj)
 {
 {
 	qdf_mem_copy(pdev_priv_obj->secondary_cur_chan_list,
 	qdf_mem_copy(pdev_priv_obj->secondary_cur_chan_list,
-		     pdev_priv_obj->mas_chan_list,
+		     pdev_priv_obj->cur_chan_list,
 		     (NUM_CHANNELS - NUM_6GHZ_CHANNELS) *
 		     (NUM_CHANNELS - NUM_6GHZ_CHANNELS) *
 		     sizeof(struct regulatory_channel));
 		     sizeof(struct regulatory_channel));
 	qdf_mem_copy(&pdev_priv_obj->
 	qdf_mem_copy(&pdev_priv_obj->
@@ -1126,8 +1126,6 @@ void reg_compute_pdev_current_chan_list(struct wlan_regulatory_pdev_priv_obj
 	qdf_mem_copy(pdev_priv_obj->cur_chan_list, pdev_priv_obj->mas_chan_list,
 	qdf_mem_copy(pdev_priv_obj->cur_chan_list, pdev_priv_obj->mas_chan_list,
 		     NUM_CHANNELS * sizeof(struct regulatory_channel));
 		     NUM_CHANNELS * sizeof(struct regulatory_channel));
 
 
-	reg_populate_secondary_cur_chan_list(pdev_priv_obj);
-
 	reg_modify_chan_list_for_freq_range(pdev_priv_obj->cur_chan_list,
 	reg_modify_chan_list_for_freq_range(pdev_priv_obj->cur_chan_list,
 					    pdev_priv_obj->range_2g_low,
 					    pdev_priv_obj->range_2g_low,
 					    pdev_priv_obj->range_2g_high,
 					    pdev_priv_obj->range_2g_high,
@@ -1164,6 +1162,8 @@ void reg_compute_pdev_current_chan_list(struct wlan_regulatory_pdev_priv_obj
 	reg_modify_chan_list_for_6g_edge_channels(pdev_priv_obj->pdev_ptr,
 	reg_modify_chan_list_for_6g_edge_channels(pdev_priv_obj->pdev_ptr,
 						  pdev_priv_obj->
 						  pdev_priv_obj->
 						  cur_chan_list);
 						  cur_chan_list);
+
+	reg_populate_secondary_cur_chan_list(pdev_priv_obj);
 }
 }
 
 
 void reg_reset_reg_rules(struct reg_rule_info *reg_rules)
 void reg_reset_reg_rules(struct reg_rule_info *reg_rules)