ARM: i.MX: Setup IRQ handler from IRQ driver
This patch moves IRQ handler setup to the its corresponded IRQ driver (AVIC, TZIC). Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
This commit is contained in:
parent
d4e7d9427d
commit
000bf9ee89
@ -135,7 +135,7 @@ static __init void avic_init_gc(int idx, unsigned int irq_start)
|
||||
irq_setup_generic_chip(gc, IRQ_MSK(32), 0, IRQ_NOREQUEST, 0);
|
||||
}
|
||||
|
||||
asmlinkage void __exception_irq_entry avic_handle_irq(struct pt_regs *regs)
|
||||
static void __exception_irq_entry avic_handle_irq(struct pt_regs *regs)
|
||||
{
|
||||
u32 nivector;
|
||||
|
||||
@ -190,6 +190,8 @@ void __init mxc_init_irq(void __iomem *irqbase)
|
||||
for (i = 0; i < 8; i++)
|
||||
__raw_writel(0, avic_base + AVIC_NIPRIORITY(i));
|
||||
|
||||
set_handle_irq(avic_handle_irq);
|
||||
|
||||
#ifdef CONFIG_FIQ
|
||||
/* Initialize FIQ */
|
||||
init_FIQ(FIQ_START);
|
||||
|
@ -101,19 +101,6 @@ enum mx3_cpu_pwr_mode {
|
||||
void mx3_cpu_lp_set(enum mx3_cpu_pwr_mode mode);
|
||||
void imx_print_silicon_rev(const char *cpu, int srev);
|
||||
|
||||
void avic_handle_irq(struct pt_regs *);
|
||||
void tzic_handle_irq(struct pt_regs *);
|
||||
|
||||
#define imx1_handle_irq avic_handle_irq
|
||||
#define imx21_handle_irq avic_handle_irq
|
||||
#define imx25_handle_irq avic_handle_irq
|
||||
#define imx27_handle_irq avic_handle_irq
|
||||
#define imx31_handle_irq avic_handle_irq
|
||||
#define imx35_handle_irq avic_handle_irq
|
||||
#define imx50_handle_irq tzic_handle_irq
|
||||
#define imx51_handle_irq tzic_handle_irq
|
||||
#define imx53_handle_irq tzic_handle_irq
|
||||
|
||||
void imx_enable_cpu(int cpu, bool enable);
|
||||
void imx_set_cpu_jump(int cpu, void *jump_addr);
|
||||
u32 imx_get_cpu_arg(int cpu);
|
||||
|
@ -38,7 +38,6 @@ DT_MACHINE_START(IMX25_DT, "Freescale i.MX25 (Device Tree Support)")
|
||||
.map_io = mx25_map_io,
|
||||
.init_early = imx25_init_early,
|
||||
.init_irq = mx25_init_irq,
|
||||
.handle_irq = imx25_handle_irq,
|
||||
.init_time = imx25_timer_init,
|
||||
.init_machine = imx25_dt_init,
|
||||
.dt_compat = imx25_dt_board_compat,
|
||||
|
@ -43,7 +43,6 @@ DT_MACHINE_START(IMX27_DT, "Freescale i.MX27 (Device Tree Support)")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = imx27_timer_init,
|
||||
.init_machine = imx27_dt_init,
|
||||
.dt_compat = imx27_dt_board_compat,
|
||||
|
@ -39,7 +39,6 @@ DT_MACHINE_START(IMX31_DT, "Freescale i.MX31 (Device Tree Support)")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = imx31_dt_timer_init,
|
||||
.init_machine = imx31_dt_init,
|
||||
.dt_compat = imx31_dt_board_compat,
|
||||
|
@ -43,7 +43,6 @@ DT_MACHINE_START(IMX35_DT, "Freescale i.MX35 (Device Tree Support)")
|
||||
.map_io = mx35_map_io,
|
||||
.init_early = imx35_init_early,
|
||||
.init_irq = imx35_irq_init,
|
||||
.handle_irq = imx35_handle_irq,
|
||||
.init_machine = imx35_dt_init,
|
||||
.dt_compat = imx35_dt_board_compat,
|
||||
.restart = mxc_restart,
|
||||
|
@ -38,7 +38,6 @@ DT_MACHINE_START(IMX51_DT, "Freescale i.MX51 (Device Tree Support)")
|
||||
.map_io = mx51_map_io,
|
||||
.init_early = imx51_init_early,
|
||||
.init_irq = mx51_init_irq,
|
||||
.handle_irq = imx51_handle_irq,
|
||||
.init_machine = imx51_dt_init,
|
||||
.init_late = imx51_init_late,
|
||||
.dt_compat = imx51_dt_board_compat,
|
||||
|
@ -142,7 +142,6 @@ MACHINE_START(APF9328, "Armadeus APF9328")
|
||||
.map_io = mx1_map_io,
|
||||
.init_early = imx1_init_early,
|
||||
.init_irq = mx1_init_irq,
|
||||
.handle_irq = imx1_handle_irq,
|
||||
.init_time = apf9328_timer_init,
|
||||
.init_machine = apf9328_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -562,7 +562,6 @@ MACHINE_START(ARMADILLO5X0, "Armadillo-500")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = armadillo5x0_timer_init,
|
||||
.init_machine = armadillo5x0_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -57,7 +57,6 @@ MACHINE_START(BUG, "BugLabs BUGBase")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = bug_timer_init,
|
||||
.init_machine = bug_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -314,7 +314,6 @@ MACHINE_START(EUKREA_CPUIMX27, "EUKREA CPUIMX27")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = eukrea_cpuimx27_timer_init,
|
||||
.init_machine = eukrea_cpuimx27_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -199,7 +199,6 @@ MACHINE_START(EUKREA_CPUIMX35SD, "Eukrea CPUIMX35")
|
||||
.map_io = mx35_map_io,
|
||||
.init_early = imx35_init_early,
|
||||
.init_irq = mx35_init_irq,
|
||||
.handle_irq = imx35_handle_irq,
|
||||
.init_time = eukrea_cpuimx35_timer_init,
|
||||
.init_machine = eukrea_cpuimx35_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -356,7 +356,6 @@ MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD")
|
||||
.map_io = mx51_map_io,
|
||||
.init_early = imx51_init_early,
|
||||
.init_irq = mx51_init_irq,
|
||||
.handle_irq = imx51_handle_irq,
|
||||
.init_time = eukrea_cpuimx51sd_timer_init,
|
||||
.init_machine = eukrea_cpuimx51sd_init,
|
||||
.init_late = imx51_init_late,
|
||||
|
@ -165,7 +165,6 @@ MACHINE_START(EUKREA_CPUIMX25SD, "Eukrea CPUIMX25")
|
||||
.map_io = mx25_map_io,
|
||||
.init_early = imx25_init_early,
|
||||
.init_irq = mx25_init_irq,
|
||||
.handle_irq = imx25_handle_irq,
|
||||
.init_time = eukrea_cpuimx25_timer_init,
|
||||
.init_machine = eukrea_cpuimx25_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -604,7 +604,6 @@ MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = visstrim_m10_timer_init,
|
||||
.init_machine = visstrim_m10_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -71,7 +71,6 @@ MACHINE_START(IMX27IPCAM, "Freescale IMX27IPCAM")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = mx27ipcam_timer_init,
|
||||
.init_machine = mx27ipcam_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -77,7 +77,6 @@ MACHINE_START(IMX27LITE, "LogicPD i.MX27LITE")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = mx27lite_timer_init,
|
||||
.init_machine = mx27lite_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -31,7 +31,6 @@ static const char *imx50_dt_board_compat[] __initconst = {
|
||||
DT_MACHINE_START(IMX50_DT, "Freescale i.MX50 (Device Tree Support)")
|
||||
.map_io = mx53_map_io,
|
||||
.init_irq = mx53_init_irq,
|
||||
.handle_irq = imx50_handle_irq,
|
||||
.init_machine = imx50_dt_init,
|
||||
.dt_compat = imx50_dt_board_compat,
|
||||
.restart = mxc_restart,
|
||||
|
@ -40,7 +40,6 @@ DT_MACHINE_START(IMX53_DT, "Freescale i.MX53 (Device Tree Support)")
|
||||
.map_io = mx53_map_io,
|
||||
.init_early = imx53_init_early,
|
||||
.init_irq = mx53_init_irq,
|
||||
.handle_irq = imx53_handle_irq,
|
||||
.init_machine = imx53_dt_init,
|
||||
.init_late = imx53_init_late,
|
||||
.dt_compat = imx53_dt_board_compat,
|
||||
|
@ -289,7 +289,6 @@ MACHINE_START(KZM_ARM11_01, "Kyoto Microcomputer Co., Ltd. KZM-ARM11-01")
|
||||
.map_io = kzm_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = kzm_timer_init,
|
||||
.init_machine = kzm_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -138,7 +138,6 @@ MACHINE_START(MX1ADS, "Freescale MX1ADS")
|
||||
.map_io = mx1_map_io,
|
||||
.init_early = imx1_init_early,
|
||||
.init_irq = mx1_init_irq,
|
||||
.handle_irq = imx1_handle_irq,
|
||||
.init_time = mx1ads_timer_init,
|
||||
.init_machine = mx1ads_init,
|
||||
.restart = mxc_restart,
|
||||
@ -149,7 +148,6 @@ MACHINE_START(MXLADS, "Freescale MXLADS")
|
||||
.map_io = mx1_map_io,
|
||||
.init_early = imx1_init_early,
|
||||
.init_irq = mx1_init_irq,
|
||||
.handle_irq = imx1_handle_irq,
|
||||
.init_time = mx1ads_timer_init,
|
||||
.init_machine = mx1ads_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -327,7 +327,6 @@ MACHINE_START(MX21ADS, "Freescale i.MX21ADS")
|
||||
.map_io = mx21_map_io,
|
||||
.init_early = imx21_init_early,
|
||||
.init_irq = mx21_init_irq,
|
||||
.handle_irq = imx21_handle_irq,
|
||||
.init_time = mx21ads_timer_init,
|
||||
.init_machine = mx21ads_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -263,7 +263,6 @@ MACHINE_START(MX25_3DS, "Freescale MX25PDK (3DS)")
|
||||
.map_io = mx25_map_io,
|
||||
.init_early = imx25_init_early,
|
||||
.init_irq = mx25_init_irq,
|
||||
.handle_irq = imx25_handle_irq,
|
||||
.init_time = mx25pdk_timer_init,
|
||||
.init_machine = mx25pdk_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -544,7 +544,6 @@ MACHINE_START(MX27_3DS, "Freescale MX27PDK")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = mx27pdk_timer_init,
|
||||
.init_machine = mx27pdk_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -391,7 +391,6 @@ MACHINE_START(MX27ADS, "Freescale i.MX27ADS")
|
||||
.map_io = mx27ads_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = mx27ads_timer_init,
|
||||
.init_machine = mx27ads_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -775,7 +775,6 @@ MACHINE_START(MX31_3DS, "Freescale MX31PDK (3DS)")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = mx31_3ds_timer_init,
|
||||
.init_machine = mx31_3ds_init,
|
||||
.reserve = mx31_3ds_reserve,
|
||||
|
@ -582,7 +582,6 @@ MACHINE_START(MX31ADS, "Freescale MX31ADS")
|
||||
.map_io = mx31ads_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31ads_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = mx31ads_timer_init,
|
||||
.init_machine = mx31ads_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -308,7 +308,6 @@ MACHINE_START(LILLY1131, "INCO startec LILLY-1131")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = mx31lilly_timer_init,
|
||||
.init_machine = mx31lilly_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -291,7 +291,6 @@ MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM")
|
||||
.map_io = mx31lite_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = mx31lite_timer_init,
|
||||
.init_machine = mx31lite_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -600,7 +600,6 @@ MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = mx31moboard_timer_init,
|
||||
.init_machine = mx31moboard_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -615,7 +615,6 @@ MACHINE_START(MX35_3DS, "Freescale MX35PDK")
|
||||
.map_io = mx35_map_io,
|
||||
.init_early = imx35_init_early,
|
||||
.init_irq = mx35_init_irq,
|
||||
.handle_irq = imx35_handle_irq,
|
||||
.init_time = mx35pdk_timer_init,
|
||||
.init_machine = mx35_3ds_init,
|
||||
.reserve = mx35_3ds_reserve,
|
||||
|
@ -267,7 +267,6 @@ MACHINE_START(MXT_TD60, "Maxtrack i-MXT TD60")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = mxt_td60_timer_init,
|
||||
.init_machine = mxt_td60_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -420,7 +420,6 @@ MACHINE_START(PCA100, "phyCARD-i.MX27")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_machine = pca100_init,
|
||||
.init_time = pca100_timer_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -703,7 +703,6 @@ MACHINE_START(PCM037, "Phytec Phycore pcm037")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = pcm037_timer_init,
|
||||
.init_machine = pcm037_init,
|
||||
.init_late = pcm037_init_late,
|
||||
|
@ -351,7 +351,6 @@ MACHINE_START(PCM038, "phyCORE-i.MX27")
|
||||
.map_io = mx27_map_io,
|
||||
.init_early = imx27_init_early,
|
||||
.init_irq = mx27_init_irq,
|
||||
.handle_irq = imx27_handle_irq,
|
||||
.init_time = pcm038_timer_init,
|
||||
.init_machine = pcm038_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -400,7 +400,6 @@ MACHINE_START(PCM043, "Phytec Phycore pcm043")
|
||||
.map_io = mx35_map_io,
|
||||
.init_early = imx35_init_early,
|
||||
.init_irq = mx35_init_irq,
|
||||
.handle_irq = imx35_handle_irq,
|
||||
.init_time = pcm043_timer_init,
|
||||
.init_machine = pcm043_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -266,7 +266,6 @@ MACHINE_START(QONG, "Dave/DENX QongEVB-LITE")
|
||||
.map_io = mx31_map_io,
|
||||
.init_early = imx31_init_early,
|
||||
.init_irq = mx31_init_irq,
|
||||
.handle_irq = imx31_handle_irq,
|
||||
.init_time = qong_timer_init,
|
||||
.init_machine = qong_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -137,7 +137,6 @@ MACHINE_START(SCB9328, "Synertronixx scb9328")
|
||||
.map_io = mx1_map_io,
|
||||
.init_early = imx1_init_early,
|
||||
.init_irq = mx1_init_irq,
|
||||
.handle_irq = imx1_handle_irq,
|
||||
.init_time = scb9328_timer_init,
|
||||
.init_machine = scb9328_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -310,7 +310,6 @@ MACHINE_START(VPR200, "VPR200")
|
||||
.map_io = mx35_map_io,
|
||||
.init_early = imx35_init_early,
|
||||
.init_irq = mx35_init_irq,
|
||||
.handle_irq = imx35_handle_irq,
|
||||
.init_time = vpr200_timer_init,
|
||||
.init_machine = vpr200_board_init,
|
||||
.restart = mxc_restart,
|
||||
|
@ -125,7 +125,7 @@ static __init void tzic_init_gc(int idx, unsigned int irq_start)
|
||||
irq_setup_generic_chip(gc, IRQ_MSK(32), 0, IRQ_NOREQUEST, 0);
|
||||
}
|
||||
|
||||
asmlinkage void __exception_irq_entry tzic_handle_irq(struct pt_regs *regs)
|
||||
static void __exception_irq_entry tzic_handle_irq(struct pt_regs *regs)
|
||||
{
|
||||
u32 stat;
|
||||
int i, irqofs, handled;
|
||||
@ -189,6 +189,8 @@ void __init tzic_init_irq(void __iomem *irqbase)
|
||||
for (i = 0; i < 4; i++, irq_base += 32)
|
||||
tzic_init_gc(i, irq_base);
|
||||
|
||||
set_handle_irq(tzic_handle_irq);
|
||||
|
||||
#ifdef CONFIG_FIQ
|
||||
/* Initialize FIQ */
|
||||
init_FIQ(FIQ_START);
|
||||
|
Loading…
Reference in New Issue
Block a user