diff options
author | Yinghai Lu <yinghai@kernel.org> | 2009-05-15 16:05:16 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-05-18 02:38:55 -0400 |
commit | e5198075c67a22ec9a09565b1ce88d3d3f5ba855 (patch) | |
tree | 3d4ea0efd8575e677509b022e649c62d4786ed55 /arch/x86/pci | |
parent | b5710ce92a8cf8e3fc0ffc230cfdbfa23463f1c8 (diff) |
x86, apic: introduce io_apic_irq_attr
according to Ingo, io_apic irq-setup related functions have too many
parameters with a repetitive signature.
So reduce related funcs to get less params by passing a pointer
to a newly defined io_apic_irq_attr structure.
v2: io_apic_irq ==> irq_attr
triggering ==> trigger
v3: add set_io_apic_irq_attr
[ Impact: cleanup ]
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Len Brown <lenb@kernel.org>
LKML-Reference: <4A08ACD3.2070401@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/pci')
-rw-r--r-- | arch/x86/pci/irq.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c index 2f3e192615c0..0696d506c4ad 100644 --- a/arch/x86/pci/irq.c +++ b/arch/x86/pci/irq.c | |||
@@ -1200,14 +1200,11 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
1200 | #ifdef CONFIG_X86_IO_APIC | 1200 | #ifdef CONFIG_X86_IO_APIC |
1201 | struct pci_dev *temp_dev; | 1201 | struct pci_dev *temp_dev; |
1202 | int irq; | 1202 | int irq; |
1203 | int ioapic = -1, ioapic_pin = -1; | 1203 | struct io_apic_irq_attr irq_attr; |
1204 | int triggering, polarity; | ||
1205 | 1204 | ||
1206 | irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, | 1205 | irq = IO_APIC_get_PCI_irq_vector(dev->bus->number, |
1207 | PCI_SLOT(dev->devfn), | 1206 | PCI_SLOT(dev->devfn), |
1208 | pin - 1, | 1207 | pin - 1, &irq_attr); |
1209 | &ioapic, &ioapic_pin, | ||
1210 | &triggering, &polarity); | ||
1211 | /* | 1208 | /* |
1212 | * Busses behind bridges are typically not listed in the MP-table. | 1209 | * Busses behind bridges are typically not listed in the MP-table. |
1213 | * In this case we have to look up the IRQ based on the parent bus, | 1210 | * In this case we have to look up the IRQ based on the parent bus, |
@@ -1221,9 +1218,7 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
1221 | pin = pci_swizzle_interrupt_pin(dev, pin); | 1218 | pin = pci_swizzle_interrupt_pin(dev, pin); |
1222 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, | 1219 | irq = IO_APIC_get_PCI_irq_vector(bridge->bus->number, |
1223 | PCI_SLOT(bridge->devfn), | 1220 | PCI_SLOT(bridge->devfn), |
1224 | pin - 1, | 1221 | pin - 1, &irq_attr); |
1225 | &ioapic, &ioapic_pin, | ||
1226 | &triggering, &polarity); | ||
1227 | if (irq >= 0) | 1222 | if (irq >= 0) |
1228 | dev_warn(&dev->dev, "using bridge %s " | 1223 | dev_warn(&dev->dev, "using bridge %s " |
1229 | "INT %c to get IRQ %d\n", | 1224 | "INT %c to get IRQ %d\n", |
@@ -1233,9 +1228,8 @@ static int pirq_enable_irq(struct pci_dev *dev) | |||
1233 | } | 1228 | } |
1234 | dev = temp_dev; | 1229 | dev = temp_dev; |
1235 | if (irq >= 0) { | 1230 | if (irq >= 0) { |
1236 | io_apic_set_pci_routing(&dev->dev, ioapic, | 1231 | io_apic_set_pci_routing(&dev->dev, irq, |
1237 | ioapic_pin, irq, | 1232 | &irq_attr); |
1238 | triggering, polarity); | ||
1239 | dev->irq = irq; | 1233 | dev->irq = irq; |
1240 | dev_info(&dev->dev, "PCI->APIC IRQ transform: " | 1234 | dev_info(&dev->dev, "PCI->APIC IRQ transform: " |
1241 | "INT %c -> IRQ %d\n", 'A' + pin - 1, irq); | 1235 | "INT %c -> IRQ %d\n", 'A' + pin - 1, irq); |