Skip to content

mt7621 + mt7915e wifi not working and kernel panic #13

@lsoltero

Description

@lsoltero

this was originally reported here (openwrt/openwrt#17895 (comment)) but was told that this might be a better place to report the issue.

On OpenWRT 24.10 configured on an mt7621 SOC using mt7915e WiFi PCIe module

WiFi will only work on cold boot.
on warm boot the kernel will panic and cause a reboot and eventually will startup but the WiFi will not work generating driver errors.
The issue is caused by the mt7621 driver not waiting long enough after resetting the wifi module. The following patch fixes the issue

`Index: linux-6.6.73/drivers/pci/controller/pcie-mt7621.c
===================================================================
--- linux-6.6.73.orig/drivers/pci/controller/pcie-mt7621.c
+++ linux-6.6.73/drivers/pci/controller/pcie-mt7621.c
@@ -60,7 +60,7 @@
 #define PCIE_PORT_LINKUP		BIT(0)
 #define PCIE_PORT_CNT			3
 
-#define INIT_PORTS_DELAY_MS		100
+#define INIT_PORTS_DELAY_MS		500
 #define PERST_DELAY_MS			100
 
 /**
@@ -319,7 +319,13 @@ static void mt7621_pcie_reset_assert(str
 	list_for_each_entry(port, &pcie->ports, list) {
 		/ PCIe RC reset assert /
 		mt7621_control_assert(port);
+	}
 
+	// https://github.com/openwrt/openwrt/issues/12359
+	// https://github.com/openwrt/mt76/issues/644
+	mdelay(PERST_DELAY_MS);
+ 
+	list_for_each_entry(port, &pcie->ports, list) {
 		/ PCIe EP reset assert /
 		mt7621_rst_gpio_pcie_assert(port);
 	}`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions