Mt7621 pci card solution

Hi all!

Found a solution/workaround for pci card initialization issue at trunk on mt7621 board.

After applying this patch all works very fine:

--- pci-mt7621.c.org	2021-01-24 01:56:39.085392065 +0300
+++ pci-mt7621.c	2021-01-24 01:55:53.735426130 +0300
@@ -503,7 +503,12 @@
 
 	rt_sysc_m32(PERST_MODE_MASK, PERST_MODE_GPIO, MT7621_GPIO_MODE);
 
+    mdelay(250);
+
 	mt7621_pcie_reset_assert(pcie);
+
+    mdelay(250);
+
 	mt7621_pcie_reset_rc_deassert(pcie);
 
 	list_for_each_entry_safe(port, tmp, &pcie->ports, list) {
@@ -521,6 +526,8 @@
 		}
 	}
 
+    mdelay(250);
+
 	mt7621_pcie_reset_ep_deassert(pcie);
 
 	tmp = NULL;

Great thanks Marcin Jurkowski for idea!

https://bugs.openwrt.org/index.php?do=details&task_id=3381#comment8976

Regards!

Update. This patch fully resolved this issue, today's trunk work very fine:


drivers/staging/mt7621-pci/pci-mt7621.c | 1 +
1 file changed, 1 insertion(+)


--- a/drivers/staging/mt7621-pci/pci-mt7621.c	2021-01-26 14:36:41.761773605 +0300
+++ b/drivers/staging/mt7621-pci/pci-mt7621.c	2021-01-28 14:23:04.015990292 +0300
@@ -502,6 +502,7 @@
 	int err;
 
 	rt_sysc_m32(PERST_MODE_MASK, PERST_MODE_GPIO, MT7621_GPIO_MODE);
+    mdelay(100);
 
 	mt7621_pcie_reset_assert(pcie);
 	mt7621_pcie_reset_rc_deassert(pcie);

This topic was automatically closed 0 minutes after the last reply. New replies are no longer allowed.