From: Kalle Valo <kalle.valo@nokia.com>
To: linux-wireless@vger.kernel.org
Subject: [PATCH] stlc45xx: add beacon filtering support
Date: Sun, 22 Mar 2009 22:02:22 +0200 [thread overview]
Message-ID: <20090322200221.26623.95692.stgit@tikku> (raw)
In-Reply-To: <20090322195619.26460.48292.stgit@tikku>
Experimental patch.
Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
---
stlc45xx.c | 40 ++++++++++++++++++++++++++++++++++------
1 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/stlc45xx.c b/stlc45xx.c
index ca7bfa2..6d5d4e5 100644
--- a/stlc45xx.c
+++ b/stlc45xx.c
@@ -1263,6 +1263,28 @@ static int stlc45xx_rx_txack(struct stlc45xx *stlc, struct sk_buff *skb)
return 0;
}
+static int stlc45xx_rx_trap(struct stlc45xx *stlc, struct sk_buff *skb)
+{
+ struct s_lm_control *control;
+ struct s_lmo_trap *trap;
+
+ stlc45xx_debug(DEBUG_FUNC, "%s", __func__);
+
+ control = (struct s_lm_control *) skb->data;
+ trap = (struct s_lmo_trap *) (control + 1);
+
+ switch (trap->event) {
+ case LM_TRAP_NO_BEACON:
+ ieee80211_beacon_loss(stlc->vif);
+ break;
+ default:
+ stlc45xx_warning("unhandled trap: %d\n", trap->event);
+ break;
+ }
+
+ return 0;
+}
+
static int stlc45xx_rx_control(struct stlc45xx *stlc, struct sk_buff *skb)
{
struct s_lm_control *control;
@@ -1276,9 +1298,11 @@ static int stlc45xx_rx_control(struct stlc45xx *stlc, struct sk_buff *skb)
case LM_OID_TX:
ret = stlc45xx_rx_txack(stlc, skb);
break;
+ case LM_OID_TRAP:
+ ret = stlc45xx_rx_trap(stlc, skb);
+ break;
case LM_OID_SETUP:
case LM_OID_SCAN:
- case LM_OID_TRAP:
case LM_OID_EDCF:
case LM_OID_KEYCACHE:
case LM_OID_PSM:
@@ -1643,7 +1667,7 @@ static void stlc45xx_setup_mac(struct stlc45xx *stlc,u16 mode,const u8 *bssid)
setup->rx_buffer = FIRMWARE_RXBUFFER_START;
setup->rx_mtu = FIRMWARE_MTU;
setup->frontend = 5;
- setup->timeout = 0;
+ setup->timeout = 2;
setup->truncate = 48896;
setup->bratemask = 0xffffffff;
setup->ref_clock = 644245094;
@@ -1827,11 +1851,13 @@ static void stlc45xx_tx_psm(struct stlc45xx *stlc, bool enable)
control->oid = LM_OID_PSM;
if (enable)
- psm->flags |= LM_PSM;
+ psm->flags |= LM_PSM | LM_PSM_MCBC |
+ LM_PSM_CHECKSUM | LM_PSM_BEACON_TIMEOUT;
psm->aid = stlc->aid;
- psm->beacon_rcpi_skip_max = 60;
+ psm->beacon_rcpi_skip_max = 200;
+ psm->rcpi_delta_threshold = 0;
psm->intervals[0].interval = 1;
psm->intervals[0].periods = 1;
@@ -1842,7 +1868,7 @@ static void stlc45xx_tx_psm(struct stlc45xx *stlc, bool enable)
psm->intervals[3].interval = 1;
psm->intervals[3].periods = 1;
- psm->nr = 0;
+ psm->nr = 10;
psm->exclude[0] = 0;
stlc45xx_debug(DEBUG_PSM, "sending LM_OID_PSM (aid %d, interval %d)",
@@ -2428,7 +2454,9 @@ static int __devinit stlc45xx_probe(struct spi_device *spi)
IEEE80211_HW_SIGNAL_DBM |
IEEE80211_HW_NOISE_DBM |
IEEE80211_HW_SUPPORTS_PS |
- IEEE80211_HW_PS_NULLFUNC_STACK;
+ IEEE80211_HW_PS_NULLFUNC_STACK |
+ IEEE80211_HW_BEACON_FILTER;
+
/* four bytes for padding */
hw->extra_tx_headroom = sizeof(struct s_lm_data_out) + 4;
next prev parent reply other threads:[~2009-03-22 20:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-22 19:56 [PATCH v4 0/5] mac80211: beacon filtering Kalle Valo
2009-03-22 19:57 ` [PATCH v4 1/5] mac80211: decrease execution of the associated timer Kalle Valo
2009-03-22 19:57 ` [PATCH v4 2/5] mac80211: track beacons separately from the rx path activity Kalle Valo
2009-03-22 19:57 ` [PATCH v4 3/5] mac80211: disable power save when scanning Kalle Valo
2009-03-22 19:57 ` [PATCH v4 4/5] cfg80211: add feature to hold bss Kalle Valo
2009-03-22 19:57 ` [PATCH v4 5/5] mac80211: add beacon filtering support Kalle Valo
2009-03-22 20:02 ` Kalle Valo [this message]
2009-03-22 20:15 ` [PATCH v4 0/5] mac80211: beacon filtering Johannes Berg
2009-03-22 20:29 ` Kalle Valo
2009-03-24 13:11 ` Johannes Berg
2009-03-25 9:01 ` Kalle Valo
2009-03-25 9:30 ` Johannes Berg
2009-03-25 19:34 ` Kalle Valo
2009-03-25 19:40 ` Johannes Berg
2009-03-25 20:08 ` Kalle Valo
2009-03-25 20:17 ` Johannes Berg
-- strict thread matches above, loose matches on Subject: below --
2009-02-23 16:37 [RFC PATCH v1 0/3] " Kalle Valo
2009-02-23 17:15 ` [PATCH] stlc45xx: add beacon filtering support Kalle Valo
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=20090322200221.26623.95692.stgit@tikku \
--to=kalle.valo@nokia.com \
--cc=linux-wireless@vger.kernel.org \
/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