osd-contiki/cpu
George Oikonomou 568973f6ec Don't flush the CC2538 RF RX FIFO unconditionally
After reading a frame, `read()` checks the status of the RX FIFO:

* If an overflow is detected, the FIFO gets flushed
* If there are more frames in the FIFO, the `cc2538_rf_process` will get polled again in order to read out the next frame.

#1550 changed `read()`, which now performs the above check for non-poll mode, but it then flushes the FIFO unconditionally. Therefore, if there are two or more frames in the FIFO, they will get flushed before the `cc2538_rf_process` has had a chance to read them out. This results in missed frames.

Reproducing this is trivial: Build a CC2538 sniffer and see how it will never show you .15.4 ACK frames. ACK reception completes while `read()` is still streaming the previous captured frame to the host. Upon completion, the FIFO will get flushed and the ACK will get lost.

This pull proposes removing the unconditional flush and reverting to the original logic for non-TSCH operation.

Pinging @thomas-ha here for input regarding poll mode.

This pull sits on top of #1778
2016-07-17 00:24:47 +01:00
..
6502 Make use of new cl65 option --print-target-path. 2016-06-03 13:30:25 +02:00
arm TSCH: use RTIMER_CLOCK_DIFF to compute estimated drift, fixing a bug that would occur on 16-bit rtimer platforms 2016-04-27 14:13:33 +02:00
avr Adding CRC valid check in rf230bb radios registermaps 2016-05-15 14:15:46 +02:00
cc26xx-cc13xx Merge pull request #1727 from g-oikonomou/contrib/cc26xx/trng 2016-07-16 23:34:53 +01:00
cc253x Removed CC_FASTCALL. 2015-11-01 18:10:17 +01:00
cc2538 Don't flush the CC2538 RF RX FIFO unconditionally 2016-07-17 00:24:47 +01:00
mc1322x TSCH: use RTIMER_CLOCK_DIFF to compute estimated drift, fixing a bug that would occur on 16-bit rtimer platforms 2016-04-27 14:13:33 +02:00
msp430 Remove include of stdio.h 2016-05-04 11:12:37 +02:00
native Change the default IPv6 prefix from aaaa::/64 to fd00::/64 2016-03-07 17:47:44 +01:00
nrf52832 nrf52dk: cpu/nrf52832 support 2016-02-15 09:37:38 +01:00
pic32 [cpu/pic32] Removed excess end group 2014-11-10 23:53:33 +01:00
rl78 The -pedantic and -stdc flags trigger a few too many warnings 2015-10-20 10:11:35 +02:00
stm32w108 Merge pull request #1344 from tsparber/fix-doxygen 2015-11-30 22:07:15 +01:00
x86 x86, galileo: Add sample non-driver protection domain 2016-04-22 08:16:43 -07:00