diff options
| author | Joerg Roedel <joro@8bytes.org> | 2012-09-26 12:44:48 +0200 | 
|---|---|---|
| committer | Joerg Roedel <joro@8bytes.org> | 2013-01-28 12:17:28 +0100 | 
| commit | 2976fd8417f5744de3bb9109e4f30f353a36b1c0 (patch) | |
| tree | 7c39a649cacb45c12ccf88aa16783741cbdce037 /arch/x86/kernel/apic/io_apic.c | |
| parent | 11b4a1cc3836ac71a214446d350e923c76012368 (diff) | |
| download | olio-linux-3.10-2976fd8417f5744de3bb9109e4f30f353a36b1c0.tar.xz olio-linux-3.10-2976fd8417f5744de3bb9109e4f30f353a36b1c0.zip  | |
x86, irq: Introduce setup_remapped_irq()
This function does irq-remapping specific interrupt setup
like modifying the chip defaults.
Signed-off-by: Joerg Roedel <joro@8bytes.org>
Acked-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Diffstat (limited to 'arch/x86/kernel/apic/io_apic.c')
| -rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 13 | 
1 files changed, 3 insertions, 10 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 110483906dd..372512219a9 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -1288,11 +1288,8 @@ static void ioapic_register_intr(unsigned int irq, struct irq_cfg *cfg,  		fasteoi = false;  	} -	if (irq_remapped(cfg)) { -		irq_set_status_flags(irq, IRQ_MOVE_PCNTXT); -		irq_remap_modify_chip_defaults(chip); +	if (setup_remapped_irq(irq, cfg, chip))  		fasteoi = trigger != 0; -	}  	hdl = fasteoi ? handle_fasteoi_irq : handle_edge_irq;  	irq_set_chip_and_handler_name(irq, chip, hdl, @@ -3131,10 +3128,7 @@ int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc,  	if (!irq_offset)  		write_msi_msg(irq, &msg); -	if (irq_remapped(irq_get_chip_data(irq))) { -		irq_set_status_flags(irq, IRQ_MOVE_PCNTXT); -		irq_remap_modify_chip_defaults(chip); -	} +	setup_remapped_irq(irq, irq_get_chip_data(irq), chip);  	irq_set_chip_and_handler_name(irq, chip, handle_edge_irq, "edge"); @@ -3272,8 +3266,7 @@ int default_setup_hpet_msi(unsigned int irq, unsigned int id)  	hpet_msi_write(irq_get_handler_data(irq), &msg);  	irq_set_status_flags(irq, IRQ_MOVE_PCNTXT); -	if (irq_remapped(irq_get_chip_data(irq))) -		irq_remap_modify_chip_defaults(chip); +	setup_remapped_irq(irq, irq_get_chip_data(irq), chip);  	irq_set_chip_and_handler_name(irq, chip, handle_edge_irq, "edge");  	return 0;  |