freebsd-dev/sys/mips/atheros
Adrian Chadd b8aa77b74d [atheros] [if_arge] Various fixes to avoid TX stalls and bad sized packets
This is stuff I've been running for a couple years.  It's inspired by changes
I found in the linux ag71xx ethernet driver.

* Delay between stopping DMA and checking to see if it's stopped; this gives
  the hardware time to do its thing.

* Non-final frames in the chain need to be a multiple of 4 bytes in size.
  Ensure this is the case when assembling a TX DMA list.

* Add counters for tx/rx underflow and too-short packets.

* Log if TX/RX DMA couldn't be stopped when resetting the MAC.

* Add some more debugging / logging around TX/RX ring bits.

Tested:

* AR7240, AR7241
* AR9344 (TL-WDR3600/TL-WDR4300 APs)
* AR9331 (Carambola 2)
2020-05-10 03:36:11 +00:00
..
ar531x Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many) 2020-02-26 14:26:36 +00:00
apb.c follow-up to r336635, update TAILQ to CK_SLIST for ie_handlers 2018-07-23 15:36:55 +00:00
apbvar.h
ar71xx_bus_space_reversed.c
ar71xx_bus_space_reversed.h
ar71xx_caldata.c
ar71xx_chip.c
ar71xx_chip.h
ar71xx_cpudef.h
ar71xx_ehci.c
ar71xx_fixup.c
ar71xx_fixup.h
ar71xx_gpio.c [ar71xx_gpio] Add AR9341/AR9342 to the list of chips for programming function/output enable. 2019-05-15 16:51:08 +00:00
ar71xx_gpiovar.h The Atheros AR7241 has 20 GPIO pins 2019-03-25 07:48:52 +00:00
ar71xx_macaddr.c [ar71xx] generate a random mac address using eth_gen_addr() 2019-12-28 06:56:21 +00:00
ar71xx_macaddr.h [ar71xx] generate a random mac address using eth_gen_addr() 2019-12-28 06:56:21 +00:00
ar71xx_machdep.c Move phys_avail definition into MI code. It is consumed in the MI layer and 2019-08-16 00:45:14 +00:00
ar71xx_ohci.c
ar71xx_pci_bus_space.c
ar71xx_pci_bus_space.h
ar71xx_pci.c follow-up to r336635, update TAILQ to CK_SLIST for ie_handlers 2018-07-23 15:36:55 +00:00
ar71xx_setup.c
ar71xx_setup.h
ar71xx_spi.c
ar71xx_wdog.c Extract eventfilter declarations to sys/_eventfilter.h 2019-05-20 00:38:23 +00:00
ar71xxreg.h
ar91xx_chip.c
ar91xx_chip.h
ar91xxreg.h
ar724x_chip.c
ar724x_chip.h
ar724x_pci.c follow-up to r336635, update TAILQ to CK_SLIST for ie_handlers 2018-07-23 15:36:55 +00:00
ar724xreg.h
ar933x_chip.c
ar933x_chip.h
ar933x_uart.h
ar933xreg.h
ar934x_chip.c
ar934x_chip.h
ar934x_nfcreg.h
ar934xreg.h
files.ar71xx
if_arge.c [atheros] [if_arge] Various fixes to avoid TX stalls and bad sized packets 2020-05-10 03:36:11 +00:00
if_argevar.h [atheros] [if_arge] Various fixes to avoid TX stalls and bad sized packets 2020-05-10 03:36:11 +00:00
pcf2123_rtc.c
pcf2123reg.h
qca953x_chip.c
qca953x_chip.h
qca953xreg.h
qca955x_chip.c
qca955x_chip.h
qca955x_pci.c follow-up to r336635, update TAILQ to CK_SLIST for ie_handlers 2018-07-23 15:36:55 +00:00
qca955xreg.h
std.ar71xx
uart_bus_ar71xx.c add snps IP uart support / genaralize UART 2018-08-19 21:10:21 +00:00
uart_bus_ar933x.c add snps IP uart support / genaralize UART 2018-08-19 21:10:21 +00:00
uart_cpu_ar71xx.c
uart_cpu_ar933x.c
uart_dev_ar933x.c
uart_dev_ar933x.h