Various mt76x2e issues have been reported on U7612E mini-pcie card [1]. On U7612E-H1 PCIE_ASPM causes continuous mcu hangs and instability and so patch 1/2 disable it by default. Moreover mt76 does not properly unmap dma buffers for non-linear skbs. This issue may result in hw hangs if the system relies on IOMMU. Patch 2/2 fix the problem properly unmapping data fragments on non-linear skbs. Changes since v2: - fix compilation error if PCI support is not compiled Changes since v1: - simplify buf0 unmap condition - use IS_ENABLED(CONFIG_PCIEASPM) instead of ifdef CONFIG_PCIEASPM - check pci_disable_link_state return value [1]: https://lore.kernel.org/netdev/deaafa7a3e9ea2111ebb5106430849c6@xxxxxxxxxxxxxx/ Lorenzo Bianconi (2): mt76: mt76x2e: disable pcie_aspm by default mt76: dma: fix buffer unmap with non-linear skbs drivers/net/wireless/mediatek/mt76/Makefile | 2 + drivers/net/wireless/mediatek/mt76/dma.c | 6 ++- drivers/net/wireless/mediatek/mt76/mt76.h | 6 ++- .../net/wireless/mediatek/mt76/mt76x2/pci.c | 2 + drivers/net/wireless/mediatek/mt76/pci.c | 46 +++++++++++++++++++ 5 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 drivers/net/wireless/mediatek/mt76/pci.c -- 2.21.0