Skip to content

Commit

Permalink
ARM: msm: convert SMP platforms to CONFIG_MULTI_IRQ_HANDLER
Browse files Browse the repository at this point in the history
Convert the SMP msm platforms to be using the gic_handle_irq
function as their primary interrupt handler.

Tested-by: David Brown <davidb@codeaurora.org>
Acked-by: David Brown <davidb@codeaurora.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
  • Loading branch information
Marc Zyngier committed Nov 15, 2011
1 parent abd3ca5 commit 041f777
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 58 deletions.
2 changes: 2 additions & 0 deletions arch/arm/mach-msm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ config ARCH_MSM8X60
select GPIO_MSM_V2
select MSM_GPIOMUX
select MSM_SCM if SMP
select MULTI_IRQ_HANDLER

config ARCH_MSM8960
bool "MSM8960"
Expand All @@ -60,6 +61,7 @@ config ARCH_MSM8960
select MSM_V2_TLMM
select MSM_GPIOMUX
select MSM_SCM if SMP
select MULTI_IRQ_HANDLER

endchoice

Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-msm/board-msm8960.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ MACHINE_START(MSM8960_SIM, "QCT MSM8960 SIMULATOR")
.map_io = msm8960_map_io,
.init_irq = msm8960_init_irq,
.timer = &msm_timer,
.handle_irq = gic_handle_irq,
.init_machine = msm8960_sim_init,
MACHINE_END

Expand All @@ -108,6 +109,7 @@ MACHINE_START(MSM8960_RUMI3, "QCT MSM8960 RUMI3")
.map_io = msm8960_map_io,
.init_irq = msm8960_init_irq,
.timer = &msm_timer,
.handle_irq = gic_handle_irq,
.init_machine = msm8960_rumi3_init,
MACHINE_END

4 changes: 4 additions & 0 deletions arch/arm/mach-msm/board-msm8x60.c
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ MACHINE_START(MSM8X60_RUMI3, "QCT MSM8X60 RUMI3")
.reserve = msm8x60_reserve,
.map_io = msm8x60_map_io,
.init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = msm8x60_init,
.timer = &msm_timer,
MACHINE_END
Expand All @@ -117,6 +118,7 @@ MACHINE_START(MSM8X60_SURF, "QCT MSM8X60 SURF")
.reserve = msm8x60_reserve,
.map_io = msm8x60_map_io,
.init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = msm8x60_init,
.timer = &msm_timer,
MACHINE_END
Expand All @@ -126,6 +128,7 @@ MACHINE_START(MSM8X60_SIM, "QCT MSM8X60 SIMULATOR")
.reserve = msm8x60_reserve,
.map_io = msm8x60_map_io,
.init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = msm8x60_init,
.timer = &msm_timer,
MACHINE_END
Expand All @@ -135,6 +138,7 @@ MACHINE_START(MSM8X60_FFA, "QCT MSM8X60 FFA")
.reserve = msm8x60_reserve,
.map_io = msm8x60_map_io,
.init_irq = msm8x60_init_irq,
.handle_irq = gic_handle_irq,
.init_machine = msm8x60_init,
.timer = &msm_timer,
MACHINE_END
Expand Down
17 changes: 0 additions & 17 deletions arch/arm/mach-msm/include/mach/entry-macro-qgic.S

This file was deleted.

37 changes: 0 additions & 37 deletions arch/arm/mach-msm/include/mach/entry-macro-vic.S

This file was deleted.

27 changes: 23 additions & 4 deletions arch/arm/mach-msm/include/mach/entry-macro.S
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,27 @@
*
*/

#if defined(CONFIG_ARM_GIC)
#include <mach/entry-macro-qgic.S>
#else
#include <mach/entry-macro-vic.S>
.macro disable_fiq
.endm

.macro arch_ret_to_user, tmp1, tmp2
.endm

#if !defined(CONFIG_ARM_GIC)
#include <mach/msm_iomap.h>

.macro get_irqnr_preamble, base, tmp
@ enable imprecise aborts
cpsie a
mov \base, #MSM_VIC_BASE
.endm

.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
@ 0xD0 has irq# or old irq# if the irq has been handled
@ 0xD4 has irq# or -1 if none pending *but* if you just
@ read 0xD4 you never get the first irq for some reason
ldr \irqnr, [\base, #0xD0]
ldr \irqnr, [\base, #0xD4]
cmp \irqnr, #0xffffffff
.endm
#endif

0 comments on commit 041f777

Please sign in to comment.