zephyr/drivers
Johan Hedberg b76426de6f Bluetooth: Fix never yielding if rx_queue always contains data
It's common for the rx_queue to be written to in ISR context (by the
HCI driver). This means that if there's lots of data coming in from
the driver the rx_queue might get empty very rarely. With the current
code this means that the rx fiber might end up not yielding to other
higher priority runnable fibers for long durations (as long as there's
data in the rx_queue).

To solve the issue, call fiber_yield() explicitly after each processed
buffer from the rx_queue. This way we give other fibers a chance to
run even if there's a heavy flow of data from the Bluetooth
controller.

Change-Id: Ib3dbe6536a62360ad5153ed12eee8489645e4109
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
2016-06-07 21:38:20 +03:00
..
adc adc: qmsi: remove obsolete usage of QM_RC_OK 2016-06-02 12:21:10 -04:00
aio qmsi: update qmsi to 1.1 alpha 2016-05-23 21:30:04 +00:00
bluetooth Bluetooth: Fix never yielding if rx_queue always contains data 2016-06-07 21:38:20 +03:00
clock_control Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
console console: shell: Reduce stack usage of tab completion 2016-06-02 13:28:15 +00:00
counter Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
ethernet eth: Fix spurious interrupt issues 2016-05-26 15:12:25 +00:00
flash Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
gpio drivers: gpio: Fix a gpio port read bug 2016-06-03 16:36:25 +00:00
grove Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
i2c i2c: qmsi: use I2C_SPEED_FAST_PLUS from API 2016-06-02 13:46:44 -04:00
ieee802154 Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
interrupt_controller Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
ipm ipm: convert to use DEVICE_AND_API_INIT() 2016-04-15 22:06:16 +00:00
pci pci: fix typo in code example 2016-05-30 12:54:20 +00:00
pinmux More cleanup whitespace in Kconfig files 2016-06-01 22:39:54 +00:00
pwm drivers: PWM QMSI dev name fix 2016-05-26 22:35:33 +00:00
random Cleanup whitespace in Kconfig files 2016-05-25 13:28:07 -05:00
rtc qmsi: update qmsi to 1.1 alpha 2016-05-23 21:30:04 +00:00
sensor More cleanup whitespace in Kconfig files 2016-06-01 22:39:54 +00:00
serial More cleanup whitespace in Kconfig files 2016-06-01 22:39:54 +00:00
shared_irq refactor common driver initialization priorities 2016-03-28 15:58:29 -07:00
spi spi:quark_se ss: Use locking mechanism to guard critical regions. 2016-05-31 22:54:40 +00:00
timer arc: fixes a missing declaration compile error 2016-05-26 02:15:06 +00:00
watchdog qmsi: update qmsi to 1.1 alpha 2016-05-23 21:30:04 +00:00
Kconfig ext: include headers based on HAL being used 2016-05-27 01:38:23 +00:00
Makefile qmsi: move drivers and hal to ext/hal 2016-05-23 21:32:30 +00:00