diff --git a/drivers/staging/prima/CORE/HDD/inc/wlan_hdd_cfg.h b/drivers/staging/prima/CORE/HDD/inc/wlan_hdd_cfg.h index b07c66e63ecf1cd3d426cdcfd34cd473b5f4b646..3a2d70b8577c15b39c8e719fcb1f5b1a3d8a5375 100644 --- a/drivers/staging/prima/CORE/HDD/inc/wlan_hdd_cfg.h +++ b/drivers/staging/prima/CORE/HDD/inc/wlan_hdd_cfg.h @@ -1608,7 +1608,7 @@ typedef enum #define CFG_TDLS_IMPLICIT_TRIGGER_DEFAULT ( 0 ) #define CFG_TDLS_TX_STATS_PERIOD "gTDLSTxStatsPeriod" -#define CFG_TDLS_TX_STATS_PERIOD_MIN ( 2000 ) +#define CFG_TDLS_TX_STATS_PERIOD_MIN ( 10 ) #define CFG_TDLS_TX_STATS_PERIOD_MAX ( 4294967295UL ) #define CFG_TDLS_TX_STATS_PERIOD_DEFAULT ( 5000 ) @@ -1633,7 +1633,7 @@ typedef enum #define CFG_TDLS_IDLE_TIMEOUT_DEFAULT ( 5000 ) #define CFG_TDLS_IDLE_PACKET_THRESHOLD "gTDLSIdlePacketThreshold" -#define CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN ( 1 ) +#define CFG_TDLS_IDLE_PACKET_THRESHOLD_MIN ( 0 ) #define CFG_TDLS_IDLE_PACKET_THRESHOLD_MAX ( 40000 ) #define CFG_TDLS_IDLE_PACKET_THRESHOLD_DEFAULT ( 5 ) diff --git a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_cfg80211.c b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_cfg80211.c index 7cb03b2384ea73a587428fc73b6e1cf50723474e..2986887774a5d6ee090158e333fe2980a23efcaf 100755 --- a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -7716,6 +7716,7 @@ static int wlan_hdd_cfg80211_tdls_oper(struct wiphy *wiphy, struct net_device *d } case NL80211_TDLS_SETUP: { + hddTdlsPeer_t *pTdlsPeer; VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, " %s : NL80211_TDLS_SETUP for " MAC_ADDRESS_STR, __func__, MAC_ADDR_ARRAY(peer)); @@ -7729,7 +7730,15 @@ static int wlan_hdd_cfg80211_tdls_oper(struct wiphy *wiphy, struct net_device *d return -ENOTSUPP; } - return wlan_hdd_tdls_add_force_peer(pAdapter, peer); + if ( 0 != wlan_hdd_tdls_add_force_peer(pAdapter, peer) ) + return -EINVAL; + /* To cater the requirement of establishing the TDLS link + * irrespective of the data traffic , get an entry of TDLS peer. + */ + pTdlsPeer = wlan_hdd_tdls_get_peer(pAdapter, peer); + if (pTdlsPeer == NULL) + return -EINVAL; + break; } case NL80211_TDLS_DISCOVERY_REQ: /* We don't support in-driver setup/teardown/discovery */ diff --git a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_tdls.c b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_tdls.c index 9dafaf36b4a34e79b173dc9b0dca394faf5f90c8..189f4b99ca0695f469020c60f950d56c0d93dfce 100644 --- a/drivers/staging/prima/CORE/HDD/src/wlan_hdd_tdls.c +++ b/drivers/staging/prima/CORE/HDD/src/wlan_hdd_tdls.c @@ -351,10 +351,15 @@ static v_VOID_t wlan_hdd_tdls_update_peer_cb( v_PVOID_t userData ) goto next_peer; } - if ((curr_peer->tx_pkt < + /* Only teardown based on non zero idle packet threshold, to address a use + * case where this threshold does not get consider for TEAR DOWN. + */ + + if (( 0 != pHddTdlsCtx->threshold_config.idle_packet_n ) && + ((curr_peer->tx_pkt < pHddTdlsCtx->threshold_config.idle_packet_n) && (curr_peer->rx_pkt < - pHddTdlsCtx->threshold_config.idle_packet_n)) { + pHddTdlsCtx->threshold_config.idle_packet_n))) { if (VOS_TIMER_STATE_RUNNING != vos_timer_getCurrentState(&curr_peer->peerIdleTimer)) { VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_WARN, diff --git a/drivers/staging/prima/CORE/MAC/inc/qwlan_version.h b/drivers/staging/prima/CORE/MAC/inc/qwlan_version.h index 6f1be21cafd7694342d50f89ec70d16a0379a435..503984273190e8a90171170bddc73c741490dadd 100644 --- a/drivers/staging/prima/CORE/MAC/inc/qwlan_version.h +++ b/drivers/staging/prima/CORE/MAC/inc/qwlan_version.h @@ -60,9 +60,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 2 #define QWLAN_VERSION_PATCH 3 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 11 +#define QWLAN_VERSION_BUILD 13 -#define QWLAN_VERSIONSTR "3.2.3.11" +#define QWLAN_VERSIONSTR "3.2.3.13" #endif /* QWLAN_VERSION_H */