Skip to content

Commit

Permalink
arm: add set_handle_irq() to register the parent IRQ controller handl…
Browse files Browse the repository at this point in the history
…er function

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.

Signed-off-by: Thomas Petazzoni <[email protected]>
[Rob Herring: remove warning. 1st one to initialize wins.]
Signed-off-by: Rob Herring <[email protected]>
Acked-by: Olof Johansson <[email protected]>
  • Loading branch information
tpetazzoni authored and Rob Herring committed Jan 10, 2013
1 parent f6e916b commit 73171d1
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/arm/include/asm/mach/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -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

/*
Expand Down
10 changes: 10 additions & 0 deletions arch/arm/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
{
Expand Down

0 comments on commit 73171d1

Please sign in to comment.