diff options
author | Christian Lamparter <chunkeey@web.de> | 2008-12-30 07:48:29 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-01-29 15:59:44 -0500 |
commit | 51eed9923d98477e7f7473edd60d876d1cecc8c5 (patch) | |
tree | b46faa7c3e8c5a6fadca7bf30e059d13e7563ae8 /drivers/net/wireless/p54 | |
parent | 78eb7484fadddd2860d4503b3c8c1710c1bfa1b3 (diff) |
p54: implement FIF_OTHER_BSS filter setting
According to STMicroelectronics' LMAC documentation, the P54_FILTER_TYPE_TRANSPARENT flag
"configures the receive frame filter to pass all frames without regard to type and address matching."
Signed-off-by: Christian Lamparter <chunkeey@web.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/p54')
-rw-r--r-- | drivers/net/wireless/p54/p54common.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/p54/p54common.c b/drivers/net/wireless/p54/p54common.c index 6e9f73745b6..d85a6bafd79 100644 --- a/drivers/net/wireless/p54/p54common.c +++ b/drivers/net/wireless/p54/p54common.c | |||
@@ -1579,7 +1579,8 @@ static int p54_setup_mac(struct ieee80211_hw *dev) | |||
1579 | * "TRANSPARENT and PROMISCUOUS are mutually exclusive" | 1579 | * "TRANSPARENT and PROMISCUOUS are mutually exclusive" |
1580 | * STSW45X0C LMAC API - page 12 | 1580 | * STSW45X0C LMAC API - page 12 |
1581 | */ | 1581 | */ |
1582 | if ((priv->filter_flags & FIF_PROMISC_IN_BSS) && | 1582 | if (((priv->filter_flags & FIF_PROMISC_IN_BSS) || |
1583 | (priv->filter_flags & FIF_OTHER_BSS)) && | ||
1583 | (mode != P54_FILTER_TYPE_PROMISCUOUS)) | 1584 | (mode != P54_FILTER_TYPE_PROMISCUOUS)) |
1584 | mode |= P54_FILTER_TYPE_TRANSPARENT; | 1585 | mode |= P54_FILTER_TYPE_TRANSPARENT; |
1585 | } else | 1586 | } else |
@@ -2007,12 +2008,13 @@ static void p54_configure_filter(struct ieee80211_hw *dev, | |||
2007 | struct p54_common *priv = dev->priv; | 2008 | struct p54_common *priv = dev->priv; |
2008 | 2009 | ||
2009 | *total_flags &= FIF_PROMISC_IN_BSS | | 2010 | *total_flags &= FIF_PROMISC_IN_BSS | |
2011 | FIF_OTHER_BSS | | ||
2010 | (*total_flags & FIF_PROMISC_IN_BSS) ? | 2012 | (*total_flags & FIF_PROMISC_IN_BSS) ? |
2011 | FIF_FCSFAIL : 0; | 2013 | FIF_FCSFAIL : 0; |
2012 | 2014 | ||
2013 | priv->filter_flags = *total_flags; | 2015 | priv->filter_flags = *total_flags; |
2014 | 2016 | ||
2015 | if (changed_flags & FIF_PROMISC_IN_BSS) | 2017 | if (changed_flags & (FIF_PROMISC_IN_BSS | FIF_OTHER_BSS)) |
2016 | p54_setup_mac(dev); | 2018 | p54_setup_mac(dev); |
2017 | } | 2019 | } |
2018 | 2020 | ||