qcacld-3.0: Add support for getting dtim and beacon interval
Add support for getting vdev dtim and beacon interval from
mlme in PMO.
Change-Id: I97c117eec290f6b9452b98629bf6b3ee10c38ce6
CRs-Fixed: 2252713
diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h
index e0cdd1c..f41fed7 100644
--- a/core/wma/inc/wma.h
+++ b/core/wma/inc/wma.h
@@ -2400,20 +2400,76 @@
/* set value to zero */
*value = 0;
- if (!mac) {
- WMA_LOGE("%s: Failed to get mac context!", __func__);
+ if (!mac)
return QDF_STATUS_E_FAILURE;
- }
- if (wlan_cfg_get_int(mac, cfg_id, value) != eSIR_SUCCESS) {
- WMA_LOGE("%s: Can't get cfg_id :%d", __func__, cfg_id);
+ if (wlan_cfg_get_int(mac, cfg_id, value) != eSIR_SUCCESS)
return QDF_STATUS_E_FAILURE;
- }
return QDF_STATUS_SUCCESS;
}
/**
+ * wma_vdev_get_dtim_period - Get dtim period value from mlme
+ * @vdev_id: vdev index number
+ * @value: pointer to the value to fill out
+ *
+ * Note caller must verify return status before using value
+ *
+ * Return: QDF_STATUS_SUCCESS when fetched a valid value from cfg else
+ * QDF_STATUS_E_FAILURE
+ */
+static inline
+QDF_STATUS wma_vdev_get_dtim_period(uint8_t vdev_id, uint8_t *value)
+{
+ tp_wma_handle wma = (tp_wma_handle)cds_get_context(QDF_MODULE_ID_WMA);
+ struct wma_txrx_node *iface;
+ /* set value to zero */
+ *value = 0;
+
+ if (!wma)
+ return QDF_STATUS_E_FAILURE;
+
+ iface = &wma->interfaces[vdev_id];
+
+ if (!iface || !iface->handle)
+ return QDF_STATUS_E_FAILURE;
+
+ *value = iface->dtimPeriod;
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
+ * wma_vdev_get_beacon_interval - Get beacon interval from mlme
+ * @vdev_id: vdev index number
+ * @value: pointer to the value to fill out
+ *
+ * Note caller must verify return status before using value
+ *
+ * Return: QDF_STATUS_SUCCESS when fetched a valid value from cfg else
+ * QDF_STATUS_E_FAILURE
+ */
+static inline
+QDF_STATUS wma_vdev_get_beacon_interval(uint8_t vdev_id, uint16_t *value)
+{
+ tp_wma_handle wma = (tp_wma_handle)cds_get_context(QDF_MODULE_ID_WMA);
+ struct wma_txrx_node *iface;
+ /* set value to zero */
+ *value = 0;
+
+ if (!wma)
+ return QDF_STATUS_E_FAILURE;
+
+ iface = &wma->interfaces[vdev_id];
+
+ if (!iface || !iface->handle)
+ return QDF_STATUS_E_FAILURE;
+
+ *value = iface->beaconInterval;
+ return QDF_STATUS_SUCCESS;
+}
+
+/**
* wma_vdev_set_pause_bit() - Set a bit in vdev pause bitmap
* @vdev_id: the Id of the vdev to configure
* @bit_pos: set bit position in pause bitmap