diff options
| author | Ming-yi Lin <mylin@qca.qualcomm.com> | 2014-01-23 17:03:58 -0800 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@qca.qualcomm.com> | 2014-01-31 17:28:01 -0800 |
| commit | 785dcb9652e5dcc7ca2926bc65062a8ee16db4f2 (patch) | |
| tree | 078e8e8c4f6d8ff720ac884dc6808c1a6d75f86b | |
| parent | e125948db1f6affe6506920881920ae867edcb1f (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.h | 6 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_hostapd.c | 32 |
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, |
