From: Marek Vasut <marek.vasut+rene...@gmail.com> The MSI address can be 64bit. Switch the data type used to hold the result of virt_to_phys() to phys_addr_t to reflect its properties correctly and program the top 32bits of PA into PCIEMSIAUR.
Signed-off-by: Marek Vasut <marek.vasut+rene...@gmail.com> Cc: Geert Uytterhoeven <geert+rene...@glider.be> Cc: Phil Edworthy <phil.edwor...@renesas.com> Cc: Simon Horman <horms+rene...@verge.net.au> Cc: Wolfram Sang <w...@the-dreams.de> Cc: linux-renesas-soc@vger.kernel.org To: linux-...@vger.kernel.org Reviewed-by: Geert Uytterhoeven <geert+rene...@glider.be> --- V2: - s/it's/its/ in commit message - Add R-B from Geert --- drivers/pci/controller/pcie-rcar.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/pcie-rcar.c b/drivers/pci/controller/pcie-rcar.c index 989b7b73ed61..75ac83f21035 100644 --- a/drivers/pci/controller/pcie-rcar.c +++ b/drivers/pci/controller/pcie-rcar.c @@ -889,7 +889,7 @@ static int rcar_pcie_enable_msi(struct rcar_pcie *pcie) { struct device *dev = pcie->dev; struct rcar_msi *msi = &pcie->msi; - unsigned long base; + phys_addr_t base; int err, i; mutex_init(&msi->lock); @@ -931,7 +931,7 @@ static int rcar_pcie_enable_msi(struct rcar_pcie *pcie) base = virt_to_phys((void *)msi->pages); rcar_pci_write_reg(pcie, base | MSIFE, PCIEMSIALR); - rcar_pci_write_reg(pcie, 0, PCIEMSIAUR); + rcar_pci_write_reg(pcie, base >> 32, PCIEMSIAUR); /* enable all MSI interrupts */ rcar_pci_write_reg(pcie, 0xffffffff, PCIEMSIIER); -- 2.20.1