GIC and VIC clean-ups
Subsystems (15)
v3 cover GIC and VIC clean-ups
From: Rob Herring <[email protected]>
This series is in preparation to move gic and vic to drivers/irqchip. I dropped the actual move to drivers/irqchip as the infrastructure is still being flushed out and I'd like to get the clean-ups at least into 3.8.
This series is available here:git://sources.calxeda.com/kernel/linux.git irqchip-cleanup
Changes in v3:
- Add ux500 fix from Srinidhi
- Only including clean-ups for 3.8
- Keep gic register definitions in header. Will be needed for KVM
- use set_handle_irq from Thomas
- Remove all occurrences gic_handle_irq from platforms
- Add clean-up vic.h
Rob
Rob Herring (7):
ARM: GIC: remove assembly ifdefs from gic.h
ARM: GIC: remove direct use of gic_raise_softirq
ARM: GIC: set handle_arch_irq in GIC initialization
ARM: remove mach .handle_irq for GIC users
ARM: VIC: shrink down vic.h
ARM: VIC: set handle_arch_irq in VIC initialization
ARM: remove mach .handle_irq for VIC users
Srinidhi Kasagar (1):
ARM: mach-ux500: use SGI0 to wake up the other core
Thomas Petazzoni (1):
arm: add set_handle_irq() to register the parent IRQ controller
handler function
arch/arm/common/gic.c | 50 ++++++++++++++++------------ arch/arm/common/vic.c | 22 +++++++++++- arch/arm/include/asm/hardware/gic.h | 8 ----- arch/arm/include/asm/hardware/vic.h | 24 ++----------- arch/arm/include/asm/mach/irq.h | 1 + arch/arm/include/asm/smp.h | 1 + arch/arm/kernel/irq.c | 10 ++++++ arch/arm/kernel/smp.c | 8 ++++- arch/arm/kernel/smp_twd.c | 1 - arch/arm/mach-cns3xxx/cns3420vb.c | 2 -- arch/arm/mach-ep93xx/adssphere.c | 1 - arch/arm/mach-ep93xx/edb93xx.c | 8 ----- arch/arm/mach-ep93xx/gesbc9312.c | 1 - arch/arm/mach-ep93xx/micro9.c | 4 --- arch/arm/mach-ep93xx/simone.c | 1 - arch/arm/mach-ep93xx/snappercl15.c | 1 - arch/arm/mach-ep93xx/ts72xx.c | 1 - arch/arm/mach-ep93xx/vision_ep9307.c | 1 - arch/arm/mach-exynos/mach-armlex4210.c | 2 -- arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -- arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -- arch/arm/mach-exynos/mach-nuri.c | 2 -- arch/arm/mach-exynos/mach-origen.c | 2 -- arch/arm/mach-exynos/mach-smdk4x12.c | 3 -- arch/arm/mach-exynos/mach-smdkv310.c | 3 -- arch/arm/mach-exynos/mach-universal_c210.c | 2 -- arch/arm/mach-exynos/mct.c | 1 - arch/arm/mach-exynos/platsmp.c | 4 +-- arch/arm/mach-highbank/highbank.c | 1 - arch/arm/mach-highbank/platsmp.c | 4 +-- arch/arm/mach-imx/mach-imx6q.c | 1 - arch/arm/mach-imx/platsmp.c | 2 -- arch/arm/mach-msm/board-dt-8660.c | 1 - arch/arm/mach-msm/board-dt-8960.c | 1 - arch/arm/mach-msm/platsmp.c | 4 +-- arch/arm/mach-msm/timer.c | 1 - arch/arm/mach-netx/nxdb500.c | 1 - arch/arm/mach-netx/nxdkn.c | 1 - arch/arm/mach-netx/nxeb500hmi.c | 1 - arch/arm/mach-nomadik/board-nhk8815.c | 1 - arch/arm/mach-omap2/board-4430sdp.c | 1 - arch/arm/mach-omap2/board-generic.c | 3 -- arch/arm/mach-omap2/board-omap4panda.c | 1 - arch/arm/mach-omap2/omap-smp.c | 4 +-- arch/arm/mach-picoxcell/common.c | 1 - arch/arm/mach-realview/core.c | 1 - arch/arm/mach-realview/platsmp.c | 3 -- arch/arm/mach-realview/realview_eb.c | 1 - arch/arm/mach-realview/realview_pb1176.c | 1 - arch/arm/mach-realview/realview_pb11mp.c | 1 - arch/arm/mach-realview/realview_pba8.c | 1 - arch/arm/mach-realview/realview_pbx.c | 1 - arch/arm/mach-s3c64xx/mach-anw6410.c | 1 - arch/arm/mach-s3c64xx/mach-crag6410.c | 1 - arch/arm/mach-s3c64xx/mach-hmt.c | 1 - arch/arm/mach-s3c64xx/mach-mini6410.c | 1 - arch/arm/mach-s3c64xx/mach-ncp.c | 1 - arch/arm/mach-s3c64xx/mach-real6410.c | 1 - arch/arm/mach-s3c64xx/mach-smartq5.c | 1 - arch/arm/mach-s3c64xx/mach-smartq7.c | 1 - arch/arm/mach-s3c64xx/mach-smdk6400.c | 1 - arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 - arch/arm/mach-s5p64x0/mach-smdk6440.c | 1 - arch/arm/mach-s5p64x0/mach-smdk6450.c | 1 - arch/arm/mach-s5pc100/mach-smdkc100.c | 1 - arch/arm/mach-s5pv210/mach-aquila.c | 1 - arch/arm/mach-s5pv210/mach-goni.c | 1 - arch/arm/mach-s5pv210/mach-smdkc110.c | 1 - arch/arm/mach-s5pv210/mach-smdkv210.c | 1 - arch/arm/mach-s5pv210/mach-torbreck.c | 1 - arch/arm/mach-shmobile/board-ag5evm.c | 1 - arch/arm/mach-shmobile/board-kota2.c | 1 - arch/arm/mach-shmobile/board-kzm9d.c | 2 -- arch/arm/mach-shmobile/board-kzm9g.c | 1 - arch/arm/mach-shmobile/board-marzen.c | 2 -- arch/arm/mach-shmobile/platsmp.c | 3 -- arch/arm/mach-shmobile/setup-emev2.c | 1 - arch/arm/mach-shmobile/smp-emev2.c | 2 +- arch/arm/mach-socfpga/socfpga.c | 1 - arch/arm/mach-spear13xx/platsmp.c | 2 -- arch/arm/mach-spear13xx/spear1310.c | 1 - arch/arm/mach-spear13xx/spear1340.c | 1 - arch/arm/mach-spear3xx/spear300.c | 2 -- arch/arm/mach-spear3xx/spear310.c | 2 -- arch/arm/mach-spear3xx/spear320.c | 2 -- arch/arm/mach-spear6xx/spear6xx.c | 1 - arch/arm/mach-tegra/board-dt-tegra20.c | 3 -- arch/arm/mach-tegra/board-dt-tegra30.c | 2 -- arch/arm/mach-tegra/platsmp.c | 2 -- arch/arm/mach-u300/core.c | 1 - arch/arm/mach-ux500/board-mop500.c | 5 --- arch/arm/mach-ux500/platsmp.c | 4 +-- arch/arm/mach-versatile/versatile_ab.c | 1 - arch/arm/mach-versatile/versatile_dt.c | 1 - arch/arm/mach-versatile/versatile_pb.c | 1 - arch/arm/mach-vexpress/ct-ca9x4.c | 2 -- arch/arm/mach-vexpress/platsmp.c | 3 -- arch/arm/mach-vexpress/v2m.c | 2 -- arch/arm/mach-zynq/common.c | 1 - arch/arm/plat-mxc/include/mach/common.h | 1 - arch/arm/plat-versatile/platsmp.c | 2 +- 101 files changed, 77 insertions(+), 203 deletions(-)
Signature · 1 line
1.7.10.4
PATCH v3 1/9 arm: add set_handle_irq() to register the parent IRQ controller handler function
From: Thomas Petazzoni <[email protected]>
In order to allow irqchip drivers to register their IRQ handling function as the parent IRQ controller handler function, we provide a convenience function. This will avoid poking directly into the global handle_arch_irq variable.
Suggested by Arnd Bergmann.
--- arch/arm/include/asm/mach/irq.h | 1 + arch/arm/kernel/irq.c | 10 ++++++++++ 2 files changed, 11 insertions(+)
arch/arm/include/asm/mach/irq.h +1 -0
@@ -22,6 +22,7 @@ extern int show_fiq_list(struct seq_file *, int);#ifdef CONFIG_MULTI_IRQ_HANDLER extern void (*handle_arch_irq)(struct pt_regs *); +extern void set_handle_irq (void (*handle_irq)(struct pt_regs *));#endif /*
arch/arm/kernel/irq.c +10 -0
@@ -117,6 +117,16 @@ void __init init_IRQ(void) machine_desc->init_irq (); } +#ifdef CONFIG_MULTI_IRQ_HANDLER +void __init set_handle_irq (void (*handle_irq)(struct pt_regs *)) +{ +if (handle_arch_irq) +return ; + + handle_arch_irq = handle_irq; +} +#endif +#ifdef CONFIG_SPARSE_IRQ int __init arch_probe_nr_irqs (void ) {
Signature · 1 line
1.7.10.4
PATCH v3 2/9 ARM: mach-ux500: use SGI0 to wake up the other core
In reply to Rob HerringFrom: Srinidhi Kasagar <[email protected]>
The commit 7d28e3eaa1a8e951251b942e7220f97114bd73b9 ("ARM: ux500: wake secondary cpu via resched") makes use of schedule IPI to wake up the secondary core which seems incorrect. Rather use SGI0.
--- arch/arm/mach-ux500/platsmp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mach-ux500/platsmp.c +1 -1
@@ -91,7 +91,7 @@ static int __cpuinit ux500_boot_secondary(unsigned int cpu, struct task_struct **/ write_pen_release (cpu_logical_map (cpu)); -smp_send_reschedule (cpu); +gic_raise_softirq (cpumask_of (cpu),0 ); timeout = jiffies + (1 *HZ );while (time_before (jiffies, timeout)) {
Signature · 1 line
1.7.10.4
PATCH v3 3/9 ARM: GIC: remove assembly ifdefs from gic.h
In reply to Rob HerringFrom: Rob Herring <[email protected]>
With multi irq handler and all GIC users converted to it, we don't need asm/hardware/gic.h to be included in assembly. Clean-up ifdefs and unnecessary includes.
--- arch/arm/include/asm/hardware/gic.h | 6 ------ 1 file changed, 6 deletions(-)
arch/arm/include/asm/hardware/gic.h +0 -6
@@ -10,8 +10,6 @@#ifndef __ASM_ARM_HARDWARE_GIC_H#define __ASM_ARM_HARDWARE_GIC_H -#include <linux/compiler.h> -#define GIC_CPU_CTRL 0x00#define GIC_CPU_PRIMASK 0x04#define GIC_CPU_BINPOINT 0x08
@@ -32,8 +30,6 @@#define GIC_DIST_CONFIG 0xc00#define GIC_DIST_SOFTINT 0xf00 -#ifndef __ASSEMBLY__ -#include <linux/irqdomain.h> struct device_node ;extern struct irq_chip gic_arch_extn;
@@ -53,5 +49,3 @@ static inline void gic_init(unsigned int nr, int start, }#endif - -#endif
Signature · 1 line
1.7.10.4
PATCH v3 4/9 ARM: GIC: remove direct use of gic_raise_softirq
In reply to Rob HerringFrom: Rob Herring <[email protected]>
In preparation of moving gic code to drivers/irqchip, remove the direct platform dependencies on gic_raise_softirq. Move the setup of smp_cross_call into the gic code. All platforms are using IPI#0 for core wakeup, so create a common wakeup ipi function.
--- arch/arm/common/gic.c | 45 +++++++++++++++++++---------------- arch/arm/include/asm/hardware/gic.h | 1 - arch/arm/include/asm/smp.h | 1 + arch/arm/kernel/smp.c | 8 ++++++- arch/arm/mach-exynos/platsmp.c | 4 +--- arch/arm/mach-highbank/platsmp.c | 4 +--- arch/arm/mach-imx/platsmp.c | 2 -- arch/arm/mach-msm/platsmp.c | 4 +--- arch/arm/mach-omap2/omap-smp.c | 4 +--- arch/arm/mach-realview/platsmp.c | 3 --- arch/arm/mach-shmobile/platsmp.c | 2 -- arch/arm/mach-shmobile/smp-emev2.c | 2 +- arch/arm/mach-spear13xx/platsmp.c | 2 -- arch/arm/mach-tegra/platsmp.c | 2 -- arch/arm/mach-ux500/platsmp.c | 4 +--- arch/arm/mach-vexpress/ct-ca9x4.c | 2 -- arch/arm/mach-vexpress/platsmp.c | 2 -- arch/arm/plat-versatile/platsmp.c | 2 +- 18 files changed, 39 insertions(+), 55 deletions(-)
arch/arm/common/gic.c +24 -21
@@ -597,6 +597,27 @@ static void __init gic_pm_init(struct gic_chip_data *gic) }#endif +#ifdef CONFIG_SMP +static void gic_raise_softirq (const struct cpumask *mask,unsigned int irq) +{ +int cpu; +unsigned long map =0 ; + +/* Convert our logical CPU mask into a physical one. */ +for_each_cpu (cpu, mask) + map |=1 <<cpu_logical_map (cpu); + +/* +* Ensure that stores to Normal memory are visible to the +* other CPUs before issuing the IPI. +*/ +dsb (); + +/* this always happens on GIC0 */ +writel_relaxed (map <<16 | irq,gic_data_dist_base (&gic_data[0 ]) +GIC_DIST_SOFTINT ); +} +#endif +static int gic_irq_domain_map (struct irq_domain *d,unsigned int irq,irq_hw_number_t hw) {
@@ -716,6 +737,9 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start,if (WARN_ON (!gic->domain))return ; +#ifdef CONFIG_SMP +set_smp_cross_call (gic_raise_softirq); +#endif gic_chip.flags |= gic_arch_extn.flags;gic_dist_init (gic);gic_cpu_init (gic);
@@ -729,27 +753,6 @@ void __cpuinit gic_secondary_init(unsigned int gic_nr)gic_cpu_init (&gic_data[gic_nr]); } -#ifdef CONFIG_SMP -void gic_raise_softirq (const struct cpumask *mask,unsigned int irq) -{ -int cpu; -unsigned long map =0 ; - -/* Convert our logical CPU mask into a physical one. */ -for_each_cpu (cpu, mask) - map |=1 <<cpu_logical_map (cpu); - -/* -* Ensure that stores to Normal memory are visible to the -* other CPUs before issuing the IPI. -*/ -dsb (); - -/* this always happens on GIC0 */ -writel_relaxed (map <<16 | irq,gic_data_dist_base (&gic_data[0 ]) +GIC_DIST_SOFTINT ); -} -#endif -#ifdef CONFIG_OF static int gic_cnt__initdata =0 ;
arch/arm/include/asm/hardware/gic.h +0 -1
@@ -40,7 +40,6 @@ int gic_of_init(struct device_node *node, struct device_node *parent);void gic_secondary_init (unsigned int );void gic_handle_irq (struct pt_regs *regs);void gic_cascade_irq (unsigned int gic_nr,unsigned int irq); -void gic_raise_softirq (const struct cpumask *mask,unsigned int irq);static inline void gic_init (unsigned int nr,int start,void __iomem *dist ,void __iomem *cpu)
arch/arm/include/asm/smp.h +1 -0
@@ -79,6 +79,7 @@ extern void cpu_die(void);extern void arch_send_call_function_single_ipi (int cpu);extern void arch_send_call_function_ipi_mask (const struct cpumask *mask); +extern void arch_send_wakeup_ipi (int cpu);struct smp_operations {#ifdef CONFIG_SMP
arch/arm/kernel/smp.c +7 -1
@@ -413,7 +413,8 @@ static void (*smp_cross_call)(const struct cpumask *, unsigned int);void __init set_smp_cross_call (void (*fn)(const struct cpumask *,unsigned int )) { - smp_cross_call = fn; +if (!smp_cross_call) + smp_cross_call = fn; }void arch_send_call_function_ipi_mask (const struct cpumask *mask)
@@ -426,6 +427,11 @@ void arch_send_call_function_single_ipi(int cpu)smp_cross_call (cpumask_of (cpu),IPI_CALL_FUNC_SINGLE ); } +void arch_send_wakeup_ipi (int cpu) +{ +smp_cross_call (cpumask_of (cpu),IPI_WAKEUP ); +} +static const char *ipi_types[NR_IPI ] = { #define S(x,s) [x] = sS (IPI_WAKEUP ,"CPU wakeup interrupts" ),
arch/arm/mach-exynos/platsmp.c +1 -3
@@ -134,7 +134,7 @@ static int __cpuinit exynos_boot_secondary(unsigned int cpu, struct task_struct__raw_writel (virt_to_phys (exynos4_secondary_startup),CPU1_BOOT_REG ); -gic_raise_softirq (cpumask_of (cpu),0 ); +arch_send_wakeup_ipi (cpu);if (pen_release ==-1 )break ;
@@ -175,8 +175,6 @@ static void __init exynos_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init exynos_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-highbank/platsmp.c +1 -3
@@ -32,7 +32,7 @@ static void __cpuinit highbank_secondary_init(unsigned int cpu)static int __cpuinit highbank_boot_secondary (unsigned int cpu,struct task_struct *idle) { -gic_raise_softirq (cpumask_of (cpu),0 ); +arch_send_wakeup_ipi (cpu);return 0 ; }
@@ -57,8 +57,6 @@ static void __init highbank_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init highbank_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-imx/platsmp.c +0 -2
@@ -70,8 +70,6 @@ static void __init imx_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }void imx_smp_prepare (void )
arch/arm/mach-msm/platsmp.c +1 -3
@@ -115,7 +115,7 @@ static int __cpuinit msm_boot_secondary(unsigned int cpu, struct task_struct *id* the boot monitor to read the system wide flags register, * and branch to the address found there. */ -gic_raise_softirq (cpumask_of (cpu),0 ); +arch_send_wakeup_ipi (cpu); timeout = jiffies + (1 *HZ );while (time_before (jiffies, timeout)) {
@@ -153,8 +153,6 @@ static void __init msm_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init msm_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-omap2/omap-smp.c +1 -3
@@ -125,7 +125,7 @@ static int __cpuinit omap4_boot_secondary(unsigned int cpu, struct task_struct * booted = true; } -gic_raise_softirq (cpumask_of (cpu),0 ); +arch_send_wakeup_ipi (cpu);/* * Now the secondary core is starting up let it run its
@@ -192,8 +192,6 @@ static void __init omap4_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init omap4_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-realview/platsmp.c +0 -3
@@ -14,7 +14,6 @@#include <linux/io.h> #include <mach/hardware.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <asm/smp_scu.h>
@@ -59,8 +58,6 @@ static void __init realview_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init realview_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-shmobile/platsmp.c +0 -2
@@ -26,6 +26,4 @@ void __init shmobile_smp_init_cpus(unsigned int ncores)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }
arch/arm/mach-shmobile/smp-emev2.c +1 -1
@@ -100,7 +100,7 @@ static int __cpuinit emev2_boot_secondary(unsigned int cpu, struct task_struct */* Tell ROM loader about our vector (in headsmp.S) */ emev2_set_boot_vector (__pa (shmobile_secondary_vector)); -gic_raise_softirq (cpumask_of (cpu),0 ); +arch_send_wakeup_ipi (cpu);return 0 ; }
arch/arm/mach-spear13xx/platsmp.c +0 -2
@@ -104,8 +104,6 @@ static void __init spear13xx_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init spear13xx_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-tegra/platsmp.c +0 -2
@@ -160,8 +160,6 @@ static void __init tegra_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init tegra_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-ux500/platsmp.c +1 -3
@@ -91,7 +91,7 @@ static int __cpuinit ux500_boot_secondary(unsigned int cpu, struct task_struct **/ write_pen_release (cpu_logical_map (cpu)); -gic_raise_softirq (cpumask_of (cpu),0 ); +arch_send_wakeup_ipi (cpu); timeout = jiffies + (1 *HZ );while (time_before (jiffies, timeout)) {
@@ -155,8 +155,6 @@ static void __init ux500_smp_init_cpus(void)for (i =0 ; i < ncores; i++)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init ux500_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/mach-vexpress/ct-ca9x4.c +0 -2
@@ -195,8 +195,6 @@ static void __init ct_ca9x4_init_cpu_map(void)for (i =0 ; i < ncores; ++i)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init ct_ca9x4_smp_enable (unsigned int max_cpus)
arch/arm/mach-vexpress/platsmp.c +0 -2
@@ -127,8 +127,6 @@ static void __init vexpress_dt_smp_init_cpus(void)for (i =0 ; i < ncores; ++i)set_cpu_possible (i, true); - -set_smp_cross_call (gic_raise_softirq); }static void __init vexpress_dt_smp_prepare_cpus (unsigned int max_cpus)
arch/arm/plat-versatile/platsmp.c +1 -1
@@ -79,7 +79,7 @@ int __cpuinit versatile_boot_secondary(unsigned int cpu, struct task_struct *idl* the boot monitor to read the system wide flags register, * and branch to the address found there. */ -gic_raise_softirq (cpumask_of (cpu),0 ); +arch_send_wakeup_ipi (cpu); timeout = jiffies + (1 *HZ );while (time_before (jiffies, timeout)) {
Signature · 1 line
1.7.10.4
PATCH v3 4/9 ARM: GIC: remove direct use of gic_raise_softirq
Russell,
Quoted 6 lines · Rob Herring
From: Rob Herring <[email protected]>
In preparation of moving gic code to
drivers/irqchip, remove the direct platform dependencies ongic_raise_softirq. Move the setup ofsmp_cross_callinto the gic code. All platforms are using IPI#0 for core wakeup, so create a common wakeup ipi function.
snip
arch/arm/include/asm/smp.h extern void cpu_die(void); · line 82
Quoted 9 lines
arch/arm/include/asm/smp.h +1
-0@@ -79,6 +79,7 @@ extern void cpu_die(void);extern void arch_send_call_function_single_ipi (int cpu);extern void arch_send_call_function_ipi_mask (const struct cpumask *mask); +extern void arch_send_wakeup_ipi (int cpu);
I found there is already an arch_send_wakeup_ipi_mask() in your for-next tree, so I have rebased this to use it instead. Is your for-next branch stable for 3.8 and if not can you make commit b62655f4c6f3e4d21934e (ARM: 7571/1: SMP: add function arch_send_wakeup_ipi_mask()) available in a stable branch.
Rob
PATCH v3 4/9 ARM: GIC: remove direct use of gic_raise_softirq
Quoted 18 lines · Rob Herring
Russell,
Quoted 6 lines · Rob Herring
From: Rob Herring <[email protected]>
In preparation of moving gic code to
drivers/irqchip, remove the direct platform dependencies ongic_raise_softirq. Move the setup ofsmp_cross_callinto the gic code. All platforms are using IPI#0 for core wakeup, so create a common wakeup ipi function.snip
Quoted 6 lines
arch/arm/include/asm/smp.h +0
-0@@ -79,6 +79,7 @@ extern void cpu_die(void);
Quoted 9 lines
arch/arm/include/asm/smp.h extern void cpu_die(void); · line 82
Quoted 3 lines
arch/arm/include/asm/smp.h +1
-0extern void arch_send_call_function_single_ipi (int cpu);extern void arch_send_call_function_ipi_mask (const struct cpumask *mask); +extern void arch_send_wakeup_ipi (int cpu);I found there is already an
arch_send_wakeup_ipi_mask()in your for-next tree, so I have rebased this to use it instead. Is your for-next branch stable for 3.8 and if not can you make commitb62655f4c6f3e4d21934e(ARM: 7571/1: SMP: add functionarch_send_wakeup_ipi_mask()) available in a stable branch.
I'm still sitting on this series which ready to go. I need a stable base and I can send to Russell or arm-soc.
Rob
PATCH v3 5/9 ARM: GIC: set handle_arch_irq in GIC initialization
In reply to Rob HerringFrom: Rob Herring <[email protected]>
Set handle_arch_irq to gic_handle_irq. Only the first GIC initialized can setup the handler.
--- arch/arm/common/gic.c | 3 +++ 1 file changed, 3 insertions(+)
arch/arm/common/gic.c +3 -0
@@ -740,6 +740,9 @@ void __init gic_init_bases(unsigned int gic_nr, int irq_start,#ifdef CONFIG_SMP set_smp_cross_call (gic_raise_softirq);#endif + +set_handle_irq (gic_handle_irq); + gic_chip.flags |= gic_arch_extn.flags;gic_dist_init (gic);gic_cpu_init (gic);
Signature · 1 line
1.7.10.4
PATCH v3 6/9 ARM: remove mach .handle_irq for GIC users
In reply to Rob HerringFrom: Rob Herring <[email protected]>
Now that the GIC initialization sets up the handle_arch_irq pointer, we can remove it for all machines.
--- arch/arm/common/gic.c | 2 +- arch/arm/include/asm/hardware/gic.h | 1 - arch/arm/kernel/smp_twd.c | 1 - arch/arm/mach-cns3xxx/cns3420vb.c | 2 -- arch/arm/mach-exynos/mach-armlex4210.c | 2 -- arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -- arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -- arch/arm/mach-exynos/mach-nuri.c | 2 -- arch/arm/mach-exynos/mach-origen.c | 2 -- arch/arm/mach-exynos/mach-smdk4x12.c | 3 --- arch/arm/mach-exynos/mach-smdkv310.c | 3 --- arch/arm/mach-exynos/mach-universal_c210.c | 2 -- arch/arm/mach-exynos/mct.c | 1 - arch/arm/mach-highbank/highbank.c | 1 - arch/arm/mach-imx/mach-imx6q.c | 1 - arch/arm/mach-msm/board-dt-8660.c | 1 - arch/arm/mach-msm/board-dt-8960.c | 1 - arch/arm/mach-msm/timer.c | 1 - arch/arm/mach-omap2/board-4430sdp.c | 1 - arch/arm/mach-omap2/board-generic.c | 3 --- arch/arm/mach-omap2/board-omap4panda.c | 1 - arch/arm/mach-realview/core.c | 1 - arch/arm/mach-realview/realview_eb.c | 1 - arch/arm/mach-realview/realview_pb1176.c | 1 - arch/arm/mach-realview/realview_pb11mp.c | 1 - arch/arm/mach-realview/realview_pba8.c | 1 - arch/arm/mach-realview/realview_pbx.c | 1 - arch/arm/mach-shmobile/board-ag5evm.c | 1 - arch/arm/mach-shmobile/board-kota2.c | 1 - arch/arm/mach-shmobile/board-kzm9d.c | 2 -- arch/arm/mach-shmobile/board-kzm9g.c | 1 - arch/arm/mach-shmobile/board-marzen.c | 2 -- arch/arm/mach-shmobile/platsmp.c | 1 - arch/arm/mach-shmobile/setup-emev2.c | 1 - arch/arm/mach-socfpga/socfpga.c | 1 - arch/arm/mach-spear13xx/spear1310.c | 1 - arch/arm/mach-spear13xx/spear1340.c | 1 - arch/arm/mach-tegra/board-dt-tegra20.c | 3 --- arch/arm/mach-tegra/board-dt-tegra30.c | 2 -- arch/arm/mach-ux500/board-mop500.c | 5 ----- arch/arm/mach-vexpress/platsmp.c | 1 - arch/arm/mach-vexpress/v2m.c | 2 -- arch/arm/mach-zynq/common.c | 1 - arch/arm/plat-mxc/include/mach/common.h | 1 - 44 files changed, 1 insertion(+), 67 deletions(-)
arch/arm/common/gic.c +1 -1
@@ -268,7 +268,7 @@ static int gic_set_wake(struct irq_data *d, unsigned int on)#define gic_set_wake NULL#endif -asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) +static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) {u32 irqstat, irqnr;struct gic_chip_data *gic = &gic_data[0 ];
arch/arm/include/asm/hardware/gic.h +0 -1
@@ -38,7 +38,6 @@ void gic_init_bases(unsigned int, int, void __iomem *, void __iomem *, u32 offset, struct device_node *);int gic_of_init (struct device_node *node,struct device_node *parent);void gic_secondary_init (unsigned int ); -void gic_handle_irq (struct pt_regs *regs);void gic_cascade_irq (unsigned int gic_nr,unsigned int irq); static inline void gic_init(unsigned int nr, int start,
arch/arm/kernel/smp_twd.c +0 -1
@@ -24,7 +24,6 @@#include <asm/smp_twd.h> #include <asm/localtimer.h> -#include <asm/hardware/gic.h> /* set up by the platform code */ static void __iomem *twd_base;
arch/arm/mach-cns3xxx/cns3420vb.c +0 -2
@@ -26,7 +26,6 @@#include <linux/mtd/partitions.h> #include <asm/setup.h> #include <asm/mach-types.h> -#include <asm/hardware/gic.h> #include <asm/mach/arch.h> #include <asm/mach/map.h> #include <asm/mach/time.h>
@@ -202,7 +201,6 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") .map_io = cns3420_map_io, .init_irq = cns3xxx_init_irq, .timer = &cns3xxx_timer, - .handle_irq = gic_handle_irq, .init_machine = cns3420_init, .restart = cns3xxx_restart,MACHINE_END
arch/arm/mach-exynos/mach-armlex4210.c +0 -2
@@ -16,7 +16,6 @@#include <linux/smsc911x.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <plat/cpu.h>
@@ -202,7 +201,6 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = armlex4210_map_io, - .handle_irq = gic_handle_irq, .init_machine = armlex4210_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer,
arch/arm/mach-exynos/mach-exynos4-dt.c +0 -2
@@ -15,7 +15,6 @@#include <linux/serial_core.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <mach/map.h> #include <plat/cpu.h>
@@ -102,7 +101,6 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = exynos4_dt_map_io, - .handle_irq = gic_handle_irq, .init_machine = exynos4_dt_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer,
arch/arm/mach-exynos/mach-exynos5-dt.c +0 -2
@@ -13,7 +13,6 @@#include <linux/serial_core.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <mach/map.h> #include <plat/cpu.h>
@@ -97,7 +96,6 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)") .init_irq = exynos5_init_irq, .smp = smp_ops(exynos_smp_ops), .map_io = exynos5250_dt_map_io, - .handle_irq = gic_handle_irq, .init_machine = exynos5250_dt_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer,
arch/arm/mach-exynos/mach-nuri.c +0 -2
@@ -36,7 +36,6 @@#include <media/v4l2-mediabus.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <plat/adc.h>
@@ -1383,7 +1382,6 @@ MACHINE_START(NURI, "NURI") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = nuri_map_io, - .handle_irq = gic_handle_irq, .init_machine = nuri_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer,
arch/arm/mach-exynos/mach-origen.c +0 -2
@@ -26,7 +26,6 @@#include <linux/platform_data/s3c-hsotg.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <video/platform_lcd.h>
@@ -815,7 +814,6 @@ MACHINE_START(ORIGEN, "ORIGEN") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = origen_map_io, - .handle_irq = gic_handle_irq, .init_machine = origen_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer,
arch/arm/mach-exynos/mach-smdk4x12.c +0 -3
@@ -24,7 +24,6 @@#include <linux/platform_data/s3c-hsotg.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <video/samsung_fimd.h>
@@ -379,7 +378,6 @@ MACHINE_START(SMDK4212, "SMDK4212") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdk4x12_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdk4x12_machine_init, .timer = &exynos4_timer, .restart = exynos4_restart,
@@ -393,7 +391,6 @@ MACHINE_START(SMDK4412, "SMDK4412") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdk4x12_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdk4x12_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer,
arch/arm/mach-exynos/mach-smdkv310.c +0 -3
@@ -23,7 +23,6 @@#include <linux/platform_data/s3c-hsotg.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <video/platform_lcd.h>
@@ -427,7 +426,6 @@ MACHINE_START(SMDKV310, "SMDKV310") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdkv310_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdkv310_machine_init, .timer = &exynos4_timer, .reserve = &smdkv310_reserve,
@@ -440,7 +438,6 @@ MACHINE_START(SMDKC210, "SMDKC210") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = smdkv310_map_io, - .handle_irq = gic_handle_irq, .init_machine = smdkv310_machine_init, .init_late = exynos_init_late, .timer = &exynos4_timer,
arch/arm/mach-exynos/mach-universal_c210.c +0 -2
@@ -27,7 +27,6 @@#include <drm/exynos_drm.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <video/samsung_fimd.h>
@@ -1155,7 +1154,6 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") .smp = smp_ops(exynos_smp_ops), .init_irq = exynos4_init_irq, .map_io = universal_map_io, - .handle_irq = gic_handle_irq, .init_machine = universal_machine_init, .init_late = exynos_init_late, .timer = &s5p_timer,
arch/arm/mach-exynos/mct.c +0 -1
@@ -20,7 +20,6 @@#include <linux/delay.h> #include <linux/percpu.h> -#include <asm/hardware/gic.h> #include <asm/localtimer.h> #include <plat/cpu.h>
arch/arm/mach-highbank/highbank.c +0 -1
@@ -219,7 +219,6 @@ DT_MACHINE_START(HIGHBANK, "Highbank") .map_io = highbank_map_io, .init_irq = highbank_init_irq, .timer = &highbank_timer, - .handle_irq = gic_handle_irq, .init_machine = highbank_init, .dt_compat = highbank_match, .restart = highbank_restart,
arch/arm/mach-imx/mach-imx6q.c +0 -1
@@ -207,7 +207,6 @@ DT_MACHINE_START(IMX6Q, "Freescale i.MX6 Quad (Device Tree)") .smp = smp_ops(imx_smp_ops), .map_io = imx6q_map_io, .init_irq = imx6q_init_irq, - .handle_irq = imx6q_handle_irq, .timer = &imx6q_timer, .init_machine = imx6q_init_machine, .init_late = imx6q_init_late,
arch/arm/mach-msm/board-dt-8660.c +0 -1
@@ -56,7 +56,6 @@ DT_MACHINE_START(MSM_DT, "Qualcomm MSM (Flattened Device Tree)") .smp = smp_ops(msm_smp_ops), .map_io = msm_map_msm8x60_io, .init_irq = msm8x60_init_irq, - .handle_irq = gic_handle_irq, .init_machine = msm8x60_dt_init, .init_late = msm8x60_init_late, .timer = &msm_dt_timer,
arch/arm/mach-msm/board-dt-8960.c +0 -1
@@ -46,5 +46,4 @@ DT_MACHINE_START(MSM8960_DT, "Qualcomm MSM (Flattened Device Tree)") .timer = &msm_dt_timer, .init_machine = msm_dt_init, .dt_compat = msm8960_dt_match, - .handle_irq = gic_handle_irq,MACHINE_END
arch/arm/mach-msm/timer.c +0 -1
@@ -25,7 +25,6 @@#include <linux/of_irq.h> #include <asm/mach/time.h> -#include <asm/hardware/gic.h> #include <asm/localtimer.h> #include <asm/sched_clock.h>
arch/arm/mach-omap2/board-4430sdp.c +0 -1
@@ -877,7 +877,6 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") .map_io = omap4_map_io, .init_early = omap4430_init_early, .init_irq = gic_init_irq, - .handle_irq = gic_handle_irq, .init_machine = omap_4430sdp_init, .init_late = omap4430_init_late, .timer = &omap4_timer,
arch/arm/mach-omap2/board-generic.c +0 -3
@@ -16,7 +16,6 @@#include <linux/of_platform.h> #include <linux/irqdomain.h> -#include <asm/hardware/gic.h> #include <asm/mach/arch.h> #include "common.h"
@@ -129,7 +128,6 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)") .map_io = omap4_map_io, .init_early = omap4430_init_early, .init_irq = omap_gic_of_init, - .handle_irq = gic_handle_irq, .init_machine = omap_generic_init, .init_late = omap4430_init_late, .timer = &omap4_timer,
@@ -150,7 +148,6 @@ DT_MACHINE_START(OMAP5_DT, "Generic OMAP5 (Flattened Device Tree)") .map_io = omap5_map_io, .init_early = omap5_init_early, .init_irq = omap_gic_of_init, - .handle_irq = gic_handle_irq, .init_machine = omap_generic_init, .timer = &omap5_timer, .dt_compat = omap5_boards_compat,
arch/arm/mach-omap2/board-omap4panda.c +0 -1
@@ -520,7 +520,6 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") .map_io = omap4_map_io, .init_early = omap4430_init_early, .init_irq = gic_init_irq, - .handle_irq = gic_handle_irq, .init_machine = omap4_panda_init, .init_late = omap4430_init_late, .timer = &omap4_timer,
arch/arm/mach-realview/core.c +0 -1
@@ -42,7 +42,6 @@#include <asm/mach/irq.h> #include <asm/mach/map.h> -#include <asm/hardware/gic.h> #include <mach/platform.h> #include <mach/irqs.h>
arch/arm/mach-realview/realview_eb.c +0 -1
@@ -472,7 +472,6 @@ MACHINE_START(REALVIEW_EB, "ARM-RealView EB") .init_early = realview_init_early, .init_irq = gic_init_irq, .timer = &realview_eb_timer, - .handle_irq = gic_handle_irq, .init_machine = realview_eb_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M,
arch/arm/mach-realview/realview_pb1176.c +0 -1
@@ -385,7 +385,6 @@ MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") .init_early = realview_init_early, .init_irq = gic_init_irq, .timer = &realview_pb1176_timer, - .handle_irq = gic_handle_irq, .init_machine = realview_pb1176_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M,
arch/arm/mach-realview/realview_pb11mp.c +0 -1
@@ -368,7 +368,6 @@ MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") .init_early = realview_init_early, .init_irq = gic_init_irq, .timer = &realview_pb11mp_timer, - .handle_irq = gic_handle_irq, .init_machine = realview_pb11mp_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M,
arch/arm/mach-realview/realview_pba8.c +0 -1
@@ -309,7 +309,6 @@ MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") .init_early = realview_init_early, .init_irq = gic_init_irq, .timer = &realview_pba8_timer, - .handle_irq = gic_handle_irq, .init_machine = realview_pba8_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M,
arch/arm/mach-realview/realview_pbx.c +0 -1
@@ -405,7 +405,6 @@ MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") .init_early = realview_init_early, .init_irq = gic_init_irq, .timer = &realview_pbx_timer, - .handle_irq = gic_handle_irq, .init_machine = realview_pbx_init, #ifdef CONFIG_ZONE_DMA .dma_zone_size = SZ_256M,
arch/arm/mach-shmobile/board-ag5evm.c +0 -1
@@ -654,7 +654,6 @@ MACHINE_START(AG5EVM, "ag5evm") .init_early = sh73a0_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = sh73a0_init_irq, - .handle_irq = gic_handle_irq, .init_machine = ag5evm_init, .init_late = shmobile_init_late, .timer = &shmobile_timer,
arch/arm/mach-shmobile/board-kota2.c +0 -1
@@ -550,7 +550,6 @@ MACHINE_START(KOTA2, "kota2") .init_early = sh73a0_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = sh73a0_init_irq, - .handle_irq = gic_handle_irq, .init_machine = kota2_init, .init_late = shmobile_init_late, .timer = &shmobile_timer,
arch/arm/mach-shmobile/board-kzm9d.c +0 -2
@@ -28,7 +28,6 @@#include <mach/emev2.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> /* Dummy supplies, where voltage doesn't matter */ static struct regulator_consumer_supply dummy_supplies[] = {
@@ -89,7 +88,6 @@ DT_MACHINE_START(KZM9D_DT, "kzm9d") .init_early = emev2_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = emev2_init_irq, - .handle_irq = gic_handle_irq, .init_machine = kzm9d_add_standard_devices, .init_late = shmobile_init_late, .timer = &shmobile_timer,
arch/arm/mach-shmobile/board-kzm9g.c +0 -1
@@ -780,7 +780,6 @@ DT_MACHINE_START(KZM9G_DT, "kzm9g") .init_early = sh73a0_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = sh73a0_init_irq, - .handle_irq = gic_handle_irq, .init_machine = kzm_init, .init_late = shmobile_init_late, .timer = &shmobile_timer,
arch/arm/mach-shmobile/board-marzen.c +0 -2
@@ -38,7 +38,6 @@#include <mach/irqs.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <asm/traps.h> /* Fixed 3.3V regulator to be used by SDHI0 */
@@ -173,7 +172,6 @@ MACHINE_START(MARZEN, "marzen") .init_early = r8a7779_add_early_devices, .nr_irqs = NR_IRQS_LEGACY, .init_irq = r8a7779_init_irq, - .handle_irq = gic_handle_irq, .init_machine = marzen_init, .init_late = shmobile_init_late, .timer = &shmobile_timer,
arch/arm/mach-shmobile/platsmp.c +0 -1
@@ -12,7 +12,6 @@*/ #include <linux/init.h> #include <linux/smp.h> -#include <asm/hardware/gic.h> void __init shmobile_smp_init_cpus (unsigned int ncores) {
arch/arm/mach-shmobile/setup-emev2.c +0 -1
@@ -465,7 +465,6 @@ DT_MACHINE_START(EMEV2_DT, "Generic Emma Mobile EV2 (Flattened Device Tree)") .init_early = emev2_init_delay, .nr_irqs = NR_IRQS_LEGACY, .init_irq = emev2_init_irq_dt, - .handle_irq = gic_handle_irq, .init_machine = emev2_add_standard_devices_dt, .timer = &shmobile_timer, .dt_compat = emev2_boards_compat_dt,
arch/arm/mach-socfpga/socfpga.c +0 -1
@@ -54,7 +54,6 @@ static const char *altera_dt_match[] = {DT_MACHINE_START (SOCFPGA ,"Altera SOCFPGA" ) .init_irq = gic_init_irq, - .handle_irq = gic_handle_irq, .timer = &dw_apb_timer, .init_machine = socfpga_cyclone5_init, .restart = socfpga_cyclone5_restart,
arch/arm/mach-spear13xx/spear1310.c +0 -1
@@ -81,7 +81,6 @@ DT_MACHINE_START(SPEAR1310_DT, "ST SPEAr1310 SoC with Flattened Device Tree") .smp = smp_ops(spear13xx_smp_ops), .map_io = spear1310_map_io, .init_irq = spear13xx_dt_init_irq, - .handle_irq = gic_handle_irq, .timer = &spear13xx_timer, .init_machine = spear1310_dt_init, .restart = spear_restart,
arch/arm/mach-spear13xx/spear1340.c +0 -1
@@ -185,7 +185,6 @@ DT_MACHINE_START(SPEAR1340_DT, "ST SPEAr1340 SoC with Flattened Device Tree") .smp = smp_ops(spear13xx_smp_ops), .map_io = spear13xx_map_io, .init_irq = spear13xx_dt_init_irq, - .handle_irq = gic_handle_irq, .timer = &spear13xx_timer, .init_machine = spear1340_dt_init, .restart = spear_restart,
arch/arm/mach-tegra/board-dt-tegra20.c +0 -3
@@ -25,7 +25,6 @@#include <linux/of.h> #include <linux/of_address.h> #include <linux/of_fdt.h> -#include <linux/of_irq.h> #include <linux/of_platform.h> #include <linux/pda_power.h> #include <linux/platform_data/tegra_usb.h>
@@ -34,7 +33,6 @@#include <linux/i2c-tegra.h> #include <linux/usb/tegra_usb_phy.h> -#include <asm/hardware/gic.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> #include <asm/mach/time.h>
@@ -181,7 +179,6 @@ DT_MACHINE_START(TEGRA_DT, "nVidia Tegra20 (Flattened Device Tree)") .smp = smp_ops(tegra_smp_ops), .init_early = tegra20_init_early, .init_irq = tegra_dt_init_irq, - .handle_irq = gic_handle_irq, .timer = &tegra_sys_timer, .init_machine = tegra_dt_init, .init_late = tegra_dt_init_late,
arch/arm/mach-tegra/board-dt-tegra30.c +0 -2
@@ -31,7 +31,6 @@#include <linux/of_platform.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <mach/iomap.h>
@@ -88,7 +87,6 @@ DT_MACHINE_START(TEGRA30_DT, "NVIDIA Tegra30 (Flattened Device Tree)") .map_io = tegra_map_common_io, .init_early = tegra30_init_early, .init_irq = tegra_dt_init_irq, - .handle_irq = gic_handle_irq, .timer = &tegra_sys_timer, .init_machine = tegra30_dt_init, .init_late = tegra_init_late,
arch/arm/mach-ux500/board-mop500.c +0 -5
@@ -40,7 +40,6 @@#include <asm/mach-types.h> #include <asm/mach/arch.h> -#include <asm/hardware/gic.h> #include <plat/ste_dma40.h> #include <plat/gpio-nomadik.h>
@@ -696,7 +695,6 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform") .init_irq = ux500_init_irq,/* we re-use nomadik timer here */ .timer = &ux500_timer, - .handle_irq = gic_handle_irq, .init_machine = mop500_init_machine, .init_late = ux500_init_late,MACHINE_END
@@ -707,7 +705,6 @@ MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") .map_io = u8500_map_io, .init_irq = ux500_init_irq, .timer = &ux500_timer, - .handle_irq = gic_handle_irq, .init_machine = hrefv60_init_machine, .init_late = ux500_init_late,MACHINE_END
@@ -719,7 +716,6 @@ MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") .init_irq = ux500_init_irq,/* we re-use nomadik timer here */ .timer = &ux500_timer, - .handle_irq = gic_handle_irq, .init_machine = snowball_init_machine, .init_late = ux500_init_late,MACHINE_END
@@ -847,7 +843,6 @@ DT_MACHINE_START(U8500_DT, "ST-Ericsson U8500 platform (Device Tree Support)") .init_irq = ux500_init_irq,/* we re-use nomadik timer here */ .timer = &ux500_timer, - .handle_irq = gic_handle_irq, .init_machine = u8500_init_machine, .init_late = ux500_init_late, .dt_compat = u8500_dt_board_compat,
arch/arm/mach-vexpress/platsmp.c +0 -1
@@ -15,7 +15,6 @@#include <linux/of_fdt.h> #include <asm/smp_scu.h> -#include <asm/hardware/gic.h> #include <asm/mach/map.h> #include <mach/motherboard.h>
arch/arm/mach-vexpress/v2m.c +0 -2
@@ -537,7 +537,6 @@ MACHINE_START(VEXPRESS, "ARM-Versatile Express") .init_early = v2m_init_early, .init_irq = v2m_init_irq, .timer = &v2m_timer, - .handle_irq = gic_handle_irq, .init_machine = v2m_init, .restart = v2m_restart,MACHINE_END
@@ -671,6 +670,5 @@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express") .init_irq = v2m_dt_init_irq, .timer = &v2m_dt_timer, .init_machine = v2m_dt_init, - .handle_irq = gic_handle_irq, .restart = v2m_restart,MACHINE_END
arch/arm/mach-zynq/common.c +0 -1
@@ -112,7 +112,6 @@ static const char *xilinx_dt_match[] = {MACHINE_START (XILINX_EP107 ,"Xilinx Zynq Platform" ) .map_io = xilinx_map_io, .init_irq = xilinx_irq_init, - .handle_irq = gic_handle_irq, .init_machine = xilinx_init_machine, .timer = &xttcpss_sys_timer, .dt_compat = xilinx_dt_match,
arch/arm/plat-mxc/include/mach/common.h +0 -1
@@ -110,7 +110,6 @@ void tzic_handle_irq(struct pt_regs *);#define imx50_handle_irq tzic_handle_irq#define imx51_handle_irq tzic_handle_irq#define imx53_handle_irq tzic_handle_irq -#define imx6q_handle_irq gic_handle_irqextern void imx_enable_cpu (int cpu,bool enable);extern void imx_set_cpu_jump (int cpu,void *jump_addr);
Signature · 1 line
1.7.10.4
PATCH 6/9 ARM: remove mach .handle_irq for GIC users
Quoted 7 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the GIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines.arch/arm/mach-spear13xx/spear1310.c | 1 - arch/arm/mach-spear13xx/spear1340.c | 1 -
PATCH 6/9 ARM: remove mach .handle_irq for GIC users
In reply to Rob HerringQuoted 26 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the GIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines.Signed-off-by Rob Herring <[email protected]>Cc Russell King <[email protected]>Cc Anton Vorontsov <[email protected]>Cc Kukjin Kim <[email protected]>Cc Kyungmin Park <[email protected]>Cc Shawn Guo <[email protected]>Cc Sascha Hauer <[email protected]>Cc David Brown <[email protected]>Cc Daniel Walker <[email protected]>Cc Bryan Huntsman <[email protected]>Cc Tony Lindgren <[email protected]>Cc Paul Mundt <[email protected]>Cc Magnus Damm <[email protected]>Cc Dinh Nguyen <[email protected]>Cc Viresh Kumar <[email protected]>Cc Shiraz Hashim <[email protected]>Cc Stephen Warren <[email protected]>Cc Srinidhi Kasagar <[email protected]>Cc Linus Walleij <[email protected]>---
[...]
Quoted 9 lines
arch/arm/mach-exynos/mach-armlex4210.c | 2 -- arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -- arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -- arch/arm/mach-exynos/mach-nuri.c | 2 -- arch/arm/mach-exynos/mach-origen.c | 2 -- arch/arm/mach-exynos/mach-smdk4x12.c | 3 --- arch/arm/mach-exynos/mach-smdkv310.c | 3 --- arch/arm/mach-exynos/mach-universal_c210.c | 2 -- arch/arm/mach-exynos/mct.c | 1 -
For above exynos,
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd
PATCH 6/9 ARM: remove mach .handle_irq for GIC users
In reply to Rob HerringQuoted 6 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the GIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines.Signed-off-by Rob Herring <[email protected]>
...
Quoted 1 line
Cc Shawn Guo <[email protected]>
...
Quoted 1 line
arch/arm/mach-imx/mach-imx6q.c | 1 -
PATCH v3 7/9 ARM: VIC: shrink down vic.h
In reply to Rob HerringFrom: Rob Herring <[email protected]>
Move all register defines except VIC_INT_ENABLE, VIC_RAW_STATUS, and VIC_INT_ENABLE_CLEAR which are used by Samsung.
With multi irq handler, vic.h is not included in assembly any more, so we can remove the assembly ifdefs.
--- arch/arm/common/vic.c | 17 +++++++++++++++++ arch/arm/include/asm/hardware/vic.h | 23 ++--------------------- 2 files changed, 19 insertions(+), 21 deletions(-)
arch/arm/common/vic.c +17 -0
@@ -35,6 +35,23 @@#include <asm/mach/irq.h> #include <asm/hardware/vic.h> +#define VIC_IRQ_STATUS 0x00 +#define VIC_FIQ_STATUS 0x04 +#define VIC_INT_SELECT 0x0c/* 1 = FIQ, 0 = IRQ */ +#define VIC_INT_SOFT 0x18 +#define VIC_INT_SOFT_CLEAR 0x1c +#define VIC_PROTECT 0x20 +#define VIC_PL190_VECT_ADDR 0x30/* PL190 only */ +#define VIC_PL190_DEF_VECT_ADDR 0x34/* PL190 only */ + +#define VIC_VECT_ADDR0 0x100/* 0 to 15 (0..31 PL192) */ +#define VIC_VECT_CNTL0 0x200/* 0 to 15 (0..31 PL192) */ +#define VIC_ITCR 0x300/* VIC test control register */ + +#define VIC_VECT_CNTL_ENABLE (1 << 5) + +#define VIC_PL192_VECT_ADDR 0xF00 +/** * struct vic_device - VIC PM device * @irq: The IRQ number for the base of the VIC.
arch/arm/include/asm/hardware/vic.h +2 -21
@@ -20,29 +20,11 @@#ifndef __ASM_ARM_HARDWARE_VIC_H#define __ASM_ARM_HARDWARE_VIC_H -#define VIC_IRQ_STATUS 0x00 -#define VIC_FIQ_STATUS 0x04 +#include <linux/types.h> +#define VIC_RAW_STATUS 0x08 -#define VIC_INT_SELECT 0x0c/* 1 = FIQ, 0 = IRQ */ #define VIC_INT_ENABLE 0x10/* 1 = enable, 0 = disable */ #define VIC_INT_ENABLE_CLEAR 0x14 -#define VIC_INT_SOFT 0x18 -#define VIC_INT_SOFT_CLEAR 0x1c -#define VIC_PROTECT 0x20 -#define VIC_PL190_VECT_ADDR 0x30/* PL190 only */ -#define VIC_PL190_DEF_VECT_ADDR 0x34/* PL190 only */ - -#define VIC_VECT_ADDR0 0x100/* 0 to 15 (0..31 PL192) */ -#define VIC_VECT_CNTL0 0x200/* 0 to 15 (0..31 PL192) */ -#define VIC_ITCR 0x300/* VIC test control register */ - -#define VIC_VECT_CNTL_ENABLE (1 << 5) - -#define VIC_PL192_VECT_ADDR 0xF00 - -#ifndef __ASSEMBLY__ -#include <linux/compiler.h> -#include <linux/types.h> struct device_node ;struct pt_regs ;
@@ -53,5 +35,4 @@ void vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 rint vic_of_init (struct device_node *node,struct device_node *parent);void vic_handle_irq (struct pt_regs *regs); -#endif /* __ASSEMBLY__ */ #endif
Signature · 1 line
1.7.10.4
PATCH v3 8/9 ARM: VIC: set handle_arch_irq in VIC initialization
In reply to Rob HerringFrom: Rob Herring <[email protected]>
Set handle_arch_irq to vic_handle_irq. Only the first VIC initialized can setup the handler.
--- arch/arm/common/vic.c | 1 + 1 file changed, 1 insertion(+)
arch/arm/common/vic.c +1 -0
@@ -234,6 +234,7 @@ static void __init vic_register(void __iomem *base, unsigned int irq, v->valid_sources = valid_sources; v->resume_sources = resume_sources; v->irq = irq; +set_handle_irq (vic_handle_irq); vic_id++; v->domain =irq_domain_add_legacy (node,fls (valid_sources), irq,0 , &vic_irqdomain_ops, v);
Signature · 1 line
1.7.10.4
PATCH v3 9/9 ARM: remove mach .handle_irq for VIC users
In reply to Rob HerringFrom: Rob Herring <[email protected]>
Now that the VIC initialization sets up the handle_arch_irq pointer, we can remove it for all machines and make it static.
--- arch/arm/common/vic.c | 4 +++- arch/arm/include/asm/hardware/vic.h | 1 - arch/arm/mach-ep93xx/adssphere.c | 1 - arch/arm/mach-ep93xx/edb93xx.c | 8 -------- arch/arm/mach-ep93xx/gesbc9312.c | 1 - arch/arm/mach-ep93xx/micro9.c | 4 ---- arch/arm/mach-ep93xx/simone.c | 1 - arch/arm/mach-ep93xx/snappercl15.c | 1 - arch/arm/mach-ep93xx/ts72xx.c | 1 - arch/arm/mach-ep93xx/vision_ep9307.c | 1 - arch/arm/mach-netx/nxdb500.c | 1 - arch/arm/mach-netx/nxdkn.c | 1 - arch/arm/mach-netx/nxeb500hmi.c | 1 - arch/arm/mach-nomadik/board-nhk8815.c | 1 - arch/arm/mach-picoxcell/common.c | 1 - arch/arm/mach-s3c64xx/mach-anw6410.c | 1 - arch/arm/mach-s3c64xx/mach-crag6410.c | 1 - arch/arm/mach-s3c64xx/mach-hmt.c | 1 - arch/arm/mach-s3c64xx/mach-mini6410.c | 1 - arch/arm/mach-s3c64xx/mach-ncp.c | 1 - arch/arm/mach-s3c64xx/mach-real6410.c | 1 - arch/arm/mach-s3c64xx/mach-smartq5.c | 1 - arch/arm/mach-s3c64xx/mach-smartq7.c | 1 - arch/arm/mach-s3c64xx/mach-smdk6400.c | 1 - arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 - arch/arm/mach-s5p64x0/mach-smdk6440.c | 1 - arch/arm/mach-s5p64x0/mach-smdk6450.c | 1 - arch/arm/mach-s5pc100/mach-smdkc100.c | 1 - arch/arm/mach-s5pv210/mach-aquila.c | 1 - arch/arm/mach-s5pv210/mach-goni.c | 1 - arch/arm/mach-s5pv210/mach-smdkc110.c | 1 - arch/arm/mach-s5pv210/mach-smdkv210.c | 1 - arch/arm/mach-s5pv210/mach-torbreck.c | 1 - arch/arm/mach-spear3xx/spear300.c | 2 -- arch/arm/mach-spear3xx/spear310.c | 2 -- arch/arm/mach-spear3xx/spear320.c | 2 -- arch/arm/mach-spear6xx/spear6xx.c | 1 - arch/arm/mach-u300/core.c | 1 - arch/arm/mach-versatile/versatile_ab.c | 1 - arch/arm/mach-versatile/versatile_dt.c | 1 - arch/arm/mach-versatile/versatile_pb.c | 1 - 41 files changed, 3 insertions(+), 54 deletions(-)
arch/arm/common/vic.c +3 -1
@@ -83,6 +83,8 @@ static struct vic_device vic_devices[CONFIG_ARM_VIC_NR];static int vic_id; +static void vic_handle_irq (struct pt_regs *regs); +/** * vic_init2 - common initialisation code * @base: Base of the VIC.
@@ -473,7 +475,7 @@ static int handle_one_vic(struct vic_device *vic, struct pt_regs *regs)* Keep iterating over all registered VIC's until there are no pending * interrupts. */ -asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs) +static asmlinkage void __exception_irq_entry vic_handle_irq(struct pt_regs *regs) {int i, handled;
arch/arm/include/asm/hardware/vic.h +0 -1
@@ -33,6 +33,5 @@ void __vic_init(void __iomem *base, unsigned int irq_start, u32 vic_sources, u32 resume_sources, struct device_node *node);void vic_init (void __iomem *base,unsigned int irq_start,u32 vic_sources,u32 resume_sources);int vic_of_init (struct device_node *node,struct device_node *parent); -void vic_handle_irq (struct pt_regs *regs);#endif
arch/arm/mach-ep93xx/adssphere.c +0 -1
@@ -39,7 +39,6 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = adssphere_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-ep93xx/edb93xx.c +0 -8
@@ -276,7 +276,6 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
@@ -290,7 +289,6 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
@@ -304,7 +302,6 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
@@ -318,7 +315,6 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
@@ -332,7 +328,6 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
@@ -346,7 +341,6 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
@@ -360,7 +354,6 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
@@ -374,7 +367,6 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = edb93xx_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-ep93xx/gesbc9312.c +0 -1
@@ -39,7 +39,6 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = gesbc9312_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-ep93xx/micro9.c +0 -4
@@ -82,7 +82,6 @@ MACHINE_START(MICRO9, "Contec Micro9-High") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late,
@@ -96,7 +95,6 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late,
@@ -110,7 +108,6 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late,
@@ -124,7 +121,6 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = micro9_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-ep93xx/simone.c +0 -1
@@ -83,7 +83,6 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = simone_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-ep93xx/snappercl15.c +0 -1
@@ -176,7 +176,6 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") .atag_offset = 0x100, .map_io = ep93xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = snappercl15_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-ep93xx/ts72xx.c +0 -1
@@ -246,7 +246,6 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") .atag_offset = 0x100, .map_io = ts72xx_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = ts72xx_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-ep93xx/vision_ep9307.c +0 -1
@@ -364,7 +364,6 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307") .atag_offset = 0x100, .map_io = vision_map_io, .init_irq = ep93xx_init_irq, - .handle_irq = vic_handle_irq, .timer = &ep93xx_timer, .init_machine = vision_init_machine, .init_late = ep93xx_init_late,
arch/arm/mach-netx/nxdb500.c +0 -1
@@ -204,7 +204,6 @@ MACHINE_START(NXDB500, "Hilscher nxdb500") .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .handle_irq = vic_handle_irq, .timer = &netx_timer, .init_machine = nxdb500_init, .restart = netx_restart,
arch/arm/mach-netx/nxdkn.c +0 -1
@@ -97,7 +97,6 @@ MACHINE_START(NXDKN, "Hilscher nxdkn") .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .handle_irq = vic_handle_irq, .timer = &netx_timer, .init_machine = nxdkn_init, .restart = netx_restart,
arch/arm/mach-netx/nxeb500hmi.c +0 -1
@@ -181,7 +181,6 @@ MACHINE_START(NXEB500HMI, "Hilscher nxeb500hmi") .atag_offset = 0x100, .map_io = netx_map_io, .init_irq = netx_init_irq, - .handle_irq = vic_handle_irq, .timer = &netx_timer, .init_machine = nxeb500hmi_init, .restart = netx_restart,
arch/arm/mach-nomadik/board-nhk8815.c +0 -1
@@ -349,7 +349,6 @@ MACHINE_START(NOMADIK, "NHK8815") .atag_offset = 0x100, .map_io = cpu8815_map_io, .init_irq = cpu8815_init_irq, - .handle_irq = vic_handle_irq, .timer = &nomadik_timer, .init_machine = nhk8815_platform_init, .restart = cpu8815_restart,
arch/arm/mach-picoxcell/common.c +0 -1
@@ -98,7 +98,6 @@ DT_MACHINE_START(PICOXCELL, "Picochip picoXcell") .map_io = picoxcell_map_io, .nr_irqs = NR_IRQS_LEGACY, .init_irq = picoxcell_init_irq, - .handle_irq = vic_handle_irq, .timer = &dw_apb_timer, .init_machine = picoxcell_init_machine, .dt_compat = picoxcell_dt_match,
arch/arm/mach-s3c64xx/mach-anw6410.c +0 -1
@@ -230,7 +230,6 @@ MACHINE_START(ANW6410, "A&W6410") .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = anw6410_map_io, .init_machine = anw6410_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-crag6410.c +0 -1
@@ -825,7 +825,6 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")/* Maintainer: Mark Brown <[email protected]> */ .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = crag6410_map_io, .init_machine = crag6410_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-hmt.c +0 -1
@@ -273,7 +273,6 @@ MACHINE_START(HMT, "Airgoo-HMT")/* Maintainer: Peter Korsgaard <[email protected]> */ .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = hmt_map_io, .init_machine = hmt_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-mini6410.c +0 -1
@@ -352,7 +352,6 @@ MACHINE_START(MINI6410, "MINI6410")/* Maintainer: Darius Augulis <[email protected]> */ .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = mini6410_map_io, .init_machine = mini6410_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-ncp.c +0 -1
@@ -101,7 +101,6 @@ MACHINE_START(NCP, "NCP")/* Maintainer: Samsung Electronics */ .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = ncp_map_io, .init_machine = ncp_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-real6410.c +0 -1
@@ -331,7 +331,6 @@ MACHINE_START(REAL6410, "REAL6410") .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = real6410_map_io, .init_machine = real6410_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-smartq5.c +0 -1
@@ -153,7 +153,6 @@ MACHINE_START(SMARTQ5, "SmartQ 5")/* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = smartq_map_io, .init_machine = smartq5_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-smartq7.c +0 -1
@@ -169,7 +169,6 @@ MACHINE_START(SMARTQ7, "SmartQ 7")/* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = smartq_map_io, .init_machine = smartq7_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-smdk6400.c +0 -1
@@ -90,7 +90,6 @@ MACHINE_START(SMDK6400, "SMDK6400") .atag_offset = 0x100, .init_irq = s3c6400_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdk6400_map_io, .init_machine = smdk6400_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s3c64xx/mach-smdk6410.c +0 -1
@@ -701,7 +701,6 @@ MACHINE_START(SMDK6410, "SMDK6410") .atag_offset = 0x100, .init_irq = s3c6410_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdk6410_map_io, .init_machine = smdk6410_machine_init, .init_late = s3c64xx_init_late,
arch/arm/mach-s5p64x0/mach-smdk6440.c +0 -1
@@ -273,7 +273,6 @@ MACHINE_START(SMDK6440, "SMDK6440") .atag_offset = 0x100, .init_irq = s5p6440_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdk6440_map_io, .init_machine = smdk6440_machine_init, .timer = &s5p_timer,
arch/arm/mach-s5p64x0/mach-smdk6450.c +0 -1
@@ -292,7 +292,6 @@ MACHINE_START(SMDK6450, "SMDK6450") .atag_offset = 0x100, .init_irq = s5p6450_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdk6450_map_io, .init_machine = smdk6450_machine_init, .timer = &s5p_timer,
arch/arm/mach-s5pc100/mach-smdkc100.c +0 -1
@@ -255,7 +255,6 @@ MACHINE_START(SMDKC100, "SMDKC100")/* Maintainer: Byungho Min <[email protected]> */ .atag_offset = 0x100, .init_irq = s5pc100_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdkc100_map_io, .init_machine = smdkc100_machine_init, .timer = &s3c24xx_timer,
arch/arm/mach-s5pv210/mach-aquila.c +0 -1
@@ -685,7 +685,6 @@ MACHINE_START(AQUILA, "Aquila")Kyungmin Park <[email protected]> */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = aquila_map_io, .init_machine = aquila_machine_init, .timer = &s5p_timer,
arch/arm/mach-s5pv210/mach-goni.c +0 -1
@@ -973,7 +973,6 @@ MACHINE_START(GONI, "GONI")/* Maintainers: Kyungmin Park <[email protected]> */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = goni_map_io, .init_machine = goni_machine_init, .timer = &s5p_timer,
arch/arm/mach-s5pv210/mach-smdkc110.c +0 -1
@@ -153,7 +153,6 @@ MACHINE_START(SMDKC110, "SMDKC110")/* Maintainer: Kukjin Kim <[email protected]> */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdkc110_map_io, .init_machine = smdkc110_machine_init, .timer = &s5p_timer,
arch/arm/mach-s5pv210/mach-smdkv210.c +0 -1
@@ -329,7 +329,6 @@ MACHINE_START(SMDKV210, "SMDKV210")/* Maintainer: Kukjin Kim <[email protected]> */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = smdkv210_map_io, .init_machine = smdkv210_machine_init, .timer = &s5p_timer,
arch/arm/mach-s5pv210/mach-torbreck.c +0 -1
@@ -129,7 +129,6 @@ MACHINE_START(TORBRECK, "TORBRECK")/* Maintainer: Hyunchul Ko <[email protected]> */ .atag_offset = 0x100, .init_irq = s5pv210_init_irq, - .handle_irq = vic_handle_irq, .map_io = torbreck_map_io, .init_machine = torbreck_machine_init, .timer = &s5p_timer,
arch/arm/mach-spear3xx/spear300.c +0 -2
@@ -15,7 +15,6 @@#include <linux/amba/pl08x.h> #include <linux/of_platform.h> -#include <asm/hardware/vic.h> #include <asm/mach/arch.h> #include <plat/shirq.h> #include <mach/generic.h>
@@ -316,7 +315,6 @@ static void __init spear300_map_io(void)DT_MACHINE_START (SPEAR300_DT ,"ST SPEAr300 SoC with Flattened Device Tree" ) .map_io = spear300_map_io, .init_irq = spear3xx_dt_init_irq, - .handle_irq = vic_handle_irq, .timer = &spear3xx_timer, .init_machine = spear300_dt_init, .restart = spear_restart,
arch/arm/mach-spear3xx/spear310.c +0 -2
@@ -16,7 +16,6 @@#include <linux/amba/pl08x.h> #include <linux/amba/serial.h> #include <linux/of_platform.h> -#include <asm/hardware/vic.h> #include <asm/mach/arch.h> #include <plat/shirq.h> #include <mach/generic.h>
@@ -457,7 +456,6 @@ static void __init spear310_map_io(void)DT_MACHINE_START (SPEAR310_DT ,"ST SPEAr310 SoC with Flattened Device Tree" ) .map_io = spear310_map_io, .init_irq = spear3xx_dt_init_irq, - .handle_irq = vic_handle_irq, .timer = &spear3xx_timer, .init_machine = spear310_dt_init, .restart = spear_restart,
arch/arm/mach-spear3xx/spear320.c +0 -2
@@ -17,7 +17,6 @@#include <linux/amba/pl08x.h> #include <linux/amba/serial.h> #include <linux/of_platform.h> -#include <asm/hardware/vic.h> #include <asm/mach/arch.h> #include <plat/shirq.h> #include <mach/generic.h>
@@ -472,7 +471,6 @@ static void __init spear320_map_io(void)DT_MACHINE_START (SPEAR320_DT ,"ST SPEAr320 SoC with Flattened Device Tree" ) .map_io = spear320_map_io, .init_irq = spear3xx_dt_init_irq, - .handle_irq = vic_handle_irq, .timer = &spear3xx_timer, .init_machine = spear320_dt_init, .restart = spear_restart,
arch/arm/mach-spear6xx/spear6xx.c +0 -1
@@ -438,7 +438,6 @@ static void __init spear6xx_dt_init_irq(void)DT_MACHINE_START (SPEAR600_DT ,"ST SPEAr600 (Flattened Device Tree)" ) .map_io = spear6xx_map_io, .init_irq = spear6xx_dt_init_irq, - .handle_irq = vic_handle_irq, .timer = &spear6xx_timer, .init_machine = spear600_dt_init, .restart = spear_restart,
arch/arm/mach-u300/core.c +0 -1
@@ -1806,7 +1806,6 @@ MACHINE_START(U300, "Ericsson AB U335 S335/B335 Prototype Board") .map_io = u300_map_io, .nr_irqs = NR_IRQS_U300, .init_irq = u300_init_irq, - .handle_irq = vic_handle_irq, .timer = &u300_timer, .init_machine = u300_init_machine, .restart = u300_restart,
arch/arm/mach-versatile/versatile_ab.c +0 -1
@@ -39,7 +39,6 @@ MACHINE_START(VERSATILE_AB, "ARM-Versatile AB") .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .handle_irq = vic_handle_irq, .timer = &versatile_timer, .init_machine = versatile_init, .restart = versatile_restart,
arch/arm/mach-versatile/versatile_dt.c +0 -1
@@ -46,7 +46,6 @@ DT_MACHINE_START(VERSATILE_PB, "ARM-Versatile (Device Tree Support)") .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .handle_irq = vic_handle_irq, .timer = &versatile_timer, .init_machine = versatile_dt_init, .dt_compat = versatile_dt_match,
arch/arm/mach-versatile/versatile_pb.c +0 -1
@@ -107,7 +107,6 @@ MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") .map_io = versatile_map_io, .init_early = versatile_init_early, .init_irq = versatile_init_irq, - .handle_irq = vic_handle_irq, .timer = &versatile_timer, .init_machine = versatile_pb_init, .restart = versatile_restart,
Signature · 1 line
1.7.10.4
PATCH 9/9 ARM: remove mach .handle_irq for VIC users
Quoted 4 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the VIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines and make it static.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121121/bc58e2a5/attachment.sig>
PATCH 9/9 ARM: remove mach .handle_irq for VIC users
In reply to Rob HerringQuoted 9 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the VIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines and make it static.arch/arm/mach-spear3xx/spear300.c | 2 -- arch/arm/mach-spear3xx/spear310.c | 2 -- arch/arm/mach-spear3xx/spear320.c | 2 -- arch/arm/mach-spear6xx/spear6xx.c | 1 -
PATCH 9/9 ARM: remove mach .handle_irq for VIC users
In reply to Rob HerringQuoted 23 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the VIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines and make it static.Signed-off-by Rob Herring <[email protected]>Cc Hartley Sweeten <[email protected]>Cc Ryan Mallon <[email protected]>Cc Russell King <[email protected]>Cc Hubert Feurstein <[email protected]>Cc Alessandro Rubini <[email protected]>Cc Linus Walleij <[email protected]>Cc STEricsson <[email protected]>Cc Jamie Iles <[email protected]>Cc Ben Dooks <[email protected]>Cc Kukjin Kim <[email protected]>Cc Mark Brown <[email protected]>Cc Kyungmin Park <[email protected]>Cc Viresh Kumar <[email protected]>Cc Shiraz Hashim <[email protected]>Cc Rajeev Kumar <[email protected]>---
[...]
Quoted 10 lines
arch/arm/mach-s3c64xx/mach-anw6410.c | 1 - arch/arm/mach-s3c64xx/mach-crag6410.c | 1 - arch/arm/mach-s3c64xx/mach-hmt.c | 1 - arch/arm/mach-s3c64xx/mach-mini6410.c | 1 - arch/arm/mach-s3c64xx/mach-ncp.c | 1 - arch/arm/mach-s3c64xx/mach-real6410.c | 1 - arch/arm/mach-s3c64xx/mach-smartq5.c | 1 - arch/arm/mach-s3c64xx/mach-smartq7.c | 1 - arch/arm/mach-s3c64xx/mach-smdk6400.c | 1 - arch/arm/mach-s3c64xx/mach-smdk6410.c | 1 -
Quoted 8 lines
arch/arm/mach-s5p64x0/mach-smdk6440.c | 1 - arch/arm/mach-s5p64x0/mach-smdk6450.c | 1 - arch/arm/mach-s5pc100/mach-smdkc100.c | 1 - arch/arm/mach-s5pv210/mach-aquila.c | 1 - arch/arm/mach-s5pv210/mach-goni.c | 1 - arch/arm/mach-s5pv210/mach-smdkc110.c | 1 - arch/arm/mach-s5pv210/mach-smdkv210.c | 1 - arch/arm/mach-s5pv210/mach-torbreck.c | 1 -
For above s3c64xx, s5p64x0, s5pc100 and s5pv210,
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.
PATCH 9/9 ARM: remove mach .handle_irq for VIC users
In reply to Rob HerringQuoted 6 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the VIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines and make it static.Signed-off-by Rob Herring <[email protected]>
PATCH 9/9 ARM: remove mach .handle_irq for VIC users
In reply to Rob HerringQuoted 5 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the VIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines and make it static.
For ep93xx:
PATCH 9/9 ARM: remove mach .handle_irq for VIC users
In reply to Rob HerringQuoted 4 lines · Rob Herring
From: Rob Herring <[email protected]>
Now that the VIC initialization sets up the
handle_arch_irqpointer, we can remove it for all machines and make it static.
Yours,
Linus Walleij
v3 cover GIC and VIC clean-ups
In reply to Rob HerringQuoted 9 lines · Rob Herring
From: Rob Herring <[email protected]>
This series is in preparation to move gic and vic to
drivers/irqchip. I dropped the actual move todrivers/irqchipas the infrastructure is still being flushed out and I'd like to get the clean-ups at least into 3.8.This series is available here:
git://sources.calxeda.com/kernel/linux.gitirqchip-cleanup
Series as a whole:
(I did notice you lack your signed-off-by on the two patches you didn't write, btw).
-Olof