qcacld-3.0: Fix scan start tlv in Roam Scan mode command

In wmi_fill_rso_start_scan_tlv(), the fixed param header is
overwritten with 0. So this causes roam scan mode command to
fail.

Don't overwrite scan start fixed param in
wmi_fill_rso_start_scan_tlv(). Also add some additional debugs.

Change-Id: I8ae7053e77d5694bade7e4a84fb4028d8224354c
CRs-Fixed: 2771951
This commit is contained in:
Pragaspathi Thilagaraj
2020-09-08 14:46:58 +05:30
committed by snandini
parent 3e83c955d9
commit b1c7b3113a

View File

@@ -2269,7 +2269,7 @@ wmi_fill_rso_tlvs(wmi_unified_t wmi_handle, uint8_t *buf,
roundup(assoc_ies->buf_len, sizeof(uint32_t)));
buf += WMI_TLV_HDR_SIZE;
wmi_debug("RSO_CFG: assoc_ies len:%d", assoc_ies->buf_len);
wmi_debug("RSO_CFG: akm:%d assoc_ies len:%d", akm, assoc_ies->buf_len);
if (assoc_ies->buf_len)
qdf_mem_copy(buf, roam_req->assoc_ie, assoc_ies->buf_len);
@@ -2300,8 +2300,6 @@ wmi_fill_rso_start_scan_tlv(struct wlan_roam_scan_offload_params *rso_req,
struct wlan_roam_scan_params *src_scan_params;
src_scan_params = &rso_req->rso_scan_params;
qdf_mem_zero(scan_tlv, sizeof(*scan_tlv));
scan_tlv->scan_ctrl_flags = WMI_SCAN_ADD_CCK_RATES |
WMI_SCAN_ADD_OFDM_RATES |
WMI_SCAN_ADD_DS_IE_IN_PROBE_REQ;
@@ -2350,6 +2348,10 @@ wmi_fill_rso_start_scan_tlv(struct wlan_roam_scan_offload_params *rso_req,
scan_tlv->dwell_time_active, scan_tlv->dwell_time_passive,
scan_tlv->min_rest_time, scan_tlv->max_rest_time,
scan_tlv->repeat_probe_time, scan_tlv->probe_spacing_time);
wmi_debug("RSO_CFG: ctrl_flags:0x%x probe_delay:%d max_scan_time:%d idle_time:%d n_probes:%d",
scan_tlv->scan_ctrl_flags_ext, scan_tlv->probe_delay,
scan_tlv->max_scan_time, scan_tlv->idle_time,
scan_tlv->n_probes);
return QDF_STATUS_SUCCESS;
}
@@ -2409,8 +2411,11 @@ send_roam_scan_offload_mode_cmd_tlv(
WMI_SEC_TO_MSEC(src_rso_mode_info->min_delay_btw_scans);
roam_scan_mode_fp->roam_scan_mode = src_rso_mode_info->roam_scan_mode;
roam_scan_mode_fp->vdev_id = rso_req->vdev_id;
wmi_debug("vdev_id:%d roam scan mode: %d", rso_req->vdev_id,
src_rso_mode_info->roam_scan_mode);
wmi_debug("vdev_id:%d roam scan mode:0x%x min_delay_bitmap:0x%x min_delay_btw_scans:%d",
rso_req->vdev_id,
roam_scan_mode_fp->roam_scan_mode,
roam_scan_mode_fp->min_delay_roam_trigger_reason_bitmask,
roam_scan_mode_fp->min_delay_btw_scans);
/*
* For supplicant disabled roaming, all other roam triggers are disabled
* so send only roam scan mode Fixed param in the command
@@ -2428,7 +2433,6 @@ send_roam_scan_offload_mode_cmd_tlv(
buf_ptr,
WMITLV_TAG_STRUC_wmi_start_scan_cmd_fixed_param,
WMITLV_GET_STRUCT_TLVLEN(wmi_start_scan_cmd_fixed_param));
scan_cmd_fp = (wmi_start_scan_cmd_fixed_param *)buf_ptr;
wmi_fill_rso_start_scan_tlv(rso_req, scan_cmd_fp);
@@ -2443,7 +2447,7 @@ send_roam_scan_offload_mode_cmd_tlv(
}
send_roam_scan_mode_cmd:
wmi_mtrace(WMI_ROAM_SCAN_MODE, NO_SESSION, 0);
wmi_mtrace(WMI_ROAM_SCAN_MODE, rso_req->vdev_id, 0);
status = wmi_unified_cmd_send(wmi_handle, buf,
len, WMI_ROAM_SCAN_MODE);
if (QDF_IS_STATUS_ERROR(status))