Patchwork [06/16] ARM: imx: move irq_domain_add_legacy call into avic driver

login
register
mail settings
Submitter Shawn Guo
Date June 14, 2012, 7:13 a.m.
Message ID <20120614071326.GC31565@S2101-09.ap.freescale.net>
Download mbox | patch
Permalink /patch/164856/
State New
Headers show

Comments

Shawn Guo - June 14, 2012, 7:13 a.m.
On Thu, Jun 14, 2012 at 01:59:37PM +0800, Shawn Guo wrote:
> Move irq_domain_add_legacy call from imx27-dt.c into avic init function
> and have the avic driver adopt irqdomain support for both DT and non-DT
> boot.
> 
> Now avic init function calls irq_alloc_descs to get irq_base and adds
> a lenacy irqdomain with the irq_base, so that the mapping between avic
> irq and Linux irq number can be handled by irqdomain.
> 
> Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> ---
>  arch/arm/mach-imx/imx27-dt.c |   15 ---------------
>  arch/arm/plat-mxc/avic.c     |   26 +++++++++++++++++++-------
>  2 files changed, 19 insertions(+), 22 deletions(-)
> 
The following changes should be amended.

Regards,
Shawn

--8<---
Dong Aisheng - June 15, 2012, 9:30 a.m.
On Thu, Jun 14, 2012 at 03:13:28PM +0800, Shawn Guo wrote:
> On Thu, Jun 14, 2012 at 01:59:37PM +0800, Shawn Guo wrote:
> > Move irq_domain_add_legacy call from imx27-dt.c into avic init function
> > and have the avic driver adopt irqdomain support for both DT and non-DT
> > boot.
> > 
> > Now avic init function calls irq_alloc_descs to get irq_base and adds
> > a lenacy irqdomain with the irq_base, so that the mapping between avic
> > irq and Linux irq number can be handled by irqdomain.
> > 
> > Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
> > ---
> >  arch/arm/mach-imx/imx27-dt.c |   15 ---------------
> >  arch/arm/plat-mxc/avic.c     |   26 +++++++++++++++++++-------
> >  2 files changed, 19 insertions(+), 22 deletions(-)
> > 
> The following changes should be amended.
> 

Acked-by: Dong Aisheng <dong.aisheng@linaro.org>

Regards
Dong Aisheng

Patch

diff --git a/arch/arm/plat-mxc/avic.c b/arch/arm/plat-mxc/avic.c
index 4fe1d9b..e612cc1 100644
--- a/arch/arm/plat-mxc/avic.c
+++ b/arch/arm/plat-mxc/avic.c
@@ -59,9 +59,12 @@  static u32 avic_saved_mask_reg[2];
 #ifdef CONFIG_MXC_IRQ_PRIOR
 static int avic_irq_set_priority(unsigned char irq, unsigned char prio)
 {
+       struct irq_data *d = irq_get_irq_data(irq);
        unsigned int temp;
        unsigned int mask = 0x0F << irq % 8 * 4;

+       irq = d->hwirq;
+
        if (irq >= AVIC_NUM_IRQS)
                return -EINVAL;

@@ -78,8 +81,11 @@  static int avic_irq_set_priority(unsigned char irq, unsigned char prio)
 #ifdef CONFIG_FIQ
 static int avic_set_irq_fiq(unsigned int irq, unsigned int type)
 {
+       struct irq_data *d = irq_get_irq_data(irq);
        unsigned int irqt;

+       irq = d->hwirq;
+
        if (irq >= AVIC_NUM_IRQS)
                return -EINVAL;