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