PCI: dwc: Fix dw_pcie_ep_raise_msix_irq() to get correct MSI-X table address
authorKishon Vijay Abraham I <kishon@ti.com>
Tue, 25 Feb 2020 08:17:02 +0000 (13:47 +0530)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Thu, 2 Apr 2020 16:57:10 +0000 (17:57 +0100)
commit6f5e193bfb55963ce5f4f68cc927f371ddb0913b
treedb006ec7bb16dc81c37517c8f011a0fb025bf9f5
parent83153d9f36e24978c6211d246cb6f532bf54e5dc
PCI: dwc: Fix dw_pcie_ep_raise_msix_irq() to get correct MSI-X table address

commit beb4641a787d ("PCI: dwc: Add MSI-X callbacks handler"),
in order to raise MSI-X interrupt, obtained MSIX table address from
Base Address Register (BAR). However BAR only holds PCI address
programmed by the host whereas the MSI-X table should be in the local
memory.

Store the MSI-X table address (virtual address) as part of ->set_bar()
callback and use that to get the message address and message data
here.

Fixes: beb4641a787d ("PCI: dwc: Add MSI-X callbacks handler")
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
drivers/pci/controller/dwc/pcie-designware-ep.c
drivers/pci/controller/dwc/pcie-designware.h
drivers/pci/endpoint/pci-epf-core.c
include/linux/pci-epf.h