qcacld-3.0: API to get chan utilization
Implement API to get chan utilization for EasyMesh. Change-Id: I5002fb7b6f8472353bb3fc3b8d8bbd05a1294aa6 CRs-Fixed: 3044699
Šī revīzija ir iekļauta:

revīziju iesūtīja
Madan Koyyalamudi

vecāks
4a51304a82
revīzija
557a23985d
@@ -304,6 +304,14 @@ enum ieee80211_phymode os_if_son_get_phymode(struct wlan_objmgr_vdev *vdev);
|
||||
int os_if_son_set_phymode(struct wlan_objmgr_vdev *vdev,
|
||||
enum ieee80211_phymode mode);
|
||||
|
||||
/**
|
||||
* os_if_son_get_chan_util() - get chan utilization
|
||||
* @vdev: vdev
|
||||
*
|
||||
* Return: chan utilization (0 - 100)
|
||||
*/
|
||||
uint8_t os_if_son_get_chan_util(struct wlan_objmgr_vdev *vdev);
|
||||
|
||||
/**
|
||||
* os_if_son_pdev_ops() - Handles PDEV specific SON commands
|
||||
* @pdev: pdev
|
||||
|
@@ -33,6 +33,7 @@
|
||||
#include <wlan_mlme_ucfg_api.h>
|
||||
#include <wlan_reg_services_api.h>
|
||||
#include <wlan_scan_ucfg_api.h>
|
||||
#include <wlan_dcs_ucfg_api.h>
|
||||
|
||||
static struct son_callbacks g_son_os_if_cb;
|
||||
|
||||
@@ -708,6 +709,38 @@ int os_if_son_kickout_mac(struct wlan_objmgr_vdev *vdev,
|
||||
}
|
||||
qdf_export_symbol(os_if_son_kickout_mac);
|
||||
|
||||
uint8_t os_if_son_get_chan_util(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct wlan_host_dcs_ch_util_stats dcs_son_stats = {};
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
uint8_t mac_id;
|
||||
QDF_STATUS status;
|
||||
|
||||
if (!vdev) {
|
||||
osif_err("null vdev");
|
||||
return 0;
|
||||
}
|
||||
|
||||
psoc = wlan_vdev_get_psoc(vdev);
|
||||
if (!psoc) {
|
||||
osif_err("null psoc");
|
||||
return 0;
|
||||
}
|
||||
status = policy_mgr_get_mac_id_by_session_id(psoc,
|
||||
wlan_vdev_get_id(vdev),
|
||||
&mac_id);
|
||||
if (QDF_IS_STATUS_ERROR(status)) {
|
||||
osif_err("Failed to get mac_id");
|
||||
return 0;
|
||||
}
|
||||
|
||||
ucfg_dcs_get_ch_util(psoc, mac_id, &dcs_son_stats);
|
||||
osif_debug("get_chan_util %d", dcs_son_stats.total_cu);
|
||||
|
||||
return dcs_son_stats.total_cu;
|
||||
}
|
||||
qdf_export_symbol(os_if_son_get_chan_util);
|
||||
|
||||
int os_if_son_set_phymode(struct wlan_objmgr_vdev *vdev,
|
||||
enum ieee80211_phymode mode)
|
||||
{
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user