Re: [PATCH 1/3] ARM: at91: move at91 aic driver to drivers/irqchip

Russell King - ARM Linux
2013-05-23T10:19:00Z

On Thu, May 23, 2013 at 11:05:07AM +0200, Boris BREZILLON wrote:
> Move arch/arm/mach-at91/irq.c to drivers/irqchip/irq-at91.c.
> Move arch/arm/mach-at91/at91_aic.h to
> arch/arm/mach-at91/include/mach/at91_aic.h to avoid ugly reference
> to header file :
> #include "../../arch/arm/mach-at91/at91_aic.h"

The right way to do this is to move the definitions which should only
be used by arch/arm/mach-at91/irq.c to that file or a header file along
side that file, and find a place in include/linux for the remainder.

I notice arch/arm/mach-at91/pm.c makes use of some of the register
definitions:

at91_irq_suspend();

pr_debug("AT91: PM - wake mask %08x, pm state %d\n",
/* remember all the always-wake irqs */
(at91_pmc_read(AT91_PMC_PCSR)
| (1 << AT91_ID_FIQ)
| (1 << AT91_ID_SYS)
| (at91_extern_irq))
& at91_aic_read(AT91_AIC_IMR),
state);

at91_irq_suspend() is in arch/arm/mach-at91/irq.c already, so there's no
reason that fragment can't be moved there.

That leaves: at91_aic_handle_irq, at91_aic5_handle_irq, NR_AIC_IRQS and
NR_AIC5_IRQS, which if you did patch 3 first, would leave you with just
the NR_.*_IRQS definitions to find a home for.