]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Create a function - ath_tx_kick() - which is called where ath_start() is
authoradrian <adrian@FreeBSD.org>
Tue, 5 Jun 2012 03:14:49 +0000 (03:14 +0000)
committeradrian <adrian@FreeBSD.org>
Tue, 5 Jun 2012 03:14:49 +0000 (03:14 +0000)
commit6dd8c2eb6c9bd0a9ceef633b7aaf5e54ac9dbaa6
tree890ed72fca8c0e69eab7031f7eaeec3907d491ad
parentd7c9a0e9e945d2b6379a08008fe1154c1f3c4e22
Create a function - ath_tx_kick() - which is called where ath_start() is
called to "kick" along TX.

For now, schedule a taskqueue call.

Later on I may go back to the direct call of ath_rx_tasklet() - but for
now, this will do.

I've tested UDP and TCP TX. UDP TX still achieves 240MBit, but TCP
TX gets stuck at around 100MBit or so, instead of the 150MBit it should
be at.  I'll re-test with no ACPI/power/sleep states enabled at startup
and see what effect it has.

This is in preparation for supporting an if_transmit() path, which will
turn ath_tx_kick() into a NUL operation (as there won't be an ifnet
queue to service.)

Tested:
* AR9280 STA

TODO:
* test on AR5416, AR9160, AR928x STA/AP modes

PR: kern/168649
sys/dev/ath/if_ath.c
sys/dev/ath/if_ath_misc.h
sys/dev/ath/if_ath_rx.c