summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Qian <zhangq@codeaurora.org>2016-08-12 16:20:36 +0800
committerqcabuildsw <qcabuildsw@localhost>2016-10-24 11:29:55 -0700
commita3bcbe00ff547c209e304d87a54f5e5974e4fd75 (patch)
tree608c63f564847486e6be8a5f5965fb6a708bd202
parent3e6f638fcdc1c40964b7e93d5edc0072f2254f49 (diff)
qcacld-3.0: Extend cfg80211 configure API
qcacld-2.0 to qcacld-3.0 propagation Extend cfg80211 configure API: 1. Vendor attribute for non aggregate/11g sw retry threshold. 2. Vendor attribute for aggregate sw retry threshold. 3. Vendor attribute for MGMT frame sw retry threshold. 4. Vendor attribute for CTRL frame sw retry threshold. 5. Vendor attribute for propagation delay. Change-Id: Icdcb0e83432299014fb46507bdd5978b76919ab5 CRs-Fixed: 1035577
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.c58
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.h30
2 files changed, 88 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index da29cff9a74c..d4517ef32b32 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -3889,6 +3889,11 @@ wlan_hdd_wifi_config_policy[QCA_WLAN_VENDOR_ATTR_CONFIG_MAX + 1] = {
[QCA_WLAN_VENDOR_ATTR_CONFIG_CHANNEL_AVOIDANCE_IND] = {.type = NLA_U8 },
[QCA_WLAN_VENDOR_ATTR_CONFIG_TX_MPDU_AGGREGATION] = {.type = NLA_U8 },
[QCA_WLAN_VENDOR_ATTR_CONFIG_RX_MPDU_AGGREGATION] = {.type = NLA_U8 },
+ [QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY] = {.type = NLA_U8 },
+ [QCA_WLAN_VENDOR_ATTR_CONFIG_AGG_RETRY] = {.type = NLA_U8 },
+ [QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY] = {.type = NLA_U8 },
+ [QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY] = {.type = NLA_U8 },
+ [QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY] = {.type = NLA_U8 },
};
/**
@@ -3959,6 +3964,8 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
uint8_t *scan_ie;
struct sir_set_tx_rx_aggregation_size request;
QDF_STATUS qdf_status;
+ uint8_t retry, delay;
+ int param_id;
ENTER_DEV(dev);
@@ -4068,6 +4075,57 @@ __wlan_hdd_cfg80211_wifi_configuration_set(struct wiphy *wiphy,
access_policy);
}
+ if (tb[QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY]) {
+ retry = nla_get_u8(tb[
+ QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY]);
+ retry = retry > CFG_NON_AGG_RETRY_MAX ?
+ CFG_NON_AGG_RETRY_MAX : retry;
+ param_id = WMI_PDEV_PARAM_NON_AGG_SW_RETRY_TH;
+ ret_val = wma_cli_set_command(adapter->sessionId, param_id,
+ retry, PDEV_CMD);
+ }
+
+ if (tb[QCA_WLAN_VENDOR_ATTR_CONFIG_AGG_RETRY]) {
+ retry = nla_get_u8(tb[QCA_WLAN_VENDOR_ATTR_CONFIG_AGG_RETRY]);
+ retry = retry > CFG_AGG_RETRY_MAX ?
+ CFG_AGG_RETRY_MAX : retry;
+
+ /* Value less than CFG_AGG_RETRY_MIN has side effect to t-put */
+ retry = ((retry > 0) && (retry < CFG_AGG_RETRY_MIN)) ?
+ CFG_AGG_RETRY_MIN : retry;
+ param_id = WMI_PDEV_PARAM_AGG_SW_RETRY_TH;
+ ret_val = wma_cli_set_command(adapter->sessionId, param_id,
+ retry, PDEV_CMD);
+ }
+
+ if (tb[QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY]) {
+ retry = nla_get_u8(tb[QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY]);
+ retry = retry > CFG_MGMT_RETRY_MAX ?
+ CFG_MGMT_RETRY_MAX : retry;
+ param_id = WMI_PDEV_PARAM_MGMT_RETRY_LIMIT;
+ ret_val = wma_cli_set_command(adapter->sessionId, param_id,
+ retry, PDEV_CMD);
+ }
+
+ if (tb[QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY]) {
+ retry = nla_get_u8(tb[QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY]);
+ retry = retry > CFG_CTRL_RETRY_MAX ?
+ CFG_CTRL_RETRY_MAX : retry;
+ param_id = WMI_PDEV_PARAM_CTRL_RETRY_LIMIT;
+ ret_val = wma_cli_set_command(adapter->sessionId, param_id,
+ retry, PDEV_CMD);
+ }
+
+ if (tb[QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY]) {
+ delay = nla_get_u8(tb[
+ QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY]);
+ delay = delay > CFG_PROPAGATION_DELAY_MAX ?
+ CFG_PROPAGATION_DELAY_MAX : delay;
+ param_id = WMI_PDEV_PARAM_PROPAGATION_DELAY;
+ ret_val = wma_cli_set_command(adapter->sessionId, param_id,
+ delay, PDEV_CMD);
+ }
+
if (vendor_ie_present && access_policy_present) {
if (access_policy == QCA_ACCESS_POLICY_DENY_UNLESS_LISTED) {
access_policy =
diff --git a/core/hdd/src/wlan_hdd_cfg80211.h b/core/hdd/src/wlan_hdd_cfg80211.h
index 2c9a81cfed79..602bef0c651c 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.h
+++ b/core/hdd/src/wlan_hdd_cfg80211.h
@@ -2325,6 +2325,13 @@ enum qca_wlan_vendor_acs_hw_mode {
QCA_ACS_MODE_IEEE80211ANY,
};
+#define CFG_NON_AGG_RETRY_MAX (31)
+#define CFG_AGG_RETRY_MAX (31)
+#define CFG_MGMT_RETRY_MAX (31)
+#define CFG_CTRL_RETRY_MAX (31)
+#define CFG_PROPAGATION_DELAY_MAX (63)
+#define CFG_AGG_RETRY_MIN (5)
+
/**
* enum qca_access_policy - access control policy
*
@@ -2370,6 +2377,13 @@ enum qca_ignore_assoc_disallowed {
* Tx aggregation size (8-bit unsigned value)
* @QCA_WLAN_VENDOR_ATTR_CONFIG_RX_MPDU_AGGREGATION:
* Rx aggregation size (8-bit unsigned value)
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY:
+ * Non aggregrate/11g sw retry threshold
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_AGG_RETRY: aggregrate sw retry threshold
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY: management frame sw retry threshold
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY: control frame sw retry threshold
+ * @QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY:
+ * propagation delay for 2G/5G band (units in us)
* @QCA_WLAN_VENDOR_ATTR_CONFIG_SCAN_DEFAULT_IES: Update the default scan IEs
* @QCA_WLAN_VENDOR_ATTR_CONFIG_GENERIC_COMMAND:
* Unsigned 32-bit value attribute for generic commands
@@ -2406,6 +2420,22 @@ enum qca_wlan_vendor_config {
QCA_WLAN_VENDOR_ATTR_CONFIG_TX_MPDU_AGGREGATION,
QCA_WLAN_VENDOR_ATTR_CONFIG_RX_MPDU_AGGREGATION,
+ /* 8-bit unsigned value to configure the Non aggregrate/11g sw
+ * retry threshold (0 disable, 31 max). */
+ QCA_WLAN_VENDOR_ATTR_CONFIG_NON_AGG_RETRY,
+ /* 8-bit unsigned value to configure the aggregrate sw
+ * retry threshold (0 disable, 31 max). */
+ QCA_WLAN_VENDOR_ATTR_CONFIG_AGG_RETRY,
+ /* 8-bit unsigned value to configure the MGMT frame
+ * retry threshold (0 disable, 31 max). */
+ QCA_WLAN_VENDOR_ATTR_CONFIG_MGMT_RETRY,
+ /* 8-bit unsigned value to configure the CTRL frame
+ * retry threshold (0 disable, 31 max). */
+ QCA_WLAN_VENDOR_ATTR_CONFIG_CTRL_RETRY,
+ /* 8-bit unsigned value to configure the propagation delay for
+ * 2G/5G band (0~63, units in us) */
+ QCA_WLAN_VENDOR_ATTR_CONFIG_PROPAGATION_DELAY,
+
/* Attribute used to set scan default IEs to the driver.
*
* These IEs can be used by scan operations that will be initiated by