From 6b17d5ccc97abd949dfcbf52098151ac67537edc Mon Sep 17 00:00:00 2001 From: Anthony Merlino Date: Mon, 26 Jun 2017 01:31:01 -0400 Subject: [PATCH] ieee802154: Minor changes to align closer with coding standard --- drivers/wireless/ieee802154/mrf24j40.c | 173 +++++++++--------- .../wireless/ieee802154/ieee802154_radio.h | 16 +- wireless/ieee802154/mac802154.c | 4 +- wireless/ieee802154/mac802154_assoc.c | 6 +- wireless/ieee802154/mac802154_getset.c | 4 +- wireless/ieee802154/mac802154_internal.h | 19 +- wireless/ieee802154/mac802154_reset.c | 4 +- wireless/ieee802154/mac802154_scan.c | 4 + wireless/ieee802154/mac802154_start.c | 4 +- 9 files changed, 114 insertions(+), 120 deletions(-) diff --git a/drivers/wireless/ieee802154/mrf24j40.c b/drivers/wireless/ieee802154/mrf24j40.c index b6259099c1..084b59cd2d 100644 --- a/drivers/wireless/ieee802154/mrf24j40.c +++ b/drivers/wireless/ieee802154/mrf24j40.c @@ -201,7 +201,6 @@ static uint8_t mrf24j40_getreg(FAR struct spi_dev_s *spi, uint32_t addr); static int mrf24j40_resetrfsm(FAR struct mrf24j40_radio_s *dev); static int mrf24j40_pacontrol(FAR struct mrf24j40_radio_s *dev, int mode); -static int mrf24j40_initialize(FAR struct mrf24j40_radio_s *dev); static int mrf24j40_setrxmode(FAR struct mrf24j40_radio_s *dev, int mode); static int mrf24j40_regdump(FAR struct mrf24j40_radio_s *dev); @@ -252,20 +251,18 @@ static void mrf24j40_mactimer(FAR struct mrf24j40_radio_s *dev, int numsymbols); static int mrf24j40_bind(FAR struct ieee802154_radio_s *radio, FAR struct ieee802154_radiocb_s *radiocb); -static int mrf24j40_txnotify(FAR struct ieee802154_radio_s *radio, bool gts); -static int mrf24j40_txdelayed(FAR struct ieee802154_radio_s *radio, - FAR struct ieee802154_txdesc_s *txdesc, - uint32_t symboldelay); -static int mrf24j40_reset_attrs(FAR struct ieee802154_radio_s *radio); -static int mrf24j40_get_attr(FAR struct ieee802154_radio_s *radio, +static int mrf24j40_reset(FAR struct ieee802154_radio_s *radio); +static int mrf24j40_getattr(FAR struct ieee802154_radio_s *radio, enum ieee802154_attr_e attr, FAR union ieee802154_attr_u *attrval); -static int mrf24j40_set_attr(FAR struct ieee802154_radio_s *radio, +static int mrf24j40_setattr(FAR struct ieee802154_radio_s *radio, enum ieee802154_attr_e attr, FAR const union ieee802154_attr_u *attrval); +static int mrf24j40_txnotify(FAR struct ieee802154_radio_s *radio, bool gts); +static int mrf24j40_txdelayed(FAR struct ieee802154_radio_s *radio, + FAR struct ieee802154_txdesc_s *txdesc, + uint32_t symboldelay); static int mrf24j40_rxenable(FAR struct ieee802154_radio_s *dev, bool enable); -static int mrf24j40_req_rxenable(FAR struct ieee802154_radio_s *radio, - FAR struct ieee802154_rxenable_req_s *req); static int mrf24j40_beaconstart(FAR struct ieee802154_radio_s *radio, FAR const struct ieee802154_superframespec_s *sfspec, FAR struct ieee802154_beaconframe_s *beacon); @@ -437,18 +434,69 @@ static int mrf24j40_txdelayed(FAR struct ieee802154_radio_s *radio, return OK; } -static int mrf24j40_reset_attrs(FAR struct ieee802154_radio_s *radio) +static int mrf24j40_reset(FAR struct ieee802154_radio_s *radio) { FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio; + struct ieee802154_cca_s cca; + + /* Software reset */ + + mrf24j40_setreg(dev->spi, MRF24J40_SOFTRST , 0x07); /* 00000111 Reset */ + while(mrf24j40_getreg(dev->spi, MRF24J40_SOFTRST) & 0x07); + + /* Apply recommended settings */ + + mrf24j40_setreg(dev->spi, MRF24J40_PACON2 , 0x98); /* 10011000 Enable FIFO (default), TXONTS=6 (recommended), TXONT<8:7>=0 */ + mrf24j40_setreg(dev->spi, MRF24J40_TXSTBL , 0x95); /* 10010101 set the SIFS period. RFSTBL=9, MSIFS=5, aMinSIFSPeriod=14 (min 12) */ + mrf24j40_setreg(dev->spi, MRF24J40_TXPEND , 0x7C); /* 01111100 set the LIFS period, MLIFS=1Fh=31 aMinLIFSPeriod=40 (min 40) */ + mrf24j40_setreg(dev->spi, MRF24J40_TXTIME , 0x30); /* 00110000 set the turnaround time, TURNTIME=3 aTurnAroundTime=12 */ + mrf24j40_setreg(dev->spi, MRF24J40_RFCON1 , 0x02); /* 00000010 VCO optimization, recommended value */ + mrf24j40_setreg(dev->spi, MRF24J40_RFCON2 , 0x80); /* 10000000 Enable PLL */ + mrf24j40_setreg(dev->spi, MRF24J40_RFCON6 , 0x90); /* 10010000 TX filter enable, fast 20M recovery, No bat monitor*/ + mrf24j40_setreg(dev->spi, MRF24J40_RFCON7 , 0x80); /* 10000000 Sleep clock on internal 100 kHz */ + mrf24j40_setreg(dev->spi, MRF24J40_RFCON8 , 0x10); /* 00010000 VCO control bit, as recommended */ + mrf24j40_setreg(dev->spi, MRF24J40_SLPCON1, 0x01); /* 00000001 no CLKOUT, default divisor */ + mrf24j40_setreg(dev->spi, MRF24J40_BBREG6 , 0x40); /* 01000000 Append RSSI to rx packets */ + + /* Set this in reset since it can exist for all device modes. See pg 101 */ + + mrf24j40_setreg(dev->spi, MRF24J40_FRMOFFSET, 0x15); + + mrf24j40_setchannel(dev, 11); + mrf24j40_setpanid(dev, g_allones); + mrf24j40_setsaddr(dev, g_allones); + mrf24j40_seteaddr(dev, g_allones); dev->max_frame_waittime = MRF24J40_DEFAULT_MAX_FRAME_WAITTIME; + /* Default device params */ + + cca.use_ed = 1; + cca.use_cs = 0; + cca.edth = 0x60; /* CCA mode ED, no carrier sense, recommenced ED threshold -69 dBm */ + mrf24j40_setcca(dev, &cca); + + mrf24j40_setrxmode(dev, MRF24J40_RXMODE_NORMAL); + + mrf24j40_settxpower(dev, 0); /*16. Set transmitter power .*/ + + mrf24j40_pacontrol(dev, MRF24J40_PA_AUTO); + + dev->rxenabled = false; + + /* For now, we want to always just have the frame pending bit set when + * acknowledging a Data Request command. The standard says that the coordinator + * can do this if it needs time to figure out whether it has data or not + */ + + mrf24j40_setreg(dev->spi, MRF24J40_ACKTMOUT, 0x39 | MRF24J40_ACKTMOUT_DRPACK); + return OK; } -static int mrf24j40_get_attr(FAR struct ieee802154_radio_s *radio, - enum ieee802154_attr_e attr, - FAR union ieee802154_attr_u *attrval) +static int mrf24j40_getattr(FAR struct ieee802154_radio_s *radio, + enum ieee802154_attr_e attr, + FAR union ieee802154_attr_u *attrval) { FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio; int ret; @@ -489,9 +537,9 @@ static int mrf24j40_get_attr(FAR struct ieee802154_radio_s *radio, return ret; } -static int mrf24j40_set_attr(FAR struct ieee802154_radio_s *radio, - enum ieee802154_attr_e attr, - FAR const union ieee802154_attr_u *attrval) +static int mrf24j40_setattr(FAR struct ieee802154_radio_s *radio, + enum ieee802154_attr_e attr, + FAR const union ieee802154_attr_u *attrval) { FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio; int ret; @@ -567,16 +615,9 @@ static int mrf24j40_set_attr(FAR struct ieee802154_radio_s *radio, ret = IEEE802154_STATUS_UNSUPPORTED_ATTRIBUTE; break; } - return ret; } -static int mrf24j40_req_rxenable(FAR struct ieee802154_radio_s *radio, - FAR struct ieee802154_rxenable_req_s *req) -{ - return -ENOTTY; -} - static int mrf24j40_beaconstart(FAR struct ieee802154_radio_s *radio, FAR const struct ieee802154_superframespec_s *sfspec, FAR struct ieee802154_beaconframe_s *beacon) @@ -727,6 +768,21 @@ static int mrf24j40_sfupdate(FAR struct ieee802154_radio_s *radio, FAR struct mrf24j40_radio_s *dev = (FAR struct mrf24j40_radio_s *)radio; int reg; + /* If we are operating on a beacon-enabled network, use slotted CSMA */ + + if (sfspec->beaconorder < 15) + { + reg = mrf24j40_getreg(dev->spi, MRF24J40_TXMCR); + reg |= MRF24J40_TXMCR_SLOTTED; + mrf24j40_setreg(dev->spi, MRF24J40_TXMCR, reg); + } + else + { + reg = mrf24j40_getreg(dev->spi, MRF24J40_TXMCR); + reg &= ~MRF24J40_TXMCR_SLOTTED; + mrf24j40_setreg(dev->spi, MRF24J40_TXMCR, reg); + } + reg = mrf24j40_getreg(dev->spi, MRF24J40_RXMCR); if (sfspec->pancoord) @@ -1080,38 +1136,6 @@ static int mrf24j40_pacontrol(FAR struct mrf24j40_radio_s *dev, int mode) return OK; } -/**************************************************************************** - * Name: mrf24j40_initialize - * - * Description: - * Reset the device and put in in order of operation - * - ****************************************************************************/ - -static int mrf24j40_initialize(FAR struct mrf24j40_radio_s *dev) -{ - /* Software reset */ - - mrf24j40_setreg(dev->spi, MRF24J40_SOFTRST , 0x07); /* 00000111 Reset */ - while(mrf24j40_getreg(dev->spi, MRF24J40_SOFTRST) & 0x07); - - /* Apply recommended settings */ - - mrf24j40_setreg(dev->spi, MRF24J40_PACON2 , 0x98); /* 10011000 Enable FIFO (default), TXONTS=6 (recommended), TXONT<8:7>=0 */ - mrf24j40_setreg(dev->spi, MRF24J40_TXSTBL , 0x95); /* 10010101 set the SIFS period. RFSTBL=9, MSIFS=5, aMinSIFSPeriod=14 (min 12) */ - mrf24j40_setreg(dev->spi, MRF24J40_TXPEND , 0x7C); /* 01111100 set the LIFS period, MLIFS=1Fh=31 aMinLIFSPeriod=40 (min 40) */ - mrf24j40_setreg(dev->spi, MRF24J40_TXTIME , 0x30); /* 00110000 set the turnaround time, TURNTIME=3 aTurnAroundTime=12 */ - mrf24j40_setreg(dev->spi, MRF24J40_RFCON1 , 0x02); /* 00000010 VCO optimization, recommended value */ - mrf24j40_setreg(dev->spi, MRF24J40_RFCON2 , 0x80); /* 10000000 Enable PLL */ - mrf24j40_setreg(dev->spi, MRF24J40_RFCON6 , 0x90); /* 10010000 TX filter enable, fast 20M recovery, No bat monitor*/ - mrf24j40_setreg(dev->spi, MRF24J40_RFCON7 , 0x80); /* 10000000 Sleep clock on internal 100 kHz */ - mrf24j40_setreg(dev->spi, MRF24J40_RFCON8 , 0x10); /* 00010000 VCO control bit, as recommended */ - mrf24j40_setreg(dev->spi, MRF24J40_SLPCON1, 0x01); /* 00000001 no CLKOUT, default divisor */ - mrf24j40_setreg(dev->spi, MRF24J40_BBREG6 , 0x40); /* 01000000 Append RSSI to rx packets */ - - return OK; -} - /**************************************************************************** * Name: mrf24j40_setrxmode * @@ -2155,7 +2179,6 @@ FAR struct ieee802154_radio_s *mrf24j40_init(FAR struct spi_dev_s *spi, FAR const struct mrf24j40_lower_s *lower) { FAR struct mrf24j40_radio_s *dev; - struct ieee802154_cca_s cca; dev = kmm_zalloc(sizeof(struct mrf24j40_radio_s)); if (dev == NULL) @@ -2178,13 +2201,12 @@ FAR struct ieee802154_radio_s *mrf24j40_init(FAR struct spi_dev_s *spi, sem_init(&dev->exclsem, 0, 1); dev->radio.bind = mrf24j40_bind; + dev->radio.reset = mrf24j40_reset; + dev->radio.getattr = mrf24j40_getattr; + dev->radio.setattr = mrf24j40_setattr; dev->radio.txnotify = mrf24j40_txnotify; dev->radio.txdelayed = mrf24j40_txdelayed; - dev->radio.reset_attrs = mrf24j40_reset_attrs; - dev->radio.get_attr = mrf24j40_get_attr; - dev->radio.set_attr = mrf24j40_set_attr; dev->radio.rxenable = mrf24j40_rxenable; - dev->radio.req_rxenable = mrf24j40_req_rxenable; dev->radio.beaconstart = mrf24j40_beaconstart; dev->radio.beaconupdate = mrf24j40_beaconupdate; dev->radio.beaconstop = mrf24j40_beaconstop; @@ -2193,34 +2215,7 @@ FAR struct ieee802154_radio_s *mrf24j40_init(FAR struct spi_dev_s *spi, dev->lower = lower; dev->spi = spi; - - dev->rxenabled = false; - mrf24j40_initialize(dev); - - mrf24j40_setchannel(dev, 11); - mrf24j40_setpanid(dev, g_allones); - mrf24j40_setsaddr(dev, g_allones); - mrf24j40_seteaddr(dev, g_allones); - - /* Default device params */ - - cca.use_ed = 1; - cca.use_cs = 0; - cca.edth = 0x60; /* CCA mode ED, no carrier sense, recommenced ED threshold -69 dBm */ - mrf24j40_setcca(dev, &cca); - - mrf24j40_setrxmode(dev, MRF24J40_RXMODE_NORMAL); - - mrf24j40_settxpower(dev, 0); /*16. Set transmitter power .*/ - - mrf24j40_pacontrol(dev, MRF24J40_PA_AUTO); - - /* For now, we want to always just have the frame pending bit set when - * acknowledging a Data Request command. The standard says that the coordinator - * can do this if it needs time to figure out whether it has data or not - */ - - mrf24j40_setreg(dev->spi, MRF24J40_ACKTMOUT, 0x39 | MRF24J40_ACKTMOUT_DRPACK); + mrf24j40_reset(&dev->radio); dev->lower->enable(dev->lower, true); return &dev->radio; diff --git a/include/nuttx/wireless/ieee802154/ieee802154_radio.h b/include/nuttx/wireless/ieee802154/ieee802154_radio.h index 8f851ffe72..b6e802e0ea 100644 --- a/include/nuttx/wireless/ieee802154/ieee802154_radio.h +++ b/include/nuttx/wireless/ieee802154/ieee802154_radio.h @@ -119,20 +119,18 @@ struct ieee802154_radio_s { CODE int (*bind) (FAR struct ieee802154_radio_s *radio, FAR struct ieee802154_radiocb_s *radiocb); + CODE int (*reset) (FAR struct ieee802154_radio_s *radio); + CODE int (*getattr) (FAR struct ieee802154_radio_s *radio, + enum ieee802154_attr_e , + FAR union ieee802154_attr_u *attrval); + CODE int (*setattr) (FAR struct ieee802154_radio_s *radio, + enum ieee802154_attr_e , + FAR const union ieee802154_attr_u *attrval); CODE int (*txnotify)(FAR struct ieee802154_radio_s *radio, bool gts); CODE int (*txdelayed)(FAR struct ieee802154_radio_s *radio, FAR struct ieee802154_txdesc_s *txdesc, uint32_t symboldelay); - CODE int (*reset_attrs) (FAR struct ieee802154_radio_s *radio); - CODE int (*get_attr) (FAR struct ieee802154_radio_s *radio, - enum ieee802154_attr_e , - FAR union ieee802154_attr_u *attrval); - CODE int (*set_attr) (FAR struct ieee802154_radio_s *radio, - enum ieee802154_attr_e , - FAR const union ieee802154_attr_u *attrval); CODE int (*rxenable) (FAR struct ieee802154_radio_s *radio, bool enable); - CODE int (*req_rxenable)(FAR struct ieee802154_radio_s *radio, - FAR struct ieee802154_rxenable_req_s *req); CODE int (*beaconstart)(FAR struct ieee802154_radio_s *radio, FAR const struct ieee802154_superframespec_s *sfspec, FAR struct ieee802154_beaconframe_s *beacon); diff --git a/wireless/ieee802154/mac802154.c b/wireless/ieee802154/mac802154.c index 072e439d1d..7e0935025c 100644 --- a/wireless/ieee802154/mac802154.c +++ b/wireless/ieee802154/mac802154.c @@ -1726,7 +1726,7 @@ static uint32_t mac802154_symtoticks(FAR struct ieee802154_privmac_s *priv, * get overall times. */ - priv->radio->get_attr(priv->radio, IEEE802154_ATTR_PHY_SYMBOL_DURATION, + priv->radio->getattr(priv->radio, IEEE802154_ATTR_PHY_SYMBOL_DURATION, &attrval); /* After this step, ret represents microseconds */ @@ -1912,7 +1912,7 @@ MACHANDLE mac802154_create(FAR struct ieee802154_radio_s *radiodev) } IEEE802154_EADDRCOPY(mac->addr.eaddr, eaddr); - mac->radio->set_attr(mac->radio, IEEE802154_ATTR_MAC_EADDR, + mac->radio->setattr(mac->radio, IEEE802154_ATTR_MAC_EADDR, (union ieee802154_attr_u *)&eaddr[0]); return (MACHANDLE)mac; diff --git a/wireless/ieee802154/mac802154_assoc.c b/wireless/ieee802154/mac802154_assoc.c index 1df36a60ee..ff198b7e9b 100644 --- a/wireless/ieee802154/mac802154_assoc.c +++ b/wireless/ieee802154/mac802154_assoc.c @@ -127,8 +127,6 @@ int mac802154_req_associate(MACHANDLE mac, mac802154_setcoordaddr(priv, &req->coordaddr); - /* TODO: Need to send coordinator address to radio layer */ - /* Copy the coordinator PAN ID to our PAN ID */ mac802154_setpanid(priv, req->coordaddr.panid); @@ -146,7 +144,7 @@ int mac802154_req_associate(MACHANDLE mac, */ rxonidle = req->capabilities.rxonidle; - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_RX_ON_WHEN_IDLE, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_RX_ON_WHEN_IDLE, (FAR const union ieee802154_attr_u *)&rxonidle); /* Allocate an IOB to put the frame in */ @@ -709,7 +707,7 @@ void mac802154_rx_assocresp(FAR struct ieee802154_privmac_s *priv, /* Inform the radio of the address change */ - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_SADDR, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_SADDR, (FAR union ieee802154_attr_u *)priv->addr.saddr); /* A Short Address field value equal to 0xfffe shall indicate that the device diff --git a/wireless/ieee802154/mac802154_getset.c b/wireless/ieee802154/mac802154_getset.c index b1c29f7191..1a43125cb6 100644 --- a/wireless/ieee802154/mac802154_getset.c +++ b/wireless/ieee802154/mac802154_getset.c @@ -106,7 +106,7 @@ int mac802154_req_get(MACHANDLE mac, enum ieee802154_attr_e attr, * it along. */ - ret = priv->radio->get_attr(priv->radio, attr, attrval); + ret = priv->radio->getattr(priv->radio, attr, attrval); break; } @@ -180,7 +180,7 @@ int mac802154_req_set(MACHANDLE mac, enum ieee802154_attr_e attr, * it along. */ - ret = priv->radio->set_attr(priv->radio, attr, attrval); + ret = priv->radio->setattr(priv->radio, attr, attrval); } break; } diff --git a/wireless/ieee802154/mac802154_internal.h b/wireless/ieee802154/mac802154_internal.h index aa19f79f60..be3cb8ebcd 100644 --- a/wireless/ieee802154/mac802154_internal.h +++ b/wireless/ieee802154/mac802154_internal.h @@ -156,7 +156,6 @@ struct ieee802154_privmac_s sem_t exclsem; /* Support exclusive access */ uint8_t nclients; /* Number of notification clients */ - uint8_t nnotif; /* Number of remaining notifications */ /* Only support a single command at any given time. As of now I see no * condition where you need to have more than one command frame simultaneously @@ -642,14 +641,14 @@ static inline void mac802154_rxdisable(FAR struct ieee802154_privmac_s *priv) static inline void mac802154_setchannel(FAR struct ieee802154_privmac_s *priv, uint8_t channel) { - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CHAN, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CHAN, (FAR const union ieee802154_attr_u *)&channel); } static inline void mac802154_setchpage(FAR struct ieee802154_privmac_s *priv, uint8_t chpage) { - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE, (FAR const union ieee802154_attr_u *)&chpage); } @@ -657,7 +656,7 @@ static inline void mac802154_setpanid(FAR struct ieee802154_privmac_s *priv, const uint8_t *panid) { IEEE802154_PANIDCOPY(priv->addr.panid, panid); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_PANID, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_PANID, (FAR const union ieee802154_attr_u *)panid); } @@ -665,7 +664,7 @@ static inline void mac802154_setsaddr(FAR struct ieee802154_privmac_s *priv, const uint8_t *saddr) { IEEE802154_SADDRCOPY(priv->addr.saddr, saddr); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_SADDR, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_SADDR, (FAR const union ieee802154_attr_u *)saddr); } @@ -673,7 +672,7 @@ static inline void mac802154_seteaddr(FAR struct ieee802154_privmac_s *priv, const uint8_t *eaddr) { IEEE802154_EADDRCOPY(priv->addr.eaddr, eaddr); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_EADDR, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_EADDR, (FAR const union ieee802154_attr_u *)eaddr); } @@ -681,7 +680,7 @@ static inline void mac802154_setcoordsaddr(FAR struct ieee802154_privmac_s *priv const uint8_t *saddr) { IEEE802154_SADDRCOPY(priv->pandesc.coordaddr.saddr, saddr); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR, (FAR const union ieee802154_attr_u *)saddr); } @@ -689,7 +688,7 @@ static inline void mac802154_setcoordeaddr(FAR struct ieee802154_privmac_s *priv const uint8_t *eaddr) { IEEE802154_EADDRCOPY(priv->pandesc.coordaddr.eaddr, eaddr); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR, (FAR const union ieee802154_attr_u *)eaddr); } @@ -697,9 +696,9 @@ static inline void mac802154_setcoordaddr(FAR struct ieee802154_privmac_s *priv, FAR const struct ieee802154_addr_s *addr) { memcpy(&priv->pandesc.coordaddr, addr, sizeof(struct ieee802154_addr_s)); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_EADDR, (FAR const union ieee802154_attr_u *)addr->eaddr); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_MAC_COORD_SADDR, (FAR const union ieee802154_attr_u *)addr->saddr); } diff --git a/wireless/ieee802154/mac802154_reset.c b/wireless/ieee802154/mac802154_reset.c index 759a44e31e..870a4bbe1b 100644 --- a/wireless/ieee802154/mac802154_reset.c +++ b/wireless/ieee802154/mac802154_reset.c @@ -125,14 +125,14 @@ int mac802154_req_reset(MACHANDLE mac, bool rst_pibattr) IEEE802154_SADDRCOPY(priv->addr.saddr, &IEEE802154_SADDR_UNSPEC); IEEE802154_EADDRCOPY(priv->addr.eaddr, &IEEE802154_EADDR_UNSPEC); - priv->radio->reset_attrs(priv->radio); + priv->radio->reset(priv->radio); /* The radio is in control of certain attributes, but we keep a mirror * for easy access. Copy in the radio's values now that they've been * reset. */ - priv->radio->get_attr(priv->radio, IEEE802154_ATTR_MAC_MAX_FRAME_WAITTIME, + priv->radio->getattr(priv->radio, IEEE802154_ATTR_MAC_MAX_FRAME_WAITTIME, &attr); priv->max_frame_waittime = attr.mac.max_frame_waittime; diff --git a/wireless/ieee802154/mac802154_scan.c b/wireless/ieee802154/mac802154_scan.c index d333d72d3c..819ac141f8 100644 --- a/wireless/ieee802154/mac802154_scan.c +++ b/wireless/ieee802154/mac802154_scan.c @@ -93,6 +93,8 @@ int mac802154_req_scan(MACHANDLE mac, FAR struct ieee802154_scan_req_s *req) goto errout; } + wlinfo("MLME: SCAN.request received\n"); + /* Need to get access to the ops semaphore since operations are serial. This * must be done before locking the MAC so that we don't hold the MAC */ @@ -126,6 +128,8 @@ int mac802154_req_scan(MACHANDLE mac, FAR struct ieee802154_scan_req_s *req) { case IEEE802154_SCANTYPE_PASSIVE: { + wlinfo("MLME: Starting Passive scan\n"); + /* Set the channel to the first channel in the list */ mac802154_setchannel(priv, req->channels[priv->scanindex]); diff --git a/wireless/ieee802154/mac802154_start.c b/wireless/ieee802154/mac802154_start.c index b3675393e2..5a9c4379ea 100644 --- a/wireless/ieee802154/mac802154_start.c +++ b/wireless/ieee802154/mac802154_start.c @@ -101,9 +101,9 @@ int mac802154_req_start(MACHANDLE mac, FAR struct ieee802154_start_req_s *req) /* Tell the radio layer to set the channel number and channel page */ - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CHAN, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CHAN, (FAR const union ieee802154_attr_u *)&req->chan); - priv->radio->set_attr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE, + priv->radio->setattr(priv->radio, IEEE802154_ATTR_PHY_CURRENT_PAGE, (FAR const union ieee802154_attr_u *)&req->chpage); /* The address used in the Source Address field of the beacon frame shall