This patchset make rt2800mmio txdone routines the same as rt2800usb. It should address problems with TX status interrupt handling and doing txdone for cases when we miss TX statuses from HW. We assume that for PCIe/SOC we always read TX status in IRQ routine, but this can be not true for example when CPU is busy with other interrupts. It was tested by with positive feedback, some users report that patches make MT7620 routers workable for them. This is documented here: https://bugzilla.kernel.org/show_bug.cgi?id=82751 Stanislaw Gruszka (5): rt2800: move usb specific txdone/txstatus routines to rt2800lib rt2800mmio: use txdone/txstatus routines from lib rt2x00: do not check for txstatus timeout every time on tasklet rt2x00: use different txstatus timeouts when flushing rt2800: flush and txstatus rework for rt2800mmio drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 154 +++++++++++++ drivers/net/wireless/ralink/rt2x00/rt2800lib.h | 3 + drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 277 +++++++---------------- drivers/net/wireless/ralink/rt2x00/rt2800mmio.h | 1 + drivers/net/wireless/ralink/rt2x00/rt2800pci.c | 2 +- drivers/net/wireless/ralink/rt2x00/rt2800usb.c | 143 +----------- drivers/net/wireless/ralink/rt2x00/rt2x00.h | 3 + drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 4 + drivers/net/wireless/ralink/rt2x00/rt2x00queue.c | 2 + 9 files changed, 259 insertions(+), 330 deletions(-) -- 2.7.5