mirror of
https://github.com/open-sdr/openwifi.git
synced 2024-12-19 21:58:13 +00:00
8b7c849019
1. Consider more corner cases: interrupt missing will cause a bd in the driver ring will never be cleaned. this need to be considered in the openwifi_tx() 2. Another corner case in openwifi_tx_interrupt: a packet is just sent and an interrupt calls the routine, but it finds that the bd in the driver ring has been cleared somehow 3. The driver ring and FPGA queue are always 1 on 1 mapping. User needs to map the higher level Linux priority to the driver ring idx instead of FPGA queue idx 4. Record the information about which FPGA queue (driver ring) has stopped which Linux priority before, and do exhausted search after a packet is sent (in the interrupt routine) to wake that Linux priority queue (in mac80211) up 5. Reserve more room before the FPGA queue full to adopt the last packet before we decide to stop the mac80211 queue. In this way, the last packet before the queue stop will still be put into FPGA and is expected to be sent (not lost/drop actively) |
||
---|---|---|
.. | ||
ad9361 | ||
openofdm_rx | ||
openofdm_tx | ||
rx_intf | ||
side_ch | ||
tx_intf | ||
xilinx_dma | ||
xpu | ||
hw_def.h | ||
make_all.sh | ||
Makefile | ||
sdr.c | ||
sdr.h | ||
sdrctl_intf.c | ||
sysfs_intf.c |