diff --git a/drivers/at86rf215/at86rf215.c b/drivers/at86rf215/at86rf215.c index b80751a9b1c00..916b1c90a18be 100644 --- a/drivers/at86rf215/at86rf215.c +++ b/drivers/at86rf215/at86rf215.c @@ -250,6 +250,10 @@ static void _block_while_busy(at86rf215_t *dev) static void at86rf215_block_while_busy(at86rf215_t *dev) { + if (IS_ACTIVE(MODULE_NETIF_PKTQ)) { + return; + } + if (_tx_ongoing(dev)) { DEBUG("[at86rf215] Block while TXing\n"); _block_while_busy(dev); @@ -262,7 +266,12 @@ int at86rf215_tx_prepare(at86rf215_t *dev) return -EAGAIN; } - at86rf215_block_while_busy(dev); + if (IS_ACTIVE(MODULE_NETIF_PKTQ) && _tx_ongoing(dev)) { + return -EBUSY; + } else { + at86rf215_block_while_busy(dev); + } + dev->tx_frame_len = IEEE802154_FCS_LEN; return 0;