qca-wifi: Added component_dev support for Quiet IE
Moved support for Quiet IE from cmn_dev to component_dev. Change-Id: Ib5ca7356ff4a25e1e674cbc831d35928e12cd0f4 CRs-Fixed: 2376067
Cette révision appartient à :

révisé par
Gerrit - the friendly Code Review server

Parent
c68e9fb218
révision
2b7289b241
@@ -124,6 +124,10 @@ QDF_STATUS wmi_extract_swba_num_vdevs(void *wmi_hdl, void *evt_buf,
|
||||
QDF_STATUS wmi_extract_swba_tim_info(void *wmi_hdl, void *evt_buf,
|
||||
uint32_t idx, wmi_host_tim_info *tim_info);
|
||||
|
||||
QDF_STATUS wmi_extract_swba_quiet_info(void *wmi_hdl, void *evt_buf,
|
||||
uint32_t idx,
|
||||
wmi_host_quiet_info *quiet_info);
|
||||
|
||||
QDF_STATUS wmi_extract_swba_noa_info(void *wmi_hdl, void *evt_buf,
|
||||
uint32_t idx, wmi_host_p2p_noa_info *p2p_desc);
|
||||
|
||||
|
@@ -493,6 +493,28 @@ QDF_STATUS wmi_extract_swba_tim_info(void *wmi_hdl, void *evt_buf,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_extract_swba_quiet_info() - extract swba quiet info from event
|
||||
* @wmi_handle: wmi handle
|
||||
* @param evt_buf: pointer to event buffer
|
||||
* @param idx: Index to bcn info
|
||||
* @param quiet_info: Pointer to hold quiet info
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
|
||||
*/
|
||||
QDF_STATUS wmi_extract_swba_quiet_info(void *wmi_hdl, void *evt_buf,
|
||||
uint32_t idx,
|
||||
wmi_host_quiet_info *quiet_info)
|
||||
{
|
||||
wmi_unified_t wmi_handle = (wmi_unified_t)wmi_hdl;
|
||||
|
||||
if (wmi_handle->ops->extract_swba_quiet_info)
|
||||
return wmi_handle->ops->extract_swba_quiet_info(wmi_handle,
|
||||
evt_buf, idx,
|
||||
quiet_info);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
||||
/**
|
||||
* wmi_extract_swba_noa_info() - extract swba NoA information from event
|
||||
* @wmi_handle: wmi handle
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2016-2018 The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* Permission to use, copy, modify, and/or distribute this software for
|
||||
* any purpose with or without fee is hereby granted, provided that the
|
||||
@@ -1076,13 +1076,15 @@ static QDF_STATUS extract_swba_tim_info_tlv(wmi_unified_t wmi_handle,
|
||||
|
||||
tim_info_ev = ¶m_buf->tim_info[idx];
|
||||
|
||||
tim_info->tim_len = tim_info_ev->tim_len;
|
||||
tim_info->tim_mcast = tim_info_ev->tim_mcast;
|
||||
qdf_mem_copy(tim_info->tim_bitmap, tim_info_ev->tim_bitmap,
|
||||
(sizeof(uint32_t) * WMI_TIM_BITMAP_ARRAY_SIZE));
|
||||
tim_info->tim_changed = tim_info_ev->tim_changed;
|
||||
tim_info->tim_num_ps_pending = tim_info_ev->tim_num_ps_pending;
|
||||
tim_info->vdev_id = tim_info_ev->vdev_id;
|
||||
if (tim_info_ev->tim_len != 0) {
|
||||
tim_info->tim_len = tim_info_ev->tim_len;
|
||||
tim_info->tim_mcast = tim_info_ev->tim_mcast;
|
||||
qdf_mem_copy(tim_info->tim_bitmap, tim_info_ev->tim_bitmap,
|
||||
(sizeof(uint32_t) * WMI_TIM_BITMAP_ARRAY_SIZE));
|
||||
tim_info->tim_changed = tim_info_ev->tim_changed;
|
||||
tim_info->tim_num_ps_pending = tim_info_ev->tim_num_ps_pending;
|
||||
tim_info->vdev_id = tim_info_ev->vdev_id;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
@@ -1141,6 +1143,44 @@ static QDF_STATUS extract_swba_noa_info_tlv(wmi_unified_t wmi_handle,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* extract_swba_quiet_info_tlv() - extract swba quiet info from event
|
||||
* @wmi_handle: wmi handle
|
||||
* @param evt_buf: pointer to event buffer
|
||||
* @param idx: Index to bcn info
|
||||
* @param quiet_info: Pointer to hold quiet info
|
||||
*
|
||||
* Return: QDF_STATUS_SUCCESS for success or error code
|
||||
*/
|
||||
static QDF_STATUS extract_swba_quiet_info_tlv(wmi_unified_t wmi_handle,
|
||||
void *evt_buf, uint32_t idx,
|
||||
wmi_host_quiet_info *quiet_info)
|
||||
{
|
||||
WMI_HOST_SWBA_EVENTID_param_tlvs *param_buf;
|
||||
wmi_quiet_offload_info *quiet_info_ev;
|
||||
|
||||
param_buf = (WMI_HOST_SWBA_EVENTID_param_tlvs *)evt_buf;
|
||||
if (!param_buf) {
|
||||
WMI_LOGE("Invalid swba event buffer");
|
||||
return QDF_STATUS_E_INVAL;
|
||||
}
|
||||
|
||||
if (!param_buf->quiet_offload_info)
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
|
||||
quiet_info_ev = ¶m_buf->quiet_offload_info[idx];
|
||||
|
||||
if (quiet_info_ev->tbttcount != 0) {
|
||||
quiet_info->vdev_id = quiet_info_ev->vdev_id;
|
||||
quiet_info->tbttcount = quiet_info_ev->tbttcount;
|
||||
quiet_info->period = quiet_info_ev->period;
|
||||
quiet_info->duration = quiet_info_ev->duration;
|
||||
quiet_info->offset = quiet_info_ev->offset;
|
||||
}
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* extract_offchan_data_tx_compl_param_tlv() -
|
||||
* extract Offchan data tx completion event params
|
||||
@@ -2640,6 +2680,7 @@ void wmi_ap_attach_tlv(wmi_unified_t wmi_handle)
|
||||
extract_ext_tbttoffset_num_vdevs_tlv;
|
||||
ops->extract_swba_num_vdevs = extract_swba_num_vdevs_tlv;
|
||||
ops->extract_swba_tim_info = extract_swba_tim_info_tlv;
|
||||
ops->extract_swba_quiet_info = extract_swba_quiet_info_tlv;
|
||||
ops->extract_swba_noa_info = extract_swba_noa_info_tlv;
|
||||
ops->extract_offchan_data_tx_compl_param =
|
||||
extract_offchan_data_tx_compl_param_tlv;
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur