qcacld-3.0: Fill proper channel(s) in wide band scan request

In case of 320 MHz BW, 6 GHz channel numbers are overlapping
with existing 2.4 GHz and 5 GHz channel numbers.

If DUT connected with one of overlapped channel, To identify
exact band and corresponding bonded channels driver should
pass 320 MHz center frequency to
wlan_reg_get_bonded_chan_entry() as a argument along with
connected 6 GHz frequency and channel width.

Fix is to use 320 MHz center frequency to compute bonded
channels in mlme_update_freq_in_scan_start_req().

Change-Id: I7616f0379d64e33f9bd4a208253db0a390158f77
CRs-Fixed: 3606575
Этот коммит содержится в:
Abhinav Kumar
2023-09-03 10:40:50 -07:00
коммит произвёл Rahul Choudhary
родитель 46288c20e1
Коммит 9e1471bd14

Просмотреть файл

@@ -397,22 +397,35 @@ 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, center_20_freq, start_freq, end_freq;
qdf_freq_t cen320_freq = 0;
enum scan_phy_mode phymode = SCAN_PHY_MODE_UNKNOWN;
uint8_t vdev_id;
struct wlan_channel *des_chan;
vdev_id = vdev->vdev_objmgr.vdev_id;
if (scan_freq != INVALID_CHANNEL)
if (scan_freq != INVALID_CHANNEL) {
op_freq = scan_freq;
else
op_freq = wlan_get_operation_chan_freq(vdev);
} else {
des_chan = wlan_vdev_mlme_get_des_chan(vdev);
if (!des_chan) {
mlme_debug("null des chan");
return QDF_STATUS_E_FAILURE;
}
op_freq = des_chan->ch_freq;
/* Set center_freq1 to center frequency of complete 320MHz */
cen320_freq = des_chan->ch_cfreq2;
}
mlme_debug("vdev %d : fill ch list for op_freq:%d, scan_ch_width: %d",
vdev_id, op_freq, scan_ch_width);
mlme_debug("vdev %d :op_freq:%d, cen320_freq:%d, scan_ch_width: %d",
vdev_id, op_freq, cen320_freq, scan_ch_width);
if (scan_ch_width == CH_WIDTH_320MHZ) {
if (!cen320_freq)
return QDF_STATUS_E_FAILURE;
range = wlan_reg_get_bonded_chan_entry(op_freq,
scan_ch_width, 0);
scan_ch_width,
cen320_freq);
if (!range) {
mlme_debug("vdev %d : range is null for freq %d",
vdev_id, op_freq);