Commit bea15fd7 authored by Russell King's avatar Russell King

Merge branch 'sparse_irq' of git://sources.calxeda.com/kernel/linux into devel-stable

parents dcf81c1a 72ee8499
...@@ -28,7 +28,6 @@ config ARM ...@@ -28,7 +28,6 @@ config ARM
select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7)) select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || CPU_V7))
select HAVE_C_RECORDMCOUNT select HAVE_C_RECORDMCOUNT
select HAVE_GENERIC_HARDIRQS select HAVE_GENERIC_HARDIRQS
select HAVE_SPARSE_IRQ
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select CPU_PM if (SUSPEND || CPU_IDLE) select CPU_PM if (SUSPEND || CPU_IDLE)
select GENERIC_PCI_IOMAP select GENERIC_PCI_IOMAP
...@@ -350,6 +349,7 @@ config ARCH_HIGHBANK ...@@ -350,6 +349,7 @@ config ARCH_HIGHBANK
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
select HAVE_ARM_SCU select HAVE_ARM_SCU
select HAVE_SMP select HAVE_SMP
select SPARSE_IRQ
select USE_OF select USE_OF
help help
Support for the Calxeda Highbank SoC based boards. Support for the Calxeda Highbank SoC based boards.
......
...@@ -9,6 +9,9 @@ ...@@ -9,6 +9,9 @@
#ifndef __ASM_HARDWARE_IT8152_H #ifndef __ASM_HARDWARE_IT8152_H
#define __ASM_HARDWARE_IT8152_H #define __ASM_HARDWARE_IT8152_H
#include <mach/irqs.h>
extern void __iomem *it8152_base_address; extern void __iomem *it8152_base_address;
#define IT8152_IO_BASE (it8152_base_address + 0x03e00000) #define IT8152_IO_BASE (it8152_base_address + 0x03e00000)
......
#ifndef __ASM_ARM_IRQ_H #ifndef __ASM_ARM_IRQ_H
#define __ASM_ARM_IRQ_H #define __ASM_ARM_IRQ_H
#define NR_IRQS_LEGACY 16
#ifndef CONFIG_SPARSE_IRQ
#include <mach/irqs.h> #include <mach/irqs.h>
#else
#define NR_IRQS NR_IRQS_LEGACY
#endif
#ifndef irq_canonicalize #ifndef irq_canonicalize
#define irq_canonicalize(i) (i) #define irq_canonicalize(i) (i)
#endif #endif
#define NR_IRQS_LEGACY 16
/* /*
* Use this value to indicate lack of interrupt * Use this value to indicate lack of interrupt
* capability * capability
......
...@@ -5,7 +5,9 @@ ...@@ -5,7 +5,9 @@
#define _ASM_MC146818RTC_H #define _ASM_MC146818RTC_H
#include <linux/io.h> #include <linux/io.h>
#include <mach/irqs.h> #include <linux/kernel.h>
#define RTC_IRQ BUILD_BUG_ON(1)
#ifndef RTC_PORT #ifndef RTC_PORT
#define RTC_PORT(x) (0x70 + (x)) #define RTC_PORT(x) (0x70 + (x))
......
...@@ -25,8 +25,6 @@ ...@@ -25,8 +25,6 @@
#include <linux/timer.h> #include <linux/timer.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/mc146818rtc.h>
#include <asm/leds.h> #include <asm/leds.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/sched_clock.h> #include <asm/sched_clock.h>
......
...@@ -33,7 +33,6 @@ ...@@ -33,7 +33,6 @@
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <mach/irqs.h>
#include "core.h" #include "core.h"
#include "sysregs.h" #include "sysregs.h"
......
#ifndef __MACH_IRQS_H
#define __MACH_IRQS_H
#define NR_IRQS 192
#endif
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include <mach/addr-map.h> #include <mach/addr-map.h>
#include <mach/mfp-pxa168.h> #include <mach/mfp-pxa168.h>
#include <mach/pxa168.h> #include <mach/pxa168.h>
#include <mach/irqs.h>
#include <video/pxa168fb.h> #include <video/pxa168fb.h>
#include <linux/input.h> #include <linux/input.h>
#include <plat/pxa27x_keypad.h> #include <plat/pxa27x_keypad.h>
...@@ -240,7 +241,7 @@ static void __init common_init(void) ...@@ -240,7 +241,7 @@ static void __init common_init(void)
MACHINE_START(ASPENITE, "PXA168-based Aspenite Development Platform") MACHINE_START(ASPENITE, "PXA168-based Aspenite Development Platform")
.map_io = mmp_map_io, .map_io = mmp_map_io,
.nr_irqs = IRQ_BOARD_START, .nr_irqs = MMP_NR_IRQS,
.init_irq = pxa168_init_irq, .init_irq = pxa168_init_irq,
.timer = &pxa168_timer, .timer = &pxa168_timer,
.init_machine = common_init, .init_machine = common_init,
...@@ -249,7 +250,7 @@ MACHINE_END ...@@ -249,7 +250,7 @@ MACHINE_END
MACHINE_START(ZYLONITE2, "PXA168-based Zylonite2 Development Platform") MACHINE_START(ZYLONITE2, "PXA168-based Zylonite2 Development Platform")
.map_io = mmp_map_io, .map_io = mmp_map_io,
.nr_irqs = IRQ_BOARD_START, .nr_irqs = MMP_NR_IRQS,
.init_irq = pxa168_init_irq, .init_irq = pxa168_init_irq,
.timer = &pxa168_timer, .timer = &pxa168_timer,
.init_machine = common_init, .init_machine = common_init,
......
...@@ -43,6 +43,7 @@ static void __init avengers_lite_init(void) ...@@ -43,6 +43,7 @@ static void __init avengers_lite_init(void)
MACHINE_START(AVENGERS_LITE, "PXA168 Avengers lite Development Platform") MACHINE_START(AVENGERS_LITE, "PXA168 Avengers lite Development Platform")
.map_io = mmp_map_io, .map_io = mmp_map_io,
.nr_irqs = MMP_NR_IRQS,
.init_irq = pxa168_init_irq, .init_irq = pxa168_init_irq,
.timer = &pxa168_timer, .timer = &pxa168_timer,
.init_machine = avengers_lite_init, .init_machine = avengers_lite_init,
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include "common.h" #include "common.h"
#define BROWNSTONE_NR_IRQS (IRQ_BOARD_START + 40) #define BROWNSTONE_NR_IRQS (MMP_NR_IRQS + 40)
#define GPIO_5V_ENABLE (89) #define GPIO_5V_ENABLE (89)
...@@ -158,7 +158,7 @@ static struct platform_device brownstone_v_5vp_device = { ...@@ -158,7 +158,7 @@ static struct platform_device brownstone_v_5vp_device = {
}; };
static struct max8925_platform_data brownstone_max8925_info = { static struct max8925_platform_data brownstone_max8925_info = {
.irq_base = IRQ_BOARD_START, .irq_base = MMP_NR_IRQS,
}; };
static struct i2c_board_info brownstone_twsi1_info[] = { static struct i2c_board_info brownstone_twsi1_info[] = {
......
...@@ -23,10 +23,11 @@ ...@@ -23,10 +23,11 @@
#include <mach/addr-map.h> #include <mach/addr-map.h>
#include <mach/mfp-mmp2.h> #include <mach/mfp-mmp2.h>
#include <mach/mmp2.h> #include <mach/mmp2.h>
#include <mach/irqs.h>
#include "common.h" #include "common.h"
#define FLINT_NR_IRQS (IRQ_BOARD_START + 48) #define FLINT_NR_IRQS (MMP_NR_IRQS + 48)
static unsigned long flint_pin_config[] __initdata = { static unsigned long flint_pin_config[] __initdata = {
/* UART1 */ /* UART1 */
......
...@@ -191,7 +191,7 @@ static void __init gplugd_init(void) ...@@ -191,7 +191,7 @@ static void __init gplugd_init(void)
MACHINE_START(GPLUGD, "PXA168-based GuruPlug Display (gplugD) Platform") MACHINE_START(GPLUGD, "PXA168-based GuruPlug Display (gplugD) Platform")
.map_io = mmp_map_io, .map_io = mmp_map_io,
.nr_irqs = IRQ_BOARD_START, .nr_irqs = MMP_NR_IRQS,
.init_irq = pxa168_init_irq, .init_irq = pxa168_init_irq,
.timer = &pxa168_timer, .timer = &pxa168_timer,
.init_machine = gplugd_init, .init_machine = gplugd_init,
......
...@@ -223,7 +223,6 @@ ...@@ -223,7 +223,6 @@
#define MMP_GPIO_TO_IRQ(gpio) (IRQ_GPIO_START + (gpio)) #define MMP_GPIO_TO_IRQ(gpio) (IRQ_GPIO_START + (gpio))
#define IRQ_BOARD_START (IRQ_GPIO_START + MMP_NR_BUILTIN_GPIO) #define IRQ_BOARD_START (IRQ_GPIO_START + MMP_NR_BUILTIN_GPIO)
#define MMP_NR_IRQS IRQ_BOARD_START
#define NR_IRQS (IRQ_BOARD_START)
#endif /* __ASM_MACH_IRQS_H */ #endif /* __ASM_MACH_IRQS_H */
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/io.h> #include <linux/io.h>
#include <mach/irqs.h>
#include <mach/regs-icu.h> #include <mach/regs-icu.h>
#include <mach/mmp2.h> #include <mach/mmp2.h>
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include <linux/mfd/max8925.h> #include <linux/mfd/max8925.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <mach/addr-map.h> #include <mach/addr-map.h>
...@@ -27,7 +28,7 @@ ...@@ -27,7 +28,7 @@
#include "common.h" #include "common.h"
#define JASPER_NR_IRQS (IRQ_BOARD_START + 48) #define JASPER_NR_IRQS (MMP_NR_IRQS + 48)
static unsigned long jasper_pin_config[] __initdata = { static unsigned long jasper_pin_config[] __initdata = {
/* UART1 */ /* UART1 */
...@@ -135,7 +136,7 @@ static struct max8925_power_pdata jasper_power_data = { ...@@ -135,7 +136,7 @@ static struct max8925_power_pdata jasper_power_data = {
static struct max8925_platform_data jasper_max8925_info = { static struct max8925_platform_data jasper_max8925_info = {
.backlight = &jasper_backlight_data, .backlight = &jasper_backlight_data,
.power = &jasper_power_data, .power = &jasper_power_data,
.irq_base = IRQ_BOARD_START, .irq_base = MMP_NR_IRQS,
}; };
static struct i2c_board_info jasper_twsi1_info[] = { static struct i2c_board_info jasper_twsi1_info[] = {
......
...@@ -102,6 +102,7 @@ static void __init tavorevb_init(void) ...@@ -102,6 +102,7 @@ static void __init tavorevb_init(void)
MACHINE_START(TAVOREVB, "PXA910 Evaluation Board (aka TavorEVB)") MACHINE_START(TAVOREVB, "PXA910 Evaluation Board (aka TavorEVB)")
.map_io = mmp_map_io, .map_io = mmp_map_io,
.nr_irqs = MMP_NR_IRQS,
.init_irq = pxa910_init_irq, .init_irq = pxa910_init_irq,
.timer = &pxa910_timer, .timer = &pxa910_timer,
.init_machine = tavorevb_init, .init_machine = tavorevb_init,
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <mach/mfp-pxa168.h> #include <mach/mfp-pxa168.h>
#include <mach/pxa168.h> #include <mach/pxa168.h>
#include <mach/teton_bga.h> #include <mach/teton_bga.h>
#include <mach/irqs.h>
#include "common.h" #include "common.h"
...@@ -83,7 +84,7 @@ static void __init teton_bga_init(void) ...@@ -83,7 +84,7 @@ static void __init teton_bga_init(void)
MACHINE_START(TETON_BGA, "PXA168-based Teton BGA Development Platform") MACHINE_START(TETON_BGA, "PXA168-based Teton BGA Development Platform")
.map_io = mmp_map_io, .map_io = mmp_map_io,
.nr_irqs = IRQ_BOARD_START, .nr_irqs = MMP_NR_IRQS,
.init_irq = pxa168_init_irq, .init_irq = pxa168_init_irq,
.timer = &pxa168_timer, .timer = &pxa168_timer,
.init_machine = teton_bga_init, .init_machine = teton_bga_init,
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
* 16 board interrupts -- PCA9575 GPIO expander * 16 board interrupts -- PCA9575 GPIO expander
* 24 board interrupts -- 88PM860x PMIC * 24 board interrupts -- 88PM860x PMIC
*/ */
#define TTCDKB_NR_IRQS (IRQ_BOARD_START + 16 + 16 + 24) #define TTCDKB_NR_IRQS (MMP_NR_IRQS + 16 + 16 + 24)
static unsigned long ttc_dkb_pin_config[] __initdata = { static unsigned long ttc_dkb_pin_config[] __initdata = {
/* UART2 */ /* UART2 */
...@@ -130,7 +130,7 @@ static struct platform_device *ttc_dkb_devices[] = { ...@@ -130,7 +130,7 @@ static struct platform_device *ttc_dkb_devices[] = {
static struct pca953x_platform_data max7312_data[] = { static struct pca953x_platform_data max7312_data[] = {
{ {
.gpio_base = TTCDKB_GPIO_EXT0(0), .gpio_base = TTCDKB_GPIO_EXT0(0),
.irq_base = IRQ_BOARD_START, .irq_base = MMP_NR_IRQS,
}, },
}; };
......
/*
* Copyright (c) 2011 Picochip Ltd., Jamie Iles
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __MACH_IRQS_H
#define __MACH_IRQS_H
/* We dynamically allocate our irq_desc's. */
#define NR_IRQS 0
#endif /* __MACH_IRQS_H */
...@@ -150,6 +150,7 @@ MACHINE_START(CAPC7117, ...@@ -150,6 +150,7 @@ MACHINE_START(CAPC7117,
"Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM") "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -853,6 +853,7 @@ static void __init cm_x300_fixup(struct tag *tags, char **cmdline, ...@@ -853,6 +853,7 @@ static void __init cm_x300_fixup(struct tag *tags, char **cmdline,
MACHINE_START(CM_X300, "CM-X300 module") MACHINE_START(CM_X300, "CM-X300 module")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -310,6 +310,7 @@ MACHINE_START(COLIBRI, "Toradex Colibri PXA270") ...@@ -310,6 +310,7 @@ MACHINE_START(COLIBRI, "Toradex Colibri PXA270")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = colibri_pxa270_init, .init_machine = colibri_pxa270_init,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
...@@ -320,6 +321,7 @@ MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC") ...@@ -320,6 +321,7 @@ MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = colibri_pxa270_income_init, .init_machine = colibri_pxa270_income_init,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -186,6 +186,7 @@ MACHINE_START(COLIBRI300, "Toradex Colibri PXA300") ...@@ -186,6 +186,7 @@ MACHINE_START(COLIBRI300, "Toradex Colibri PXA300")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = colibri_pxa300_init, .init_machine = colibri_pxa300_init,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -256,6 +256,7 @@ MACHINE_START(COLIBRI320, "Toradex Colibri PXA320") ...@@ -256,6 +256,7 @@ MACHINE_START(COLIBRI320, "Toradex Colibri PXA320")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = colibri_pxa320_init, .init_machine = colibri_pxa320_init,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -730,6 +730,7 @@ static void __init fixup_corgi(struct tag *tags, char **cmdline, ...@@ -730,6 +730,7 @@ static void __init fixup_corgi(struct tag *tags, char **cmdline,
MACHINE_START(CORGI, "SHARP Corgi") MACHINE_START(CORGI, "SHARP Corgi")
.fixup = fixup_corgi, .fixup = fixup_corgi,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.init_machine = corgi_init, .init_machine = corgi_init,
...@@ -742,6 +743,7 @@ MACHINE_END ...@@ -742,6 +743,7 @@ MACHINE_END
MACHINE_START(SHEPHERD, "SHARP Shepherd") MACHINE_START(SHEPHERD, "SHARP Shepherd")
.fixup = fixup_corgi, .fixup = fixup_corgi,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.init_machine = corgi_init, .init_machine = corgi_init,
...@@ -754,6 +756,7 @@ MACHINE_END ...@@ -754,6 +756,7 @@ MACHINE_END
MACHINE_START(HUSKY, "SHARP Husky") MACHINE_START(HUSKY, "SHARP Husky")
.fixup = fixup_corgi, .fixup = fixup_corgi,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.init_machine = corgi_init, .init_machine = corgi_init,
......
...@@ -274,6 +274,7 @@ static void __init csb726_init(void) ...@@ -274,6 +274,7 @@ static void __init csb726_init(void)
MACHINE_START(CSB726, "Cogent CSB726") MACHINE_START(CSB726, "Cogent CSB726")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.init_machine = csb726_init, .init_machine = csb726_init,
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include <mach/pxafb.h> #include <mach/pxafb.h>
#include <mach/mmc.h> #include <mach/mmc.h>
#include <mach/irda.h> #include <mach/irda.h>
#include <mach/irqs.h>
#include <mach/ohci.h> #include <mach/ohci.h>
#include <plat/pxa27x_keypad.h> #include <plat/pxa27x_keypad.h>
#include <mach/camera.h> #include <mach/camera.h>
......
...@@ -1301,6 +1301,7 @@ static void __init em_x270_init(void) ...@@ -1301,6 +1301,7 @@ static void __init em_x270_init(void)
MACHINE_START(EM_X270, "Compulab EM-X270") MACHINE_START(EM_X270, "Compulab EM-X270")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
...@@ -1311,6 +1312,7 @@ MACHINE_END ...@@ -1311,6 +1312,7 @@ MACHINE_END
MACHINE_START(EXEDA, "Compulab eXeda") MACHINE_START(EXEDA, "Compulab eXeda")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -235,6 +235,7 @@ static void __init gumstix_init(void) ...@@ -235,6 +235,7 @@ static void __init gumstix_init(void)
MACHINE_START(GUMSTIX, "Gumstix") MACHINE_START(GUMSTIX, "Gumstix")
.atag_offset = 0x100, /* match u-boot bi_boot_params */ .atag_offset = 0x100, /* match u-boot bi_boot_params */
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -205,6 +205,7 @@ static void __init h5000_init(void) ...@@ -205,6 +205,7 @@ static void __init h5000_init(void)
MACHINE_START(H5400, "HP iPAQ H5000") MACHINE_START(H5400, "HP iPAQ H5000")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -160,6 +160,7 @@ static void __init himalaya_init(void) ...@@ -160,6 +160,7 @@ static void __init himalaya_init(void)
MACHINE_START(HIMALAYA, "HTC Himalaya") MACHINE_START(HIMALAYA, "HTC Himalaya")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.init_machine = himalaya_init, .init_machine = himalaya_init,
......
...@@ -193,6 +193,7 @@ static void __init icontrol_init(void) ...@@ -193,6 +193,7 @@ static void __init icontrol_init(void)
MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM") MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -195,6 +195,7 @@ static void __init idp_map_io(void) ...@@ -195,6 +195,7 @@ static void __init idp_map_io(void)
MACHINE_START(PXA_IDP, "Vibren PXA255 IDP") MACHINE_START(PXA_IDP, "Vibren PXA255 IDP")
/* Maintainer: Vibren Technologies */ /* Maintainer: Vibren Technologies */
.map_io = idp_map_io, .map_io = idp_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
*/ */
#define IRQ_BOARD_START (PXA_GPIO_IRQ_BASE + PXA_NR_BUILTIN_GPIO) #define IRQ_BOARD_START (PXA_GPIO_IRQ_BASE + PXA_NR_BUILTIN_GPIO)
#define NR_IRQS (IRQ_BOARD_START) #define PXA_NR_IRQS (IRQ_BOARD_START)
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
struct irq_data; struct irq_data;
......
...@@ -758,6 +758,7 @@ MACHINE_START(MIOA701, "MIO A701") ...@@ -758,6 +758,7 @@ MACHINE_START(MIOA701, "MIO A701")
.atag_offset = 0x100, .atag_offset = 0x100,
.restart_mode = 's', .restart_mode = 's',
.map_io = &pxa27x_map_io, .map_io = &pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = &pxa27x_init_irq, .init_irq = &pxa27x_init_irq,
.handle_irq = &pxa27x_handle_irq, .handle_irq = &pxa27x_handle_irq,
.init_machine = mioa701_machine_init, .init_machine = mioa701_machine_init,
......
...@@ -95,6 +95,7 @@ MACHINE_START(NEC_MP900, "MobilePro900/C") ...@@ -95,6 +95,7 @@ MACHINE_START(NEC_MP900, "MobilePro900/C")
.atag_offset = 0x220100, .atag_offset = 0x220100,
.timer = &pxa_timer, .timer = &pxa_timer,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.init_machine = mp900c_init, .init_machine = mp900c_init,
......
...@@ -344,6 +344,7 @@ static void __init palmld_init(void) ...@@ -344,6 +344,7 @@ static void __init palmld_init(void)
MACHINE_START(PALMLD, "Palm LifeDrive") MACHINE_START(PALMLD, "Palm LifeDrive")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = palmld_map_io, .map_io = palmld_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -205,6 +205,7 @@ MACHINE_START(PALMT5, "Palm Tungsten|T5") ...@@ -205,6 +205,7 @@ MACHINE_START(PALMT5, "Palm Tungsten|T5")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.reserve = palmt5_reserve, .reserve = palmt5_reserve,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -539,6 +539,7 @@ static void __init palmtc_init(void) ...@@ -539,6 +539,7 @@ static void __init palmtc_init(void)
MACHINE_START(PALMTC, "Palm Tungsten|C") MACHINE_START(PALMTC, "Palm Tungsten|C")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -358,6 +358,7 @@ static void __init palmte2_init(void) ...@@ -358,6 +358,7 @@ static void __init palmte2_init(void)
MACHINE_START(PALMTE2, "Palm Tungsten|E2") MACHINE_START(PALMTE2, "Palm Tungsten|E2")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -448,6 +448,7 @@ MACHINE_START(TREO680, "Palm Treo 680") ...@@ -448,6 +448,7 @@ MACHINE_START(TREO680, "Palm Treo 680")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.reserve = treo_reserve, .reserve = treo_reserve,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
...@@ -461,6 +462,7 @@ MACHINE_START(CENTRO, "Palm Centro 685") ...@@ -461,6 +462,7 @@ MACHINE_START(CENTRO, "Palm Centro 685")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.reserve = treo_reserve, .reserve = treo_reserve,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -366,6 +366,7 @@ static void __init palmtx_init(void) ...@@ -366,6 +366,7 @@ static void __init palmtx_init(void)
MACHINE_START(PALMTX, "Palm T|X") MACHINE_START(PALMTX, "Palm T|X")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = palmtx_map_io, .map_io = palmtx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -401,6 +401,7 @@ static void __init palmz72_init(void) ...@@ -401,6 +401,7 @@ static void __init palmz72_init(void)
MACHINE_START(PALMZ72, "Palm Zire72") MACHINE_START(PALMZ72, "Palm Zire72")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <mach/pm.h> #include <mach/pm.h>
#include <mach/dma.h> #include <mach/dma.h>
#include <mach/smemc.h> #include <mach/smemc.h>
#include <mach/irqs.h>
#include "generic.h" #include "generic.h"
#include "devices.h" #include "devices.h"
......
...@@ -1090,6 +1090,7 @@ MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") ...@@ -1090,6 +1090,7 @@ MACHINE_START(RAUMFELD_RC, "Raumfeld Controller")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = raumfeld_controller_init, .init_machine = raumfeld_controller_init,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
...@@ -1102,6 +1103,7 @@ MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") ...@@ -1102,6 +1103,7 @@ MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = raumfeld_connector_init, .init_machine = raumfeld_connector_init,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
...@@ -1114,6 +1116,7 @@ MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") ...@@ -1114,6 +1116,7 @@ MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = raumfeld_speaker_init, .init_machine = raumfeld_speaker_init,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -598,6 +598,7 @@ MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)") ...@@ -598,6 +598,7 @@ MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)")
/* Maintainer: Eric Miao <eric.miao@marvell.com> */ /* Maintainer: Eric Miao <eric.miao@marvell.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -984,6 +984,7 @@ MACHINE_START(SPITZ, "SHARP Spitz") ...@@ -984,6 +984,7 @@ MACHINE_START(SPITZ, "SHARP Spitz")
.restart_mode = 'g', .restart_mode = 'g',
.fixup = spitz_fixup, .fixup = spitz_fixup,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.init_machine = spitz_init, .init_machine = spitz_init,
...@@ -997,6 +998,7 @@ MACHINE_START(BORZOI, "SHARP Borzoi") ...@@ -997,6 +998,7 @@ MACHINE_START(BORZOI, "SHARP Borzoi")
.restart_mode = 'g', .restart_mode = 'g',
.fixup = spitz_fixup, .fixup = spitz_fixup,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.init_machine = spitz_init, .init_machine = spitz_init,
...@@ -1010,6 +1012,7 @@ MACHINE_START(AKITA, "SHARP Akita") ...@@ -1010,6 +1012,7 @@ MACHINE_START(AKITA, "SHARP Akita")
.restart_mode = 'g', .restart_mode = 'g',
.fixup = spitz_fixup, .fixup = spitz_fixup,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.init_machine = spitz_init, .init_machine = spitz_init,
......
...@@ -1006,6 +1006,7 @@ static void __init stargate2_init(void) ...@@ -1006,6 +1006,7 @@ static void __init stargate2_init(void)
#ifdef CONFIG_MACH_INTELMOTE2 #ifdef CONFIG_MACH_INTELMOTE2
MACHINE_START(INTELMOTE2, "IMOTE 2") MACHINE_START(INTELMOTE2, "IMOTE 2")
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -491,6 +491,7 @@ MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)") ...@@ -491,6 +491,7 @@ MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)")
/* Maintainer: Eric Miao <eric.miao@marvell.com> */ /* Maintainer: Eric Miao <eric.miao@marvell.com> */
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa3xx_map_io, .map_io = pxa3xx_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa3xx_init_irq, .init_irq = pxa3xx_init_irq,
.handle_irq = pxa3xx_handle_irq, .handle_irq = pxa3xx_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/sched_clock.h> #include <asm/sched_clock.h>
#include <mach/regs-ost.h> #include <mach/regs-ost.h>
#include <mach/irqs.h>
/* /*
* This is PXA's sched_clock implementation. This has a resolution * This is PXA's sched_clock implementation. This has a resolution
......
...@@ -558,6 +558,7 @@ MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module") ...@@ -558,6 +558,7 @@ MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = trizeps4_init, .init_machine = trizeps4_init,
.map_io = trizeps4_map_io, .map_io = trizeps4_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
...@@ -569,6 +570,7 @@ MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module") ...@@ -569,6 +570,7 @@ MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = trizeps4_init, .init_machine = trizeps4_init,
.map_io = trizeps4_map_io, .map_io = trizeps4_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -994,6 +994,7 @@ MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") ...@@ -994,6 +994,7 @@ MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC")
/* Maintainer: Marc Zyngier <maz@misterjones.org> */ /* Maintainer: Marc Zyngier <maz@misterjones.org> */
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = viper_map_io, .map_io = viper_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = viper_init_irq, .init_irq = viper_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -718,6 +718,7 @@ static void __init vpac270_init(void) ...@@ -718,6 +718,7 @@ static void __init vpac270_init(void)
MACHINE_START(VPAC270, "Voipac PXA270") MACHINE_START(VPAC270, "Voipac PXA270")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -182,6 +182,7 @@ MACHINE_START(XCEP, "Iskratel XCEP") ...@@ -182,6 +182,7 @@ MACHINE_START(XCEP, "Iskratel XCEP")
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = xcep_init, .init_machine = xcep_init,
.map_io = pxa25x_map_io, .map_io = pxa25x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa25x_init_irq, .init_irq = pxa25x_init_irq,
.handle_irq = pxa25x_handle_irq, .handle_irq = pxa25x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -721,6 +721,7 @@ static void __init z2_init(void) ...@@ -721,6 +721,7 @@ static void __init z2_init(void)
MACHINE_START(ZIPIT2, "Zipit Z2") MACHINE_START(ZIPIT2, "Zipit Z2")
.atag_offset = 0x100, .atag_offset = 0x100,
.map_io = pxa27x_map_io, .map_io = pxa27x_map_io,
.nr_irqs = PXA_NR_IRQS,
.init_irq = pxa27x_init_irq, .init_irq = pxa27x_init_irq,
.handle_irq = pxa27x_handle_irq, .handle_irq = pxa27x_handle_irq,
.timer = &pxa_timer, .timer = &pxa_timer,
......
...@@ -100,6 +100,10 @@ config MACH_MARZEN ...@@ -100,6 +100,10 @@ config MACH_MARZEN
comment "SH-Mobile System Configuration" comment "SH-Mobile System Configuration"
config CPU_HAS_INTEVT
bool
default y
menu "Memory configuration" menu "Memory configuration"
config MEMORY_START config MEMORY_START
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include <video/sh_mipi_dsi.h> #include <video/sh_mipi_dsi.h>
#include <sound/sh_fsi.h> #include <sound/sh_fsi.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/sh73a0.h> #include <mach/sh73a0.h>
#include <mach/common.h> #include <mach/common.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <mach/r8a7740.h> #include <mach/r8a7740.h>
#include <mach/irqs.h>
#include <video/sh_mobile_lcdc.h> #include <video/sh_mobile_lcdc.h>
/* /*
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include <linux/input.h> #include <linux/input.h>
#include <linux/input/sh_keysc.h> #include <linux/input/sh_keysc.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <mach/irqs.h>
#include <mach/sh7367.h> #include <mach/sh7367.h>
#include <mach/common.h> #include <mach/common.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include <linux/mmc/sh_mobile_sdhi.h> #include <linux/mmc/sh_mobile_sdhi.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/dma-mapping.h> #include <linux/dma-mapping.h>
#include <mach/irqs.h>
#include <mach/sh7377.h> #include <mach/sh7377.h>
#include <mach/common.h> #include <mach/common.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include <linux/mfd/tmio.h> #include <linux/mfd/tmio.h>
#include <linux/mmc/sh_mobile_sdhi.h> #include <linux/mmc/sh_mobile_sdhi.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/sh73a0.h> #include <mach/sh73a0.h>
#include <mach/common.h> #include <mach/common.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
......
...@@ -55,6 +55,7 @@ ...@@ -55,6 +55,7 @@
#include <sound/sh_fsi.h> #include <sound/sh_fsi.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/irqs.h>
#include <mach/sh7372.h> #include <mach/sh7372.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/r8a7779.h> #include <mach/r8a7779.h>
#include <mach/common.h> #include <mach/common.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
......
#ifndef __ASM_MACH_IRQS_H #ifndef __ASM_MACH_IRQS_H
#define __ASM_MACH_IRQS_H #define __ASM_MACH_IRQS_H
#define NR_IRQS 1024 #include <linux/sh_intc.h>
/* GIC */ /* GIC */
#define gic_spi(nr) ((nr) + 32) #define gic_spi(nr) ((nr) + 32)
/* INTCA */
#define evt2irq(evt) (((evt) >> 5) - 16)
#define irq2evt(irq) (((irq) + 16) << 5)
/* INTCS */ /* INTCS */
#define INTCS_VECT_BASE 0x2200 #define INTCS_VECT_BASE 0x2200
#define INTCS_VECT(n, vect) INTC_VECT((n), INTCS_VECT_BASE + (vect)) #define INTCS_VECT(n, vect) INTC_VECT((n), INTCS_VECT_BASE + (vect))
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <mach/intc.h> #include <mach/intc.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <mach/intc.h> #include <mach/intc.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <mach/intc.h> #include <mach/intc.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <mach/intc.h> #include <mach/intc.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/io.h> #include <linux/io.h>
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <mach/intc.h> #include <mach/intc.h>
#include <mach/irqs.h>
#include <mach/sh73a0.h> #include <mach/sh73a0.h>
#include <asm/hardware/gic.h> #include <asm/hardware/gic.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
......
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <linux/serial_sci.h> #include <linux/serial_sci.h>
#include <linux/sh_timer.h> #include <linux/sh_timer.h>
#include <mach/r8a7740.h> #include <mach/r8a7740.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <linux/sh_timer.h> #include <linux/sh_timer.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/r8a7779.h> #include <mach/r8a7779.h>
#include <mach/common.h> #include <mach/common.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <linux/serial_sci.h> #include <linux/serial_sci.h>
#include <linux/sh_timer.h> #include <linux/sh_timer.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <linux/sh_timer.h> #include <linux/sh_timer.h>
#include <linux/pm_domain.h> #include <linux/pm_domain.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/sh7372.h> #include <mach/sh7372.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <linux/sh_timer.h> #include <linux/sh_timer.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include <linux/sh_intc.h> #include <linux/sh_intc.h>
#include <linux/sh_timer.h> #include <linux/sh_timer.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <mach/irqs.h>
#include <mach/sh73a0.h> #include <mach/sh73a0.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
......
...@@ -11,7 +11,7 @@ config TMS320C6X ...@@ -11,7 +11,7 @@ config TMS320C6X
select HAVE_DMA_API_DEBUG select HAVE_DMA_API_DEBUG
select HAVE_GENERIC_HARDIRQS select HAVE_GENERIC_HARDIRQS
select HAVE_MEMBLOCK select HAVE_MEMBLOCK
select HAVE_SPARSE_IRQ select SPARSE_IRQ
select OF select OF
select OF_EARLY_FLATTREE select OF_EARLY_FLATTREE
......
...@@ -133,7 +133,7 @@ config PPC ...@@ -133,7 +133,7 @@ config PPC
select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64 select HAVE_HW_BREAKPOINT if PERF_EVENTS && PPC_BOOK3S_64
select HAVE_GENERIC_HARDIRQS select HAVE_GENERIC_HARDIRQS
select HAVE_SPARSE_IRQ select MAY_HAVE_SPARSE_IRQ
select IRQ_PER_CPU select IRQ_PER_CPU
select GENERIC_IRQ_SHOW select GENERIC_IRQ_SHOW
select GENERIC_IRQ_SHOW_LEVEL select GENERIC_IRQ_SHOW_LEVEL
......
...@@ -22,7 +22,7 @@ config SUPERH ...@@ -22,7 +22,7 @@ config SUPERH
select HAVE_SYSCALL_TRACEPOINTS select HAVE_SYSCALL_TRACEPOINTS
select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_REGS_AND_STACK_ACCESS_API
select HAVE_GENERIC_HARDIRQS select HAVE_GENERIC_HARDIRQS
select HAVE_SPARSE_IRQ select MAY_HAVE_SPARSE_IRQ
select IRQ_FORCED_THREADING select IRQ_FORCED_THREADING
select RTC_LIB select RTC_LIB
select GENERIC_ATOMIC64 select GENERIC_ATOMIC64
......
...@@ -20,17 +20,6 @@ ...@@ -20,17 +20,6 @@
*/ */
#define NO_IRQ_IGNORE ((unsigned int)-1) #define NO_IRQ_IGNORE ((unsigned int)-1)
/*
* Convert back and forth between INTEVT and IRQ values.
*/
#ifdef CONFIG_CPU_HAS_INTEVT
#define evt2irq(evt) (((evt) >> 5) - 16)
#define irq2evt(irq) (((irq) + 16) << 5)
#else
#define evt2irq(evt) (evt)
#define irq2evt(irq) (irq)
#endif
/* /*
* Simple Mask Register Support * Simple Mask Register Support
*/ */
......
...@@ -69,7 +69,6 @@ config X86 ...@@ -69,7 +69,6 @@ config X86
select HAVE_ARCH_JUMP_LABEL select HAVE_ARCH_JUMP_LABEL
select HAVE_TEXT_POKE_SMP select HAVE_TEXT_POKE_SMP
select HAVE_GENERIC_HARDIRQS select HAVE_GENERIC_HARDIRQS
select HAVE_SPARSE_IRQ
select SPARSE_IRQ select SPARSE_IRQ
select GENERIC_FIND_FIRST_BIT select GENERIC_FIND_FIRST_BIT
select GENERIC_IRQ_PROBE select GENERIC_IRQ_PROBE
......
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
#include <linux/syscore_ops.h> #include <linux/syscore_ops.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <mach/irqs.h>
/* /*
* We handle the GPIOs by banks, each bank covers up to 32 GPIOs with * We handle the GPIOs by banks, each bank covers up to 32 GPIOs with
* one set of registers. The register offsets are organized below: * one set of registers. The register offsets are organized below:
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
*/ */
#include "internals.h" #include "internals.h"
static unsigned long dist_handle[NR_IRQS]; static unsigned long dist_handle[INTC_NR_IRQS];
void intc_balancing_enable(unsigned int irq) void intc_balancing_enable(unsigned int irq)
{ {
......
...@@ -42,7 +42,7 @@ unsigned int nr_intc_controllers; ...@@ -42,7 +42,7 @@ unsigned int nr_intc_controllers;
* - this needs to be at least 2 for 5-bit priorities on 7780 * - this needs to be at least 2 for 5-bit priorities on 7780
*/ */
static unsigned int default_prio_level = 2; /* 2 - 16 */ static unsigned int default_prio_level = 2; /* 2 - 16 */
static unsigned int intc_prio_level[NR_IRQS]; /* for now */ static unsigned int intc_prio_level[INTC_NR_IRQS]; /* for now */
unsigned int intc_get_dfl_prio_level(void) unsigned int intc_get_dfl_prio_level(void)
{ {
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include "internals.h" #include "internals.h"
static unsigned long ack_handle[NR_IRQS]; static unsigned long ack_handle[INTC_NR_IRQS];
static intc_enum __init intc_grp_id(struct intc_desc *desc, static intc_enum __init intc_grp_id(struct intc_desc *desc,
intc_enum enum_id) intc_enum enum_id)
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <linux/export.h> #include <linux/export.h>
#include "internals.h" #include "internals.h"
static struct intc_map_entry intc_irq_xlate[NR_IRQS]; static struct intc_map_entry intc_irq_xlate[INTC_NR_IRQS];
struct intc_virq_list { struct intc_virq_list {
unsigned int irq; unsigned int irq;
......
...@@ -3,6 +3,23 @@ ...@@ -3,6 +3,23 @@
#include <linux/ioport.h> #include <linux/ioport.h>
#ifdef CONFIG_SUPERH
#define INTC_NR_IRQS 512
#else
#define INTC_NR_IRQS 1024
#endif
/*
* Convert back and forth between INTEVT and IRQ values.
*/
#ifdef CONFIG_CPU_HAS_INTEVT
#define evt2irq(evt) (((evt) >> 5) - 16)
#define irq2evt(irq) (((irq) + 16) << 5)
#else
#define evt2irq(evt) (evt)
#define irq2evt(irq) (irq)
#endif
typedef unsigned char intc_enum; typedef unsigned char intc_enum;
struct intc_vect { struct intc_vect {
......
...@@ -13,7 +13,7 @@ config GENERIC_HARDIRQS ...@@ -13,7 +13,7 @@ config GENERIC_HARDIRQS
# Options selectable by the architecture code # Options selectable by the architecture code
# Make sparse irq Kconfig switch below available # Make sparse irq Kconfig switch below available
config HAVE_SPARSE_IRQ config MAY_HAVE_SPARSE_IRQ
bool bool
# Enable the generic irq autoprobe mechanism # Enable the generic irq autoprobe mechanism
...@@ -61,8 +61,7 @@ config IRQ_FORCED_THREADING ...@@ -61,8 +61,7 @@ config IRQ_FORCED_THREADING
bool bool
config SPARSE_IRQ config SPARSE_IRQ
bool "Support sparse irq numbering" bool "Support sparse irq numbering" if MAY_HAVE_SPARSE_IRQ
depends on HAVE_SPARSE_IRQ
---help--- ---help---
Sparse irq numbering is useful for distro kernels that want Sparse irq numbering is useful for distro kernels that want
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#include <sound/ac97_codec.h> #include <sound/ac97_codec.h>
#include <sound/pxa2xx-lib.h> #include <sound/pxa2xx-lib.h>
#include <asm/irq.h> #include <mach/irqs.h>
#include <mach/regs-ac97.h> #include <mach/regs-ac97.h>
#include <mach/audio.h> #include <mach/audio.h>
......
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