PCI: rcar: Fix position of MSI enable bit
authorNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Mon, 2 Feb 2015 05:09:39 +0000 (14:09 +0900)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 24 Feb 2015 01:04:09 +0000 (19:04 -0600)
The MSI enable is bit 31, not bit 28.  Set the correct bit to initialize
MSI.

Per Phil, "this is odd as MSI works before and after your patch. Since bit
31 just represents the value of MSICAP0[16].MSIE, I think this may just be
used for endpoints.  However, you are correct that the bit used was wrong."

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Phil Edworthy <phil.edworthy@renesas.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
drivers/pci/host/pcie-rcar.c

index c57bd0ac39a0099684552053259887e507ad451c..8f5490f443ffd0ffb21cf4da384c7f7ed80f337c 100644 (file)
@@ -501,7 +501,7 @@ static int rcar_pcie_hw_init(struct rcar_pcie *pcie)
 
        /* Enable MSI */
        if (IS_ENABLED(CONFIG_PCI_MSI))
-               rcar_pci_write_reg(pcie, 0x101f0000, PCIEMSITXR);
+               rcar_pci_write_reg(pcie, 0x801f0000, PCIEMSITXR);
 
        /* Finish initialization - establish a PCI Express link */
        rcar_pci_write_reg(pcie, CFINIT, PCIETCTLR);