]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Add/fix EDMA RX behaviour.
authorAdrian Chadd <adrian@FreeBSD.org>
Tue, 10 Jul 2012 06:05:42 +0000 (06:05 +0000)
committerAdrian Chadd <adrian@FreeBSD.org>
Tue, 10 Jul 2012 06:05:42 +0000 (06:05 +0000)
commit62206b768143d51d077d24587bb90503b9ff4b0f
treefc3c68e8d745dcdc90caca5120c2621d5e7ea324
parent7ce60f6013d517e6a6cb29fd2670ff5a6acbfeaa
Add/fix EDMA RX behaviour.

* For now, kickpcu should hopefully just do nothing - the PCU doesn't need
  'kicking' for Osprey and later NICs. The PCU will just restart once
  the next FIFO entry is pushed in.

* Teach "proc" about "dosched", so it can be used to just flush the
  FIFO contents without adding new FIFO entries.

* .. and now, implement the RX "flush" routine.

* Re-initialise the FIFO contents if the FIFO is empty (the DP is NULL.)
  When PCU RX is disabled (ie, writing RX_D to the RX configuration
  register) then the FIFO will be completely emptied.  If the software FIFO
  is full, then no further descriptors are pushed into the FIFO and
  things stall.

This all requires much, much more thorough stress testing.
sys/dev/ath/if_ath_rx_edma.c