Commit d6a2639b authored by Meador Inge's avatar Meador Inge Committed by Benjamin Herrenschmidt

powerpc: Factoring mpic cpu id fetching into a function

The following code snippet:

	unsigned int cpu = 0;
	if (mpic->flags & MPIC_PRIMARY)
		cpu = hard_smp_processor_id();

is seen in several places in the 'mpic.c' code.  This changeset factors
that pattern out into a helper function called 'mpic_processor_id'.
Signed-off-by: default avatarMeador Inge <meador_inge@mentor.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent dfec2202
...@@ -147,6 +147,16 @@ static u32 mpic_infos[][MPIC_IDX_END] = { ...@@ -147,6 +147,16 @@ static u32 mpic_infos[][MPIC_IDX_END] = {
#endif /* CONFIG_MPIC_WEIRD */ #endif /* CONFIG_MPIC_WEIRD */
static inline unsigned int mpic_processor_id(struct mpic *mpic)
{
unsigned int cpu = 0;
if (mpic->flags & MPIC_PRIMARY)
cpu = hard_smp_processor_id();
return cpu;
}
/* /*
* Register accessor functions * Register accessor functions
*/ */
...@@ -210,19 +220,14 @@ static inline void _mpic_ipi_write(struct mpic *mpic, unsigned int ipi, u32 valu ...@@ -210,19 +220,14 @@ static inline void _mpic_ipi_write(struct mpic *mpic, unsigned int ipi, u32 valu
static inline u32 _mpic_cpu_read(struct mpic *mpic, unsigned int reg) static inline u32 _mpic_cpu_read(struct mpic *mpic, unsigned int reg)
{ {
unsigned int cpu = 0; unsigned int cpu = mpic_processor_id(mpic);
if (mpic->flags & MPIC_PRIMARY)
cpu = hard_smp_processor_id();
return _mpic_read(mpic->reg_type, &mpic->cpuregs[cpu], reg); return _mpic_read(mpic->reg_type, &mpic->cpuregs[cpu], reg);
} }
static inline void _mpic_cpu_write(struct mpic *mpic, unsigned int reg, u32 value) static inline void _mpic_cpu_write(struct mpic *mpic, unsigned int reg, u32 value)
{ {
unsigned int cpu = 0; unsigned int cpu = mpic_processor_id(mpic);
if (mpic->flags & MPIC_PRIMARY)
cpu = hard_smp_processor_id();
_mpic_write(mpic->reg_type, &mpic->cpuregs[cpu], reg, value); _mpic_write(mpic->reg_type, &mpic->cpuregs[cpu], reg, value);
} }
...@@ -1012,13 +1017,8 @@ static int mpic_host_map(struct irq_host *h, unsigned int virq, ...@@ -1012,13 +1017,8 @@ static int mpic_host_map(struct irq_host *h, unsigned int virq,
* is done here. * is done here.
*/ */
if (!mpic_is_ipi(mpic, hw) && (mpic->flags & MPIC_NO_RESET)) { if (!mpic_is_ipi(mpic, hw) && (mpic->flags & MPIC_NO_RESET)) {
unsigned int cpu = 0;
if (mpic->flags & MPIC_PRIMARY)
cpu = hard_smp_processor_id();
mpic_set_vector(virq, hw); mpic_set_vector(virq, hw);
mpic_set_destination(virq, cpu); mpic_set_destination(virq, mpic_processor_id(mpic));
mpic_irq_set_priority(virq, 8); mpic_irq_set_priority(virq, 8);
} }
...@@ -1362,10 +1362,7 @@ void __init mpic_init(struct mpic *mpic) ...@@ -1362,10 +1362,7 @@ void __init mpic_init(struct mpic *mpic)
mpic_pasemi_msi_init(mpic); mpic_pasemi_msi_init(mpic);
if (mpic->flags & MPIC_PRIMARY) cpu = mpic_processor_id(mpic);
cpu = hard_smp_processor_id();
else
cpu = 0;
if (!(mpic->flags & MPIC_NO_RESET)) { if (!(mpic->flags & MPIC_NO_RESET)) {
for (i = 0; i < mpic->num_sources; i++) { for (i = 0; i < mpic->num_sources; i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment