diff --git a/wmi_unified_api.c b/wmi_unified_api.c index 70ffefa8d5..d8dfda53a5 100644 --- a/wmi_unified_api.c +++ b/wmi_unified_api.c @@ -4621,6 +4621,28 @@ QDF_STATUS wmi_ready_extract_mac_addr(void *wmi_hdl, void *ev, uint8_t *macaddr) return QDF_STATUS_E_FAILURE; } +/** + * wmi_ready_extract_mac_addr() - extract MAC address list from ready event + * @wmi_handle: wmi handle + * @param ev: pointer to event buffer + * @param num_mac_addr: Pointer to number of entries + * + * Return: address to start of mac addr list + */ +wmi_host_mac_addr *wmi_ready_extract_mac_addr_list(void *wmi_hdl, void *ev, + uint8_t *num_mac_addr) +{ + wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl; + + if (wmi_handle->ops->ready_extract_mac_addr_list) + return wmi_handle->ops->ready_extract_mac_addr_list(wmi_handle, + ev, num_mac_addr); + + *num_mac_addr = 0; + + return NULL; +} + /** * wmi_extract_dbglog_data_len() - extract debuglog data length * @wmi_handle: wmi handle diff --git a/wmi_unified_tlv.c b/wmi_unified_tlv.c index e2609f0880..b315b4bd11 100644 --- a/wmi_unified_tlv.c +++ b/wmi_unified_tlv.c @@ -15992,7 +15992,6 @@ static uint32_t ready_extract_init_status_tlv(wmi_unified_t wmi_handle, WMI_READY_EVENTID_param_tlvs *param_buf = NULL; wmi_ready_event_fixed_param *ev = NULL; - param_buf = (WMI_READY_EVENTID_param_tlvs *) evt_buf; ev = param_buf->fixed_param; @@ -16024,6 +16023,28 @@ static QDF_STATUS ready_extract_mac_addr_tlv(wmi_unified_t wmi_hamdle, return QDF_STATUS_SUCCESS; } +/** + * ready_extract_mac_addr_list_tlv() - extract MAC address list from ready event + * @wmi_handle: wmi handle + * @param evt_buf: pointer to event buffer + * @param macaddr: Pointer to hold number of MAC addresses + * + * Return: Pointer to addr list + */ +static wmi_host_mac_addr *ready_extract_mac_addr_list_tlv(wmi_unified_t wmi_hamdle, + void *evt_buf, uint8_t *num_mac) +{ + WMI_READY_EVENTID_param_tlvs *param_buf = NULL; + wmi_ready_event_fixed_param *ev = NULL; + + param_buf = (WMI_READY_EVENTID_param_tlvs *) evt_buf; + ev = param_buf->fixed_param; + + *num_mac = ev->num_extra_mac_addr; + + return (wmi_host_mac_addr *) param_buf->mac_addr_list; +} + /** * extract_dbglog_data_len_tlv() - extract debuglog data length * @wmi_handle: wmi handle @@ -18957,6 +18978,7 @@ struct wmi_ops tlv_ops = { .save_fw_version = save_fw_version_in_service_ready_tlv, .ready_extract_init_status = ready_extract_init_status_tlv, .ready_extract_mac_addr = ready_extract_mac_addr_tlv, + .ready_extract_mac_addr_list = ready_extract_mac_addr_list_tlv, .extract_dbglog_data_len = extract_dbglog_data_len_tlv, .extract_vdev_start_resp = extract_vdev_start_resp_tlv, .extract_tbttoffset_update_params =