aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Aring <alex.aring@gmail.com>2014-10-29 16:34:31 -0400
committerMarcel Holtmann <marcel@holtmann.org>2014-10-29 18:07:44 -0400
commitc8fc84ed60f0ec85ab71f6026add1523523e4bd5 (patch)
treeb37a24605df33407375aa9ee30c20a84c7c96aa8
parentab79be3eebf28be5315e43d0002ebcc05858af0b (diff)
mac802154: add hardware address filter flag
Overdue introduction for address filtering hardware flag. Furthermore we will check and set address filtering on interface up. This patch prepares that we can check if an transceiver supports address filtering option. Currently all mainline driver supports hardware address filtering. Signed-off-by: Alexander Aring <alex.aring@gmail.com> Cc: Alan Ott <alan@signal11.us> Cc: Varka Bhadram <varkabhadram@gmail.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
-rw-r--r--drivers/net/ieee802154/at86rf230.c3
-rw-r--r--drivers/net/ieee802154/cc2520.c3
-rw-r--r--drivers/net/ieee802154/mrf24j40.c3
-rw-r--r--include/net/mac802154.h2
4 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/ieee802154/at86rf230.c b/drivers/net/ieee802154/at86rf230.c
index 005458821c5d..622c1b6f7fec 100644
--- a/drivers/net/ieee802154/at86rf230.c
+++ b/drivers/net/ieee802154/at86rf230.c
@@ -1387,7 +1387,8 @@ at86rf230_detect_device(struct at86rf230_local *lp)
1387 1387
1388 lp->hw->extra_tx_headroom = 0; 1388 lp->hw->extra_tx_headroom = 0;
1389 lp->hw->flags = IEEE802154_HW_OMIT_CKSUM | IEEE802154_HW_AACK | 1389 lp->hw->flags = IEEE802154_HW_OMIT_CKSUM | IEEE802154_HW_AACK |
1390 IEEE802154_HW_TXPOWER | IEEE802154_HW_ARET; 1390 IEEE802154_HW_TXPOWER | IEEE802154_HW_ARET |
1391 IEEE802154_HW_AFILT;
1391 1392
1392 switch (part) { 1393 switch (part) {
1393 case 2: 1394 case 2:
diff --git a/drivers/net/ieee802154/cc2520.c b/drivers/net/ieee802154/cc2520.c
index c56d10c7ccfa..340671b747b1 100644
--- a/drivers/net/ieee802154/cc2520.c
+++ b/drivers/net/ieee802154/cc2520.c
@@ -654,7 +654,8 @@ static int cc2520_register(struct cc2520_private *priv)
654 654
655 /* We do support only 2.4 Ghz */ 655 /* We do support only 2.4 Ghz */
656 priv->hw->phy->channels_supported[0] = 0x7FFF800; 656 priv->hw->phy->channels_supported[0] = 0x7FFF800;
657 priv->hw->flags = IEEE802154_HW_OMIT_CKSUM | IEEE802154_HW_AACK; 657 priv->hw->flags = IEEE802154_HW_OMIT_CKSUM | IEEE802154_HW_AACK |
658 IEEE802154_HW_AFILT;
658 659
659 dev_vdbg(&priv->spi->dev, "registered cc2520\n"); 660 dev_vdbg(&priv->spi->dev, "registered cc2520\n");
660 ret = ieee802154_register_hw(priv->hw); 661 ret = ieee802154_register_hw(priv->hw);
diff --git a/drivers/net/ieee802154/mrf24j40.c b/drivers/net/ieee802154/mrf24j40.c
index 52b3d3116755..a200fa16beae 100644
--- a/drivers/net/ieee802154/mrf24j40.c
+++ b/drivers/net/ieee802154/mrf24j40.c
@@ -751,7 +751,8 @@ static int mrf24j40_probe(struct spi_device *spi)
751 devrec->hw->priv = devrec; 751 devrec->hw->priv = devrec;
752 devrec->hw->parent = &devrec->spi->dev; 752 devrec->hw->parent = &devrec->spi->dev;
753 devrec->hw->phy->channels_supported[0] = CHANNEL_MASK; 753 devrec->hw->phy->channels_supported[0] = CHANNEL_MASK;
754 devrec->hw->flags = IEEE802154_HW_OMIT_CKSUM|IEEE802154_HW_AACK; 754 devrec->hw->flags = IEEE802154_HW_OMIT_CKSUM | IEEE802154_HW_AACK |
755 IEEE802154_HW_AFILT;
755 756
756 dev_dbg(printdev(devrec), "registered mrf24j40\n"); 757 dev_dbg(printdev(devrec), "registered mrf24j40\n");
757 ret = ieee802154_register_hw(devrec->hw); 758 ret = ieee802154_register_hw(devrec->hw);
diff --git a/include/net/mac802154.h b/include/net/mac802154.h
index c5d79384847a..2f523fc1bf80 100644
--- a/include/net/mac802154.h
+++ b/include/net/mac802154.h
@@ -90,6 +90,8 @@ struct ieee802154_hw {
90#define IEEE802154_HW_CSMA_PARAMS 0x00000040 90#define IEEE802154_HW_CSMA_PARAMS 0x00000040
91/* Indicates that transceiver will support ARET frame retries setting. */ 91/* Indicates that transceiver will support ARET frame retries setting. */
92#define IEEE802154_HW_FRAME_RETRIES 0x00000080 92#define IEEE802154_HW_FRAME_RETRIES 0x00000080
93/* Indicates that transceiver will support hardware address filter setting. */
94#define IEEE802154_HW_AFILT 0x00000100
93 95
94/* This groups the most common CSMA support fields into one. */ 96/* This groups the most common CSMA support fields into one. */
95#define IEEE802154_HW_CSMA (IEEE802154_HW_CCA_MODE | \ 97#define IEEE802154_HW_CSMA (IEEE802154_HW_CCA_MODE | \