freebsd-skq/sys
Adrian Chadd c37904e8ba Reshuffle all of the DDR flush operations into a single switch/mux,
and start teaching subsystems about it.

The Atheros MIPS platforms don't guarantee any kind of FIFO consistency
with interrupts in hardware.  So software needs to do a flush when it
receives an interrupt and before it calls the interrupt handler.

There are new ones for the QCA934x and QCA955x, so do a few things:

* Get rid of the individual ones (for ethernet and IP2);
* Create a mux and enum listing all the variations on DDR flushes;
* replace the uses of IP2 with the relevant one (which will typically
  be "PCI" here);
* call the USB DDR flush before calling the real USB interrupt handlers;
* call the ethernet one upon receiving an interrupt that's for us,
  rather than never calling it during operation.

Tested:

* QCA9558 (TP-Link archer c7 v2)
* AR9331 (Carambola 2)

TODO:

* PCI, USB, ethernet, etc need to do a double-check to see if the
  interrupt was truely for them before doing the DDR.  For now I
  prefer "correct" over "fast".
2015-07-04 03:05:57 +00:00
..
amd64 Use single instance of the identical INKERNEL() and PMC_IN_KERNEL() 2015-07-02 14:37:21 +00:00
arm Add the routines to activate the GMAC clock and setup the GMAC mode. 2015-07-03 18:39:25 +00:00
arm64 Remove an unneeded define and old comment referencing amd64. 2015-07-02 16:13:29 +00:00
boot o Add a description for virtio block device implemented 2015-07-03 14:46:57 +00:00
bsm
cam Fix couple panics on forced unmount of backing file. 2015-07-02 12:53:22 +00:00
cddl Use single instance of the identical INKERNEL() and PMC_IN_KERNEL() 2015-07-02 14:37:21 +00:00
compat svr4 emulator has custom sendsig() implementation, it does not use 2015-06-29 10:33:04 +00:00
conf Remove commented-out and non-existent cbus(4) attachment for uart(4). 2015-07-03 16:02:06 +00:00
contrib Merge ACPICA 20150619. 2015-06-18 23:14:45 +00:00
crypto In the version of gcc in the FreeBSD tree, this modification was made to 2015-04-16 17:42:52 +00:00
ddb Correct the function name in catch-all error handling case. 2015-06-17 10:20:59 +00:00
dev Wake up the hardware before doing anything in sysctl. 2015-07-04 02:59:30 +00:00
fs If a "principal" argument isn't provided for a Kerberized NFS mount, 2015-07-03 22:11:07 +00:00
gdb CALLOUT_MPSAFE has lost its meaning since r141428, i.e., for more than ten 2015-05-22 17:05:21 +00:00
geom Properly propagate errors in metadata reading. 2015-07-02 10:57:34 +00:00
gnu The GNU Amlogic DTS files have some errors (e.g. bad register 2015-04-11 08:17:39 +00:00
i386 Use single instance of the identical INKERNEL() and PMC_IN_KERNEL() 2015-07-02 14:37:21 +00:00
isa
kern sysvshm: fix up some whitespace issues and spurious initialisation 2015-07-02 19:14:30 +00:00
kgssapi
libkern Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
mips Reshuffle all of the DDR flush operations into a single switch/mux, 2015-07-04 03:05:57 +00:00
modules Updated depends 2015-07-03 06:11:54 +00:00
net New AES modes for IPSec, user space components. 2015-07-03 20:09:14 +00:00
net80211 Break out the current 802.11 software scan methods into an indirect table. 2015-06-08 02:35:43 +00:00
netgraph Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
netinet Avoid doing multiple route lookups for the same destination IP during forwarding 2015-07-02 18:10:41 +00:00
netinet6 Keep IPv6 address specified by IPV6_PKTINFO socket option in kernel 2015-07-03 19:01:38 +00:00
netipsec Reduce overhead of IPSEC for traffic generated from host 2015-07-03 15:31:56 +00:00
netnatm
netpfil ALTQ FAIRQ discipline import from DragonFLY 2015-06-24 19:16:41 +00:00
netsmb
nfs Avoid closing unallocated socket in case socreate fails. 2015-02-28 20:30:29 +00:00
nfsclient Remove some oldnfs remnants. 2015-04-18 16:08:06 +00:00
nfsserver
nlm
ofed Fix broken implementation of "kvasprintf()" function by adding missing 2015-07-03 11:16:20 +00:00
opencrypto change the KASSERT so it is meaningful, var is unsigned, so even 2015-06-19 22:42:26 +00:00
pc98 Build GENERIC with RACCT/RCTL support by default. Note that it still 2015-05-14 14:03:55 +00:00
powerpc Allow DTrace to be compiled-in to the kernel. 2015-06-10 15:53:39 +00:00
rpc Remove hard limits on number of accepting NFS connections. 2015-04-07 10:25:27 +00:00
security Replace struct filedesc argument in getvnode with struct thread 2015-06-16 13:09:18 +00:00
sparc64 Generalised support for copy-on-write structures shared by threads. 2015-06-10 10:43:59 +00:00
sys Add stddef.h for size_t typedef. 2015-07-02 21:46:07 +00:00
teken
tools
ufs Huge cleanup of random(4) code. 2015-06-30 17:00:45 +00:00
vm vm: don't lock proc around accesses to vm_{t,d}addr and RLIMIT_DATA in sys_mmap 2015-07-02 18:30:12 +00:00
x86 Set the initial system time to a sane (as in: not end of 21st century) value when 2015-06-29 17:02:09 +00:00
xdr
xen Garbage collect comments which related to the pre-r284296 support for a 2015-06-21 06:05:33 +00:00
Makefile Kill EoL whitespace. 2015-05-29 14:03:07 +00:00