diff options
author | Srinivas Ramachandran <srinivasra@nvidia.com> | 2014-06-24 17:04:06 -0700 |
---|---|---|
committer | Mandar Padmawar <mpadmawar@nvidia.com> | 2014-07-10 02:05:17 -0700 |
commit | 502ab7d706c926e0901fbc212134e54b894f8c1f (patch) | |
tree | dc0be4fbe3510178a2a118d41cbdec92971ddb72 /drivers | |
parent | 2e1dac8152e265109c1d76d9951c4085739292b0 (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>
Diffstat (limited to 'drivers')
-rwxr-xr-x | drivers/net/wireless/bcmdhd/wldev_common.c | 29 |
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; } |