[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