Merge "qcacmn: Extract pdev id from vdev id received in WMI_CHAN_INFO_EVENTID"

This commit is contained in:
Linux Build Service Account 2017-05-17 07:51:31 -07:00 • committed by Gerrit - the friendly Code Review server
commit 4bd3efcdb7
4 changed files with 46 additions and 0 deletions

View file

@ -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

View file

@ -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_ */

View file

@ -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);

View file

@ -16303,6 +16303,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;
}