b8aa77b74d
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) |
||
---|---|---|
.. | ||
ar531x | ||
apb.c | ||
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_gpiovar.h | ||
ar71xx_macaddr.c | ||
ar71xx_macaddr.h | ||
ar71xx_machdep.c | ||
ar71xx_ohci.c | ||
ar71xx_pci_bus_space.c | ||
ar71xx_pci_bus_space.h | ||
ar71xx_pci.c | ||
ar71xx_setup.c | ||
ar71xx_setup.h | ||
ar71xx_spi.c | ||
ar71xx_wdog.c | ||
ar71xxreg.h | ||
ar91xx_chip.c | ||
ar91xx_chip.h | ||
ar91xxreg.h | ||
ar724x_chip.c | ||
ar724x_chip.h | ||
ar724x_pci.c | ||
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 | ||
if_argevar.h | ||
pcf2123_rtc.c | ||
pcf2123reg.h | ||
qca953x_chip.c | ||
qca953x_chip.h | ||
qca953xreg.h | ||
qca955x_chip.c | ||
qca955x_chip.h | ||
qca955x_pci.c | ||
qca955xreg.h | ||
std.ar71xx | ||
uart_bus_ar71xx.c | ||
uart_bus_ar933x.c | ||
uart_cpu_ar71xx.c | ||
uart_cpu_ar933x.c | ||
uart_dev_ar933x.c | ||
uart_dev_ar933x.h |