SUPERH platform development
 help / color / mirror / Atom feed
* [PATCH 00/03] irqchip: renesas-irqc: Minor update
@ 2015-07-20 10:06 Magnus Damm
  2015-07-20 10:06 ` [PATCH 01/03] irqchip: renesas-irqc: Get rid of IRQF_VALID Magnus Damm
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Magnus Damm @ 2015-07-20 10:06 UTC (permalink / raw)
  To: linux-sh; +Cc: jason, geert+renesas, linux-kernel, horms, Magnus Damm, tglx

irqchip: renesas-irqc: Minor update

[PATCH 01/03] irqchip: renesas-irqc: Get rid of IRQF_VALID
[PATCH 02/03] irqchip: renesas-irqc: Use linear IRQ domain
[PATCH 03/03] irqchip: renesas-irqc: Make use of irq_find_mapping()

This series contains a few minor updates for the IRQC driver, some
basic cleanups as preparation series for future generic chip rework.

With these patches applied the driver is becoming less special
and closer to the generic chip implementation.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---
 Written against renesas-devel-20150720-v4.2-rc3

 drivers/irqchip/irq-renesas-irqc.c |   16 ++++++----------
 1 file changed, 6 insertions(+), 10 deletions(-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 01/03] irqchip: renesas-irqc: Get rid of IRQF_VALID
  2015-07-20 10:06 [PATCH 00/03] irqchip: renesas-irqc: Minor update Magnus Damm
@ 2015-07-20 10:06 ` Magnus Damm
  2015-07-20 10:06 ` [PATCH 02/03] irqchip: renesas-irqc: Use linear IRQ domain Magnus Damm
  2015-07-20 10:06 ` [PATCH 03/03] irqchip: renesas-irqc: Make use of irq_find_mapping() Magnus Damm
  2 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2015-07-20 10:06 UTC (permalink / raw)
  To: linux-sh; +Cc: jason, geert+renesas, linux-kernel, horms, Magnus Damm, tglx

From: Magnus Damm <damm+renesas@opensource.se>

IRQF_VALID is not needed on ARM anymore, so get rid of it.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---

 drivers/irqchip/irq-renesas-irqc.c |    1 -
 1 file changed, 1 deletion(-)

--- 0001/drivers/irqchip/irq-renesas-irqc.c
+++ work/drivers/irqchip/irq-renesas-irqc.c	2015-07-20 17:40:00.272366518 +0900
@@ -162,7 +162,6 @@ static int irqc_irq_domain_map(struct ir
 	irqc_dbg(&p->irq[hw], "map");
 	irq_set_chip_data(virq, h->host_data);
 	irq_set_chip_and_handler(virq, &p->irq_chip, handle_level_irq);
-	set_irq_flags(virq, IRQF_VALID); /* kill me now */
 	return 0;
 }
 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 02/03] irqchip: renesas-irqc: Use linear IRQ domain
  2015-07-20 10:06 [PATCH 00/03] irqchip: renesas-irqc: Minor update Magnus Damm
  2015-07-20 10:06 ` [PATCH 01/03] irqchip: renesas-irqc: Get rid of IRQF_VALID Magnus Damm
@ 2015-07-20 10:06 ` Magnus Damm
  2015-07-20 10:06 ` [PATCH 03/03] irqchip: renesas-irqc: Make use of irq_find_mapping() Magnus Damm
  2 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2015-07-20 10:06 UTC (permalink / raw)
  To: linux-sh; +Cc: jason, geert+renesas, linux-kernel, horms, Magnus Damm, tglx

From: Magnus Damm <damm+renesas@opensource.se>

Use linear IRQ domain instead of irq_domain_add_simple()
that also handles non-DT cases. This reduces the delta
between the IRQC code and the generic chip implementation.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---

 drivers/irqchip/irq-renesas-irqc.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- 0002/drivers/irqchip/irq-renesas-irqc.c
+++ work/drivers/irqchip/irq-renesas-irqc.c	2015-07-20 18:42:39.762366518 +0900
@@ -242,8 +242,8 @@ static int irqc_probe(struct platform_de
 	irq_chip->irq_set_wake = irqc_irq_set_wake;
 	irq_chip->flags	= IRQCHIP_MASK_ON_SUSPEND;
 
-	p->irq_domain = irq_domain_add_simple(pdev->dev.of_node,
-					      p->number_of_irqs, 0,
+	p->irq_domain = irq_domain_add_linear(pdev->dev.of_node,
+					      p->number_of_irqs,
 					      &irqc_irq_domain_ops, p);
 	if (!p->irq_domain) {
 		ret = -ENXIO;

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 03/03] irqchip: renesas-irqc: Make use of irq_find_mapping()
  2015-07-20 10:06 [PATCH 00/03] irqchip: renesas-irqc: Minor update Magnus Damm
  2015-07-20 10:06 ` [PATCH 01/03] irqchip: renesas-irqc: Get rid of IRQF_VALID Magnus Damm
  2015-07-20 10:06 ` [PATCH 02/03] irqchip: renesas-irqc: Use linear IRQ domain Magnus Damm
@ 2015-07-20 10:06 ` Magnus Damm
  2 siblings, 0 replies; 4+ messages in thread
From: Magnus Damm @ 2015-07-20 10:06 UTC (permalink / raw)
  To: linux-sh; +Cc: jason, geert+renesas, linux-kernel, horms, Magnus Damm, tglx

From: Magnus Damm <damm+renesas@opensource.se>

Instead of locally caching the virq as domain_irq
simply rely on the IRQ domain code and irq_find_mapping().
This reduces the delta between the IRQC driver and
the generic chip implementation.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---

 drivers/irqchip/irq-renesas-irqc.c |   11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

--- 0003/drivers/irqchip/irq-renesas-irqc.c
+++ work/drivers/irqchip/irq-renesas-irqc.c	2015-07-20 17:59:13.000000000 +0900
@@ -53,7 +53,6 @@
 struct irqc_irq {
 	int hw_irq;
 	int requested_irq;
-	int domain_irq;
 	struct irqc_priv *p;
 };
 
@@ -70,8 +69,8 @@ struct irqc_priv {
 
 static void irqc_dbg(struct irqc_irq *i, char *str)
 {
-	dev_dbg(&i->p->pdev->dev, "%s (%d:%d:%d)\n",
-		str, i->requested_irq, i->hw_irq, i->domain_irq);
+	dev_dbg(&i->p->pdev->dev, "%s (%d:%d)\n",
+		str, i->requested_irq, i->hw_irq);
 }
 
 static void irqc_irq_enable(struct irq_data *d)
@@ -145,7 +144,7 @@ static irqreturn_t irqc_irq_handler(int
 	if (ioread32(p->iomem + DETECT_STATUS) & bit) {
 		iowrite32(bit, p->iomem + DETECT_STATUS);
 		irqc_dbg(i, "demux2");
-		generic_handle_irq(i->domain_irq);
+		generic_handle_irq(irq_find_mapping(p->irq_domain, i->hw_irq));
 		return IRQ_HANDLED;
 	}
 	return IRQ_NONE;
@@ -156,9 +155,6 @@ static int irqc_irq_domain_map(struct ir
 {
 	struct irqc_priv *p = h->host_data;
 
-	p->irq[hw].domain_irq = virq;
-	p->irq[hw].hw_irq = hw;
-
 	irqc_dbg(&p->irq[hw], "map");
 	irq_set_chip_data(virq, h->host_data);
 	irq_set_chip_and_handler(virq, &p->irq_chip, handle_level_irq);
@@ -214,6 +210,7 @@ static int irqc_probe(struct platform_de
 			break;
 
 		p->irq[k].p = p;
+		p->irq[k].hw_irq = k;
 		p->irq[k].requested_irq = irq->start;
 	}
 

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-07-20 10:06 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-20 10:06 [PATCH 00/03] irqchip: renesas-irqc: Minor update Magnus Damm
2015-07-20 10:06 ` [PATCH 01/03] irqchip: renesas-irqc: Get rid of IRQF_VALID Magnus Damm
2015-07-20 10:06 ` [PATCH 02/03] irqchip: renesas-irqc: Use linear IRQ domain Magnus Damm
2015-07-20 10:06 ` [PATCH 03/03] irqchip: renesas-irqc: Make use of irq_find_mapping() Magnus Damm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox