aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEcco Park <eccopark@broadcom.com>2013-11-18 09:37:35 +0900
committerZiyan <jaraidaniel@gmail.com>2016-05-01 23:35:34 +0200
commit7d7567f2b712a81856ad0c4075f0015c921dda3e (patch)
tree6596d410331d0d72dbb7bf661e5d8b45ffcf9766
parentff8d774694b1a9aca5117d487e248400b30968fc (diff)
downloadkernel_samsung_tuna-7d7567f2b712a81856ad0c4075f0015c921dda3e.zip
kernel_samsung_tuna-7d7567f2b712a81856ad0c4075f0015c921dda3e.tar.gz
kernel_samsung_tuna-7d7567f2b712a81856ad0c4075f0015c921dda3e.tar.bz2
net: wireless: bcmdhd: Change the parameter for TDLS
1) tuned the parameter for TDLS connection to transit between AP and TDLS smoothly. 2) tdls_rssi_high : -70 dbm -> -60 dbm (for setup) tdls_rssi_low : -80 dbm -> -70dbm (for teardown) bug : 11632025 Signed-off-by: Ecco Park <eccopark@broadcom.com>
-rw-r--r--drivers/net/wireless/bcmdhd/Makefile4
-rw-r--r--drivers/net/wireless/bcmdhd/dhd_linux.c15
2 files changed, 19 insertions, 0 deletions
diff --git a/drivers/net/wireless/bcmdhd/Makefile b/drivers/net/wireless/bcmdhd/Makefile
index d1ea3b6..27b3a42 100644
--- a/drivers/net/wireless/bcmdhd/Makefile
+++ b/drivers/net/wireless/bcmdhd/Makefile
@@ -52,6 +52,10 @@ ifeq ($(CONFIG_BCMDHD),m)
EXTRA_LDFLAGS += --strip-debug
endif
+DHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_HIGH=-60
+DHDCFLAGS += -DCUSTOM_TDLS_RSSI_THRESHOLD_LOW=-70
+DHDCFLAGS += -DCUSTOM_TDLS_IDLE_MODE_SETTING=40000
+
#########################
# Chip dependent feature
#########################
diff --git a/drivers/net/wireless/bcmdhd/dhd_linux.c b/drivers/net/wireless/bcmdhd/dhd_linux.c
index 11965bf..7d53f40 100644
--- a/drivers/net/wireless/bcmdhd/dhd_linux.c
+++ b/drivers/net/wireless/bcmdhd/dhd_linux.c
@@ -3548,6 +3548,8 @@ int _dhd_tdls_enable(dhd_pub_t *dhd, bool tdls_on, bool auto_on, struct ether_ad
int ret = 0;
uint32 tdls_auto_op = 0;
uint32 tdls_idle_time = CUSTOM_TDLS_IDLE_MODE_SETTING;
+ int32 tdls_rssi_high = CUSTOM_TDLS_RSSI_THRESHOLD_HIGH;
+ int32 tdls_rssi_low = CUSTOM_TDLS_RSSI_THRESHOLD_LOW;
if (!FW_SUPPORTED(dhd, tdls))
return BCME_ERROR;
@@ -3578,6 +3580,16 @@ auto_mode:
DHD_ERROR(("%s: tdls_idle_time failed %d\n", __FUNCTION__, ret));
goto exit;
}
+ bcm_mkiovar("tdls_rssi_high", (char *)&tdls_rssi_high, 4, iovbuf, sizeof(iovbuf));
+ if ((ret = dhd_wl_ioctl_cmd(dhd, WLC_SET_VAR, iovbuf, sizeof(iovbuf), TRUE, 0)) < 0) {
+ DHD_ERROR(("%s: tdls_rssi_high failed %d\n", __FUNCTION__, ret));
+ goto exit;
+ }
+ bcm_mkiovar("tdls_rssi_low", (char *)&tdls_rssi_low, 4, iovbuf, sizeof(iovbuf));
+ if ((ret = dhd_wl_ioctl_cmd(dhd, WLC_SET_VAR, iovbuf, sizeof(iovbuf), TRUE, 0)) < 0) {
+ DHD_ERROR(("%s: tdls_rssi_low failed %d\n", __FUNCTION__, ret));
+ goto exit;
+ }
}
}
exit:
@@ -3747,6 +3759,9 @@ dhd_preinit_ioctls(dhd_pub_t *dhd)
dhd->wlfc_enabled = FALSE;
#endif /* PROP_TXSTATUS_VSDB */
#endif /* PROP_TXSTATUS */
+#ifdef WLTDLS
+ dhd->tdls_enable = FALSE;
+#endif /* WLTDLS */
dhd->suspend_bcn_li_dtim = CUSTOM_SUSPEND_BCN_LI_DTIM;
DHD_TRACE(("Enter %s\n", __FUNCTION__));
dhd->op_mode = 0;