Subject: [PATCH 3/9] ARM: mmp: support DT in irq

From: [email-masked] (Arnd Bergmann)
Date: Fri, 4 May 2012 12:56:30 +0000

On Friday 04 May 2012, Haojian Zhuang wrote:
> On Wed, May 2, 2012 at 8:51 PM, Arnd Bergmann <[email-masked]> wrote:
> > On Wednesday 02 May 2012, Haojian Zhuang wrote:
> >> I use two CONFIG_OF in this file. The first one is used to record
> >> register base address
> >> of interrupt controller. In legacy code, the register address is
> >> hardcoding. Do you mean
> >> that I should remove this CONFIG_OF?
> >
> > Unless it's a noticeable performance impact, I would recommend just
> > always using the mmp_icu_base variable, even for when CONFIG_OF is
> > disabled.
> 
> But I appended new irq handler for DT support. I still need to reserve
> this CONFIG_OF
> since I need to keep compatible with legacy code.

You don't need to worry about out-of-tree code, it can adapt. For the
non-DT version, why can't you move the 'mmp_icu_base' variable into
common.c and just initialize it to ICU_VIRT_BASE?
If you do that, any combination of DT- and non-DT board files should
work with the same entry-macro.S code.

Another alternative would be to convert MMP over to
CONFIG_MULTI_IRQ_HANDLER and use different handle_irq functions.

	Arnd