linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arend van Spriel <arend@broadcom.com>
To: Kalle Valo <kvalo@codeaurora.org>
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
	Hante Meuleman <meuleman@broadcom.com>,
	Arend van Spriel <arend@broadcom.com>
Subject: [PATCH 16/21] brcmfmac: keep ARP and ND offload enabled during WOWL
Date: Wed, 17 Feb 2016 11:27:05 +0100	[thread overview]
Message-ID: <1455704830-10088-17-git-send-email-arend@broadcom.com> (raw)
In-Reply-To: <1455704830-10088-1-git-send-email-arend@broadcom.com>

From: Hante Meuleman <meuleman@broadcom.com>

Currently ARP and ND (IPv6 Neigbor Discovery) offload get disabled
on entering suspend. However when firmwares support the wowl_cap
iovar then these offload routines can be kept enabled as they
will work during WOWL as well.

Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 6 ++++--
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c  | 1 +
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h  | 4 +++-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index 6d849bb..5609a79 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -3556,7 +3556,8 @@ static s32 brcmf_cfg80211_resume(struct wiphy *wiphy)
 		brcmf_report_wowl_wakeind(wiphy, ifp);
 		brcmf_fil_iovar_int_set(ifp, "wowl_clear", 0);
 		brcmf_config_wowl_pattern(ifp, "clr", NULL, 0, NULL, 0);
-		brcmf_configure_arp_nd_offload(ifp, true);
+		if (!brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_ARP_ND))
+			brcmf_configure_arp_nd_offload(ifp, true);
 		brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM,
 				      cfg->wowl.pre_pmmode);
 		cfg->wowl.active = false;
@@ -3580,7 +3581,8 @@ static void brcmf_configure_wowl(struct brcmf_cfg80211_info *cfg,
 
 	brcmf_dbg(TRACE, "Suspend, wowl config.\n");
 
-	brcmf_configure_arp_nd_offload(ifp, false);
+	if (!brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_ARP_ND))
+		brcmf_configure_arp_nd_offload(ifp, false);
 	brcmf_fil_cmd_int_get(ifp, BRCMF_C_GET_PM, &cfg->wowl.pre_pmmode);
 	brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_PM, PM_MAX);
 
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
index 098732a..bfa19bb 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
@@ -147,6 +147,7 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
 	if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL)) {
 		err = brcmf_fil_iovar_int_get(ifp, "wowl_cap", &wowl_cap);
 		if (!err) {
+			ifp->drvr->feat_flags |= BIT(BRCMF_FEAT_WOWL_ARP_ND);
 			if (wowl_cap & BRCMF_WOWL_PFN_FOUND)
 				ifp->drvr->feat_flags |=
 					BIT(BRCMF_FEAT_WOWL_ND);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h
index f940c29..a3efa35 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h
@@ -29,6 +29,7 @@
  * SCAN_RANDOM_MAC: Random MAC during (net detect) scheduled scan.
  * WOWL_ND: WOWL net detect (PNO)
  * WOWL_GTK: (WOWL) GTK rekeying offload
+ * WOWL_ARP_ND: ARP and Neighbor Discovery offload support during WOWL.
  */
 #define BRCMF_FEAT_LIST \
 	BRCMF_FEAT_DEF(MBSS) \
@@ -40,7 +41,8 @@
 	BRCMF_FEAT_DEF(TDLS) \
 	BRCMF_FEAT_DEF(SCAN_RANDOM_MAC) \
 	BRCMF_FEAT_DEF(WOWL_ND) \
-	BRCMF_FEAT_DEF(WOWL_GTK)
+	BRCMF_FEAT_DEF(WOWL_GTK) \
+	BRCMF_FEAT_DEF(WOWL_ARP_ND)
 
 /*
  * Quirks:
-- 
1.9.1


  parent reply	other threads:[~2016-02-17 10:27 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-17 10:26 [PATCH 00/21] brcmfmac: driver setting concept and other changes Arend van Spriel
2016-02-17 10:26 ` [PATCH 01/21] brcmfmac: change function name for brcmf_cfg80211_wait_vif_event_timeout() Arend van Spriel
2016-03-07 12:19   ` [01/21] brcmfmac: change function name forbrcmf_cfg80211_wait_vif_event_timeout() Kalle Valo
2016-03-07 12:49     ` Kalle Valo
2016-03-07 20:03       ` Arend Van Spriel
2016-03-08  8:46         ` Kalle Valo
2016-02-17 10:26 ` [PATCH 02/21] brcmfmac: Limit memory allocs to <64K Arend van Spriel
2016-02-17 10:26 ` [PATCH 03/21] brcmfmac: check for wowl support before enumerating feature flag Arend van Spriel
2016-02-17 10:26 ` [PATCH 04/21] brcmfmac: Configure country code using device specific settings Arend van Spriel
2016-02-17 10:26 ` [PATCH 05/21] brcmfmac: Add length checks on firmware events Arend van Spriel
2016-02-17 10:26 ` [PATCH 06/21] brcmfmac: add neighbor discovery offload ip address table configuration Arend van Spriel
2016-02-17 10:26 ` [PATCH 07/21] brcmfmac: check return for ARP ip setting iovar Arend van Spriel
2016-02-17 10:26 ` [PATCH 08/21] brcmfmac: use device memsize config from fw if defined Arend van Spriel
2016-02-17 10:26 ` [PATCH 09/21] brcmfmac: use bar1 window size as provided by pci subsystem Arend van Spriel
2016-02-17 10:26 ` [PATCH 10/21] brcmfmac: add support for the PCIE 4366c0 chip Arend van Spriel
2016-02-17 10:27 ` [PATCH 11/21] brcmfmac: remove pcie gen1 support Arend van Spriel
2016-02-17 10:27 ` [PATCH 12/21] brcmfmac: increase timeout for tx eapol Arend van Spriel
2016-02-17 10:27 ` [PATCH 13/21] brcmfmac: move module init and exit to common Arend van Spriel
2016-02-17 10:27 ` [PATCH 14/21] brcmfmac: add wowl gtk rekeying offload support Arend van Spriel
2016-02-17 10:27 ` [PATCH 15/21] brcmfmac: move platform data retrieval code to common Arend van Spriel
2016-02-17 10:27 ` Arend van Spriel [this message]
2016-02-17 10:27 ` [PATCH 17/21] brcmfmac: fix sdio sg table alloc crash Arend van Spriel
2016-02-17 10:27 ` [PATCH 18/21] brcmfmac: switch to new platform data Arend van Spriel
2016-03-04 14:49   ` Kalle Valo
2016-03-04 20:02     ` Arend Van Spriel
2016-02-17 10:27 ` [PATCH 19/21] brcmfmac: merge platform data and module paramaters Arend van Spriel
2016-02-17 10:27 ` [PATCH 20/21] brcmfmac: integrate add_keyext in add_key Arend van Spriel
2016-02-17 10:27 ` [PATCH 21/21] brcmfmac: add 802.11w management frame protection support Arend van Spriel
2016-02-25 22:26 ` [PATCH 00/21] brcmfmac: driver setting concept and other changes Rafał Miłecki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1455704830-10088-17-git-send-email-arend@broadcom.com \
    --to=arend@broadcom.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=meuleman@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).