e8e2b88f5f
The 1st generation MediaTek PCIe host bridge cannot handle Message Signaled Interrupts (MSIs). The core PCI code is not aware that MSI is not available. This results in warnings of the form: WARNING: CPU: 2 PID: 112 at include/linux/msi.h:219 pci_msi_setup_msi_irqs.constprop.8+0x64/0x6c Modules linked in: ahci(+) libahci libata sd_mod scsi_mod gpio_button_hotplug CPU: 2 PID: 112 Comm: kmodloader Not tainted 5.10.52 #0 Hardware name: Mediatek Cortex-A7 (Device Tree) Import patches that introduce the 'no_msi' attribute to signal missing MSI support to the core PCI. Refresh patches: - 000-spi-fix-fifo.patch - 330-mtk-bmt-support.patch - 510-net-mediatek-add-flow-offload-for-mt7623.patch - 601-PCI-mediatek-Use-regmap-to-get-shared-pcie-cfg-base.patch - 610-pcie-mediatek-fix-clearing-interrupt-status.patch - 700-net-ethernet-mtk_eth_soc-add-support-for-coherent-DM.patch - 710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch Signed-off-by: Nick Hainke <vincent@systemli.org>
35 lines
1.1 KiB
Diff
35 lines
1.1 KiB
Diff
From 9ec37efb87832b578d7972fc80b04d94f5d2bbe3 Mon Sep 17 00:00:00 2001
|
|
From: Marc Zyngier <maz@kernel.org>
|
|
Date: Tue, 30 Mar 2021 16:11:42 +0100
|
|
Subject: PCI/MSI: Make pci_host_common_probe() declare its reliance on MSI
|
|
domains
|
|
|
|
The generic PCI host driver relies on MSI domains for MSIs to
|
|
be provided to its end-points. Make this dependency explicit.
|
|
|
|
This cures the warnings occuring on arm/arm64 VMs when booted
|
|
with PCI virtio devices and no MSI controller (no GICv3 ITS,
|
|
for example).
|
|
|
|
It is likely that other drivers will need to express the same
|
|
dependency.
|
|
|
|
Link: https://lore.kernel.org/r/20210330151145.997953-12-maz@kernel.org
|
|
Signed-off-by: Marc Zyngier <maz@kernel.org>
|
|
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
|
|
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
|
|
---
|
|
drivers/pci/controller/pci-host-common.c | 1 +
|
|
1 file changed, 1 insertion(+)
|
|
|
|
--- a/drivers/pci/controller/pci-host-common.c
|
|
+++ b/drivers/pci/controller/pci-host-common.c
|
|
@@ -77,6 +77,7 @@ int pci_host_common_probe(struct platfor
|
|
|
|
bridge->sysdata = cfg;
|
|
bridge->ops = (struct pci_ops *)&ops->pci_ops;
|
|
+ bridge->msi_domain = true;
|
|
|
|
platform_set_drvdata(pdev, bridge);
|
|
|