OSDN Git Service

staging: mt7621-pci: enable interrupt when port is being enabled
authorSergio Paracuellos <sergio.paracuellos@gmail.com>
Sun, 4 Nov 2018 10:49:56 +0000 (11:49 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 11 Nov 2018 19:36:16 +0000 (11:36 -0800)
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.paracuellos@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/mt7621-pci/pci-mt7621.c

index 8b7c63d..5f7ff70 100644 (file)
@@ -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);