summaryrefslogtreecommitdiffstats
path: root/net/mac802154
diff options
context:
space:
mode:
authorPhoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>2014-02-17 11:34:11 +0100
committerDavid S. Miller <davem@davemloft.net>2014-02-17 16:42:38 -0500
commitba08fea53a43e02b590d89224afdad976dece841 (patch)
treeb7cfcfcfc9b923360c477e55df12a501eda169b0 /net/mac802154
parent84dda3c648fd55898064d76366b14f964cdc9d16 (diff)
ieee802154: add support for CCA mode in wpan phys
The standard describes four modes of clear channel assesment: "energy above threshold", "carrier found", and the logical and/or of these two. Support for CCA mode setting is included in the at86rf230 driver, predicated for RF212 chips. Signed-off-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/mac802154')
-rw-r--r--net/mac802154/ieee802154_dev.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/net/mac802154/ieee802154_dev.c b/net/mac802154/ieee802154_dev.c
index 56338c8cfc3..4965e4ce6b5 100644
--- a/net/mac802154/ieee802154_dev.c
+++ b/net/mac802154/ieee802154_dev.c
@@ -185,6 +185,16 @@ static int mac802154_set_lbt(struct wpan_phy *phy, bool on)
return priv->ops->set_lbt(&priv->hw, on);
}
+static int mac802154_set_cca_mode(struct wpan_phy *phy, u8 mode)
+{
+ struct mac802154_priv *priv = wpan_phy_priv(phy);
+
+ if (!priv->ops->set_cca_mode)
+ return -ENOTSUPP;
+
+ return priv->ops->set_cca_mode(&priv->hw, mode);
+}
+
struct ieee802154_dev *
ieee802154_alloc_device(size_t priv_data_len, struct ieee802154_ops *ops)
{
@@ -264,6 +274,7 @@ int ieee802154_register_device(struct ieee802154_dev *dev)
priv->phy->del_iface = mac802154_del_iface;
priv->phy->set_txpower = mac802154_set_txpower;
priv->phy->set_lbt = mac802154_set_lbt;
+ priv->phy->set_cca_mode = mac802154_set_cca_mode;
rc = wpan_phy_register(priv->phy);
if (rc < 0)