From 0fcb514644780e196b398c2ef4e8369d942d9487 Mon Sep 17 00:00:00 2001 From: Joakim Gebart <joakim.gebart@eistec.se> Date: Mon, 20 Jul 2015 11:46:07 +0200 Subject: [PATCH] drivers/ng_at86rf2xx: Prevent stuck in TX_ARET_ON when doing multiple back-to-back transmissions --- drivers/ng_at86rf2xx/ng_at86rf2xx.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/ng_at86rf2xx/ng_at86rf2xx.c b/drivers/ng_at86rf2xx/ng_at86rf2xx.c index 4f6b4f1ef9..22ffe7d382 100644 --- a/drivers/ng_at86rf2xx/ng_at86rf2xx.c +++ b/drivers/ng_at86rf2xx/ng_at86rf2xx.c @@ -215,8 +215,11 @@ void ng_at86rf2xx_tx_prepare(ng_at86rf2xx_t *dev) do { state = ng_at86rf2xx_get_status(dev); } - while (state == NG_AT86RF2XX_STATE_BUSY_RX_AACK); - dev->idle_state = state; + while (state == NG_AT86RF2XX_STATE_BUSY_RX_AACK || + state == NG_AT86RF2XX_STATE_BUSY_TX_ARET); + if (state != NG_AT86RF2XX_STATE_TX_ARET_ON) { + dev->idle_state = state; + } ng_at86rf2xx_set_state(dev, NG_AT86RF2XX_STATE_TX_ARET_ON); dev->frame_len = NG_IEEE802154_FCS_LEN; } -- GitLab