powerpc: Convert irq_domain_add_legacy_isa use to irq_domain_add_legacy
irq_domain_add_legacy_isa is a pain. It only exists for the benefit of two PPC-specific drivers, and creates an ugly dependency between asm/irq.h and linux/irqdomain.h Instead, let's convert these two drivers to irq_domain_add_legacy(), stop using NUM_ISA_INTERRUPTS by directly setting NR_IRQS_LEGACY. The dependency cannot be broken yet as there is a lot of PPC-related code that depends on it, but that's the first step towards it. A followup patch will remove irq_domain_add_legacy_isa. Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
parent
5951be4c9c
commit
7c576f4d3c
@ -23,8 +23,8 @@ extern atomic_t ppc_n_lost_interrupts;
|
||||
/* Total number of virq in the platform */
|
||||
#define NR_IRQS CONFIG_NR_IRQS
|
||||
|
||||
/* Same thing, used by the generic IRQ code */
|
||||
#define NR_IRQS_LEGACY NUM_ISA_INTERRUPTS
|
||||
/* Number of irqs reserved for a legacy isa controller */
|
||||
#define NR_IRQS_LEGACY 16
|
||||
|
||||
extern irq_hw_number_t virq_to_hw(unsigned int virq);
|
||||
|
||||
|
@ -46,7 +46,7 @@
|
||||
* implementation equates HV plug value to Linux virq value, constrains each
|
||||
* interrupt to have a system wide unique plug number, and limits the range
|
||||
* of the plug values to map into the first dword of the bitmaps. This
|
||||
* gives a usable range of plug values of {NUM_ISA_INTERRUPTS..63}. Note
|
||||
* gives a usable range of plug values of {NR_IRQS_LEGACY..63}. Note
|
||||
* that there is no constraint on how many in this set an individual thread
|
||||
* can acquire.
|
||||
*
|
||||
@ -722,7 +722,7 @@ static unsigned int ps3_get_irq(void)
|
||||
}
|
||||
|
||||
#if defined(DEBUG)
|
||||
if (unlikely(plug < NUM_ISA_INTERRUPTS || plug > PS3_PLUG_MAX)) {
|
||||
if (unlikely(plug < NR_IRQS_LEGACY || plug > PS3_PLUG_MAX)) {
|
||||
dump_bmp(&per_cpu(ps3_private, 0));
|
||||
dump_bmp(&per_cpu(ps3_private, 1));
|
||||
BUG();
|
||||
|
@ -260,7 +260,8 @@ void i8259_init(struct device_node *node, unsigned long intack_addr)
|
||||
raw_spin_unlock_irqrestore(&i8259_lock, flags);
|
||||
|
||||
/* create a legacy host */
|
||||
i8259_host = irq_domain_add_legacy_isa(node, &i8259_host_ops, NULL);
|
||||
i8259_host = irq_domain_add_legacy(node, NR_IRQS_LEGACY, 0, 0,
|
||||
&i8259_host_ops, NULL);
|
||||
if (i8259_host == NULL) {
|
||||
printk(KERN_ERR "i8259: failed to allocate irq host !\n");
|
||||
return;
|
||||
|
@ -602,7 +602,7 @@ static void __init mpic_scan_ht_pics(struct mpic *mpic)
|
||||
/* Find an mpic associated with a given linux interrupt */
|
||||
static struct mpic *mpic_find(unsigned int irq)
|
||||
{
|
||||
if (irq < NUM_ISA_INTERRUPTS)
|
||||
if (irq < NR_IRQS_LEGACY)
|
||||
return NULL;
|
||||
|
||||
return irq_get_chip_data(irq);
|
||||
|
@ -404,7 +404,8 @@ void __init tsi108_pci_int_init(struct device_node *node)
|
||||
{
|
||||
DBG("Tsi108_pci_int_init: initializing PCI interrupts\n");
|
||||
|
||||
pci_irq_host = irq_domain_add_legacy_isa(node, &pci_irq_domain_ops, NULL);
|
||||
pci_irq_host = irq_domain_add_legacy(node, NR_IRQS_LEGACY, 0, 0,
|
||||
&pci_irq_domain_ops, NULL);
|
||||
if (pci_irq_host == NULL) {
|
||||
printk(KERN_ERR "pci_irq_host: failed to allocate irq domain!\n");
|
||||
return;
|
||||
|
@ -201,7 +201,7 @@ void xics_migrate_irqs_away(void)
|
||||
struct ics *ics;
|
||||
|
||||
/* We can't set affinity on ISA interrupts */
|
||||
if (virq < NUM_ISA_INTERRUPTS)
|
||||
if (virq < NR_IRQS_LEGACY)
|
||||
continue;
|
||||
/* We only need to migrate enabled IRQS */
|
||||
if (!desc->action)
|
||||
|
Loading…
Reference in New Issue
Block a user