| From 68a286dda22b9f4ade8d4fab18b55a4bc7ee4b33 Mon Sep 17 00:00:00 2001 |
| From: Marc Zyngier <maz@kernel.org> |
| Date: Fri, 1 May 2020 12:39:21 +0100 |
| Subject: [PATCH] PCI: dwc: Fix inner MSI IRQ domain registration |
| |
| commit 0414b93e78d87ecc24ae1a7e61fe97deb29fa2f4 upstream. |
| |
| On a system that uses the internal DWC MSI widget, I get this |
| warning from debugfs when CONFIG_GENERIC_IRQ_DEBUGFS is selected: |
| |
| debugfs: File ':soc:pcie@fc000000' in directory 'domains' already present! |
| |
| This is due to the fact that the DWC MSI code tries to register two |
| IRQ domains for the same firmware node, without telling the low |
| level code how to distinguish them (by setting a bus token). This |
| further confuses debugfs which tries to create corresponding |
| files for each domain. |
| |
| Fix it by tagging the inner domain as DOMAIN_BUS_NEXUS, which is |
| the closest thing we have as to "generic MSI". |
| |
| Link: https://lore.kernel.org/r/20200501113921.366597-1-maz@kernel.org |
| Signed-off-by: Marc Zyngier <maz@kernel.org> |
| Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com> |
| Acked-by: Jingoo Han <jingoohan1@gmail.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c |
| index 96f3e373279a..c8b93aae77ed 100644 |
| --- a/drivers/pci/controller/dwc/pcie-designware-host.c |
| +++ b/drivers/pci/controller/dwc/pcie-designware-host.c |
| @@ -263,6 +263,8 @@ int dw_pcie_allocate_domains(struct pcie_port *pp) |
| return -ENOMEM; |
| } |
| |
| + irq_domain_update_bus_token(pp->irq_domain, DOMAIN_BUS_NEXUS); |
| + |
| pp->msi_domain = pci_msi_create_irq_domain(fwnode, |
| &dw_pcie_msi_domain_info, |
| pp->irq_domain); |
| -- |
| 2.27.0 |
| |