summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSrinivas Ramachandran <srinivasra@nvidia.com>2014-06-24 17:04:06 -0700
committerMandar Padmawar <mpadmawar@nvidia.com>2014-07-10 02:05:17 -0700
commit502ab7d706c926e0901fbc212134e54b894f8c1f (patch)
treedc0be4fbe3510178a2a118d41cbdec92971ddb72
parent2e1dac8152e265109c1d76d9951c4085739292b0 (diff)
Add Miracast modes 5 and 6 to handle interference mitigation on blake
To prevent blake disconnection on 2.4Ghz channels, set miracast mode 5 to disable interference mitigation and set miracast mode 6 to enable auto interference mitigation. Bug 1527717 Change-Id: I48447215051be1bf6983ccec8eb4d2f07c4b1f2a Signed-off-by: Srinivas Ramachandran <srinivasra@nvidia.com> Reviewed-on: http://git-master/r/428009 (cherry picked from commit c608170b0603d55bb703db1f08d07925d9bc0a3f) Reviewed-on: http://git-master/r/435719 GVS: Gerrit_Virtual_Submit Reviewed-by: Anshul Jain (SW) <anshulj@nvidia.com> Tested-by: Anshul Jain (SW) <anshulj@nvidia.com>
-rwxr-xr-xdrivers/net/wireless/bcmdhd/wldev_common.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/drivers/net/wireless/bcmdhd/wldev_common.c b/drivers/net/wireless/bcmdhd/wldev_common.c
index 9c678d944720..8064ec0f1ec6 100755
--- a/drivers/net/wireless/bcmdhd/wldev_common.c
+++ b/drivers/net/wireless/bcmdhd/wldev_common.c
@@ -394,6 +394,8 @@ int wldev_miracast_tuning(
int ampdu_mpdu;
int roam_off;
int ampdu_rx_tid = -1;
+ int disable_interference_mitigation = 0;
+ int auto_interference_mitigation = -1;
#ifdef VSDB_BW_ALLOCATE_ENABLE
int mchan_algo;
int mchan_bw;
@@ -450,8 +452,31 @@ set_mode:
ampdu_rx_tid = 0x5f;
mode = 0;
goto set_mode;
- }
- else {
+ } else if (mode == 5) {
+ /* Blake connected mode, disable interference mitigation */
+ error = wldev_ioctl(dev, WLC_SET_INTERFERENCE_OVERRIDE_MODE,
+ &disable_interference_mitigation,
+ sizeof(int), true);
+ if (error) {
+ WLDEV_ERROR((
+ "Failed to set interference_override: mode:%d, error:%d\n",
+ mode, error));
+ return -1;
+ }
+ return error;
+ } else if (mode == 6) {
+ /* No Blake connected, enable auto interference mitigation */
+ error = wldev_ioctl(dev, WLC_SET_INTERFERENCE_OVERRIDE_MODE,
+ &auto_interference_mitigation,
+ sizeof(int), true);
+ if (error) {
+ WLDEV_ERROR((
+ "Failed to set interference_override: mode:%d, error:%d\n",
+ mode, error));
+ return -1;
+ }
+ return error;
+ } else {
WLDEV_ERROR(("Unknown mode: %d\n", mode));
return -1;
}