qcacmn: Fix tlv formation of pno start command

Fix tlv formation of pno start command by adding the pno channel
prediction parameter in variable length tlv of pno start command.

Change-Id: I10274519eedf3d3cbcebfdc5e308fcf86bc2a804
CRs-Fixed: 987362
This commit is contained in:
Govind Singh
2016-04-01 16:30:08 +05:30
committed by Vishwajith Upendra
parent 712622fe81
commit ccb0c27aa0

View File

@@ -5328,6 +5328,38 @@ QDF_STATUS send_pno_stop_cmd_tlv(wmi_unified_t wmi_handle, uint8_t vdev_id)
return QDF_STATUS_SUCCESS;
}
/**
* wmi_set_pno_channel_prediction() - Set PNO channel prediction
* @buf_ptr: Buffer passed by upper layers
* @pno: Buffer to be sent to the firmware
*
* Copy the PNO Channel prediction configuration parameters
* passed by the upper layers to a WMI format TLV and send it
* down to the firmware.
*
* Return: None
*/
static void wmi_set_pno_channel_prediction(uint8_t *buf_ptr,
struct pno_scan_req_params *pno)
{
nlo_channel_prediction_cfg *channel_prediction_cfg =
(nlo_channel_prediction_cfg *) buf_ptr;
WMITLV_SET_HDR(&channel_prediction_cfg->tlv_header,
WMITLV_TAG_ARRAY_BYTE,
WMITLV_GET_STRUCT_TLVLEN(nlo_channel_prediction_cfg));
channel_prediction_cfg->enable = pno->pno_channel_prediction;
channel_prediction_cfg->top_k_num = pno->top_k_num_of_channels;
channel_prediction_cfg->stationary_threshold = pno->stationary_thresh;
channel_prediction_cfg->full_scan_period_ms =
pno->channel_prediction_full_scan;
buf_ptr += sizeof(nlo_channel_prediction_cfg);
WMI_LOGD("enable: %d, top_k_num: %d, stat_thresh: %d, full_scan: %d",
channel_prediction_cfg->enable,
channel_prediction_cfg->top_k_num,
channel_prediction_cfg->stationary_threshold,
channel_prediction_cfg->full_scan_period_ms);
}
/**
* send_pno_start_cmd_tlv() - PNO start request
* @wmi_handle: wmi handle
@@ -5454,6 +5486,7 @@ QDF_STATUS send_pno_start_cmd_tlv(wmi_unified_t wmi_handle,
WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_STRUC,
sizeof(nlo_channel_prediction_cfg));
buf_ptr += WMI_TLV_HDR_SIZE;
wmi_set_pno_channel_prediction(buf_ptr, pno);
buf_ptr += WMI_TLV_HDR_SIZE;
/** TODO: Discrete firmware doesn't have command/option to configure
* App IE which comes from wpa_supplicant as of part PNO start request.