PCI: xilinx: Convert to MSI domains
authorMarc Zyngier <maz@kernel.org>
Tue, 30 Mar 2021 15:11:36 +0000 (16:11 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Tue, 20 Apr 2021 13:11:21 +0000 (14:11 +0100)
commit313b64c3ae52bc8e953319077204cf1d286a8a99
tree449a2fd47d2e9890b6ab93eb1e6720aa3f9f4ac7
parent161260e7f7bc58d6a0972eb41a6072e82d0b58a5
PCI: xilinx: Convert to MSI domains

In anticipation of the removal of the msi_controller structure, convert
the ancient xilinx host controller driver to MSI domains.

We end-up with the usual two domain structure, the top one being a
generic PCI/MSI domain, the bottom one being xilinx-specific and handling
the actual HW interrupt allocation.

This allows us to fix some of the most appaling MSI programming, where
the message programmed in the device is the virtual IRQ number instead
of the allocated vector number. The allocator is also made safe with
a mutex. This should allow support for MultiMSI, but I decided not to
even try, since I cannot test it.

Link: https://lore.kernel.org/r/20210330151145.997953-6-maz@kernel.org
Tested-by: Bharat Kumar Gogada <bharatku@xilinx.com>
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/Kconfig
drivers/pci/controller/pcie-xilinx.c