Interrupt is being enabled in port initialization when the port phy
has not been initialized yet. Just enable the interrupt when the port
is being enabled which is a more accurate place for this.

Signed-off-by: Sergio Paracuellos <sergio.paracuel...@gmail.com>
---
 drivers/staging/mt7621-pci/pci-mt7621.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/mt7621-pci/pci-mt7621.c 
b/drivers/staging/mt7621-pci/pci-mt7621.c
index 8b7c63d..5f7ff70 100644
--- a/drivers/staging/mt7621-pci/pci-mt7621.c
+++ b/drivers/staging/mt7621-pci/pci-mt7621.c
@@ -601,10 +601,6 @@ static int mt7621_pcie_init_port(struct mt7621_pcie_port 
*port)
                port->enabled = false;
        } else {
                port->enabled = true;
-               /* enable pcie interrupt */
-               val = pcie_read(pcie, RALINK_PCI_PCIMSK_ADDR);
-               val |= PCIE_PORT_INT_EN(slot);
-               pcie_write(pcie, val, RALINK_PCI_PCIMSK_ADDR);
        }
 
        mt7621_enable_phy(port);
@@ -667,6 +663,11 @@ static void mt7621_pcie_enable_ports(struct mt7621_pcie 
*pcie)
                                continue;
                        }
 
+                       /* enable pcie interrupt */
+                       val = pcie_read(pcie, RALINK_PCI_PCIMSK_ADDR);
+                       val |= PCIE_PORT_INT_EN(slot);
+                       pcie_write(pcie, val, RALINK_PCI_PCIMSK_ADDR);
+
                        /* map 2G DDR region */
                        pcie_write(pcie, PCIE_BAR_MAP_MAX | PCIE_BAR_ENABLE,
                                   offset + RALINK_PCI_BAR0SETUP_ADDR);
-- 
2.7.4

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to