All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajendra Nayak <rnayak@ti.com>
To: Benoit Cousson <b-cousson@ti.com>
Cc: tony@atomide.com, rob.herring@calxeda.com,
	devicetree-discuss@lists.ozlabs.org, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 2/4] ARM: OMAP2/3: intc: Add DT support for TI interrupt controller
Date: Tue, 13 Dec 2011 14:45:12 +0530	[thread overview]
Message-ID: <4EE717A0.8020304@ti.com> (raw)
In-Reply-To: <1323291049-24964-3-git-send-email-b-cousson@ti.com>

Hi Benoit,

> diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
> index 012bac7..bcfccc2 100644
> --- a/arch/arm/mach-omap2/common.h
> +++ b/arch/arm/mach-omap2/common.h
> @@ -156,6 +156,16 @@ void omap3_intc_resume_idle(void);
>   void omap2_intc_handle_irq(struct pt_regs *regs);
>   void omap3_intc_handle_irq(struct pt_regs *regs);
>
> +struct device_node;
> +#ifdef CONFIG_OF
> +int __init intc_of_init(struct device_node *node, struct device_node *parent);
> +#else
> +int __init intc_of_init(struct device_node *node, struct device_node *parent)
> +{
> +	return 0;
> +}

This seems to break !CONFIG_OF builds as common.h is included in
multiple c files causing 'multiple definition' errors.

regards,
Rajendra

> +#endif
> +
>   /*
>    * wfi used in low power code. Directly opcode is used instead
>    * of instruction to avoid mulit-omap build break
> diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
> index 42b1d65..cafc663 100644
> --- a/arch/arm/mach-omap2/irq.c
> +++ b/arch/arm/mach-omap2/irq.c
> @@ -17,6 +17,9 @@
>   #include<mach/hardware.h>
>   #include<asm/exception.h>
>   #include<asm/mach/irq.h>
> +#include<linux/of.h>
> +#include<linux/of_address.h>
> +#include<linux/irqdomain.h>
>
>
>   /* selected INTC register offsets */
> @@ -166,7 +169,7 @@ static void __init omap_init_irq(u32 base, int nr_irqs)
>   		/* Static mapping, never released */
>   		bank->base_reg = ioremap(base, SZ_4K);
>   		if (!bank->base_reg) {
> -			printk(KERN_ERR "Could not ioremap irq bank%i\n", i);
> +			pr_err("Could not ioremap irq bank%i\n", i);
>   			continue;
>   		}
>
> @@ -179,8 +182,8 @@ static void __init omap_init_irq(u32 base, int nr_irqs)
>   		nr_banks++;
>   	}
>
> -	printk(KERN_INFO "Total of %ld interrupts on %d active controller%s\n",
> -	       nr_of_irqs, nr_banks, nr_banks>  1 ? "s" : "");
> +	pr_info("Total of %ld interrupts on %d active controller%s\n",
> +		nr_of_irqs, nr_banks, nr_banks>  1 ? "s" : "");
>   }
>
>   void __init omap2_init_irq(void)
> @@ -236,6 +239,32 @@ asmlinkage void __exception_irq_entry omap2_intc_handle_irq(struct pt_regs *regs
>   	omap_intc_handle_irq(base_addr, regs);
>   }
>
> +#ifdef CONFIG_OF
> +int __init intc_of_init(struct device_node *node, struct device_node *parent)
> +{
> +	struct resource res;
> +	u32 nr_irqs;
> +
> +	if (WARN_ON(!node))
> +		return -ENODEV;
> +
> +	if (of_address_to_resource(node, 0,&res)) {
> +		WARN(1, "unable to get intc registers\n");
> +		return -EINVAL;
> +	}
> +
> +	if (of_property_read_u32(node, "ti,intc-size",&nr_irqs)) {
> +		WARN(1, "unable to get intc-size\n");
> +		return -EINVAL;
> +	}
> +
> +	omap_init_irq(res.start, nr_irqs);
> +	irq_domain_add_simple(node, 0);
> +
> +	return 0;
> +}
> +#endif
> +
>   #ifdef CONFIG_ARCH_OMAP3
>   static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)];
>


WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/4] ARM: OMAP2/3: intc: Add DT support for TI interrupt controller
Date: Tue, 13 Dec 2011 14:45:12 +0530	[thread overview]
Message-ID: <4EE717A0.8020304@ti.com> (raw)
In-Reply-To: <1323291049-24964-3-git-send-email-b-cousson@ti.com>

Hi Benoit,

> diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
> index 012bac7..bcfccc2 100644
> --- a/arch/arm/mach-omap2/common.h
> +++ b/arch/arm/mach-omap2/common.h
> @@ -156,6 +156,16 @@ void omap3_intc_resume_idle(void);
>   void omap2_intc_handle_irq(struct pt_regs *regs);
>   void omap3_intc_handle_irq(struct pt_regs *regs);
>
> +struct device_node;
> +#ifdef CONFIG_OF
> +int __init intc_of_init(struct device_node *node, struct device_node *parent);
> +#else
> +int __init intc_of_init(struct device_node *node, struct device_node *parent)
> +{
> +	return 0;
> +}

This seems to break !CONFIG_OF builds as common.h is included in
multiple c files causing 'multiple definition' errors.

regards,
Rajendra

> +#endif
> +
>   /*
>    * wfi used in low power code. Directly opcode is used instead
>    * of instruction to avoid mulit-omap build break
> diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
> index 42b1d65..cafc663 100644
> --- a/arch/arm/mach-omap2/irq.c
> +++ b/arch/arm/mach-omap2/irq.c
> @@ -17,6 +17,9 @@
>   #include<mach/hardware.h>
>   #include<asm/exception.h>
>   #include<asm/mach/irq.h>
> +#include<linux/of.h>
> +#include<linux/of_address.h>
> +#include<linux/irqdomain.h>
>
>
>   /* selected INTC register offsets */
> @@ -166,7 +169,7 @@ static void __init omap_init_irq(u32 base, int nr_irqs)
>   		/* Static mapping, never released */
>   		bank->base_reg = ioremap(base, SZ_4K);
>   		if (!bank->base_reg) {
> -			printk(KERN_ERR "Could not ioremap irq bank%i\n", i);
> +			pr_err("Could not ioremap irq bank%i\n", i);
>   			continue;
>   		}
>
> @@ -179,8 +182,8 @@ static void __init omap_init_irq(u32 base, int nr_irqs)
>   		nr_banks++;
>   	}
>
> -	printk(KERN_INFO "Total of %ld interrupts on %d active controller%s\n",
> -	       nr_of_irqs, nr_banks, nr_banks>  1 ? "s" : "");
> +	pr_info("Total of %ld interrupts on %d active controller%s\n",
> +		nr_of_irqs, nr_banks, nr_banks>  1 ? "s" : "");
>   }
>
>   void __init omap2_init_irq(void)
> @@ -236,6 +239,32 @@ asmlinkage void __exception_irq_entry omap2_intc_handle_irq(struct pt_regs *regs
>   	omap_intc_handle_irq(base_addr, regs);
>   }
>
> +#ifdef CONFIG_OF
> +int __init intc_of_init(struct device_node *node, struct device_node *parent)
> +{
> +	struct resource res;
> +	u32 nr_irqs;
> +
> +	if (WARN_ON(!node))
> +		return -ENODEV;
> +
> +	if (of_address_to_resource(node, 0,&res)) {
> +		WARN(1, "unable to get intc registers\n");
> +		return -EINVAL;
> +	}
> +
> +	if (of_property_read_u32(node, "ti,intc-size",&nr_irqs)) {
> +		WARN(1, "unable to get intc-size\n");
> +		return -EINVAL;
> +	}
> +
> +	omap_init_irq(res.start, nr_irqs);
> +	irq_domain_add_simple(node, 0);
> +
> +	return 0;
> +}
> +#endif
> +
>   #ifdef CONFIG_ARCH_OMAP3
>   static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)];
>

  parent reply	other threads:[~2011-12-13  9:15 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-07 20:50 [PATCH 0/4] ARM: OMAP2+: Interrupt controllers adaptation to DT Benoit Cousson
2011-12-07 20:50 ` Benoit Cousson
     [not found] ` <1323291049-24964-1-git-send-email-b-cousson-l0cyMroinI0@public.gmane.org>
2011-12-07 20:50   ` [PATCH 1/4] arm/dts: OMAP4: Update DTS file with new GIC bindings Benoit Cousson
2011-12-07 20:50     ` Benoit Cousson
2011-12-07 20:50 ` [PATCH 2/4] ARM: OMAP2/3: intc: Add DT support for TI interrupt controller Benoit Cousson
2011-12-07 20:50   ` Benoit Cousson
2011-12-07 21:20   ` Rob Herring
2011-12-07 21:20     ` Rob Herring
2011-12-08 14:59     ` Cousson, Benoit
2011-12-08 14:59       ` Cousson, Benoit
2011-12-09 13:20       ` Rob Herring
2011-12-09 13:20         ` Rob Herring
2011-12-09 14:52         ` Cousson, Benoit
2011-12-09 14:52           ` Cousson, Benoit
2011-12-09 15:22           ` Rob Herring
2011-12-09 15:22             ` Rob Herring
2011-12-09 16:06             ` Cousson, Benoit
2011-12-09 16:06               ` Cousson, Benoit
2011-12-09 16:12               ` Rob Herring
2011-12-09 16:12                 ` Rob Herring
2011-12-09 16:58                 ` Cousson, Benoit
2011-12-09 16:58                   ` Cousson, Benoit
2011-12-15 17:49                 ` Cousson, Benoit
2011-12-15 17:49                   ` Cousson, Benoit
2011-12-15 20:52                   ` Rob Herring
2011-12-15 20:52                     ` Rob Herring
2011-12-13  9:15   ` Rajendra Nayak [this message]
2011-12-13  9:15     ` Rajendra Nayak
2011-12-07 20:50 ` [PATCH 3/4] arm/dts: OMAP3: Add interrupt-controller bindings for INTC Benoit Cousson
2011-12-07 20:50   ` Benoit Cousson
2011-12-07 20:50 ` [PATCH 4/4] ARM: OMAP2+: board-generic: Use of_irq_init API Benoit Cousson
2011-12-07 20:50   ` Benoit Cousson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EE717A0.8020304@ti.com \
    --to=rnayak@ti.com \
    --cc=b-cousson@ti.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=rob.herring@calxeda.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.