aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Schmidt <stefan@datenfreihafen.org>2020-07-24 15:22:26 +0200
committerStefan Schmidt <stefan@datenfreihafen.org>2020-07-24 15:22:26 +0200
commit5595ad2e6ef8193499f8ec50aaf261db09ad3c9c (patch)
tree99a6a0d42cc98e07a30f1fcb9232958b570f3783
parent7708d4f3d4913795a0cdcdff0c3ffa59004387d0 (diff)
downloadwpan-next-wpanusb-original.tar.gz
net: ieee802154: wpanusb: driver ops for lbt and frame_retireswpanusb-original
-rw-r--r--drivers/net/ieee802154/wpanusb.c28
-rw-r--r--drivers/net/ieee802154/wpanusb.h2
2 files changed, 30 insertions, 0 deletions
diff --git a/drivers/net/ieee802154/wpanusb.c b/drivers/net/ieee802154/wpanusb.c
index 6d2eb7d59606b3..95e883f640f846 100644
--- a/drivers/net/ieee802154/wpanusb.c
+++ b/drivers/net/ieee802154/wpanusb.c
@@ -551,6 +551,32 @@ static int wpanusb_set_cca_mode(struct ieee802154_hw *hw,
return 0;
}
+static int wpanusb_set_lbt(struct ieee802154_hw *hw, bool on)
+{
+ struct wpanusb *wpanusb = hw->priv;
+ struct usb_device *udev = wpanusb->udev;
+ int ret = 0;
+
+ if (on)
+ ret = wpanusb_control_send(wpanusb, usb_sndctrlpipe(udev, 0),
+ SET_LBT, NULL, 0);
+
+ return ret;
+}
+
+static int wpanusb_set_frame_retries(struct ieee802154_hw *hw, s8 retries)
+{
+ struct wpanusb *wpanusb = hw->priv;
+ struct usb_device *udev = wpanusb->udev;
+ int ret;
+
+ /* FIXME pass retries onwards to device */
+ ret = wpanusb_control_send(wpanusb, usb_sndctrlpipe(udev, 0),
+ SET_FRAME_RETRIES, NULL, 0);
+
+ return ret;
+}
+
static int wpanusb_set_cca_ed_level(struct ieee802154_hw *hw, s32 mbm)
{
struct wpanusb *wpanusb = hw->priv;
@@ -592,9 +618,11 @@ static const struct ieee802154_ops wpanusb_ops = {
.stop = wpanusb_stop,
.set_hw_addr_filt = wpanusb_set_hw_addr_filt,
.set_txpower = wpanusb_set_txpower,
+ .set_lbt = wpanusb_set_lbt,
.set_cca_mode = wpanusb_set_cca_mode,
.set_cca_ed_level = wpanusb_set_cca_ed_level,
.set_csma_params = wpanusb_set_csma_params,
+ .set_frame_retries = wpanusb_set_frame_retries,
.set_promiscuous_mode = wpanusb_set_promiscuous_mode,
};
diff --git a/drivers/net/ieee802154/wpanusb.h b/drivers/net/ieee802154/wpanusb.h
index 45d8f4bcab5f3b..ef339f2e2a9732 100644
--- a/drivers/net/ieee802154/wpanusb.h
+++ b/drivers/net/ieee802154/wpanusb.h
@@ -25,6 +25,8 @@ enum wpanusb_requests {
SET_CCA_MODE,
SET_CCA_ED_LEVEL,
SET_CSMA_PARAMS,
+ SET_LBT,
+ SET_FRAME_RETRIES,
SET_PROMISCUOUS_MODE,
GET_EXTENDED_ADDR,
GET_CAPABILITIES,