mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
qcacmn: Extract pdev id from vdev id received in WMI_CHAN_INFO_EVENTID
Add support in utils layer to extract pdev id from vdev id using object manager APIs. Use the API to extract pdev id from vdev id received through the chan info event handler for lithium based chipsets. CRs-Fixed: 2043869 Change-Id: Ibf1f1f91d505d53219ca9a2f5d94beb8553edfe3
This commit is contained in:
parent
5e6d8d121f
commit
64cdfa8a23
4 changed files with 46 additions and 0 deletions
|
|
@ -48,6 +48,9 @@
|
|||
/* Max vdev_id */
|
||||
#define WLAN_UMAC_VDEV_ID_MAX 0xFF
|
||||
|
||||
/* Invalid pdev_id */
|
||||
#define WLAN_INVALID_PDEV_ID 0xFFFFFFFF
|
||||
|
||||
/* 802.11 cap info */
|
||||
#define WLAN_CAPINFO_ESS 0x0001
|
||||
#define WLAN_CAPINFO_IBSS 0x0002
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@
|
|||
#define _WLAN_UTILITY_H_
|
||||
|
||||
#include <qdf_types.h>
|
||||
#include <wlan_objmgr_psoc_obj.h>
|
||||
#include <wlan_objmgr_pdev_obj.h>
|
||||
#include <wlan_objmgr_vdev_obj.h>
|
||||
|
||||
/**
|
||||
* wlan_chan_to_freq() - converts channel to frequency
|
||||
|
|
@ -71,4 +74,19 @@ uint8_t *wlan_get_vendor_ie_ptr_from_oui(uint8_t *oui,
|
|||
* Return: boolean value based on platform type
|
||||
*/
|
||||
bool wlan_is_emulation_platform(uint32_t phy_version);
|
||||
|
||||
/**
|
||||
* wlan_get_pdev_id_from_vdev_id() - Helper func to derive pdev id from vdev_id
|
||||
* @psoc : psoc object
|
||||
* @vdev_id : vdev identifier
|
||||
* @dbg_id : object manager debug id
|
||||
*
|
||||
* This function is used to derive the pdev id from vdev id for a psoc
|
||||
*
|
||||
* Return : pdev_id - +ve integer for success and WLAN_INVALID_PDEV_ID
|
||||
* for failure
|
||||
*/
|
||||
uint32_t wlan_get_pdev_id_from_vdev_id(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
wlan_objmgr_ref_dbgid dbg_id);
|
||||
#endif /* _WLAN_UTILITY_H_ */
|
||||
|
|
|
|||
|
|
@ -104,3 +104,25 @@ bool wlan_is_emulation_platform(uint32_t phy_version)
|
|||
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32_t wlan_get_pdev_id_from_vdev_id(struct wlan_objmgr_psoc *psoc,
|
||||
uint8_t vdev_id,
|
||||
wlan_objmgr_ref_dbgid dbg_id)
|
||||
{
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
struct wlan_objmgr_pdev *pdev = NULL;
|
||||
uint32_t pdev_id = WLAN_INVALID_PDEV_ID;
|
||||
|
||||
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc,
|
||||
vdev_id, dbg_id);
|
||||
|
||||
if (vdev) {
|
||||
pdev = wlan_vdev_get_pdev(vdev);
|
||||
if (pdev)
|
||||
pdev_id = wlan_objmgr_pdev_get_pdev_id(pdev);
|
||||
wlan_objmgr_vdev_release_ref(vdev, dbg_id);
|
||||
}
|
||||
|
||||
return pdev_id;
|
||||
}
|
||||
EXPORT_SYMBOL(wlan_get_pdev_id_from_vdev_id);
|
||||
|
|
|
|||
|
|
@ -16236,6 +16236,9 @@ static QDF_STATUS extract_chan_info_event_tlv(wmi_unified_t wmi_handle,
|
|||
chan_info->noise_floor = ev->noise_floor;
|
||||
chan_info->rx_clear_count = ev->rx_clear_count;
|
||||
chan_info->cycle_count = ev->cycle_count;
|
||||
chan_info->pdev_id = wlan_get_pdev_id_from_vdev_id(
|
||||
(struct wlan_objmgr_psoc *)wmi_handle->soc->wmi_psoc,
|
||||
ev->vdev_id, WLAN_SCAN_ID);
|
||||
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue