[PATCH 00/08] ARM: Dynamic IRQ demux support
Eric Miao
eric.y.miao at gmail.com
Wed Oct 6 09:06:23 EDT 2010
On Wed, Oct 6, 2010 at 3:17 PM, Magnus Damm <magnus.damm at gmail.com> wrote:
> ARM: Dynamic IRQ demux support
>
> [PATCH 01/08] ARM: Move entry-header.S to asm/
> [PATCH 02/08] ARM: Move macros from entry-armv.S
> [PATCH 03/08] ARM: Make alignment_trap macro self-contained
> [PATCH 04/08] ARM: Convert __irq_svc and __usr_svc to macros
> [PATCH 05/08] ARM: Move the unwind header to entry-header.S
> [PATCH 06/08] ARM: Add setup_irq_stubs() function
> [PATCH 07/08] ARM: Add CONFIG_DEFAULT_IRQ_DEMUX
> [PATCH 08/08] ARM: Dynamic IRQ demux for SH-Mobile
>
Hi Magnus,
Just FYI, I had a patch months ago for this:
http://www.spinics.net/linux/lists/arm-kernel/msg92836.html
Do you think that's a simpler way to go?
> These patches break out the IRQ demux code from entry-armv.S to
> allow multiple IRQ demux instances to coexist. A registration
> function is also added that allows per-mach/plat code to chose
> which IRQ demux instance to register at runtime.
>
> Useful to support the upcoming single-kernel-binary-on-multiple-machines
> _and_ for future SH-Mobile hardware support which will need to tie in
> the GIC in the demux code for some processors.
>
> The existing kernel behaviour remains unchanged as long as the kconfig
> option CONFIG_DEFAULT_IRQ_DEMUX is set to Y.
>
> A single IRQ demuxer instance (on UP) is written like this:
>
> +#include <asm/entry-header.S>
> +
> + .macro get_irqnr_preamble, base, tmp
> [blah]
> + .endm
> +
> + .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
> [bleh]
> + .endm
> +
> + __irq_svc shmobile_common
> + __irq_usr shmobile_common
>
> The per-mach IRQ setup code then registers whatever demuxing functions
> it requires using:
>
> + setup_irq_stubs(__irq_usr_shmobile_common, __irq_svc_shmobile_common);
>
> To strip down memory usage the kconfig option CONFIG_DEFAULT_IRQ_DEMUX
> may be set to N to remove the default IRQ demux code. Most macros in
> entry-macro.S will then become unused.
>
> The macros disable_fiq and arch_ret_to_user are kept as-is for now.
>
> Signed-off-by: Magnus Damm <damm at opensource.se>
> ---
> arch/arm/Kconfig | 4
> arch/arm/include/asm/entry-header.S | 417 ++++++++++++++++++++-
> arch/arm/include/asm/traps.h | 1
> arch/arm/kernel/entry-armv.S | 239 ------------
> arch/arm/kernel/entry-common.S | 4
> arch/arm/kernel/entry-header.S | 181 ---------
> arch/arm/kernel/traps.c | 14
> arch/arm/mach-shmobile/Makefile | 1
> arch/arm/mach-shmobile/entry-irq-common.S | 38 +
> arch/arm/mach-shmobile/include/mach/common.h | 1
> arch/arm/mach-shmobile/include/mach/entry-macro.S | 17
> arch/arm/mach-shmobile/intc-sh7367.c | 4
> arch/arm/mach-shmobile/intc-sh7372.c | 4
> arch/arm/mach-shmobile/intc-sh7377.c | 4
> 14 files changed, 506 insertions(+), 423 deletions(-)
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
More information about the linux-arm-kernel
mailing list