فهرست منبع

qcacld-3.0: select pri20 frequency in a wideband scan list

As 320 MHz wideband scan is not supported host splits 320 MHz
bandwidth into two 160 MHz scans. Currently, none of these
two 160 MHz wideband scan requests carry the pri20 sub-band
frequency of the connected 6 GHz ML link.
Due to this, DUT is not able to receive beacons sent by 6 GHz
AP (AP sends beacons only on primary 20 MHz freq).

The fix is to fill the pri20 sub-band freq of the connected
6 GHz ML link as one frequency in the wide band scan list
request.

CRs-Fixed: 3552131
Change-Id: I3da18d5801fb7af84b6e20b8134af2d738cc57e1
Abhinav Kumar 1 سال پیش
والد
کامیت
c6cda92c56
1فایلهای تغییر یافته به همراه14 افزوده شده و 3 حذف شده
  1. 14 3
      components/mlme/core/src/wlan_mlme_main.c

+ 14 - 3
components/mlme/core/src/wlan_mlme_main.c

@@ -378,7 +378,7 @@ mlme_update_freq_in_scan_start_req(struct wlan_objmgr_vdev *vdev,
 {
 	const struct bonded_channel_freq *range;
 	uint8_t num_chan;
-	qdf_freq_t op_freq;
+	qdf_freq_t op_freq, center_20_freq, start_freq, end_freq;
 	enum scan_phy_mode phymode = SCAN_PHY_MODE_UNKNOWN;
 	uint8_t vdev_id;
 
@@ -403,11 +403,22 @@ mlme_update_freq_in_scan_start_req(struct wlan_objmgr_vdev *vdev,
 				   vdev_id, op_freq);
 			return QDF_STATUS_E_FAILURE;
 		}
+
+		start_freq = range->start_freq;
+		end_freq = range->end_freq;
+
+		/* fill connected 6 GHz ML link freq in wide band scan list */
+		center_20_freq = start_freq + (7 * BW_20_MHZ);
+		if (op_freq > center_20_freq)
+			end_freq = op_freq;
+		else
+			start_freq = op_freq;
+
 		num_chan = req->scan_req.chan_list.num_chan;
-		req->scan_req.chan_list.chan[num_chan].freq = range->start_freq;
+		req->scan_req.chan_list.chan[num_chan].freq = start_freq;
 		req->scan_req.chan_list.chan[num_chan].phymode = phymode;
 		num_chan += 1;
-		req->scan_req.chan_list.chan[num_chan].freq = range->end_freq;
+		req->scan_req.chan_list.chan[num_chan].freq = end_freq;
 		req->scan_req.chan_list.chan[num_chan].phymode = phymode;
 		num_chan += 1;
 		req->scan_req.chan_list.num_chan = num_chan;