mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
powerpc: Move the use of irq_domain_add_nomap() behind a config option
Only a handful of old PPC systems are still using the old 'nomap' variant of the irqdomain library. Move the associated definitions behind a configuration option, which will allow us to make some more radical changes. Signed-off-by: Marc Zyngier <maz@kernel.org>
This commit is contained in:
parent
1da027362a
commit
e37af8011a
@ -35,6 +35,7 @@ config PPC_IBM_CELL_BLADE
|
|||||||
config AXON_MSI
|
config AXON_MSI
|
||||||
bool
|
bool
|
||||||
depends on PPC_IBM_CELL_BLADE && PCI_MSI
|
depends on PPC_IBM_CELL_BLADE && PCI_MSI
|
||||||
|
select IRQ_DOMAIN_NOMAP
|
||||||
default y
|
default y
|
||||||
|
|
||||||
menu "Cell Broadband Engine options"
|
menu "Cell Broadband Engine options"
|
||||||
|
@ -24,6 +24,7 @@ config PPC_PMAC32_PSURGE
|
|||||||
bool "Support for powersurge upgrade cards" if EXPERT
|
bool "Support for powersurge upgrade cards" if EXPERT
|
||||||
depends on SMP && PPC32 && PPC_PMAC
|
depends on SMP && PPC32 && PPC_PMAC
|
||||||
select PPC_SMP_MUXED_IPI
|
select PPC_SMP_MUXED_IPI
|
||||||
|
select IRQ_DOMAIN_NOMAP
|
||||||
default y
|
default y
|
||||||
help
|
help
|
||||||
The powersurge cpu boards can be used in the generation
|
The powersurge cpu boards can be used in the generation
|
||||||
|
@ -7,6 +7,7 @@ config PPC_PS3
|
|||||||
select USB_OHCI_BIG_ENDIAN_MMIO
|
select USB_OHCI_BIG_ENDIAN_MMIO
|
||||||
select USB_EHCI_BIG_ENDIAN_MMIO
|
select USB_EHCI_BIG_ENDIAN_MMIO
|
||||||
select HAVE_PCI
|
select HAVE_PCI
|
||||||
|
select IRQ_DOMAIN_NOMAP
|
||||||
help
|
help
|
||||||
This option enables support for the Sony PS3 game console
|
This option enables support for the Sony PS3 game console
|
||||||
and other platforms using the PS3 hypervisor. Enabling this
|
and other platforms using the PS3 hypervisor. Enabling this
|
||||||
|
@ -3,6 +3,7 @@ config PPC_XIVE
|
|||||||
bool
|
bool
|
||||||
select PPC_SMP_MUXED_IPI
|
select PPC_SMP_MUXED_IPI
|
||||||
select HARDIRQS_SW_RESEND
|
select HARDIRQS_SW_RESEND
|
||||||
|
select IRQ_DOMAIN_NOMAP
|
||||||
|
|
||||||
config PPC_XIVE_NATIVE
|
config PPC_XIVE_NATIVE
|
||||||
bool
|
bool
|
||||||
|
@ -345,6 +345,8 @@ static inline struct irq_domain *irq_domain_add_linear(struct device_node *of_no
|
|||||||
{
|
{
|
||||||
return __irq_domain_add(of_node_to_fwnode(of_node), size, size, 0, ops, host_data);
|
return __irq_domain_add(of_node_to_fwnode(of_node), size, size, 0, ops, host_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_IRQ_DOMAIN_NOMAP
|
||||||
static inline struct irq_domain *irq_domain_add_nomap(struct device_node *of_node,
|
static inline struct irq_domain *irq_domain_add_nomap(struct device_node *of_node,
|
||||||
unsigned int max_irq,
|
unsigned int max_irq,
|
||||||
const struct irq_domain_ops *ops,
|
const struct irq_domain_ops *ops,
|
||||||
@ -352,6 +354,10 @@ static inline struct irq_domain *irq_domain_add_nomap(struct device_node *of_nod
|
|||||||
{
|
{
|
||||||
return __irq_domain_add(of_node_to_fwnode(of_node), 0, max_irq, max_irq, ops, host_data);
|
return __irq_domain_add(of_node_to_fwnode(of_node), 0, max_irq, max_irq, ops, host_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern unsigned int irq_create_direct_mapping(struct irq_domain *host);
|
||||||
|
#endif
|
||||||
|
|
||||||
static inline struct irq_domain *irq_domain_add_tree(struct device_node *of_node,
|
static inline struct irq_domain *irq_domain_add_tree(struct device_node *of_node,
|
||||||
const struct irq_domain_ops *ops,
|
const struct irq_domain_ops *ops,
|
||||||
void *host_data)
|
void *host_data)
|
||||||
@ -408,8 +414,6 @@ static inline unsigned int irq_linear_revmap(struct irq_domain *domain,
|
|||||||
return irq_find_mapping(domain, hwirq);
|
return irq_find_mapping(domain, hwirq);
|
||||||
}
|
}
|
||||||
|
|
||||||
extern unsigned int irq_create_direct_mapping(struct irq_domain *host);
|
|
||||||
|
|
||||||
extern const struct irq_domain_ops irq_domain_simple_ops;
|
extern const struct irq_domain_ops irq_domain_simple_ops;
|
||||||
|
|
||||||
/* stock xlate functions */
|
/* stock xlate functions */
|
||||||
|
@ -70,6 +70,11 @@ config IRQ_DOMAIN_HIERARCHY
|
|||||||
bool
|
bool
|
||||||
select IRQ_DOMAIN
|
select IRQ_DOMAIN
|
||||||
|
|
||||||
|
# Support for obsolete non-mapping irq domains
|
||||||
|
config IRQ_DOMAIN_NOMAP
|
||||||
|
bool
|
||||||
|
select IRQ_DOMAIN
|
||||||
|
|
||||||
# Support for hierarchical fasteoi+edge and fasteoi+level handlers
|
# Support for hierarchical fasteoi+edge and fasteoi+level handlers
|
||||||
config IRQ_FASTEOI_HIERARCHY_HANDLERS
|
config IRQ_FASTEOI_HIERARCHY_HANDLERS
|
||||||
bool
|
bool
|
||||||
|
@ -604,6 +604,7 @@ void irq_domain_associate_many(struct irq_domain *domain, unsigned int irq_base,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(irq_domain_associate_many);
|
EXPORT_SYMBOL_GPL(irq_domain_associate_many);
|
||||||
|
|
||||||
|
#ifdef CONFIG_IRQ_DOMAIN_NOMAP
|
||||||
/**
|
/**
|
||||||
* irq_create_direct_mapping() - Allocate an irq for direct mapping
|
* irq_create_direct_mapping() - Allocate an irq for direct mapping
|
||||||
* @domain: domain to allocate the irq for or NULL for default domain
|
* @domain: domain to allocate the irq for or NULL for default domain
|
||||||
@ -644,6 +645,7 @@ unsigned int irq_create_direct_mapping(struct irq_domain *domain)
|
|||||||
return virq;
|
return virq;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(irq_create_direct_mapping);
|
EXPORT_SYMBOL_GPL(irq_create_direct_mapping);
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* irq_create_mapping_affinity() - Map a hardware interrupt into linux irq space
|
* irq_create_mapping_affinity() - Map a hardware interrupt into linux irq space
|
||||||
|
Loading…
Reference in New Issue
Block a user