summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDustin Brown <dustinb@codeaurora.org>2016-09-07 14:52:57 -0700
committerqcabuildsw <qcabuildsw@localhost>2016-09-12 21:45:56 -0700
commitd8279d2d24f1637fe351cbce59c0776adbe79c80 (patch)
tree957c2ff9d7b010ba704a937d1d6355a51dde3c46
parent62b63039007cd73ff7f7d475b5e1283de5c473dd (diff)
qcacld-3.0: Enable/Disable NS offload in FW as per user space request
When coniguring NS Offload via Cfg80211, configure firmware NS Offload to match via HDD. Change-Id: I8d95be773ff29512ebb72a8eb5e9dddbc9e675dd CRs-Fixed: 1064168
-rw-r--r--core/hdd/inc/wlan_hdd_power.h1
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.c5
-rw-r--r--core/hdd/src/wlan_hdd_power.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/core/hdd/inc/wlan_hdd_power.h b/core/hdd/inc/wlan_hdd_power.h
index a57e9b6eec7f..44780ec7bcdc 100644
--- a/core/hdd/inc/wlan_hdd_power.h
+++ b/core/hdd/inc/wlan_hdd_power.h
@@ -167,6 +167,7 @@ int wlan_hdd_cfg80211_resume_wlan(struct wiphy *wiphy);
void hdd_ipv4_notifier_work_queue(struct work_struct *work);
#ifdef WLAN_NS_OFFLOAD
+void hdd_conf_ns_offload(hdd_adapter_t *adapter, bool fenable);
void hdd_ipv6_notifier_work_queue(struct work_struct *work);
#endif
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index d66047884d92..00f4306a0cb4 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -4849,6 +4849,8 @@ __wlan_hdd_cfg80211_set_ns_offload(struct wiphy *wiphy,
int status;
struct nlattr *tb[QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_MAX + 1];
hdd_context_t *pHddCtx = wiphy_priv(wiphy);
+ struct net_device *dev = wdev->netdev;
+ hdd_adapter_t *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
ENTER_DEV(wdev->netdev);
@@ -4875,6 +4877,9 @@ __wlan_hdd_cfg80211_set_ns_offload(struct wiphy *wiphy,
pHddCtx->ns_offload_enable =
nla_get_u8(tb[QCA_WLAN_VENDOR_ATTR_ND_OFFLOAD_FLAG]);
+ /* update ns offload in case it is already enabled/disabled */
+ hdd_conf_ns_offload(adapter, pHddCtx->ns_offload_enable);
+
return 0;
}
diff --git a/core/hdd/src/wlan_hdd_power.c b/core/hdd/src/wlan_hdd_power.c
index 72d957535fe0..dafd85ec0623 100644
--- a/core/hdd/src/wlan_hdd_power.c
+++ b/core/hdd/src/wlan_hdd_power.c
@@ -508,7 +508,7 @@ static void hdd_enable_ns_offload(hdd_adapter_t *adapter)
*
* Return: nothing
*/
-static void hdd_conf_ns_offload(hdd_adapter_t *adapter, bool fenable)
+void hdd_conf_ns_offload(hdd_adapter_t *adapter, bool fenable)
{
hdd_context_t *hdd_ctx;