diff options
author | Stefan Schmidt <stefan@datenfreihafen.org> | 2020-07-24 15:22:26 +0200 |
---|---|---|
committer | Stefan Schmidt <stefan@datenfreihafen.org> | 2020-07-24 15:22:26 +0200 |
commit | 5595ad2e6ef8193499f8ec50aaf261db09ad3c9c (patch) | |
tree | 99a6a0d42cc98e07a30f1fcb9232958b570f3783 | |
parent | 7708d4f3d4913795a0cdcdff0c3ffa59004387d0 (diff) | |
download | wpan-next-wpanusb-original.tar.gz |
net: ieee802154: wpanusb: driver ops for lbt and frame_retireswpanusb-original
-rw-r--r-- | drivers/net/ieee802154/wpanusb.c | 28 | ||||
-rw-r--r-- | drivers/net/ieee802154/wpanusb.h | 2 |
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, |