diff --git a/drivers/mrf24j40/mrf24j40_getset.c b/drivers/mrf24j40/mrf24j40_getset.c index 7780bb9c031a0d37147404341671f2cbb2621b4f..ce8dca98cf40874ebafd5da26697bec1b093becb 100644 --- a/drivers/mrf24j40/mrf24j40_getset.c +++ b/drivers/mrf24j40/mrf24j40_getset.c @@ -131,14 +131,12 @@ void mrf24j40_set_addr_short(mrf24j40_t *dev, uint16_t addr) #ifdef MODULE_SIXLOWPAN /* https://tools.ietf.org/html/rfc4944#section-12 requires the first bit to * 0 for unicast addresses */ - dev->netdev.short_addr[0] &= 0x7F; + addr &= 0xFF7F; #endif - dev->netdev.short_addr[0] = (uint8_t)(addr); - dev->netdev.short_addr[1] = (uint8_t)(addr >> 8); mrf24j40_reg_write_short(dev, MRF24J40_REG_SADRL, - dev->netdev.short_addr[1]); + (uint8_t)(addr >> 8)); mrf24j40_reg_write_short(dev, MRF24J40_REG_SADRH, - dev->netdev.short_addr[0]); + (uint8_t)addr); } uint64_t mrf24j40_get_addr_long(mrf24j40_t *dev) @@ -156,7 +154,6 @@ uint64_t mrf24j40_get_addr_long(mrf24j40_t *dev) void mrf24j40_set_addr_long(mrf24j40_t *dev, uint64_t addr) { for (int i = 0; i < 8; i++) { - dev->netdev.long_addr[i] = (uint8_t)(addr >> (i * 8)); mrf24j40_reg_write_short(dev, (MRF24J40_REG_EADR0 + i), (addr >> ((7 - i) * 8))); } diff --git a/drivers/mrf24j40/mrf24j40_netdev.c b/drivers/mrf24j40/mrf24j40_netdev.c index 8da46fff32057dcda2d2c5c9bb501baff2cd1d95..be1d89226d9e2d81958f5fb3ba427276ab855ada 100644 --- a/drivers/mrf24j40/mrf24j40_netdev.c +++ b/drivers/mrf24j40/mrf24j40_netdev.c @@ -371,7 +371,7 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len) } else { mrf24j40_set_addr_short(dev, *((const uint16_t *)val)); - /* don't set res to set netdev_ieee802154_t::short_addr */ + res = sizeof(uint16_t); } break; @@ -381,7 +381,7 @@ static int _set(netdev_t *netdev, netopt_t opt, const void *val, size_t len) } else { mrf24j40_set_addr_long(dev, *((const uint64_t *)val)); - /* don't set res to set netdev_ieee802154_t::long_addr */ + res = sizeof(uint64_t); } break;