[PATCH kvmtool RESENT] arm/pci: update interrupt-map only for legacy interrupts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The interrupt pin cell in "interrupt-map" property
is defined only for legacy interrupts with a valid
range in [1-4] corrspoding to INTA#..INTD#. And the
PCI endpoint devices that support advance interrupt
mechanism like MSI or MSI-X should not have an entry
with value 0 in "interrupt-map". This patch takes
care of this problem by avoiding redundant entries.

Signed-off-by: Sathyam Panda <sathyam.panda@xxxxxxx>
Reviewed-by: Vivek Kumar Gautam <vivek.gautam@xxxxxxx>
---
 arm/pci.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arm/pci.c b/arm/pci.c
index 2251f62..e44e453 100644
--- a/arm/pci.c
+++ b/arm/pci.c
@@ -80,6 +80,16 @@ void pci__generate_fdt_nodes(void *fdt)
 		u8 irq = pci_hdr->irq_line;
 		u32 irq_flags = pci_hdr->irq_type;
 
+		/*
+		 * Avoid adding entries in "interrupt-map" for devices that
+		 * will be using advance interrupt mechanisms like MSI or
+		 * MSI-X instead of legacy interrupt pins INTA#..INTD#
+		 */
+		if (pin == 0) {
+			dev_hdr = device__next_dev(dev_hdr);
+			continue;
+		}
+
 		*entry = (struct of_interrupt_map_entry) {
 			.pci_irq_mask = {
 				.pci_addr = {
-- 
2.25.1




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux