diff options
author | Ecco Park <eccopark@broadcom.com> | 2013-11-18 09:37:35 +0900 |
---|---|---|
committer | Ziyan <jaraidaniel@gmail.com> | 2016-05-01 23:35:34 +0200 |
commit | 7d7567f2b712a81856ad0c4075f0015c921dda3e (patch) | |
tree | 6596d410331d0d72dbb7bf661e5d8b45ffcf9766 | |
parent | ff8d774694b1a9aca5117d487e248400b30968fc (diff) | |
download | kernel_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/Makefile | 4 | ||||
-rw-r--r-- | drivers/net/wireless/bcmdhd/dhd_linux.c | 15 |
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; |