Tegra194 rootports don't generate MSI interrupts for PME events and hence MSI needs to be disabled for them to avoid root ports service drivers registering their respective ISRs with MSI interrupt. Signed-off-by: Vidya Sagar <vidyas@xxxxxxxxxx> --- Changes since [v6]: * This is a new patch drivers/pci/quirks.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index 0f16acc323c6..28f9a0380df5 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -2592,6 +2592,20 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_15, nvenet_msi_disable); +/* + * Tegra194's PCIe root ports don't generate MSI interrupts for PME events + * instead legacy interrupts are generated. Hence, to avoid service drivers + * registering their respective ISRs for MSIs, need to disable MSI interrupts + * for root ports. + */ +static void disable_tegra194_rp_msi(struct pci_dev *dev) +{ + dev->no_msi = 1; +} +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x1ad0, disable_tegra194_rp_msi); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x1ad1, disable_tegra194_rp_msi); +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA, 0x1ad2, disable_tegra194_rp_msi); + /* * Some versions of the MCP55 bridge from Nvidia have a legacy IRQ routing * config register. This register controls the routing of legacy -- 2.17.1