* [PATCH 1/2] ARM: VIC: Create common infrastructure for vic DT bindings @ 2012-03-23 7:49 Viresh Kumar [not found] ` <4bfe7af3761f6f40506a2089fd67866015f6d7f3.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: Viresh Kumar @ 2012-03-23 7:49 UTC (permalink / raw) To: arnd-r2nGTMty4D4, linux-lFZ/pmaqli7XmaaqVzeoHQ Cc: Viresh Kumar, devicetree-discuss-mnsaURCQ41sdnm+yROfE0A, linus.walleij-0IS4wlFg1OjSUeElwK9/Pw, pawel.moll-5wv7dgnIgG8, srinidhi.kasagar-0IS4wlFg1OjSUeElwK9/Pw, spear-devel-nkJGhpqTU55BDgjK7y7TUQ, rob.herring-bsGFqQB8/DxBDgjK7y7TUQ, kgene.kim-Sze3O3UU22JBDgjK7y7TUQ, viresh.linux-Re5JQEeQqe8AvxtiuMwx3w, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, ccross-z5hGa2qSFaRBDgjK7y7TUQ, sr-ynQEQJNshbs, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Few platforms define there own struct of_device_id[] for vic pl19*. They don't do anything specific in init_irq() other than of_irq_init(). This patch creates this struct array in vic.c and make other platforms use it. Signed-off-by: Viresh Kumar <viresh.kumar-qxv4g6HH51o@public.gmane.org> --- arch/arm/common/vic.c | 14 +++++++++++++- arch/arm/include/asm/hardware/vic.h | 3 ++- arch/arm/mach-picoxcell/common.c | 12 +----------- arch/arm/mach-spear6xx/spear6xx.c | 12 +----------- 4 files changed, 17 insertions(+), 24 deletions(-) diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c index 7a66311..190813e 100644 --- a/arch/arm/common/vic.c +++ b/arch/arm/common/vic.c @@ -398,7 +398,8 @@ void __init vic_init(void __iomem *base, unsigned int irq_start, } #ifdef CONFIG_OF -int __init vic_of_init(struct device_node *node, struct device_node *parent) +static int __init vic_of_init(struct device_node *node, struct device_node + *parent) { void __iomem *regs; int irq_base; @@ -423,6 +424,17 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent) return -EIO; } + +static const struct of_device_id vic_of_match[] __initconst = { + { .compatible = "arm,pl190-vic", .data = vic_of_init, }, + { .compatible = "arm,pl192-vic", .data = vic_of_init, }, + { /* Sentinel */ } +}; + +void __init vic_init_irq(void) +{ + of_irq_init(vic_of_match); +} #endif /* CONFIG OF */ /* diff --git a/arch/arm/include/asm/hardware/vic.h b/arch/arm/include/asm/hardware/vic.h index e14af1a..02056a8 100644 --- a/arch/arm/include/asm/hardware/vic.h +++ b/arch/arm/include/asm/hardware/vic.h @@ -42,6 +42,7 @@ #ifndef __ASSEMBLY__ #include <linux/compiler.h> +#include <linux/init.h> #include <linux/types.h> struct device_node; @@ -50,7 +51,7 @@ struct pt_regs; 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 __init vic_init_irq(void); void vic_handle_irq(struct pt_regs *regs); #endif /* __ASSEMBLY__ */ diff --git a/arch/arm/mach-picoxcell/common.c b/arch/arm/mach-picoxcell/common.c index a2e8ae8..fa0d7e9 100644 --- a/arch/arm/mach-picoxcell/common.c +++ b/arch/arm/mach-picoxcell/common.c @@ -68,16 +68,6 @@ static const char *picoxcell_dt_match[] = { NULL }; -static const struct of_device_id vic_of_match[] __initconst = { - { .compatible = "arm,pl192-vic", .data = vic_of_init, }, - { /* Sentinel */ } -}; - -static void __init picoxcell_init_irq(void) -{ - of_irq_init(vic_of_match); -} - static void picoxcell_wdt_restart(char mode, const char *cmd) { /* @@ -95,7 +85,7 @@ static void picoxcell_wdt_restart(char mode, const char *cmd) DT_MACHINE_START(PICOXCELL, "Picochip picoXcell") .map_io = picoxcell_map_io, .nr_irqs = NR_IRQS_LEGACY, - .init_irq = picoxcell_init_irq, + .init_irq = vic_init_irq, .handle_irq = vic_handle_irq, .timer = &picoxcell_timer, .init_machine = picoxcell_init_machine, diff --git a/arch/arm/mach-spear6xx/spear6xx.c b/arch/arm/mach-spear6xx/spear6xx.c index 2ed8b14..d436118 100644 --- a/arch/arm/mach-spear6xx/spear6xx.c +++ b/arch/arm/mach-spear6xx/spear6xx.c @@ -102,19 +102,9 @@ static const char *spear600_dt_board_compat[] = { NULL }; -static const struct of_device_id vic_of_match[] __initconst = { - { .compatible = "arm,pl190-vic", .data = vic_of_init, }, - { /* Sentinel */ } -}; - -static void __init spear6xx_dt_init_irq(void) -{ - of_irq_init(vic_of_match); -} - DT_MACHINE_START(SPEAR600_DT, "ST SPEAr600 (Flattened Device Tree)") .map_io = spear6xx_map_io, - .init_irq = spear6xx_dt_init_irq, + .init_irq = vic_init_irq, .handle_irq = vic_handle_irq, .timer = &spear6xx_timer, .init_machine = spear600_dt_init, -- 1.7.8.110.g4cb5d ^ permalink raw reply related [flat|nested] 7+ messages in thread
[parent not found: <4bfe7af3761f6f40506a2089fd67866015f6d7f3.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>]
* [PATCH 2/2] ARM: GIC: Create common infrastructure for GIC DT bindings [not found] ` <4bfe7af3761f6f40506a2089fd67866015f6d7f3.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> @ 2012-03-23 7:49 ` Viresh Kumar [not found] ` <23b4d2ea357a7a785b6c42d0fa7ae9478bad552b.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> 2012-03-23 16:55 ` Stephen Warren 2012-03-23 12:40 ` [PATCH 1/2] ARM: VIC: Create common infrastructure for vic " Rob Herring 1 sibling, 2 replies; 7+ messages in thread From: Viresh Kumar @ 2012-03-23 7:49 UTC (permalink / raw) To: arnd-r2nGTMty4D4, linux-lFZ/pmaqli7XmaaqVzeoHQ Cc: Viresh Kumar, devicetree-discuss-mnsaURCQ41sdnm+yROfE0A, linus.walleij-0IS4wlFg1OjSUeElwK9/Pw, pawel.moll-5wv7dgnIgG8, srinidhi.kasagar-0IS4wlFg1OjSUeElwK9/Pw, spear-devel-nkJGhpqTU55BDgjK7y7TUQ, rob.herring-bsGFqQB8/DxBDgjK7y7TUQ, kgene.kim-Sze3O3UU22JBDgjK7y7TUQ, viresh.linux-Re5JQEeQqe8AvxtiuMwx3w, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, ccross-z5hGa2qSFaRBDgjK7y7TUQ, sr-ynQEQJNshbs, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r Few platforms define there own struct of_device_id[] for GIC. They don't do anything specific in init_irq() other than of_irq_init(). This patch creates this struct array in gic.c and make other platforms use it. Signed-off-by: Viresh Kumar <viresh.kumar-qxv4g6HH51o@public.gmane.org> --- arch/arm/common/gic.c | 10 ++++++++++ arch/arm/include/asm/hardware/gic.h | 1 + arch/arm/mach-exynos/common.c | 9 +-------- arch/arm/mach-highbank/highbank.c | 7 +------ arch/arm/mach-imx/mach-imx6q.c | 2 +- arch/arm/mach-tegra/common.c | 7 +------ arch/arm/mach-ux500/cpu.c | 7 +------ arch/arm/mach-vexpress/v2m.c | 12 +----------- 8 files changed, 17 insertions(+), 38 deletions(-) diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c index aa52699..77afdae 100644 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c @@ -781,4 +781,14 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent) gic_cnt++; return 0; } + +static const struct of_device_id gic_of_match[] __initconst = { + { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, + { /* Sentinel */ } +}; + +void __init gic_init_irq(void) +{ + of_irq_init(gic_of_match); +} #endif diff --git a/arch/arm/include/asm/hardware/gic.h b/arch/arm/include/asm/hardware/gic.h index 4b1ce6c..7bce4bd 100644 --- a/arch/arm/include/asm/hardware/gic.h +++ b/arch/arm/include/asm/hardware/gic.h @@ -42,6 +42,7 @@ 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 __init gic_init_irq(void); 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); diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c index 85ed8b5..76f6079 100644 --- a/arch/arm/mach-exynos/common.c +++ b/arch/arm/mach-exynos/common.c @@ -502,13 +502,6 @@ static void __init combiner_init(unsigned int combiner_nr, void __iomem *base, } } -#ifdef CONFIG_OF -static const struct of_device_id exynos4_dt_irq_match[] = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, - {}, -}; -#endif - void __init exynos4_init_irq(void) { int irq; @@ -520,7 +513,7 @@ void __init exynos4_init_irq(void) gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU, gic_bank_offset, NULL); #ifdef CONFIG_OF else - of_irq_init(exynos4_dt_irq_match); + gic_init_irq(); #endif for (irq = 0; irq < EXYNOS4_MAX_COMBINER_NR; irq++) { diff --git a/arch/arm/mach-highbank/highbank.c b/arch/arm/mach-highbank/highbank.c index 410a112..42b30c6 100644 --- a/arch/arm/mach-highbank/highbank.c +++ b/arch/arm/mach-highbank/highbank.c @@ -80,14 +80,9 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr) HB_JUMP_TABLE_PHYS(cpu) + 15); } -const static struct of_device_id irq_match[] = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, - {} -}; - static void __init highbank_init_irq(void) { - of_irq_init(irq_match); + gic_init_irq(); l2x0_of_init(0, ~0UL); } diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 7696dfa..ebaf6c5 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c @@ -105,7 +105,6 @@ static int __init imx6q_gpio_add_irq_domain(struct device_node *np, } static const struct of_device_id imx6q_irq_match[] __initconst = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, { .compatible = "fsl,imx6q-gpio", .data = imx6q_gpio_add_irq_domain, }, { /* sentinel */ } }; @@ -115,6 +114,7 @@ static void __init imx6q_init_irq(void) l2x0_of_init(0, ~0UL); imx_src_init(); imx_gpc_init(); + gic_init_irq(); of_irq_init(imx6q_irq_match); } diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c index 22df10f..c8d6208 100644 --- a/arch/arm/mach-tegra/common.c +++ b/arch/arm/mach-tegra/common.c @@ -52,15 +52,10 @@ u32 tegra_uart_config[3] = { }; #ifdef CONFIG_OF -static const struct of_device_id tegra_dt_irq_match[] __initconst = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init }, - { } -}; - void __init tegra_dt_init_irq(void) { tegra_init_irq(); - of_irq_init(tegra_dt_irq_match); + gic_init_irq(); } #endif diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index d11f389..3bb6f13 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c @@ -30,11 +30,6 @@ void __iomem *_PRCMU_BASE; -static const struct of_device_id ux500_dt_irq_match[] = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, - {}, -}; - void __init ux500_init_irq(void) { void __iomem *dist_base; @@ -51,7 +46,7 @@ void __init ux500_init_irq(void) #ifdef CONFIG_OF if (of_have_populated_dt()) - of_irq_init(ux500_dt_irq_match); + gic_init_irq(); else #endif gic_init(0, 29, dist_base, cpu_base); diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index 47cdcca..3d875f2 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c @@ -619,16 +619,6 @@ void __init v2m_dt_init_early(void) versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000); } -static struct of_device_id vexpress_irq_match[] __initdata = { - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, - {} -}; - -static void __init v2m_dt_init_irq(void) -{ - of_irq_init(vexpress_irq_match); -} - static void __init v2m_dt_timer_init(void) { struct device_node *node; @@ -677,7 +667,7 @@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express") .dt_compat = v2m_dt_match, .map_io = v2m_dt_map_io, .init_early = v2m_dt_init_early, - .init_irq = v2m_dt_init_irq, + .init_irq = gic_init_irq, .timer = &v2m_dt_timer, .init_machine = v2m_dt_init, .handle_irq = gic_handle_irq, -- 1.7.8.110.g4cb5d ^ permalink raw reply related [flat|nested] 7+ messages in thread
[parent not found: <23b4d2ea357a7a785b6c42d0fa7ae9478bad552b.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>]
* Re: [PATCH 2/2] ARM: GIC: Create common infrastructure for GIC DT bindings [not found] ` <23b4d2ea357a7a785b6c42d0fa7ae9478bad552b.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> @ 2012-03-23 11:08 ` Lee Jones 0 siblings, 0 replies; 7+ messages in thread From: Lee Jones @ 2012-03-23 11:08 UTC (permalink / raw) To: Viresh Kumar Cc: devicetree-discuss-mnsaURCQ41sdnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, linus.walleij-0IS4wlFg1OjSUeElwK9/Pw, pawel.moll-5wv7dgnIgG8, srinidhi.kasagar-0IS4wlFg1OjSUeElwK9/Pw, spear-devel-nkJGhpqTU55BDgjK7y7TUQ, kgene.kim-Sze3O3UU22JBDgjK7y7TUQ, rob.herring-bsGFqQB8/DxBDgjK7y7TUQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, ccross-z5hGa2qSFaRBDgjK7y7TUQ, viresh.linux-Re5JQEeQqe8AvxtiuMwx3w, sr-ynQEQJNshbs, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r [-- Attachment #1.1: Type: text/plain, Size: 6998 bytes --] On Fri, Mar 23, 2012 at 7:49 AM, Viresh Kumar <viresh.kumar-qxv4g6HH51o@public.gmane.org> wrote: > Few platforms define there own struct of_device_id[] for GIC. They don't > do anything specific in init_irq() other than of_irq_init(). > > This patch creates this struct array in gic.c and make other platforms use > it. > > Signed-off-by: Viresh Kumar <viresh.kumar-qxv4g6HH51o@public.gmane.org> > --- > arch/arm/common/gic.c | 10 ++++++++++ > arch/arm/include/asm/hardware/gic.h | 1 + > arch/arm/mach-exynos/common.c | 9 +-------- > arch/arm/mach-highbank/highbank.c | 7 +------ > arch/arm/mach-imx/mach-imx6q.c | 2 +- > arch/arm/mach-tegra/common.c | 7 +------ > arch/arm/mach-ux500/cpu.c | 7 +------ > arch/arm/mach-vexpress/v2m.c | 12 +----------- > 8 files changed, 17 insertions(+), 38 deletions(-) > > diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c > index aa52699..77afdae 100644 > --- a/arch/arm/common/gic.c > +++ b/arch/arm/common/gic.c > @@ -781,4 +781,14 @@ int __init gic_of_init(struct device_node *node, > struct device_node *parent) > gic_cnt++; > return 0; > } > + > +static const struct of_device_id gic_of_match[] __initconst = { > + { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, > + { /* Sentinel */ } > +}; > + > +void __init gic_init_irq(void) > +{ > + of_irq_init(gic_of_match); > +} > #endif > diff --git a/arch/arm/include/asm/hardware/gic.h > b/arch/arm/include/asm/hardware/gic.h > index 4b1ce6c..7bce4bd 100644 > --- a/arch/arm/include/asm/hardware/gic.h > +++ b/arch/arm/include/asm/hardware/gic.h > @@ -42,6 +42,7 @@ 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 __init gic_init_irq(void); > 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); > diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c > index 85ed8b5..76f6079 100644 > --- a/arch/arm/mach-exynos/common.c > +++ b/arch/arm/mach-exynos/common.c > @@ -502,13 +502,6 @@ static void __init combiner_init(unsigned int > combiner_nr, void __iomem *base, > } > } > > -#ifdef CONFIG_OF > -static const struct of_device_id exynos4_dt_irq_match[] = { > - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, > - {}, > -}; > -#endif > - > void __init exynos4_init_irq(void) > { > int irq; > @@ -520,7 +513,7 @@ void __init exynos4_init_irq(void) > gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, > S5P_VA_GIC_CPU, gic_bank_offset, NULL); > #ifdef CONFIG_OF > else > - of_irq_init(exynos4_dt_irq_match); > + gic_init_irq(); > #endif > > for (irq = 0; irq < EXYNOS4_MAX_COMBINER_NR; irq++) { > diff --git a/arch/arm/mach-highbank/highbank.c > b/arch/arm/mach-highbank/highbank.c > index 410a112..42b30c6 100644 > --- a/arch/arm/mach-highbank/highbank.c > +++ b/arch/arm/mach-highbank/highbank.c > @@ -80,14 +80,9 @@ void highbank_set_cpu_jump(int cpu, void *jump_addr) > HB_JUMP_TABLE_PHYS(cpu) + 15); > } > > -const static struct of_device_id irq_match[] = { > - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, > - {} > -}; > - > static void __init highbank_init_irq(void) > { > - of_irq_init(irq_match); > + gic_init_irq(); > l2x0_of_init(0, ~0UL); > } > > diff --git a/arch/arm/mach-imx/mach-imx6q.c > b/arch/arm/mach-imx/mach-imx6q.c > index 7696dfa..ebaf6c5 100644 > --- a/arch/arm/mach-imx/mach-imx6q.c > +++ b/arch/arm/mach-imx/mach-imx6q.c > @@ -105,7 +105,6 @@ static int __init imx6q_gpio_add_irq_domain(struct > device_node *np, > } > > static const struct of_device_id imx6q_irq_match[] __initconst = { > - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, > { .compatible = "fsl,imx6q-gpio", .data = > imx6q_gpio_add_irq_domain, }, > { /* sentinel */ } > }; > @@ -115,6 +114,7 @@ static void __init imx6q_init_irq(void) > l2x0_of_init(0, ~0UL); > imx_src_init(); > imx_gpc_init(); > + gic_init_irq(); > of_irq_init(imx6q_irq_match); > } > > diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c > index 22df10f..c8d6208 100644 > --- a/arch/arm/mach-tegra/common.c > +++ b/arch/arm/mach-tegra/common.c > @@ -52,15 +52,10 @@ u32 tegra_uart_config[3] = { > }; > > #ifdef CONFIG_OF > -static const struct of_device_id tegra_dt_irq_match[] __initconst = { > - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init }, > - { } > -}; > - > void __init tegra_dt_init_irq(void) > { > tegra_init_irq(); > - of_irq_init(tegra_dt_irq_match); > + gic_init_irq(); > } > #endif > > diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c > index d11f389..3bb6f13 100644 > --- a/arch/arm/mach-ux500/cpu.c > +++ b/arch/arm/mach-ux500/cpu.c > @@ -30,11 +30,6 @@ > > void __iomem *_PRCMU_BASE; > > -static const struct of_device_id ux500_dt_irq_match[] = { > - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, > - {}, > -}; > - > void __init ux500_init_irq(void) > { > void __iomem *dist_base; > @@ -51,7 +46,7 @@ void __init ux500_init_irq(void) > > #ifdef CONFIG_OF > if (of_have_populated_dt()) > - of_irq_init(ux500_dt_irq_match); > + gic_init_irq(); > else > #endif > gic_init(0, 29, dist_base, cpu_base); > diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c > index 47cdcca..3d875f2 100644 > --- a/arch/arm/mach-vexpress/v2m.c > +++ b/arch/arm/mach-vexpress/v2m.c > @@ -619,16 +619,6 @@ void __init v2m_dt_init_early(void) > versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, > 24000000); > } > > -static struct of_device_id vexpress_irq_match[] __initdata = { > - { .compatible = "arm,cortex-a9-gic", .data = gic_of_init, }, > - {} > -}; > - > -static void __init v2m_dt_init_irq(void) > -{ > - of_irq_init(vexpress_irq_match); > -} > - > static void __init v2m_dt_timer_init(void) > { > struct device_node *node; > @@ -677,7 +667,7 @@ DT_MACHINE_START(VEXPRESS_DT, "ARM-Versatile Express") > .dt_compat = v2m_dt_match, > .map_io = v2m_dt_map_io, > .init_early = v2m_dt_init_early, > - .init_irq = v2m_dt_init_irq, > + .init_irq = gic_init_irq, > .timer = &v2m_dt_timer, > .init_machine = v2m_dt_init, > .handle_irq = gic_handle_irq, Looks sensible. For the ux500 stuff: Acked-by: Lee Jones <lee.jones-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > [-- Attachment #1.2: Type: text/html, Size: 8593 bytes --] [-- Attachment #2: Type: text/plain, Size: 192 bytes --] _______________________________________________ devicetree-discuss mailing list devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org https://lists.ozlabs.org/listinfo/devicetree-discuss ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] ARM: GIC: Create common infrastructure for GIC DT bindings 2012-03-23 7:49 ` [PATCH 2/2] ARM: GIC: Create common infrastructure for GIC " Viresh Kumar [not found] ` <23b4d2ea357a7a785b6c42d0fa7ae9478bad552b.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> @ 2012-03-23 16:55 ` Stephen Warren 1 sibling, 0 replies; 7+ messages in thread From: Stephen Warren @ 2012-03-23 16:55 UTC (permalink / raw) To: Viresh Kumar Cc: devicetree-discuss, linux, linus.walleij, arnd, srinidhi.kasagar, spear-devel, rob.herring, pawel.moll, kgene.kim, viresh.linux, kernel, ccross, olof, jamie, sr, linux-arm-kernel On 03/23/2012 01:49 AM, Viresh Kumar wrote: > Few platforms define there own struct of_device_id[] for GIC. They don't > do anything specific in init_irq() other than of_irq_init(). > > This patch creates this struct array in gic.c and make other platforms use it. > > Signed-off-by: Viresh Kumar <viresh.kumar@st.com> For Tegra, Acked-by: Stephen Warren <swarren@wwwdotorg.org> ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] ARM: VIC: Create common infrastructure for vic DT bindings [not found] ` <4bfe7af3761f6f40506a2089fd67866015f6d7f3.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> 2012-03-23 7:49 ` [PATCH 2/2] ARM: GIC: Create common infrastructure for GIC " Viresh Kumar @ 2012-03-23 12:40 ` Rob Herring 2012-03-25 7:31 ` viresh kumar 1 sibling, 1 reply; 7+ messages in thread From: Rob Herring @ 2012-03-23 12:40 UTC (permalink / raw) To: Viresh Kumar Cc: devicetree-discuss-mnsaURCQ41sdnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, linus.walleij-0IS4wlFg1OjSUeElwK9/Pw, pawel.moll-5wv7dgnIgG8, srinidhi.kasagar-0IS4wlFg1OjSUeElwK9/Pw, spear-devel-nkJGhpqTU55BDgjK7y7TUQ, rob.herring-bsGFqQB8/DxBDgjK7y7TUQ, kgene.kim-Sze3O3UU22JBDgjK7y7TUQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, ccross-z5hGa2qSFaRBDgjK7y7TUQ, viresh.linux-Re5JQEeQqe8AvxtiuMwx3w, sr-ynQEQJNshbs, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On 03/23/2012 02:49 AM, Viresh Kumar wrote: > Few platforms define there own struct of_device_id[] for vic pl19*. They don't > do anything specific in init_irq() other than of_irq_init(). > > This patch creates this struct array in vic.c and make other platforms use it. > > Signed-off-by: Viresh Kumar <viresh.kumar-qxv4g6HH51o@public.gmane.org> > --- > arch/arm/common/vic.c | 14 +++++++++++++- > arch/arm/include/asm/hardware/vic.h | 3 ++- > arch/arm/mach-picoxcell/common.c | 12 +----------- > arch/arm/mach-spear6xx/spear6xx.c | 12 +----------- > 4 files changed, 17 insertions(+), 24 deletions(-) > NAK None of these platforms have gpio interrupts or any other board interrupt controllers which need to be initialized early? I don't think DT conversions are complete enough to tell. We could do something like this, but there only needs to be a single match list of all controllers and function. We should consolidate the irqchips to drivers/irqchip first though. I have that action from Connect... Rob > diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c > index 7a66311..190813e 100644 > --- a/arch/arm/common/vic.c > +++ b/arch/arm/common/vic.c > @@ -398,7 +398,8 @@ void __init vic_init(void __iomem *base, unsigned int irq_start, > } > > #ifdef CONFIG_OF > -int __init vic_of_init(struct device_node *node, struct device_node *parent) > +static int __init vic_of_init(struct device_node *node, struct device_node > + *parent) > { > void __iomem *regs; > int irq_base; > @@ -423,6 +424,17 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent) > > return -EIO; > } > + > +static const struct of_device_id vic_of_match[] __initconst = { > + { .compatible = "arm,pl190-vic", .data = vic_of_init, }, > + { .compatible = "arm,pl192-vic", .data = vic_of_init, }, > + { /* Sentinel */ } > +}; > + > +void __init vic_init_irq(void) > +{ > + of_irq_init(vic_of_match); > +} > #endif /* CONFIG OF */ > > /* > diff --git a/arch/arm/include/asm/hardware/vic.h b/arch/arm/include/asm/hardware/vic.h > index e14af1a..02056a8 100644 > --- a/arch/arm/include/asm/hardware/vic.h > +++ b/arch/arm/include/asm/hardware/vic.h > @@ -42,6 +42,7 @@ > > #ifndef __ASSEMBLY__ > #include <linux/compiler.h> > +#include <linux/init.h> > #include <linux/types.h> > > struct device_node; > @@ -50,7 +51,7 @@ struct pt_regs; > 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 __init vic_init_irq(void); > void vic_handle_irq(struct pt_regs *regs); > > #endif /* __ASSEMBLY__ */ > diff --git a/arch/arm/mach-picoxcell/common.c b/arch/arm/mach-picoxcell/common.c > index a2e8ae8..fa0d7e9 100644 > --- a/arch/arm/mach-picoxcell/common.c > +++ b/arch/arm/mach-picoxcell/common.c > @@ -68,16 +68,6 @@ static const char *picoxcell_dt_match[] = { > NULL > }; > > -static const struct of_device_id vic_of_match[] __initconst = { > - { .compatible = "arm,pl192-vic", .data = vic_of_init, }, > - { /* Sentinel */ } > -}; > - > -static void __init picoxcell_init_irq(void) > -{ > - of_irq_init(vic_of_match); > -} > - > static void picoxcell_wdt_restart(char mode, const char *cmd) > { > /* > @@ -95,7 +85,7 @@ static void picoxcell_wdt_restart(char mode, const char *cmd) > DT_MACHINE_START(PICOXCELL, "Picochip picoXcell") > .map_io = picoxcell_map_io, > .nr_irqs = NR_IRQS_LEGACY, > - .init_irq = picoxcell_init_irq, > + .init_irq = vic_init_irq, > .handle_irq = vic_handle_irq, > .timer = &picoxcell_timer, > .init_machine = picoxcell_init_machine, > diff --git a/arch/arm/mach-spear6xx/spear6xx.c b/arch/arm/mach-spear6xx/spear6xx.c > index 2ed8b14..d436118 100644 > --- a/arch/arm/mach-spear6xx/spear6xx.c > +++ b/arch/arm/mach-spear6xx/spear6xx.c > @@ -102,19 +102,9 @@ static const char *spear600_dt_board_compat[] = { > NULL > }; > > -static const struct of_device_id vic_of_match[] __initconst = { > - { .compatible = "arm,pl190-vic", .data = vic_of_init, }, > - { /* Sentinel */ } > -}; > - > -static void __init spear6xx_dt_init_irq(void) > -{ > - of_irq_init(vic_of_match); > -} > - > DT_MACHINE_START(SPEAR600_DT, "ST SPEAr600 (Flattened Device Tree)") > .map_io = spear6xx_map_io, > - .init_irq = spear6xx_dt_init_irq, > + .init_irq = vic_init_irq, > .handle_irq = vic_handle_irq, > .timer = &spear6xx_timer, > .init_machine = spear600_dt_init, ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/2] ARM: VIC: Create common infrastructure for vic DT bindings 2012-03-23 12:40 ` [PATCH 1/2] ARM: VIC: Create common infrastructure for vic " Rob Herring @ 2012-03-25 7:31 ` viresh kumar [not found] ` <CAOh2x=n-sZ6jV1M9XY9cOp7_8EeRfvqkjL5y3AakgpYymFRHkg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 7+ messages in thread From: viresh kumar @ 2012-03-25 7:31 UTC (permalink / raw) To: Rob Herring Cc: devicetree-discuss, linux, linus.walleij, pawel.moll, srinidhi.kasagar, spear-devel, rob.herring, kgene.kim, arnd, kernel, ccross, sr, linux-arm-kernel On Fri, Mar 23, 2012 at 6:10 PM, Rob Herring <robherring2@gmail.com> wrote: > NAK > > None of these platforms have gpio interrupts or any other board > interrupt controllers which need to be initialized early? Atleast SPEAr600 have GPIO interrupts. > I don't think DT conversions are complete enough to tell. Couldn't get your comment, sorry. > We could do something like this, but there only needs to be a single > match list of all controllers and function. We should consolidate the > irqchips to drivers/irqchip first though. I have that action from Connect... That would be good. I am updating DT support for SPEAr3xx, where i need to use VIC OF support. So i would still like to get this patch going and you can consilidate code at irqchips level later. What do you say? -- viresh ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <CAOh2x=n-sZ6jV1M9XY9cOp7_8EeRfvqkjL5y3AakgpYymFRHkg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH 1/2] ARM: VIC: Create common infrastructure for vic DT bindings [not found] ` <CAOh2x=n-sZ6jV1M9XY9cOp7_8EeRfvqkjL5y3AakgpYymFRHkg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2012-03-26 1:59 ` Rob Herring 0 siblings, 0 replies; 7+ messages in thread From: Rob Herring @ 2012-03-26 1:59 UTC (permalink / raw) To: viresh kumar Cc: Viresh Kumar, devicetree-discuss-mnsaURCQ41sdnm+yROfE0A, linux-lFZ/pmaqli7XmaaqVzeoHQ, linus.walleij-0IS4wlFg1OjSUeElwK9/Pw, pawel.moll-5wv7dgnIgG8, srinidhi.kasagar-0IS4wlFg1OjSUeElwK9/Pw, spear-devel-nkJGhpqTU55BDgjK7y7TUQ, rob.herring-bsGFqQB8/DxBDgjK7y7TUQ, kgene.kim-Sze3O3UU22JBDgjK7y7TUQ, kernel-bIcnvbaLZ9MEGnE8C9+IrQ, ccross-z5hGa2qSFaRBDgjK7y7TUQ, sr-ynQEQJNshbs, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On 03/25/2012 02:31 AM, viresh kumar wrote: > On Fri, Mar 23, 2012 at 6:10 PM, Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> NAK >> >> None of these platforms have gpio interrupts or any other board >> interrupt controllers which need to be initialized early? > > Atleast SPEAr600 have GPIO interrupts. > >> I don't think DT conversions are complete enough to tell. > > Couldn't get your comment, sorry. Some DT enabled platforms may only have the gic or vic included in their match list currently because other interrupt controllers aren't yet converted to DT. I believe Exynos is one such example. > >> We could do something like this, but there only needs to be a single >> match list of all controllers and function. We should consolidate the >> irqchips to drivers/irqchip first though. I have that action from Connect... > > That would be good. > I am updating DT support for SPEAr3xx, where i need to use VIC OF > support. So i would still like to get this patch going and you can consilidate > code at irqchips level later. What do you say? No. I don't think moving this into the gic and vic code just to move it back out later is a good idea. Just looking at the diffstat, the net number of lines removed is not very compelling either. Rob > > -- > viresh ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-03-26 1:59 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-03-23 7:49 [PATCH 1/2] ARM: VIC: Create common infrastructure for vic DT bindings Viresh Kumar [not found] ` <4bfe7af3761f6f40506a2089fd67866015f6d7f3.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> 2012-03-23 7:49 ` [PATCH 2/2] ARM: GIC: Create common infrastructure for GIC " Viresh Kumar [not found] ` <23b4d2ea357a7a785b6c42d0fa7ae9478bad552b.1332488625.git.viresh.kumar-qxv4g6HH51o@public.gmane.org> 2012-03-23 11:08 ` Lee Jones 2012-03-23 16:55 ` Stephen Warren 2012-03-23 12:40 ` [PATCH 1/2] ARM: VIC: Create common infrastructure for vic " Rob Herring 2012-03-25 7:31 ` viresh kumar [not found] ` <CAOh2x=n-sZ6jV1M9XY9cOp7_8EeRfvqkjL5y3AakgpYymFRHkg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2012-03-26 1:59 ` Rob Herring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).