From 93da3ce47a107accc92b54ca7fe5138d9ae357ea Mon Sep 17 00:00:00 2001
From: Joakim Gebart <joakim.gebart@eistec.se>
Date: Mon, 20 Jul 2015 11:47:15 +0200
Subject: [PATCH] drivers/ng_at86rf2xx: Go to idle state before calling
 TX_COMPLETE event handler

---
 drivers/ng_at86rf2xx/ng_at86rf2xx_netdev.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/ng_at86rf2xx/ng_at86rf2xx_netdev.c b/drivers/ng_at86rf2xx/ng_at86rf2xx_netdev.c
index c6e764a2b0..4299c9fac4 100644
--- a/drivers/ng_at86rf2xx/ng_at86rf2xx_netdev.c
+++ b/drivers/ng_at86rf2xx/ng_at86rf2xx_netdev.c
@@ -694,6 +694,7 @@ static void _isr_event(ng_netdev_t *device, uint32_t event_type)
 
     /* read (consume) device status */
     irq_mask = ng_at86rf2xx_reg_read(dev, NG_AT86RF2XX_REG__IRQ_STATUS);
+
     state = ng_at86rf2xx_get_status(dev);
 
     if (irq_mask & NG_AT86RF2XX_IRQ_STATUS_MASK__RX_START) {
@@ -709,10 +710,10 @@ static void _isr_event(ng_netdev_t *device, uint32_t event_type)
             _receive_data(dev);
         }
         else if (state == NG_AT86RF2XX_STATE_TX_ARET_ON) {
+            ng_at86rf2xx_set_state(dev, dev->idle_state);
             if (dev->event_cb && (dev->options & NG_AT86RF2XX_OPT_TELL_TX_END)) {
                 dev->event_cb(NETDEV_EVENT_TX_COMPLETE, NULL);
             }
-            ng_at86rf2xx_set_state(dev, dev->idle_state);
             DEBUG("[ng_at86rf2xx] EVT - TX_END\n");
         }
     }
-- 
GitLab