|
@@ -1460,85 +1460,6 @@ void wma_update_probe_resp_noa(tp_wma_handle wma_handle,
|
|
|
wma_send_msg(wma_handle, SIR_HAL_P2P_NOA_ATTR_IND, (void *)noa_attr, 0);
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
- * wma_p2p_noa_event_handler() - p2p noa event handler
|
|
|
- * @handle: wma handle
|
|
|
- * @event: event data
|
|
|
- * @len: length
|
|
|
- *
|
|
|
- * Return: 0 for success or error code.
|
|
|
- */
|
|
|
-int wma_p2p_noa_event_handler(void *handle, uint8_t *event,
|
|
|
- uint32_t len)
|
|
|
-{
|
|
|
- tp_wma_handle wma = (tp_wma_handle) handle;
|
|
|
- WMI_P2P_NOA_EVENTID_param_tlvs *param_buf;
|
|
|
- wmi_p2p_noa_event_fixed_param *p2p_noa_event;
|
|
|
- uint8_t vdev_id, i;
|
|
|
- wmi_p2p_noa_info *p2p_noa_info;
|
|
|
- struct p2p_sub_element_noa noa_ie;
|
|
|
- uint8_t *buf_ptr;
|
|
|
- uint32_t descriptors;
|
|
|
-
|
|
|
- param_buf = (WMI_P2P_NOA_EVENTID_param_tlvs *) event;
|
|
|
- if (!param_buf) {
|
|
|
- WMA_LOGE("Invalid P2P NoA event buffer");
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
- p2p_noa_event = param_buf->fixed_param;
|
|
|
- buf_ptr = (uint8_t *) p2p_noa_event;
|
|
|
- buf_ptr += sizeof(wmi_p2p_noa_event_fixed_param);
|
|
|
- p2p_noa_info = (wmi_p2p_noa_info *) (buf_ptr);
|
|
|
- vdev_id = p2p_noa_event->vdev_id;
|
|
|
-
|
|
|
- if (WMI_UNIFIED_NOA_ATTR_IS_MODIFIED(p2p_noa_info)) {
|
|
|
-
|
|
|
- qdf_mem_zero(&noa_ie, sizeof(noa_ie));
|
|
|
- noa_ie.index =
|
|
|
- (uint8_t) WMI_UNIFIED_NOA_ATTR_INDEX_GET(p2p_noa_info);
|
|
|
- noa_ie.oppPS =
|
|
|
- (uint8_t) WMI_UNIFIED_NOA_ATTR_OPP_PS_GET(p2p_noa_info);
|
|
|
- noa_ie.ctwindow =
|
|
|
- (uint8_t) WMI_UNIFIED_NOA_ATTR_CTWIN_GET(p2p_noa_info);
|
|
|
- descriptors = WMI_UNIFIED_NOA_ATTR_NUM_DESC_GET(p2p_noa_info);
|
|
|
- noa_ie.num_descriptors = (uint8_t) descriptors;
|
|
|
-
|
|
|
- if (noa_ie.num_descriptors > WMA_MAX_NOA_DESCRIPTORS) {
|
|
|
- WMA_LOGD("Sizing down the no of desc %d to max",
|
|
|
- noa_ie.num_descriptors);
|
|
|
- noa_ie.num_descriptors = WMA_MAX_NOA_DESCRIPTORS;
|
|
|
- }
|
|
|
- WMA_LOGD("%s: index %u, oppPs %u, ctwindow %u, num_desc = %u",
|
|
|
- __func__, noa_ie.index,
|
|
|
- noa_ie.oppPS, noa_ie.ctwindow, noa_ie.num_descriptors);
|
|
|
- for (i = 0; i < noa_ie.num_descriptors; i++) {
|
|
|
- noa_ie.noa_descriptors[i].type_count =
|
|
|
- (uint8_t) p2p_noa_info->noa_descriptors[i].
|
|
|
- type_count;
|
|
|
- noa_ie.noa_descriptors[i].duration =
|
|
|
- p2p_noa_info->noa_descriptors[i].duration;
|
|
|
- noa_ie.noa_descriptors[i].interval =
|
|
|
- p2p_noa_info->noa_descriptors[i].interval;
|
|
|
- noa_ie.noa_descriptors[i].start_time =
|
|
|
- p2p_noa_info->noa_descriptors[i].start_time;
|
|
|
- WMA_LOGI("%s: NoA descriptor[%d] type_count %u, duration %u, interval %u, start_time = %u",
|
|
|
- __func__, i,
|
|
|
- noa_ie.noa_descriptors[i].type_count,
|
|
|
- noa_ie.noa_descriptors[i].duration,
|
|
|
- noa_ie.noa_descriptors[i].interval,
|
|
|
- noa_ie.noa_descriptors[i].start_time);
|
|
|
- }
|
|
|
-
|
|
|
- /* Send a msg to LIM to update the NoA IE in probe response
|
|
|
- * frames transmitted by the host
|
|
|
- */
|
|
|
- wma_update_probe_resp_noa(wma, &noa_ie);
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
/**
|
|
|
* wma_process_set_mimops_req() - Set the received MiMo PS state to firmware
|
|
|
* @handle: wma handle
|