diff mbox

[2/2] sh: intc: Add support OF of IRQ

Message ID 1350342930-25581-2-git-send-email-nobuhiro.iwamatsu.yj@renesas.com (mailing list archive)
State Rejected
Headers show

Commit Message

Nobuhiro Iwamatsu Oct. 15, 2012, 11:15 p.m. UTC
Add infomation of device node to struct intc_desc.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
---
 drivers/sh/intc/core.c      |    2 +-
 drivers/sh/intc/internals.h |    3 ++-
 drivers/sh/intc/irqdomain.c |    6 +++---
 include/linux/sh_intc.h     |    1 +
 4 files changed, 7 insertions(+), 5 deletions(-)

Comments

Nobuhiro Iwamatsu Oct. 29, 2012, 6:10 a.m. UTC | #1
Paul, do you have a comment?
If no problem, could you apply?

Nobuhiro

On Tue, Oct 16, 2012 at 8:15 AM, Nobuhiro Iwamatsu
<nobuhiro.iwamatsu.yj@renesas.com> wrote:
> Add infomation of device node to struct intc_desc.
>
> Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
> ---
>  drivers/sh/intc/core.c      |    2 +-
>  drivers/sh/intc/internals.h |    3 ++-
>  drivers/sh/intc/irqdomain.c |    6 +++---
>  include/linux/sh_intc.h     |    1 +
>  4 files changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/sh/intc/core.c b/drivers/sh/intc/core.c
> index 8f32a13..3963af3 100644
> --- a/drivers/sh/intc/core.c
> +++ b/drivers/sh/intc/core.c
> @@ -311,7 +311,7 @@ int __init register_intc_controller(struct intc_desc *desc)
>
>         BUG_ON(k > 256); /* _INTC_ADDR_E() and _INTC_ADDR_D() are 8 bits */
>
> -       intc_irq_domain_init(d, hw);
> +       intc_irq_domain_init(d, hw, desc->of_node);
>
>         /* register the vectors one by one */
>         for (i = 0; i < hw->nr_vectors; i++) {
> diff --git a/drivers/sh/intc/internals.h b/drivers/sh/intc/internals.h
> index 7dff08e..e6f64bf 100644
> --- a/drivers/sh/intc/internals.h
> +++ b/drivers/sh/intc/internals.h
> @@ -190,7 +190,8 @@ void intc_enable_disable_enum(struct intc_desc *desc, struct intc_desc_int *d,
>                               intc_enum enum_id, int enable);
>
>  /* irqdomain.c */
> -void intc_irq_domain_init(struct intc_desc_int *d, struct intc_hw_desc *hw);
> +void intc_irq_domain_init(struct intc_desc_int *d, struct intc_hw_desc *hw,
> +                               struct device_node *of_node);
>
>  /* virq.c */
>  void intc_subgroup_init(struct intc_desc *desc, struct intc_desc_int *d);
> diff --git a/drivers/sh/intc/irqdomain.c b/drivers/sh/intc/irqdomain.c
> index 3968f1c..22ab7af 100644
> --- a/drivers/sh/intc/irqdomain.c
> +++ b/drivers/sh/intc/irqdomain.c
> @@ -42,7 +42,7 @@ static const struct irq_domain_ops intc_evt_ops = {
>  };
>
>  void __init intc_irq_domain_init(struct intc_desc_int *d,
> -                                struct intc_hw_desc *hw)
> +                                struct intc_hw_desc *hw, struct device_node *np)
>  {
>         unsigned int irq_base, irq_end;
>
> @@ -59,10 +59,10 @@ void __init intc_irq_domain_init(struct intc_desc_int *d,
>          * tree penalty for linear cases with non-zero hwirq bases.
>          */
>         if (irq_base == 0 && irq_end == (irq_base + hw->nr_vectors - 1))
> -               d->domain = irq_domain_add_linear(NULL, hw->nr_vectors,
> +               d->domain = irq_domain_add_linear(np, hw->nr_vectors,
>                                                   &intc_evt_ops, NULL);
>         else
> -               d->domain = irq_domain_add_tree(NULL, &intc_evt_ops, NULL);
> +               d->domain = irq_domain_add_tree(np, &intc_evt_ops, NULL);
>
>         BUG_ON(!d->domain);
>  }
> diff --git a/include/linux/sh_intc.h b/include/linux/sh_intc.h
> index 455b1cc..75287cc 100644
> --- a/include/linux/sh_intc.h
> +++ b/include/linux/sh_intc.h
> @@ -118,6 +118,7 @@ struct intc_desc {
>         intc_enum force_disable;
>         bool skip_syscore_suspend;
>         struct intc_hw_desc hw;
> +       struct device_node *of_node;
>  };
>
>  #define DECLARE_INTC_DESC(symbol, chipname, vectors, groups,           \
> --
> 1.7.10.4
>
diff mbox

Patch

diff --git a/drivers/sh/intc/core.c b/drivers/sh/intc/core.c
index 8f32a13..3963af3 100644
--- a/drivers/sh/intc/core.c
+++ b/drivers/sh/intc/core.c
@@ -311,7 +311,7 @@  int __init register_intc_controller(struct intc_desc *desc)
 
 	BUG_ON(k > 256); /* _INTC_ADDR_E() and _INTC_ADDR_D() are 8 bits */
 
-	intc_irq_domain_init(d, hw);
+	intc_irq_domain_init(d, hw, desc->of_node);
 
 	/* register the vectors one by one */
 	for (i = 0; i < hw->nr_vectors; i++) {
diff --git a/drivers/sh/intc/internals.h b/drivers/sh/intc/internals.h
index 7dff08e..e6f64bf 100644
--- a/drivers/sh/intc/internals.h
+++ b/drivers/sh/intc/internals.h
@@ -190,7 +190,8 @@  void intc_enable_disable_enum(struct intc_desc *desc, struct intc_desc_int *d,
 			      intc_enum enum_id, int enable);
 
 /* irqdomain.c */
-void intc_irq_domain_init(struct intc_desc_int *d, struct intc_hw_desc *hw);
+void intc_irq_domain_init(struct intc_desc_int *d, struct intc_hw_desc *hw,
+				struct device_node *of_node);
 
 /* virq.c */
 void intc_subgroup_init(struct intc_desc *desc, struct intc_desc_int *d);
diff --git a/drivers/sh/intc/irqdomain.c b/drivers/sh/intc/irqdomain.c
index 3968f1c..22ab7af 100644
--- a/drivers/sh/intc/irqdomain.c
+++ b/drivers/sh/intc/irqdomain.c
@@ -42,7 +42,7 @@  static const struct irq_domain_ops intc_evt_ops = {
 };
 
 void __init intc_irq_domain_init(struct intc_desc_int *d,
-				 struct intc_hw_desc *hw)
+				 struct intc_hw_desc *hw, struct device_node *np)
 {
 	unsigned int irq_base, irq_end;
 
@@ -59,10 +59,10 @@  void __init intc_irq_domain_init(struct intc_desc_int *d,
 	 * tree penalty for linear cases with non-zero hwirq bases.
 	 */
 	if (irq_base == 0 && irq_end == (irq_base + hw->nr_vectors - 1))
-		d->domain = irq_domain_add_linear(NULL, hw->nr_vectors,
+		d->domain = irq_domain_add_linear(np, hw->nr_vectors,
 						  &intc_evt_ops, NULL);
 	else
-		d->domain = irq_domain_add_tree(NULL, &intc_evt_ops, NULL);
+		d->domain = irq_domain_add_tree(np, &intc_evt_ops, NULL);
 
 	BUG_ON(!d->domain);
 }
diff --git a/include/linux/sh_intc.h b/include/linux/sh_intc.h
index 455b1cc..75287cc 100644
--- a/include/linux/sh_intc.h
+++ b/include/linux/sh_intc.h
@@ -118,6 +118,7 @@  struct intc_desc {
 	intc_enum force_disable;
 	bool skip_syscore_suspend;
 	struct intc_hw_desc hw;
+	struct device_node *of_node;
 };
 
 #define DECLARE_INTC_DESC(symbol, chipname, vectors, groups,		\