- Using cyclic dma for data transfer
- removed kernel threads. Now everything done in callbacks
- keeping multiple transactions running to avoid delays
- discarding data if too late
- logging the module performance
- cleaned out the code
- modified communication with userspace to fix polling
- removed redundant locks
- changed buffers behavior to improve efficiency
- fixed compatibility with latest raspbian kernel
On the Raspberry Pi OS the Linux headers are split into multiple packages and
directories under /usr/src: the configuration and actual header files are in
different packages. Presumably, this is done this way to allow re-using the
header files of the same kernel by all Raspberry Pi kernel flavors.
This made the logic before this change to not consider valid linux headers
directory be so: /usr/src/linux-headers-${KERNEL_RELEASE} does not contain
include/linux/user.h.
Tweak the code so that it additionally considers directories which contains
include/generated/autoconf.h to be kernel headers directory. This file is
checked by the linux header's directory Makefile and it is not found the kernel
configuration is considered invalid. This path sees to be hardcoded, so it
should be the same on all platforms.
stream stopped thus the buffer never filled up. solved by aboting the waiting semaphore on channel switch
SMI: fixed low sample rate timeouts and a function for timeout calculation on read
Radio: FPGA soft reset on start caused faulty operation. needs investigation.
Radio: removed redundant sleeps
Various bug fixes.