Commit e37af801 authored by Marc Zyngier's avatar Marc Zyngier
Browse files

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: default avatarMarc Zyngier <maz@kernel.org>
parent 1da02736
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ config PPC_IBM_CELL_BLADE
config AXON_MSI
	bool
	depends on PPC_IBM_CELL_BLADE && PCI_MSI
	select IRQ_DOMAIN_NOMAP
	default y

menu "Cell Broadband Engine options"
+1 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ config PPC_PMAC32_PSURGE
	bool "Support for powersurge upgrade cards" if EXPERT
	depends on SMP && PPC32 && PPC_PMAC
	select PPC_SMP_MUXED_IPI
	select IRQ_DOMAIN_NOMAP
	default y
	help
	  The powersurge cpu boards can be used in the generation
+1 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ config PPC_PS3
	select USB_OHCI_BIG_ENDIAN_MMIO
	select USB_EHCI_BIG_ENDIAN_MMIO
	select HAVE_PCI
	select IRQ_DOMAIN_NOMAP
	help
	  This option enables support for the Sony PS3 game console
	  and other platforms using the PS3 hypervisor.  Enabling this
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ config PPC_XIVE
	bool
	select PPC_SMP_MUXED_IPI
	select HARDIRQS_SW_RESEND
	select IRQ_DOMAIN_NOMAP

config PPC_XIVE_NATIVE
	bool
+6 −2
Original line number Diff line number Diff line
@@ -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);
}

#ifdef CONFIG_IRQ_DOMAIN_NOMAP
static inline struct irq_domain *irq_domain_add_nomap(struct device_node *of_node,
					 unsigned int max_irq,
					 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);
}

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,
					 const struct irq_domain_ops *ops,
					 void *host_data)
@@ -408,8 +414,6 @@ static inline unsigned int irq_linear_revmap(struct irq_domain *domain,
	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;

/* stock xlate functions */
Loading