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>
This commit is contained in:
Ecco Park 2013-11-18 09:37:35 +09:00 committed by Dmitry Shmidt
parent 5b5b948058
commit 07485c0ab8
2 changed files with 19 additions and 0 deletions

View File

@ -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
#########################

View File

@ -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 @@ int _dhd_tdls_enable(dhd_pub_t *dhd, bool tdls_on, bool auto_on, struct ether_ad
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;