qcacmn: Disable obss scan before suspend
When obss scan is enabled, FW will trigger scan periodically by a timer. If a scan was triggered, FW need to access host memory for data transfer. Occasionally, suspend may happen during one scan, then FW is unable to access host memory and fw will crash. So disable the obss scan before suspend. Change-Id: Ie507da929a3701473cb57888e96e702e34d4c95a CRs-Fixed: 2927239
This commit is contained in:

committed by
Madan Koyyalamudi

parent
841fa1bd6a
commit
3516552a3c
@@ -4877,6 +4877,44 @@ static QDF_STATUS send_pno_stop_cmd_tlv(wmi_unified_t wmi_handle, uint8_t vdev_i
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* send_obss_disable_cmd_tlv() - disable obss scan request
|
||||
* @wmi_handle: wmi handle
|
||||
* @vdev_id: vdev id
|
||||
*
|
||||
* This function request FW to disable ongoing obss scan operation.
|
||||
*
|
||||
* Return: QDF status
|
||||
*/
|
||||
static QDF_STATUS send_obss_disable_cmd_tlv(wmi_unified_t wmi_handle,
|
||||
uint8_t vdev_id)
|
||||
{
|
||||
QDF_STATUS status;
|
||||
wmi_buf_t buf;
|
||||
wmi_obss_scan_disable_cmd_fixed_param *cmd;
|
||||
int len = sizeof(*cmd);
|
||||
|
||||
buf = wmi_buf_alloc(wmi_handle, len);
|
||||
if (!buf)
|
||||
return QDF_STATUS_E_NOMEM;
|
||||
|
||||
wmi_debug("cmd %x vdev_id %d", WMI_OBSS_SCAN_DISABLE_CMDID, vdev_id);
|
||||
|
||||
cmd = (wmi_obss_scan_disable_cmd_fixed_param *)wmi_buf_data(buf);
|
||||
WMITLV_SET_HDR(&cmd->tlv_header,
|
||||
WMITLV_TAG_STRUC_wmi_obss_scan_disable_cmd_fixed_param,
|
||||
WMITLV_GET_STRUCT_TLVLEN(
|
||||
wmi_obss_scan_disable_cmd_fixed_param));
|
||||
|
||||
cmd->vdev_id = vdev_id;
|
||||
status = wmi_unified_cmd_send(wmi_handle, buf, len,
|
||||
WMI_OBSS_SCAN_DISABLE_CMDID);
|
||||
if (QDF_IS_STATUS_ERROR(status))
|
||||
wmi_buf_free(buf);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_set_pno_channel_prediction() - Set PNO channel prediction
|
||||
* @buf_ptr: Buffer passed by upper layers
|
||||
@@ -15005,6 +15043,7 @@ struct wmi_ops tlv_ops = {
|
||||
#endif
|
||||
.send_pno_stop_cmd = send_pno_stop_cmd_tlv,
|
||||
.send_pno_start_cmd = send_pno_start_cmd_tlv,
|
||||
.send_obss_disable_cmd = send_obss_disable_cmd_tlv,
|
||||
.send_nlo_mawc_cmd = send_nlo_mawc_cmd_tlv,
|
||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
||||
.send_process_ll_stats_clear_cmd = send_process_ll_stats_clear_cmd_tlv,
|
||||
|
Reference in New Issue
Block a user