summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMing-yi Lin <mylin@qca.qualcomm.com>2014-01-23 17:03:58 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-01-31 17:28:01 -0800
commit785dcb9652e5dcc7ca2926bc65062a8ee16db4f2 (patch)
tree078e8e8c4f6d8ff720ac884dc6808c1a6d75f86b
parente125948db1f6affe6506920881920ae867edcb1f (diff)
qcacld: sap: add short_gi ioctrl to sap interface
short_gi config is required in some rate sanity check. When short gi is not specified, firmware will turn it off by default when we set fixed rate. This command is only needed when fixed rate is used. Change-Id: If921e8265fd58e7ec736c94775b74e85fdc32160 CRs-fixed: 599872
-rw-r--r--CORE/HDD/inc/qc_sap_ioctl.h6
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c32
2 files changed, 36 insertions, 2 deletions
diff --git a/CORE/HDD/inc/qc_sap_ioctl.h b/CORE/HDD/inc/qc_sap_ioctl.h
index d4b052eb743a..0c2b359db4ef 100644
--- a/CORE/HDD/inc/qc_sap_ioctl.h
+++ b/CORE/HDD/inc/qc_sap_ioctl.h
@@ -271,8 +271,10 @@ typedef struct
#define QCASAP_TXRX_FWSTATS_RESET 41
#define QCSAP_PARAM_SETRTSCTS 42
#define QCSAP_PARAM_GETRTSCTS 43
-#define QCASAP_SET_11N_RATE 45
-#define QCASAP_SET_VHT_RATE 46
+#define QCASAP_SET_11N_RATE 44
+#define QCASAP_SET_VHT_RATE 45
+#define QCASAP_SET_SHORT_GI 46
+#define QCASAP_GET_SHORT_GI 47
#endif /* QCA_WIFI_2_0 */
enum {
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 95e5b7f535b3..dff529a78c4a 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -1364,6 +1364,19 @@ static iw_softap_setparam(struct net_device *dev,
set_value, VDEV_CMD);
break;
}
+
+ case QCASAP_SET_SHORT_GI:
+ {
+ hddLog(LOG1, "QCASAP_SET_SHORT_GI val %d", set_value);
+
+ ret = sme_UpdateHTConfig(hHal, pHostapdAdapter->sessionId,
+ WNI_CFG_HT_CAP_INFO_SHORT_GI_20MHZ, /* same as 40MHZ */
+ set_value);
+ if (ret)
+ hddLog(LOGE, "Failed to set ShortGI value ret(%d)", ret);
+ break;
+ }
+
case QCSAP_PARAM_SET_MCC_CHANNEL_LATENCY:
{
tVOS_CONCURRENCY_MODE concurrent_state = 0;
@@ -1606,6 +1619,7 @@ static iw_softap_getparam(struct net_device *dev,
*value = (WLAN_HDD_GET_CTX(pHostapdAdapter))->cfg_ini->apAutoChannelSelection;
break;
}
+
case QCSAP_PARAM_GETRTSCTS:
{
hdd_context_t *wmahddCtxt = WLAN_HDD_GET_CTX(pHostapdAdapter);
@@ -1616,6 +1630,15 @@ static iw_softap_getparam(struct net_device *dev,
VDEV_CMD);
break;
}
+
+ case QCASAP_GET_SHORT_GI:
+ {
+ *value = (int)sme_GetHTConfig(hHal,
+ pHostapdAdapter->sessionId,
+ WNI_CFG_HT_CAP_INFO_SHORT_GI_20MHZ);
+ break;
+ }
+
default:
hddLog(LOGE, FL("Invalid getparam command %d"), sub_cmd);
ret = -EINVAL;
@@ -3531,6 +3554,15 @@ static const struct iw_priv_args hostapd_private_args[] = {
0,
"set11ACRates" },
+ { QCASAP_SET_SHORT_GI,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "enable_short_gi" },
+
+ { QCASAP_GET_SHORT_GI, 0,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ "get_short_gi" },
+
#endif /* QCA_WIFI_2_0 */
{ QCSAP_IOCTL_GETPARAM,