powerpc/mpic: Fix build errors for CONFIG_MPIC_WEIRD
PATCH 1/1 powerpc/mpic: Fix build errors for CONFIG_MPIC_WEIRD
When CONFIG_MPIC_WEIRD is defined, the following build error occurs:
arch/powerpc/sysdev/mpic.c: In function 'mpic_set_irq_type':arch/powerpc/sysdev/mpic.c:892:9: error: case label does not reduce to an integer constant
MPIC_INFO(VECPRI_POLARITY_POSITIVE):
^
arch/powerpc/sysdev/mpic.c:896:9: error: case label does not reduce to an integer constant
MPIC_INFO(VECPRI_POLARITY_NEGATIVE):
^
arch/powerpc/sysdev/mpic.c:900:9: error: case label does not reduce to an integer constant
MPIC_INFO(VECPRI_POLARITY_POSITIVE):
^
arch/powerpc/sysdev/mpic.c:904:9: error: case label does not reduce to an integer constant
MPIC_INFO(VECPRI_POLARITY_NEGATIVE):
^This is because the case labels are built by accessing mpic->hw_set, and not an integer constant.
Fixes 446f6d06fab0 ("powerpc/mpic: Properly set default triggers")
Cc <[email protected]> (3.4+)
Signed-off-by Luis Henriques <[email protected]>
--- arch/powerpc/sysdev/mpic.c | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-)
arch/powerpc/sysdev/mpic.c +15 -19
@@ -886,25 +886,21 @@ int mpic_set_irq_type(struct irq_data *d, unsigned int flow_type)/* Default: read HW settings */ if (flow_type ==IRQ_TYPE_DEFAULT ) { -switch (vold & (MPIC_INFO (VECPRI_POLARITY_MASK ) | -MPIC_INFO (VECPRI_SENSE_MASK ))) { -case MPIC_INFO (VECPRI_SENSE_EDGE ) | -MPIC_INFO (VECPRI_POLARITY_POSITIVE ): - flow_type =IRQ_TYPE_EDGE_RISING ; -break ; -case MPIC_INFO (VECPRI_SENSE_EDGE ) | -MPIC_INFO (VECPRI_POLARITY_NEGATIVE ): - flow_type =IRQ_TYPE_EDGE_FALLING ; -break ; -case MPIC_INFO (VECPRI_SENSE_LEVEL ) | -MPIC_INFO (VECPRI_POLARITY_POSITIVE ): - flow_type =IRQ_TYPE_LEVEL_HIGH ; -break ; -case MPIC_INFO (VECPRI_SENSE_LEVEL ) | -MPIC_INFO (VECPRI_POLARITY_NEGATIVE ): - flow_type =IRQ_TYPE_LEVEL_LOW ; -break ; - } +unsigned int info; + info = vold & (MPIC_INFO (VECPRI_POLARITY_MASK ) | +MPIC_INFO (VECPRI_SENSE_MASK )); +if (info == (MPIC_INFO (VECPRI_SENSE_EDGE ) | +MPIC_INFO (VECPRI_POLARITY_POSITIVE ))) + flow_type =IRQ_TYPE_EDGE_RISING ; +else if (info == (MPIC_INFO (VECPRI_SENSE_EDGE ) | +MPIC_INFO (VECPRI_POLARITY_NEGATIVE ))) + flow_type =IRQ_TYPE_EDGE_FALLING ; +else if (info == (MPIC_INFO (VECPRI_SENSE_LEVEL ) | +MPIC_INFO (VECPRI_POLARITY_POSITIVE ))) + flow_type =IRQ_TYPE_LEVEL_HIGH ; +else if (info == (MPIC_INFO (VECPRI_SENSE_LEVEL ) | +MPIC_INFO (VECPRI_POLARITY_NEGATIVE ))) + flow_type =IRQ_TYPE_LEVEL_LOW ; }/* Apply to irq desc */
Signature · 5 lines
1.8.3.2 Cheers, -- Luis