Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1ece355b authored by Milton Miller's avatar Milton Miller Committed by Benjamin Herrenschmidt
Browse files

powerpc: Add kconfig for muxed smp ipi support



Compile the new smp ipi mux and demux code only if a platform
will make use of it.  The new config is selected as required.

The new cause_ipi smp op is only available conditionally to point out
configs where the select is required; this makes setting the op an
immediate fail instead of a deferred unresolved symbol at link.

This also creates a new config for power surge powermac upgrade support
that can be disabled in expert mode but is default on.

I also removed the depends / default y on CONFIG_XICS since it is selected
by PSERIES.

Signed-off-by: default avatarMilton Miller <miltonm@bga.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent 23d72bfd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -38,7 +38,9 @@ extern void cpu_die(void);

struct smp_ops_t {
	void  (*message_pass)(int cpu, int msg);
#ifdef CONFIG_PPC_SMP_MUXED_IPI
	void  (*cause_ipi)(int cpu, unsigned long data);
#endif
	int   (*probe)(void);
	int   (*kick_cpu)(int nr);
	void  (*setup_cpu)(int nr);
+2 −0
Original line number Diff line number Diff line
@@ -178,6 +178,7 @@ int smp_request_message_ipi(int virq, int msg)
	return err;
}

#ifdef CONFIG_PPC_SMP_MUXED_IPI
struct cpu_messages {
	unsigned long messages;		/* current messages bits */
	unsigned long data;		/* data for cause ipi */
@@ -230,6 +231,7 @@ irqreturn_t smp_ipi_demux(void)
	}
	return IRQ_HANDLED;
}
#endif /* CONFIG_PPC_SMP_MUXED_IPI */

void smp_send_reschedule(int cpu)
{
+8 −0
Original line number Diff line number Diff line
@@ -57,6 +57,14 @@ config UDBG_RTAS_CONSOLE
	depends on PPC_RTAS
	default n

config PPC_SMP_MUXED_IPI
	bool
	help
	  Select this opton if your platform supports SMP and your
	  interrupt controller provides less than 4 interrupts to each
	  cpu.	This will enable the generic code to multiplex the 4
	  messages on to one ipi.

config PPC_UDBG_BEAT
	bool "BEAT based debug console"
	depends on PPC_CELLEB
+2 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ config PPC_BOOK3S_64
config PPC_BOOK3E_64
	bool "Embedded processors"
	select PPC_FPU # Make it a choice ?
	select PPC_SMP_MUXED_IPI

endchoice

@@ -178,6 +179,7 @@ config FSL_BOOKE
config PPC_FSL_BOOK3E
	bool
	select FSL_EMB_PERFMON
	select PPC_SMP_MUXED_IPI
	default y if FSL_BOOKE

config PTE_64BIT
+1 −0
Original line number Diff line number Diff line
config PPC_ISERIES
	bool "IBM Legacy iSeries"
	depends on PPC64 && PPC_BOOK3S
	select PPC_SMP_MUXED_IPI
	select PPC_INDIRECT_PIO
	select PPC_INDIRECT_MMIO
	select PPC_PCI_CHOICE if EXPERT
Loading