From cc3a8f187d71b66d1d8b91801f01c9f1ca48bf7c Mon Sep 17 00:00:00 2001 From: Himani Gupta Date: Wed, 30 May 2018 19:48:50 +0530 Subject: [PATCH] [7570][7872][7885][9610] wlbt:2.4GHz softAP RX throughput is low. Added RX STBC support in host.Hence improving the data rate. Change-Id: Ia53405a1414a459f62060b1c8d673ffffbacb9ba SCSC-Bug-Id: SSB-40341 Signed-off-by: Himani Gupta --- drivers/net/wireless/scsc/cfg80211_ops.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/scsc/cfg80211_ops.c b/drivers/net/wireless/scsc/cfg80211_ops.c index e36a1e93416c..630a0de569b9 100755 --- a/drivers/net/wireless/scsc/cfg80211_ops.c +++ b/drivers/net/wireless/scsc/cfg80211_ops.c @@ -2029,11 +2029,15 @@ int slsi_start_ap(struct wiphy *wiphy, struct net_device *dev, if (ndev_vif->chandef->width <= NL80211_CHAN_WIDTH_20) { /* Enable LDPC, SGI20 and SGI40 for both SoftAP & P2PGO if firmware supports */ if (cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, settings->beacon.tail, settings->beacon.tail_len)) { - u8 enforce_ht_cap = sdev->fw_ht_cap[0] & (IEEE80211_HT_CAP_LDPC_CODING | + u8 enforce_ht_cap1 = sdev->fw_ht_cap[0] & (IEEE80211_HT_CAP_LDPC_CODING | IEEE80211_HT_CAP_SGI_20 | IEEE80211_HT_CAP_SGI_40); + u8 enforce_ht_cap2 = sdev->fw_ht_cap[1] & (IEEE80211_HT_CAP_RX_STBC >> 8); + + slsi_modify_ies(dev, WLAN_EID_HT_CAPABILITY, (u8 *)settings->beacon.tail, + settings->beacon.tail_len, 2, enforce_ht_cap1); slsi_modify_ies(dev, WLAN_EID_HT_CAPABILITY, (u8 *)settings->beacon.tail, - settings->beacon.tail_len, 2, enforce_ht_cap); + settings->beacon.tail_len, 3, enforce_ht_cap2); } } else if (cfg80211_chandef_valid(ndev_vif->chandef)) { u8 *ht_operation_ie; @@ -2066,12 +2070,16 @@ int slsi_start_ap(struct wiphy *wiphy, struct net_device *dev, */ if (cfg80211_find_ie(WLAN_EID_HT_CAPABILITY, settings->beacon.tail, settings->beacon.tail_len)) { - u8 enforce_ht_cap = sdev->fw_ht_cap[0] & (IEEE80211_HT_CAP_SUP_WIDTH_20_40 | + u8 enforce_ht_cap1 = sdev->fw_ht_cap[0] & (IEEE80211_HT_CAP_SUP_WIDTH_20_40 | IEEE80211_HT_CAP_SGI_20 | IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_LDPC_CODING); + u8 enforce_ht_cap2 = sdev->fw_ht_cap[1] & (IEEE80211_HT_CAP_RX_STBC >> 8); + + slsi_modify_ies(dev, WLAN_EID_HT_CAPABILITY, (u8 *)settings->beacon.tail, + settings->beacon.tail_len, 2, enforce_ht_cap1); slsi_modify_ies(dev, WLAN_EID_HT_CAPABILITY, (u8 *)settings->beacon.tail, - settings->beacon.tail_len, 2, enforce_ht_cap); + settings->beacon.tail_len, 3, enforce_ht_cap2); } } #endif -- 2.20.1