x86: Ignore function number when writing PIRQ routing table
authorBin Meng <bmeng.cn@gmail.com>
Tue, 23 Jun 2015 04:18:46 +0000 (12:18 +0800)
committerSimon Glass <sjg@chromium.org>
Wed, 15 Jul 2015 00:03:17 +0000 (18:03 -0600)
In fill_irq_info() pci device's function number is written into
the table, however this is not really necessary. The function
number can be anything as OS doesn't care about this field,
neither does the PIRQ routing specification. Change to always
writing 0 as the function number.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
arch/x86/cpu/irq.c

index 7d5ccc1c651849de5759056f2a43bee07dac1c86..df4300c230622a47e506e957a9b05009e8717e86 100644 (file)
@@ -59,12 +59,12 @@ void pirq_assign_irq(int link, u8 irq)
 }
 
 static inline void fill_irq_info(struct irq_info **slotp, int *entries, u8 bus,
-                                u8 device, u8 func, u8 pin, u8 pirq)
+                                u8 device, u8 pin, u8 pirq)
 {
        struct irq_info *slot = *slotp;
 
        slot->bus = bus;
-       slot->devfn = (device << 3) | func;
+       slot->devfn = (device << 3) | 0;
        slot->irq[pin - 1].link = LINK_N2V(pirq, irq_router.link_base);
        slot->irq[pin - 1].bitmap = irq_router.irq_mask;
        (*entries)++;
@@ -182,8 +182,7 @@ static int create_pirq_routing_table(void)
                      PCI_FUNC(pr.bdf), 'A' + pr.pin - 1,
                      'A' + pr.pirq);
                fill_irq_info(&slot, &irq_entries, PCI_BUS(pr.bdf),
-                             PCI_DEV(pr.bdf), PCI_FUNC(pr.bdf),
-                             pr.pin, pr.pirq);
+                             PCI_DEV(pr.bdf), pr.pin, pr.pirq);
                cell += sizeof(struct pirq_routing) / sizeof(u32);
        }