linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 00/10] mfd: irq cleanup and namespace conversion
@ 2011-03-25 11:12 Thomas Gleixner
  2011-03-25 11:12 ` [patch 01/10] mfd: asic3: Cleanup irq handling Thomas Gleixner
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

The following series cleans up the interrupt code in drivers/mfd and
converts to the new function names in the core code.

If possible, push this to Linus for .39 so we can get rid of all the
deprecated and compat cruft in the core code.

Thanks,

	tglx

---
 88pm860x-core.c |   11 +++------
 ab3550-core.c   |   12 +++++-----
 ab8500-core.c   |   12 +++++-----
 asic3.c         |   38 +++++++++++++-------------------
 ezx-pcap.c      |   34 +++++++++++-----------------
 htc-egpio.c     |   23 ++++++++-----------
 htc-i2cpld.c    |   33 +++++++++-------------------
 jz4740-adc.c    |   16 ++++++-------
 max8925-core.c  |   10 +++-----
 max8998-irq.c   |    8 +++---
 max8998.c       |    4 +--
 stmpe.c         |   12 +++++-----
 t7l66xb.c       |   21 ++++++++---------
 tc3589x.c       |   12 +++++-----
 tc6393xb.c      |   21 ++++++++---------
 tps6586x.c      |    6 ++---
 twl4030-irq.c   |   66 +++++++++++++++-----------------------------------------
 twl6030-irq.c   |   25 ++++-----------------
 wm831x-irq.c    |    8 +++---
 wm8350-irq.c    |    8 +++---
 wm8994-irq.c    |    8 +++---
 21 files changed, 154 insertions(+), 234 deletions(-)


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

* [patch 01/10] mfd: asic3: Cleanup irq handling
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 02/10] mfd: 88pm860x: Remove unused irq_desc leftovers Thomas Gleixner
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-asic3.patch --]
[-- Type: text/plain, Size: 1734 bytes --]

Remove the open coded access to irq_desc and use the proper wrappers.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/asic3.c |   17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

Index: linux-2.6-tip/drivers/mfd/asic3.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/asic3.c
+++ linux-2.6-tip/drivers/mfd/asic3.c
@@ -139,13 +139,12 @@ static void asic3_irq_flip_edge(struct a
 
 static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
 {
+	struct asic3 *asic = irq_desc_get_handler_data(desc);
+	struct irq_data *data = irq_desc_get_irq_data(desc);
 	int iter, i;
 	unsigned long flags;
-	struct asic3 *asic;
-
-	desc->irq_data.chip->irq_ack(&desc->irq_data);
 
-	asic = get_irq_data(irq);
+	data->chip->irq_ack(irq_data);
 
 	for (iter = 0 ; iter < MAX_ASIC_ISR_LOOPS; iter++) {
 		u32 status;
@@ -188,8 +187,7 @@ static void asic3_irq_demux(unsigned int
 					irqnr = asic->irq_base +
 						(ASIC3_GPIOS_PER_BANK * bank)
 						+ i;
-					desc = irq_to_desc(irqnr);
-					desc->handle_irq(irqnr, desc);
+					generic_handle_irq(irqnr);
 					if (asic->irq_bothedge[bank] & bit)
 						asic3_irq_flip_edge(asic, base,
 								    bit);
@@ -200,11 +198,8 @@ static void asic3_irq_demux(unsigned int
 		/* Handle remaining IRQs in the status register */
 		for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
 			/* They start at bit 4 and go up */
-			if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
-				desc = irq_to_desc(asic->irq_base + i);
-				desc->handle_irq(asic->irq_base + i,
-						 desc);
-			}
+			if (status & (1 << (i - ASIC3_NUM_GPIOS + 4)))
+				generic_handle_irq(asic->irq_base + i);
 		}
 	}
 



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

* [patch 02/10] mfd: 88pm860x: Remove unused irq_desc leftovers
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
  2011-03-25 11:12 ` [patch 01/10] mfd: asic3: Cleanup irq handling Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 03/10] mfd: ezx-pcap: Remvove open coded irq handling Thomas Gleixner
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-88pm.patch --]
[-- Type: text/plain, Size: 862 bytes --]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/88pm860x-core.c |    3 ---
 1 file changed, 3 deletions(-)

Index: linux-2.6-tip/drivers/mfd/88pm860x-core.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/88pm860x-core.c
+++ linux-2.6-tip/drivers/mfd/88pm860x-core.c
@@ -508,7 +508,6 @@ static int __devinit device_irq_init(str
 				: chip->companion;
 	unsigned char status_buf[INT_STATUS_NUM];
 	unsigned long flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT;
-	struct irq_desc *desc;
 	int i, data, mask, ret = -EINVAL;
 	int __irq;
 
@@ -560,8 +559,6 @@ static int __devinit device_irq_init(str
 	if (!chip->core_irq)
 		goto out;
 
-	desc = irq_to_desc(chip->core_irq);
-
 	/* register IRQ by genirq */
 	for (i = 0; i < ARRAY_SIZE(pm860x_irqs); i++) {
 		__irq = i + chip->irq_base;



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

* [patch 03/10] mfd: ezx-pcap: Remvove open coded irq handling
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
  2011-03-25 11:12 ` [patch 01/10] mfd: asic3: Cleanup irq handling Thomas Gleixner
  2011-03-25 11:12 ` [patch 02/10] mfd: 88pm860x: Remove unused irq_desc leftovers Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 04/10] mfd: htc-egpio: Cleanup interrupt handling Thomas Gleixner
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-ezx.patch --]
[-- Type: text/plain, Size: 1469 bytes --]

There is no point in checking irq_desc here, as it _is_ available. The
driver configured those lines, so they cannot go away.

The home brewn disabled/note_interrupt magic can be removed as well by
adding a irq_disable callback which avoids the lazy disable.

That driver needs to be converted to threaded interrupts.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/ezx-pcap.c |   14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)

Index: linux-2.6-tip/drivers/mfd/ezx-pcap.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/ezx-pcap.c
+++ linux-2.6-tip/drivers/mfd/ezx-pcap.c
@@ -162,6 +162,7 @@ static void pcap_unmask_irq(struct irq_d
 
 static struct irq_chip pcap_irq_chip = {
 	.name		= "pcap",
+	.irq_disable	= pcap_mask_irq,
 	.irq_mask	= pcap_mask_irq,
 	.irq_unmask	= pcap_unmask_irq,
 };
@@ -196,17 +197,8 @@ static void pcap_isr_work(struct work_st
 		local_irq_disable();
 		service = isr & ~msr;
 		for (irq = pcap->irq_base; service; service >>= 1, irq++) {
-			if (service & 1) {
-				struct irq_desc *desc = irq_to_desc(irq);
-
-				if (WARN(!desc, "Invalid PCAP IRQ %d\n", irq))
-					break;
-
-				if (desc->status & IRQ_DISABLED)
-					note_interrupt(irq, desc, IRQ_NONE);
-				else
-					desc->handle_irq(irq, desc);
-			}
+			if (service & 1)
+				generic_handle_irq(irq);
 		}
 		local_irq_enable();
 		ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr);



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

* [patch 04/10] mfd: htc-egpio: Cleanup interrupt handling
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
                   ` (2 preceding siblings ...)
  2011-03-25 11:12 ` [patch 03/10] mfd: ezx-pcap: Remvove open coded irq handling Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 05/10] mfd: htc-i2cpld: " Thomas Gleixner
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mff-htc-eg.patch --]
[-- Type: text/plain, Size: 1107 bytes --]

Replace the open coded handler call with the prober accessor. Retrieve
the handler data from desc. That avoids a redundant lookup in the
sparse irq case.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/htc-egpio.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Index: linux-2.6-tip/drivers/mfd/htc-egpio.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/htc-egpio.c
+++ linux-2.6-tip/drivers/mfd/htc-egpio.c
@@ -100,7 +100,7 @@ static struct irq_chip egpio_muxed_chip 
 
 static void egpio_handler(unsigned int irq, struct irq_desc *desc)
 {
-	struct egpio_info *ei = get_irq_data(irq);
+	struct egpio_info *ei = irq_desc_get_handler_data(desc);
 	int irqpin;
 
 	/* Read current pins. */
@@ -113,9 +113,7 @@ static void egpio_handler(unsigned int i
 	for_each_set_bit(irqpin, &readval, ei->nirqs) {
 		/* Run irq handler */
 		pr_debug("got IRQ %d\n", irqpin);
-		irq = ei->irq_start + irqpin;
-		desc = irq_to_desc(irq);
-		desc->handle_irq(irq, desc);
+		generic_handle_irq(ei->irq_start + irqpin);
 	}
 }
 



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

* [patch 05/10] mfd: htc-i2cpld: Cleanup interrupt handling
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
                   ` (3 preceding siblings ...)
  2011-03-25 11:12 ` [patch 04/10] mfd: htc-egpio: Cleanup interrupt handling Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 06/10] mfd: mx8925: Remove irq_desc leftovers Thomas Gleixner
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-htc-i2.patch --]
[-- Type: text/plain, Size: 2647 bytes --]

Remove the pointless irq_desc check in set_type. This function is
called with that irq descriptor locked. Also remove the write back of
the flow type as the core code does this already when the return value
is 0.

Also store the flow type in the chip data structure, so there is no
need to fiddle in the irq descriptor.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/htc-i2cpld.c |   25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)

Index: linux-2.6-tip/drivers/mfd/htc-i2cpld.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/htc-i2cpld.c
+++ linux-2.6-tip/drivers/mfd/htc-i2cpld.c
@@ -58,6 +58,7 @@ struct htcpld_chip {
 	uint                    irq_start;
 	int                     nirqs;
 
+	unsigned int		flow_type;
 	/*
 	 * Work structure to allow for setting values outside of any
 	 * possible interrupt context
@@ -97,12 +98,7 @@ static void htcpld_unmask(struct irq_dat
 
 static int htcpld_set_type(struct irq_data *data, unsigned int flags)
 {
-	struct irq_desc *d = irq_to_desc(data->irq);
-
-	if (!d) {
-		pr_err("HTCPLD invalid IRQ: %d\n", data->irq);
-		return -EINVAL;
-	}
+	struct htcpld_chip *chip = irq_data_get_irq_chip_data(data);
 
 	if (flags & ~IRQ_TYPE_SENSE_MASK)
 		return -EINVAL;
@@ -111,9 +107,7 @@ static int htcpld_set_type(struct irq_da
 	if (flags & (IRQ_TYPE_LEVEL_LOW|IRQ_TYPE_LEVEL_HIGH))
 		return -EINVAL;
 
-	d->status &= ~IRQ_TYPE_SENSE_MASK;
-	d->status |= flags;
-
+	chip->flow_type = flags;
 	return 0;
 }
 
@@ -135,7 +129,6 @@ static irqreturn_t htcpld_handler(int ir
 	unsigned int i;
 	unsigned long flags;
 	int irqpin;
-	struct irq_desc *desc;
 
 	if (!htcpld) {
 		pr_debug("htcpld is null in ISR\n");
@@ -195,23 +188,19 @@ static irqreturn_t htcpld_handler(int ir
 		 * associated interrupts.
 		 */
 		for (irqpin = 0; irqpin < chip->nirqs; irqpin++) {
-			unsigned oldb, newb;
-			int flags;
+			unsigned oldb, newb, type = chip->flow_type;
 
 			irq = chip->irq_start + irqpin;
-			desc = irq_to_desc(irq);
-			flags = desc->status;
 
 			/* Run the IRQ handler, but only if the bit value
 			 * changed, and the proper flags are set */
 			oldb = (old_val >> irqpin) & 1;
 			newb = (uval >> irqpin) & 1;
 
-			if ((!oldb && newb && (flags & IRQ_TYPE_EDGE_RISING)) ||
-			    (oldb && !newb &&
-			     (flags & IRQ_TYPE_EDGE_FALLING))) {
+			if ((!oldb && newb && (type & IRQ_TYPE_EDGE_RISING)) ||
+			    (oldb && !newb && (type & IRQ_TYPE_EDGE_FALLING))) {
 				pr_debug("fire IRQ %d\n", irqpin);
-				desc->handle_irq(irq, desc);
+				generic_handle_irq(irq);
 			}
 		}
 	}



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

* [patch 06/10] mfd: mx8925: Remove irq_desc leftovers
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
                   ` (4 preceding siblings ...)
  2011-03-25 11:12 ` [patch 05/10] mfd: htc-i2cpld: " Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 07/10] mfd: twl4030: Cleanup interrupt handling Thomas Gleixner
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-max.patch --]
[-- Type: text/plain, Size: 857 bytes --]

Remove unused code.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/max8925-core.c |    2 --
 1 file changed, 2 deletions(-)

Index: linux-2.6-tip/drivers/mfd/max8925-core.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/max8925-core.c
+++ linux-2.6-tip/drivers/mfd/max8925-core.c
@@ -517,7 +517,6 @@ static int max8925_irq_init(struct max89
 			    struct max8925_platform_data *pdata)
 {
 	unsigned long flags = IRQF_TRIGGER_FALLING | IRQF_ONESHOT;
-	struct irq_desc *desc;
 	int i, ret;
 	int __irq;
 
@@ -544,7 +543,6 @@ static int max8925_irq_init(struct max89
 	mutex_init(&chip->irq_lock);
 	chip->core_irq = irq;
 	chip->irq_base = pdata->irq_base;
-	desc = irq_to_desc(chip->core_irq);
 
 	/* register with genirq */
 	for (i = 0; i < ARRAY_SIZE(max8925_irqs); i++) {



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

* [patch 08/10] mfd: twl6030: Cleanup interrupt handling
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
                   ` (6 preceding siblings ...)
  2011-03-25 11:12 ` [patch 07/10] mfd: twl4030: Cleanup interrupt handling Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 09/10] mfd: Cleanup irq namespace Thomas Gleixner
  2011-03-25 11:12 ` [patch 10/10] mfd: Fold irq_set_chip/irq_set_handler Thomas Gleixner
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfdtwl6.patch --]
[-- Type: text/plain, Size: 1273 bytes --]

irq_desc checking in the interrupt demux routine is totally
pointless. The driver sets those lines up, so that cant go away
magically.

Remove the open coded handler magic and use the proper accessor.

This driver needs to be converted to threaded interrupts and buslock.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/twl6030-irq.c |   17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

Index: linux-2.6-tip/drivers/mfd/twl6030-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/twl6030-irq.c
+++ linux-2.6-tip/drivers/mfd/twl6030-irq.c
@@ -140,22 +140,7 @@ static int twl6030_irq_thread(void *data
 			if (sts.int_sts & 0x1) {
 				int module_irq = twl6030_irq_base +
 					twl6030_interrupt_mapping[i];
-				struct irq_desc *d = irq_to_desc(module_irq);
-
-				if (!d) {
-					pr_err("twl6030: Invalid SIH IRQ: %d\n",
-					       module_irq);
-					return -EINVAL;
-				}
-
-				/* These can't be masked ... always warn
-				 * if we get any surprises.
-				 */
-				if (d->status & IRQ_DISABLED)
-					note_interrupt(module_irq, d,
-							IRQ_NONE);
-				else
-					d->handle_irq(module_irq, d);
+				generic_handle_irq(module_irq);
 
 			}
 		local_irq_enable();



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

* [patch 07/10] mfd: twl4030: Cleanup interrupt handling
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
                   ` (5 preceding siblings ...)
  2011-03-25 11:12 ` [patch 06/10] mfd: mx8925: Remove irq_desc leftovers Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 11:12 ` [patch 08/10] mfd: twl6030: " Thomas Gleixner
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-twl4.patch --]
[-- Type: text/plain, Size: 3250 bytes --]

irq_desc checking in a function which is called with that irq
descriptor locked, is pointless. Equally pointless as the irq desc
check in the interrupt service routine. The driver sets those lines
up, so that cant go away magically.

Remove the open coded handler magic and use the proper accessor.

No need to fiddle with irq_desc in the type setting function. The
original value is in irq_data and the core code stores the new setting
when the return value is 0.

This driver needs to be converted to threaded interrupts and buslock.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/twl4030-irq.c |   46 ++++++++--------------------------------------
 1 file changed, 8 insertions(+), 38 deletions(-)

Index: linux-2.6-tip/drivers/mfd/twl4030-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/twl4030-irq.c
+++ linux-2.6-tip/drivers/mfd/twl4030-irq.c
@@ -320,24 +320,8 @@ static int twl4030_irq_thread(void *data
 		for (module_irq = twl4030_irq_base;
 				pih_isr;
 				pih_isr >>= 1, module_irq++) {
-			if (pih_isr & 0x1) {
-				struct irq_desc *d = irq_to_desc(module_irq);
-
-				if (!d) {
-					pr_err("twl4030: Invalid SIH IRQ: %d\n",
-					       module_irq);
-					return -EINVAL;
-				}
-
-				/* These can't be masked ... always warn
-				 * if we get any surprises.
-				 */
-				if (d->status & IRQ_DISABLED)
-					note_interrupt(module_irq, d,
-							IRQ_NONE);
-				else
-					d->handle_irq(module_irq, d);
-			}
+			if (pih_isr & 0x1)
+				generic_handle_irq(module_irq);
 		}
 		local_irq_enable();
 
@@ -560,24 +544,18 @@ static void twl4030_sih_do_edge(struct w
 	/* Modify only the bits we know must change */
 	while (edge_change) {
 		int		i = fls(edge_change) - 1;
-		struct irq_desc	*d = irq_to_desc(i + agent->irq_base);
+		struct irq_data	*idata = irq_get_irq_data(i + agent->irq_base);
 		int		byte = 1 + (i >> 2);
 		int		off = (i & 0x3) * 2;
-
-		if (!d) {
-			pr_err("twl4030: Invalid IRQ: %d\n",
-			       i + agent->irq_base);
-			return;
-		}
+		unsigned int	type;
 
 		bytes[byte] &= ~(0x03 << off);
 
-		raw_spin_lock_irq(&d->lock);
-		if (d->status & IRQ_TYPE_EDGE_RISING)
+		type = irqd_get_trigger_type(idata);
+		if (type & IRQ_TYPE_EDGE_RISING)
 			bytes[byte] |= BIT(off + 1);
-		if (d->status & IRQ_TYPE_EDGE_FALLING)
+		if (type & IRQ_TYPE_EDGE_FALLING)
 			bytes[byte] |= BIT(off + 0);
-		raw_spin_unlock_irq(&d->lock);
 
 		edge_change &= ~BIT(i);
 	}
@@ -626,21 +604,13 @@ static void twl4030_sih_unmask(struct ir
 static int twl4030_sih_set_type(struct irq_data *data, unsigned trigger)
 {
 	struct sih_agent *sih = irq_data_get_irq_chip_data(data);
-	struct irq_desc *desc = irq_to_desc(data->irq);
 	unsigned long flags;
 
-	if (!desc) {
-		pr_err("twl4030: Invalid IRQ: %d\n", data->irq);
-		return -EINVAL;
-	}
-
 	if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
 		return -EINVAL;
 
 	spin_lock_irqsave(&sih_agent_lock, flags);
-	if ((desc->status & IRQ_TYPE_SENSE_MASK) != trigger) {
-		desc->status &= ~IRQ_TYPE_SENSE_MASK;
-		desc->status |= trigger;
+	if (irqd_get_trigger_type(data) != trigger) {
 		sih->edge_change |= BIT(data->irq - sih->irq_base);
 		queue_work(wq, &sih->edge_work);
 	}



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

* [patch 09/10] mfd: Cleanup irq namespace
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
                   ` (7 preceding siblings ...)
  2011-03-25 11:12 ` [patch 08/10] mfd: twl6030: " Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  2011-03-25 12:08   ` Mark Brown
  2011-03-25 11:12 ` [patch 10/10] mfd: Fold irq_set_chip/irq_set_handler Thomas Gleixner
  9 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-namespace.patch --]
[-- Type: text/plain, Size: 26384 bytes --]

Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/88pm860x-core.c |    8 ++++----
 drivers/mfd/ab3550-core.c   |   12 ++++++------
 drivers/mfd/ab8500-core.c   |   12 ++++++------
 drivers/mfd/asic3.c         |   22 +++++++++++-----------
 drivers/mfd/ezx-pcap.c      |   20 ++++++++++----------
 drivers/mfd/htc-egpio.c     |   18 +++++++++---------
 drivers/mfd/htc-i2cpld.c    |    8 ++++----
 drivers/mfd/jz4740-adc.c    |   16 ++++++++--------
 drivers/mfd/max8925-core.c  |    8 ++++----
 drivers/mfd/max8998-irq.c   |    8 ++++----
 drivers/mfd/max8998.c       |    4 ++--
 drivers/mfd/stmpe.c         |   12 ++++++------
 drivers/mfd/t7l66xb.c       |   22 +++++++++++-----------
 drivers/mfd/tc3589x.c       |   12 ++++++------
 drivers/mfd/tc6393xb.c      |   22 +++++++++++-----------
 drivers/mfd/tps6586x.c      |    6 +++---
 drivers/mfd/twl4030-irq.c   |   20 ++++++++++----------
 drivers/mfd/twl6030-irq.c   |    8 ++++----
 drivers/mfd/wm831x-irq.c    |    8 ++++----
 drivers/mfd/wm8350-irq.c    |    8 ++++----
 drivers/mfd/wm8994-irq.c    |    8 ++++----
 21 files changed, 131 insertions(+), 131 deletions(-)

Index: linux-2.6-tip/drivers/mfd/88pm860x-core.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/88pm860x-core.c
+++ linux-2.6-tip/drivers/mfd/88pm860x-core.c
@@ -562,14 +562,14 @@ static int __devinit device_irq_init(str
 	/* register IRQ by genirq */
 	for (i = 0; i < ARRAY_SIZE(pm860x_irqs); i++) {
 		__irq = i + chip->irq_base;
-		set_irq_chip_data(__irq, chip);
-		set_irq_chip_and_handler(__irq, &pm860x_irq_chip,
+		irq_set_chip_data(__irq, chip);
+		irq_set_chip_and_handler(__irq, &pm860x_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(__irq, 1);
+		irq_set_nested_thread(__irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(__irq, IRQF_VALID);
 #else
-		set_irq_noprobe(__irq);
+		irq_set_noprobe(__irq);
 #endif
 	}
 
Index: linux-2.6-tip/drivers/mfd/ab3550-core.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/ab3550-core.c
+++ linux-2.6-tip/drivers/mfd/ab3550-core.c
@@ -668,7 +668,7 @@ static int ab3550_startup_irq_enabled(st
 	struct ab3550_platform_data *plf_data;
 	bool val;
 
-	ab = get_irq_chip_data(irq);
+	ab = irq_get_chip_data(irq);
 	plf_data = ab->i2c_client[0]->dev.platform_data;
 	irq -= plf_data->irq.base;
 	val = ((ab->startup_events[irq / 8] & BIT(irq % 8)) != 0);
@@ -1296,14 +1296,14 @@ static int __init ab3550_probe(struct i2
 		unsigned int irq;
 
 		irq = ab3550_plf_data->irq.base + i;
-		set_irq_chip_data(irq, ab);
-		set_irq_chip_and_handler(irq, &ab3550_irq_chip,
-			handle_simple_irq);
-		set_irq_nested_thread(irq, 1);
+		irq_set_chip_data(irq, ab);
+		irq_set_chip_and_handler(irq, &ab3550_irq_chip,
+					 handle_simple_irq);
+		irq_set_nested_thread(irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID);
 #else
-		set_irq_noprobe(irq);
+		irq_set_noprobe(irq);
 #endif
 	}
 
Index: linux-2.6-tip/drivers/mfd/ab8500-core.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/ab8500-core.c
+++ linux-2.6-tip/drivers/mfd/ab8500-core.c
@@ -333,14 +333,14 @@ static int ab8500_irq_init(struct ab8500
 	int irq;
 
 	for (irq = base; irq < base + AB8500_NR_IRQS; irq++) {
-		set_irq_chip_data(irq, ab8500);
-		set_irq_chip_and_handler(irq, &ab8500_irq_chip,
+		irq_set_chip_data(irq, ab8500);
+		irq_set_chip_and_handler(irq, &ab8500_irq_chip,
 					 handle_simple_irq);
-		set_irq_nested_thread(irq, 1);
+		irq_set_nested_thread(irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID);
 #else
-		set_irq_noprobe(irq);
+		irq_set_noprobe(irq);
 #endif
 	}
 
@@ -356,8 +356,8 @@ static void ab8500_irq_remove(struct ab8
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, 0);
 #endif
-		set_irq_chip_and_handler(irq, NULL, NULL);
-		set_irq_chip_data(irq, NULL);
+		irq_set_chip_and_handler(irq, NULL, NULL);
+		irq_set_chip_data(irq, NULL);
 	}
 }
 
Index: linux-2.6-tip/drivers/mfd/asic3.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/asic3.c
+++ linux-2.6-tip/drivers/mfd/asic3.c
@@ -388,21 +388,21 @@ static int __init asic3_irq_probe(struct
 
 	for (irq = irq_base; irq < irq_base + ASIC3_NR_IRQS; irq++) {
 		if (irq < asic->irq_base + ASIC3_NUM_GPIOS)
-			set_irq_chip(irq, &asic3_gpio_irq_chip);
+			irq_set_chip(irq, &asic3_gpio_irq_chip);
 		else
-			set_irq_chip(irq, &asic3_irq_chip);
+			irq_set_chip(irq, &asic3_irq_chip);
 
-		set_irq_chip_data(irq, asic);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip_data(irq, asic);
+		irq_set_handler(irq, handle_level_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
 	asic3_write_register(asic, ASIC3_OFFSET(INTR, INT_MASK),
 			     ASIC3_INTMASK_GINTMASK);
 
-	set_irq_chained_handler(asic->irq_nr, asic3_irq_demux);
-	set_irq_type(asic->irq_nr, IRQ_TYPE_EDGE_RISING);
-	set_irq_data(asic->irq_nr, asic);
+	irq_set_chained_handler(asic->irq_nr, asic3_irq_demux);
+	irq_set_irq_type(asic->irq_nr, IRQ_TYPE_EDGE_RISING);
+	irq_set_handler_data(asic->irq_nr, asic);
 
 	return 0;
 }
@@ -416,11 +416,11 @@ static void asic3_irq_remove(struct plat
 
 	for (irq = irq_base; irq < irq_base + ASIC3_NR_IRQS; irq++) {
 		set_irq_flags(irq, 0);
-		set_irq_handler(irq, NULL);
-		set_irq_chip(irq, NULL);
-		set_irq_chip_data(irq, NULL);
+		irq_set_handler(irq, NULL);
+		irq_set_chip(irq, NULL);
+		irq_set_chip_data(irq, NULL);
 	}
-	set_irq_chained_handler(asic->irq_nr, NULL);
+	irq_set_chained_handler(asic->irq_nr, NULL);
 }
 
 /* GPIOs */
Index: linux-2.6-tip/drivers/mfd/ezx-pcap.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/ezx-pcap.c
+++ linux-2.6-tip/drivers/mfd/ezx-pcap.c
@@ -207,7 +207,7 @@ static void pcap_isr_work(struct work_st
 
 static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc)
 {
-	struct pcap_chip *pcap = get_irq_data(irq);
+	struct pcap_chip *pcap = irq_get_handler_data(irq);
 
 	desc->irq_data.chip->irq_ack(&desc->irq_data);
 	queue_work(pcap->workqueue, &pcap->isr_work);
@@ -411,7 +411,7 @@ static int __devexit ezx_pcap_remove(str
 
 	/* cleanup irqchip */
 	for (i = pcap->irq_base; i < (pcap->irq_base + PCAP_NIRQS); i++)
-		set_irq_chip_and_handler(i, NULL, NULL);
+		irq_set_chip_and_handler(i, NULL, NULL);
 
 	destroy_workqueue(pcap->workqueue);
 
@@ -468,12 +468,12 @@ static int __devinit ezx_pcap_probe(stru
 
 	/* setup irq chip */
 	for (i = pcap->irq_base; i < (pcap->irq_base + PCAP_NIRQS); i++) {
-		set_irq_chip_and_handler(i, &pcap_irq_chip, handle_simple_irq);
-		set_irq_chip_data(i, pcap);
+		irq_set_chip_and_handler(i, &pcap_irq_chip, handle_simple_irq);
+		irq_set_chip_data(i, pcap);
 #ifdef CONFIG_ARM
 		set_irq_flags(i, IRQF_VALID);
 #else
-		set_irq_noprobe(i);
+		irq_set_noprobe(i);
 #endif
 	}
 
@@ -482,10 +482,10 @@ static int __devinit ezx_pcap_probe(stru
 	ezx_pcap_write(pcap, PCAP_REG_ISR, PCAP_CLEAR_INTERRUPT_REGISTER);
 	pcap->msr = PCAP_MASK_ALL_INTERRUPT;
 
-	set_irq_type(spi->irq, IRQ_TYPE_EDGE_RISING);
-	set_irq_data(spi->irq, pcap);
-	set_irq_chained_handler(spi->irq, pcap_irq_handler);
-	set_irq_wake(spi->irq, 1);
+	irq_set_irq_type(spi->irq, IRQ_TYPE_EDGE_RISING);
+	irq_set_handler_data(spi->irq, pcap);
+	irq_set_chained_handler(spi->irq, pcap_irq_handler);
+	irq_set_irq_wake(spi->irq, 1);
 
 	/* ADC */
 	adc_irq = pcap_to_irq(pcap, (pdata->config & PCAP_SECOND_PORT) ?
@@ -514,7 +514,7 @@ remove_subdevs:
 	free_irq(adc_irq, pcap);
 free_irqchip:
 	for (i = pcap->irq_base; i < (pcap->irq_base + PCAP_NIRQS); i++)
-		set_irq_chip_and_handler(i, NULL, NULL);
+		irq_set_chip_and_handler(i, NULL, NULL);
 /* destroy_workqueue: */
 	destroy_workqueue(pcap->workqueue);
 free_pcap:
Index: linux-2.6-tip/drivers/mfd/htc-egpio.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/htc-egpio.c
+++ linux-2.6-tip/drivers/mfd/htc-egpio.c
@@ -344,14 +344,14 @@ static int __init egpio_probe(struct pla
 			ei->ack_write = 0;
 		irq_end = ei->irq_start + ei->nirqs;
 		for (irq = ei->irq_start; irq < irq_end; irq++) {
-			set_irq_chip(irq, &egpio_muxed_chip);
-			set_irq_chip_data(irq, ei);
-			set_irq_handler(irq, handle_simple_irq);
+			irq_set_chip(irq, &egpio_muxed_chip);
+			irq_set_chip_data(irq, ei);
+			irq_set_handler(irq, handle_simple_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
-		set_irq_type(ei->chained_irq, IRQ_TYPE_EDGE_RISING);
-		set_irq_data(ei->chained_irq, ei);
-		set_irq_chained_handler(ei->chained_irq, egpio_handler);
+		irq_set_irq_type(ei->chained_irq, IRQ_TYPE_EDGE_RISING);
+		irq_set_handler_data(ei->chained_irq, ei);
+		irq_set_chained_handler(ei->chained_irq, egpio_handler);
 		ack_irqs(ei);
 
 		device_init_wakeup(&pdev->dev, 1);
@@ -373,11 +373,11 @@ static int __exit egpio_remove(struct pl
 	if (ei->chained_irq) {
 		irq_end = ei->irq_start + ei->nirqs;
 		for (irq = ei->irq_start; irq < irq_end; irq++) {
-			set_irq_chip(irq, NULL);
-			set_irq_handler(irq, NULL);
+			irq_set_chip(irq, NULL);
+			irq_set_handler(irq, NULL);
 			set_irq_flags(irq, 0);
 		}
-		set_irq_chained_handler(ei->chained_irq, NULL);
+		irq_set_chained_handler(ei->chained_irq, NULL);
 		device_init_wakeup(&pdev->dev, 0);
 	}
 	iounmap(ei->base_addr);
Index: linux-2.6-tip/drivers/mfd/htc-i2cpld.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/htc-i2cpld.c
+++ linux-2.6-tip/drivers/mfd/htc-i2cpld.c
@@ -348,13 +348,13 @@ static int __devinit htcpld_setup_chip_i
 	/* Setup irq handlers */
 	irq_end = chip->irq_start + chip->nirqs;
 	for (irq = chip->irq_start; irq < irq_end; irq++) {
-		set_irq_chip(irq, &htcpld_muxed_chip);
-		set_irq_chip_data(irq, chip);
-		set_irq_handler(irq, handle_simple_irq);
+		irq_set_chip(irq, &htcpld_muxed_chip);
+		irq_set_chip_data(irq, chip);
+		irq_set_handler(irq, handle_simple_irq);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 #else
-		set_irq_probe(irq);
+		irq_set_probe(irq);
 #endif
 	}
 
Index: linux-2.6-tip/drivers/mfd/jz4740-adc.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/jz4740-adc.c
+++ linux-2.6-tip/drivers/mfd/jz4740-adc.c
@@ -112,7 +112,7 @@ static struct irq_chip jz4740_adc_irq_ch
 
 static void jz4740_adc_irq_demux(unsigned int irq, struct irq_desc *desc)
 {
-	struct jz4740_adc *adc = get_irq_desc_data(desc);
+	struct jz4740_adc *adc = irq_desc_get_handler_data(desc);
 	uint8_t status;
 	unsigned int i;
 
@@ -314,13 +314,13 @@ static int __devinit jz4740_adc_probe(st
 	platform_set_drvdata(pdev, adc);
 
 	for (irq = adc->irq_base; irq < adc->irq_base + 5; ++irq) {
-		set_irq_chip_data(irq, adc);
-		set_irq_chip_and_handler(irq, &jz4740_adc_irq_chip,
-		    handle_level_irq);
+		irq_set_chip_data(irq, adc);
+		irq_set_chip_and_handler(irq, &jz4740_adc_irq_chip,
+					 handle_level_irq);
 	}
 
-	set_irq_data(adc->irq, adc);
-	set_irq_chained_handler(adc->irq, jz4740_adc_irq_demux);
+	irq_set_handler_data(adc->irq, adc);
+	irq_set_chained_handler(adc->irq, jz4740_adc_irq_demux);
 
 	writeb(0x00, adc->base + JZ_REG_ADC_ENABLE);
 	writeb(0xff, adc->base + JZ_REG_ADC_CTRL);
@@ -351,8 +351,8 @@ static int __devexit jz4740_adc_remove(s
 
 	mfd_remove_devices(&pdev->dev);
 
-	set_irq_data(adc->irq, NULL);
-	set_irq_chained_handler(adc->irq, NULL);
+	irq_set_handler_data(adc->irq, NULL);
+	irq_set_chained_handler(adc->irq, NULL);
 
 	iounmap(adc->base);
 	release_mem_region(adc->mem->start, resource_size(adc->mem));
Index: linux-2.6-tip/drivers/mfd/max8925-core.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/max8925-core.c
+++ linux-2.6-tip/drivers/mfd/max8925-core.c
@@ -547,14 +547,14 @@ static int max8925_irq_init(struct max89
 	/* register with genirq */
 	for (i = 0; i < ARRAY_SIZE(max8925_irqs); i++) {
 		__irq = i + chip->irq_base;
-		set_irq_chip_data(__irq, chip);
-		set_irq_chip_and_handler(__irq, &max8925_irq_chip,
+		irq_set_chip_data(__irq, chip);
+		irq_set_chip_and_handler(__irq, &max8925_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(__irq, 1);
+		irq_set_nested_thread(__irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(__irq, IRQF_VALID);
 #else
-		set_irq_noprobe(__irq);
+		irq_set_noprobe(__irq);
 #endif
 	}
 	if (!irq) {
Index: linux-2.6-tip/drivers/mfd/max8998-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/max8998-irq.c
+++ linux-2.6-tip/drivers/mfd/max8998-irq.c
@@ -224,14 +224,14 @@ int max8998_irq_init(struct max8998_dev 
 	/* register with genirq */
 	for (i = 0; i < MAX8998_IRQ_NR; i++) {
 		cur_irq = i + max8998->irq_base;
-		set_irq_chip_data(cur_irq, max8998);
-		set_irq_chip_and_handler(cur_irq, &max8998_irq_chip,
+		irq_set_chip_data(cur_irq, max8998);
+		irq_set_chip_and_handler(cur_irq, &max8998_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(cur_irq, 1);
+		irq_set_nested_thread(cur_irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(cur_irq, IRQF_VALID);
 #else
-		set_irq_noprobe(cur_irq);
+		irq_set_noprobe(cur_irq);
 #endif
 	}
 
Index: linux-2.6-tip/drivers/mfd/max8998.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/max8998.c
+++ linux-2.6-tip/drivers/mfd/max8998.c
@@ -209,7 +209,7 @@ static int max8998_suspend(struct device
 	struct max8998_dev *max8998 = i2c_get_clientdata(i2c);
 
 	if (max8998->wakeup)
-		set_irq_wake(max8998->irq, 1);
+		irq_set_irq_wake(max8998->irq, 1);
 	return 0;
 }
 
@@ -219,7 +219,7 @@ static int max8998_resume(struct device 
 	struct max8998_dev *max8998 = i2c_get_clientdata(i2c);
 
 	if (max8998->wakeup)
-		set_irq_wake(max8998->irq, 0);
+		irq_set_irq_wake(max8998->irq, 0);
 	/*
 	 * In LP3974, if IRQ registers are not "read & clear"
 	 * when it's set during sleep, the interrupt becomes
Index: linux-2.6-tip/drivers/mfd/stmpe.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/stmpe.c
+++ linux-2.6-tip/drivers/mfd/stmpe.c
@@ -762,14 +762,14 @@ static int __devinit stmpe_irq_init(stru
 	int irq;
 
 	for (irq = base; irq < base + num_irqs; irq++) {
-		set_irq_chip_data(irq, stmpe);
-		set_irq_chip_and_handler(irq, &stmpe_irq_chip,
+		irq_set_chip_data(irq, stmpe);
+		irq_set_chip_and_handler(irq, &stmpe_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(irq, 1);
+		irq_set_nested_thread(irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID);
 #else
-		set_irq_noprobe(irq);
+		irq_set_noprobe(irq);
 #endif
 	}
 
@@ -786,8 +786,8 @@ static void stmpe_irq_remove(struct stmp
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, 0);
 #endif
-		set_irq_chip_and_handler(irq, NULL, NULL);
-		set_irq_chip_data(irq, NULL);
+		irq_set_chip_and_handler(irq, NULL, NULL);
+		irq_set_chip_data(irq, NULL);
 	}
 }
 
Index: linux-2.6-tip/drivers/mfd/t7l66xb.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/t7l66xb.c
+++ linux-2.6-tip/drivers/mfd/t7l66xb.c
@@ -186,7 +186,7 @@ static struct mfd_cell t7l66xb_cells[] =
 /* Handle the T7L66XB interrupt mux */
 static void t7l66xb_irq(unsigned int irq, struct irq_desc *desc)
 {
-	struct t7l66xb *t7l66xb = get_irq_data(irq);
+	struct t7l66xb *t7l66xb = irq_get_handler_data(irq);
 	unsigned int isr;
 	unsigned int i, irq_base;
 
@@ -243,17 +243,17 @@ static void t7l66xb_attach_irq(struct pl
 	irq_base = t7l66xb->irq_base;
 
 	for (irq = irq_base; irq < irq_base + T7L66XB_NR_IRQS; irq++) {
-		set_irq_chip(irq, &t7l66xb_chip);
-		set_irq_chip_data(irq, t7l66xb);
-		set_irq_handler(irq, handle_level_irq);
+		irq_set_chip(irq, &t7l66xb_chip);
+		irq_set_chip_data(irq, t7l66xb);
+		irq_set_handler(irq, handle_level_irq);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 #endif
 	}
 
-	set_irq_type(t7l66xb->irq, IRQ_TYPE_EDGE_FALLING);
-	set_irq_data(t7l66xb->irq, t7l66xb);
-	set_irq_chained_handler(t7l66xb->irq, t7l66xb_irq);
+	irq_set_irq_type(t7l66xb->irq, IRQ_TYPE_EDGE_FALLING);
+	irq_set_handler_data(t7l66xb->irq, t7l66xb);
+	irq_set_chained_handler(t7l66xb->irq, t7l66xb_irq);
 }
 
 static void t7l66xb_detach_irq(struct platform_device *dev)
@@ -263,15 +263,15 @@ static void t7l66xb_detach_irq(struct pl
 
 	irq_base = t7l66xb->irq_base;
 
-	set_irq_chained_handler(t7l66xb->irq, NULL);
-	set_irq_data(t7l66xb->irq, NULL);
+	irq_set_chained_handler(t7l66xb->irq, NULL);
+	irq_set_handler_data(t7l66xb->irq, NULL);
 
 	for (irq = irq_base; irq < irq_base + T7L66XB_NR_IRQS; irq++) {
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, 0);
 #endif
-		set_irq_chip(irq, NULL);
-		set_irq_chip_data(irq, NULL);
+		irq_set_chip(irq, NULL);
+		irq_set_chip_data(irq, NULL);
 	}
 }
 
Index: linux-2.6-tip/drivers/mfd/tc3589x.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/tc3589x.c
+++ linux-2.6-tip/drivers/mfd/tc3589x.c
@@ -192,14 +192,14 @@ static int tc3589x_irq_init(struct tc358
 	int irq;
 
 	for (irq = base; irq < base + TC3589x_NR_INTERNAL_IRQS; irq++) {
-		set_irq_chip_data(irq, tc3589x);
-		set_irq_chip_and_handler(irq, &dummy_irq_chip,
+		irq_set_chip_data(irq, tc3589x);
+		irq_set_chip_and_handler(irq, &dummy_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(irq, 1);
+		irq_set_nested_thread(irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID);
 #else
-		set_irq_noprobe(irq);
+		irq_set_noprobe(irq);
 #endif
 	}
 
@@ -215,8 +215,8 @@ static void tc3589x_irq_remove(struct tc
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, 0);
 #endif
-		set_irq_chip_and_handler(irq, NULL, NULL);
-		set_irq_chip_data(irq, NULL);
+		irq_set_chip_and_handler(irq, NULL, NULL);
+		irq_set_chip_data(irq, NULL);
 	}
 }
 
Index: linux-2.6-tip/drivers/mfd/tc6393xb.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/tc6393xb.c
+++ linux-2.6-tip/drivers/mfd/tc6393xb.c
@@ -513,7 +513,7 @@ static int tc6393xb_register_gpio(struct
 static void
 tc6393xb_irq(unsigned int irq, struct irq_desc *desc)
 {
-	struct tc6393xb *tc6393xb = get_irq_data(irq);
+	struct tc6393xb *tc6393xb = irq_get_handler_data(irq);
 	unsigned int isr;
 	unsigned int i, irq_base;
 
@@ -572,15 +572,15 @@ static void tc6393xb_attach_irq(struct p
 	irq_base = tc6393xb->irq_base;
 
 	for (irq = irq_base; irq < irq_base + TC6393XB_NR_IRQS; irq++) {
-		set_irq_chip(irq, &tc6393xb_chip);
-		set_irq_chip_data(irq, tc6393xb);
-		set_irq_handler(irq, handle_edge_irq);
+		irq_set_chip(irq, &tc6393xb_chip);
+		irq_set_chip_data(irq, tc6393xb);
+		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 
-	set_irq_type(tc6393xb->irq, IRQ_TYPE_EDGE_FALLING);
-	set_irq_data(tc6393xb->irq, tc6393xb);
-	set_irq_chained_handler(tc6393xb->irq, tc6393xb_irq);
+	irq_set_irq_type(tc6393xb->irq, IRQ_TYPE_EDGE_FALLING);
+	irq_set_handler_data(tc6393xb->irq, tc6393xb);
+	irq_set_chained_handler(tc6393xb->irq, tc6393xb_irq);
 }
 
 static void tc6393xb_detach_irq(struct platform_device *dev)
@@ -588,15 +588,15 @@ static void tc6393xb_detach_irq(struct p
 	struct tc6393xb *tc6393xb = platform_get_drvdata(dev);
 	unsigned int irq, irq_base;
 
-	set_irq_chained_handler(tc6393xb->irq, NULL);
-	set_irq_data(tc6393xb->irq, NULL);
+	irq_set_chained_handler(tc6393xb->irq, NULL);
+	irq_set_handler_data(tc6393xb->irq, NULL);
 
 	irq_base = tc6393xb->irq_base;
 
 	for (irq = irq_base; irq < irq_base + TC6393XB_NR_IRQS; irq++) {
 		set_irq_flags(irq, 0);
-		set_irq_chip(irq, NULL);
-		set_irq_chip_data(irq, NULL);
+		irq_set_chip(irq, NULL);
+		irq_set_chip_data(irq, NULL);
 	}
 }
 
Index: linux-2.6-tip/drivers/mfd/tps6586x.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/tps6586x.c
+++ linux-2.6-tip/drivers/mfd/tps6586x.c
@@ -426,10 +426,10 @@ static int __devinit tps6586x_irq_init(s
 
 	for (i = 0; i < ARRAY_SIZE(tps6586x_irqs); i++) {
 		int __irq = i + tps6586x->irq_base;
-		set_irq_chip_data(__irq, tps6586x);
-		set_irq_chip_and_handler(__irq, &tps6586x->irq_chip,
+		irq_set_chip_data(__irq, tps6586x);
+		irq_set_chip_and_handler(__irq, &tps6586x->irq_chip,
 					 handle_simple_irq);
-		set_irq_nested_thread(__irq, 1);
+		irq_set_nested_thread(__irq, 1);
 #ifdef CONFIG_ARM
 		set_irq_flags(__irq, IRQF_VALID);
 #endif
Index: linux-2.6-tip/drivers/mfd/twl4030-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/twl4030-irq.c
+++ linux-2.6-tip/drivers/mfd/twl4030-irq.c
@@ -454,7 +454,7 @@ static inline void activate_irq(int irq)
 	set_irq_flags(irq, IRQF_VALID);
 #else
 	/* same effect on other architectures */
-	set_irq_noprobe(irq);
+	irq_set_noprobe(irq);
 #endif
 }
 
@@ -650,7 +650,7 @@ static inline int sih_read_isr(const str
  */
 static void handle_twl4030_sih(unsigned irq, struct irq_desc *desc)
 {
-	struct sih_agent *agent = get_irq_data(irq);
+	struct sih_agent *agent = irq_get_handler_data(irq);
 	const struct sih *sih = agent->sih;
 	int isr;
 
@@ -724,9 +724,9 @@ int twl4030_sih_setup(int module)
 	for (i = 0; i < sih->bits; i++) {
 		irq = irq_base + i;
 
-		set_irq_chip_and_handler(irq, &twl4030_sih_irq_chip,
-				handle_edge_irq);
-		set_irq_chip_data(irq, agent);
+		irq_set_chip_and_handler(irq, &twl4030_sih_irq_chip,
+					 handle_edge_irq);
+		irq_set_chip_data(irq, agent);
 		activate_irq(irq);
 	}
 
@@ -735,8 +735,8 @@ int twl4030_sih_setup(int module)
 
 	/* replace generic PIH handler (handle_simple_irq) */
 	irq = sih_mod + twl4030_irq_base;
-	set_irq_data(irq, agent);
-	set_irq_chained_handler(irq, handle_twl4030_sih);
+	irq_set_handler_data(irq, agent);
+	irq_set_chained_handler(irq, handle_twl4030_sih);
 
 	pr_info("twl4030: %s (irq %d) chaining IRQs %d..%d\n", sih->name,
 			irq, irq_base, twl4030_irq_next - 1);
@@ -785,8 +785,8 @@ int twl4030_init_irq(int irq_num, unsign
 	twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
 
 	for (i = irq_base; i < irq_end; i++) {
-		set_irq_chip_and_handler(i, &twl4030_irq_chip,
-				handle_simple_irq);
+		irq_set_chip_and_handler(i, &twl4030_irq_chip,
+					 handle_simple_irq);
 		activate_irq(i);
 	}
 	twl4030_irq_next = i;
@@ -826,7 +826,7 @@ fail_rqirq:
 	/* clean up twl4030_sih_setup */
 fail:
 	for (i = irq_base; i < irq_end; i++)
-		set_irq_chip_and_handler(i, NULL, NULL);
+		irq_set_chip_and_handler(i, NULL, NULL);
 	destroy_workqueue(wq);
 	wq = NULL;
 	return status;
Index: linux-2.6-tip/drivers/mfd/twl6030-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/twl6030-irq.c
+++ linux-2.6-tip/drivers/mfd/twl6030-irq.c
@@ -183,7 +183,7 @@ static inline void activate_irq(int irq)
 	set_irq_flags(irq, IRQF_VALID);
 #else
 	/* same effect on other architectures */
-	set_irq_noprobe(irq);
+	irq_set_noprobe(irq);
 #endif
 }
 
@@ -320,8 +320,8 @@ int twl6030_init_irq(int irq_num, unsign
 	twl6030_irq_chip.irq_set_type = NULL;
 
 	for (i = irq_base; i < irq_end; i++) {
-		set_irq_chip_and_handler(i, &twl6030_irq_chip,
-				handle_simple_irq);
+		irq_set_chip_and_handler(i, &twl6030_irq_chip,
+					 handle_simple_irq);
 		activate_irq(i);
 	}
 
@@ -350,7 +350,7 @@ fail_irq:
 
 fail_kthread:
 	for (i = irq_base; i < irq_end; i++)
-		set_irq_chip_and_handler(i, NULL, NULL);
+		irq_set_chip_and_handler(i, NULL, NULL);
 	return status;
 }
 
Index: linux-2.6-tip/drivers/mfd/wm831x-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/wm831x-irq.c
+++ linux-2.6-tip/drivers/mfd/wm831x-irq.c
@@ -535,17 +535,17 @@ int wm831x_irq_init(struct wm831x *wm831
 	for (cur_irq = wm831x->irq_base;
 	     cur_irq < ARRAY_SIZE(wm831x_irqs) + wm831x->irq_base;
 	     cur_irq++) {
-		set_irq_chip_data(cur_irq, wm831x);
-		set_irq_chip_and_handler(cur_irq, &wm831x_irq_chip,
+		irq_set_chip_data(cur_irq, wm831x);
+		irq_set_chip_and_handler(cur_irq, &wm831x_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(cur_irq, 1);
+		irq_set_nested_thread(cur_irq, 1);
 
 		/* ARM needs us to explicitly flag the IRQ as valid
 		 * and will set them noprobe when we do so. */
 #ifdef CONFIG_ARM
 		set_irq_flags(cur_irq, IRQF_VALID);
 #else
-		set_irq_noprobe(cur_irq);
+		irq_set_noprobe(cur_irq);
 #endif
 	}
 
Index: linux-2.6-tip/drivers/mfd/wm8350-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/wm8350-irq.c
+++ linux-2.6-tip/drivers/mfd/wm8350-irq.c
@@ -518,17 +518,17 @@ int wm8350_irq_init(struct wm8350 *wm835
 	for (cur_irq = wm8350->irq_base;
 	     cur_irq < ARRAY_SIZE(wm8350_irqs) + wm8350->irq_base;
 	     cur_irq++) {
-		set_irq_chip_data(cur_irq, wm8350);
-		set_irq_chip_and_handler(cur_irq, &wm8350_irq_chip,
+		irq_set_chip_data(cur_irq, wm8350);
+		irq_set_chip_and_handler(cur_irq, &wm8350_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(cur_irq, 1);
+		irq_set_nested_thread(cur_irq, 1);
 
 		/* ARM needs us to explicitly flag the IRQ as valid
 		 * and will set them noprobe when we do so. */
 #ifdef CONFIG_ARM
 		set_irq_flags(cur_irq, IRQF_VALID);
 #else
-		set_irq_noprobe(cur_irq);
+		irq_set_noprobe(cur_irq);
 #endif
 	}
 
Index: linux-2.6-tip/drivers/mfd/wm8994-irq.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/wm8994-irq.c
+++ linux-2.6-tip/drivers/mfd/wm8994-irq.c
@@ -276,17 +276,17 @@ int wm8994_irq_init(struct wm8994 *wm899
 	for (cur_irq = wm8994->irq_base;
 	     cur_irq < ARRAY_SIZE(wm8994_irqs) + wm8994->irq_base;
 	     cur_irq++) {
-		set_irq_chip_data(cur_irq, wm8994);
-		set_irq_chip_and_handler(cur_irq, &wm8994_irq_chip,
+		irq_set_chip_data(cur_irq, wm8994);
+		irq_set_chip_and_handler(cur_irq, &wm8994_irq_chip,
 					 handle_edge_irq);
-		set_irq_nested_thread(cur_irq, 1);
+		irq_set_nested_thread(cur_irq, 1);
 
 		/* ARM needs us to explicitly flag the IRQ as valid
 		 * and will set them noprobe when we do so. */
 #ifdef CONFIG_ARM
 		set_irq_flags(cur_irq, IRQF_VALID);
 #else
-		set_irq_noprobe(cur_irq);
+		irq_set_noprobe(cur_irq);
 #endif
 	}
 



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

* [patch 10/10] mfd: Fold irq_set_chip/irq_set_handler
  2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
                   ` (8 preceding siblings ...)
  2011-03-25 11:12 ` [patch 09/10] mfd: Cleanup irq namespace Thomas Gleixner
@ 2011-03-25 11:12 ` Thomas Gleixner
  9 siblings, 0 replies; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 11:12 UTC (permalink / raw)
  To: LKML; +Cc: Andrew Morton, Samuel Ortiz

[-- Attachment #1: mfd-fold.patch --]
[-- Type: text/plain, Size: 3863 bytes --]

Use the combined irq_set_chip_and_handler() function
instead. Converted with coccinelle.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
 drivers/mfd/asic3.c      |    3 +--
 drivers/mfd/htc-egpio.c  |    7 +++----
 drivers/mfd/htc-i2cpld.c |    4 ++--
 drivers/mfd/t7l66xb.c    |    3 +--
 drivers/mfd/tc6393xb.c   |    3 +--
 5 files changed, 8 insertions(+), 12 deletions(-)

Index: linux-2.6-tip/drivers/mfd/asic3.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/asic3.c
+++ linux-2.6-tip/drivers/mfd/asic3.c
@@ -416,8 +416,7 @@ static void asic3_irq_remove(struct plat
 
 	for (irq = irq_base; irq < irq_base + ASIC3_NR_IRQS; irq++) {
 		set_irq_flags(irq, 0);
-		irq_set_handler(irq, NULL);
-		irq_set_chip(irq, NULL);
+		irq_set_chip_and_handler(irq, NULL, NULL);
 		irq_set_chip_data(irq, NULL);
 	}
 	irq_set_chained_handler(asic->irq_nr, NULL);
Index: linux-2.6-tip/drivers/mfd/htc-egpio.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/htc-egpio.c
+++ linux-2.6-tip/drivers/mfd/htc-egpio.c
@@ -344,9 +344,9 @@ static int __init egpio_probe(struct pla
 			ei->ack_write = 0;
 		irq_end = ei->irq_start + ei->nirqs;
 		for (irq = ei->irq_start; irq < irq_end; irq++) {
-			irq_set_chip(irq, &egpio_muxed_chip);
+			irq_set_chip_and_handler(irq, &egpio_muxed_chip,
+						 handle_simple_irq);
 			irq_set_chip_data(irq, ei);
-			irq_set_handler(irq, handle_simple_irq);
 			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 		}
 		irq_set_irq_type(ei->chained_irq, IRQ_TYPE_EDGE_RISING);
@@ -373,8 +373,7 @@ static int __exit egpio_remove(struct pl
 	if (ei->chained_irq) {
 		irq_end = ei->irq_start + ei->nirqs;
 		for (irq = ei->irq_start; irq < irq_end; irq++) {
-			irq_set_chip(irq, NULL);
-			irq_set_handler(irq, NULL);
+			irq_set_chip_and_handler(irq, NULL, NULL);
 			set_irq_flags(irq, 0);
 		}
 		irq_set_chained_handler(ei->chained_irq, NULL);
Index: linux-2.6-tip/drivers/mfd/htc-i2cpld.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/htc-i2cpld.c
+++ linux-2.6-tip/drivers/mfd/htc-i2cpld.c
@@ -348,9 +348,9 @@ static int __devinit htcpld_setup_chip_i
 	/* Setup irq handlers */
 	irq_end = chip->irq_start + chip->nirqs;
 	for (irq = chip->irq_start; irq < irq_end; irq++) {
-		irq_set_chip(irq, &htcpld_muxed_chip);
+		irq_set_chip_and_handler(irq, &htcpld_muxed_chip,
+					 handle_simple_irq);
 		irq_set_chip_data(irq, chip);
-		irq_set_handler(irq, handle_simple_irq);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 #else
Index: linux-2.6-tip/drivers/mfd/t7l66xb.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/t7l66xb.c
+++ linux-2.6-tip/drivers/mfd/t7l66xb.c
@@ -243,9 +243,8 @@ static void t7l66xb_attach_irq(struct pl
 	irq_base = t7l66xb->irq_base;
 
 	for (irq = irq_base; irq < irq_base + T7L66XB_NR_IRQS; irq++) {
-		irq_set_chip(irq, &t7l66xb_chip);
+		irq_set_chip_and_handler(irq, &t7l66xb_chip, handle_level_irq);
 		irq_set_chip_data(irq, t7l66xb);
-		irq_set_handler(irq, handle_level_irq);
 #ifdef CONFIG_ARM
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 #endif
Index: linux-2.6-tip/drivers/mfd/tc6393xb.c
===================================================================
--- linux-2.6-tip.orig/drivers/mfd/tc6393xb.c
+++ linux-2.6-tip/drivers/mfd/tc6393xb.c
@@ -572,9 +572,8 @@ static void tc6393xb_attach_irq(struct p
 	irq_base = tc6393xb->irq_base;
 
 	for (irq = irq_base; irq < irq_base + TC6393XB_NR_IRQS; irq++) {
-		irq_set_chip(irq, &tc6393xb_chip);
+		irq_set_chip_and_handler(irq, &tc6393xb_chip, handle_edge_irq);
 		irq_set_chip_data(irq, tc6393xb);
-		irq_set_handler(irq, handle_edge_irq);
 		set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 	}
 



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

* Re: [patch 09/10] mfd: Cleanup irq namespace
  2011-03-25 11:12 ` [patch 09/10] mfd: Cleanup irq namespace Thomas Gleixner
@ 2011-03-25 12:08   ` Mark Brown
  2011-03-25 12:33     ` Thomas Gleixner
  0 siblings, 1 reply; 14+ messages in thread
From: Mark Brown @ 2011-03-25 12:08 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, Andrew Morton, Samuel Ortiz

On Fri, Mar 25, 2011 at 11:12:32AM -0000, Thomas Gleixner wrote:
> Converted with coccinelle.
> 
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

but

>  #ifdef CONFIG_ARM
>  		set_irq_flags(__irq, IRQF_VALID);
>  #else
> -		set_irq_noprobe(__irq);
> +		irq_set_noprobe(__irq);

it looks like you also need to update the set_irq_flags() naming.

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

* Re: [patch 09/10] mfd: Cleanup irq namespace
  2011-03-25 12:08   ` Mark Brown
@ 2011-03-25 12:33     ` Thomas Gleixner
  2011-03-25 12:41       ` Mark Brown
  0 siblings, 1 reply; 14+ messages in thread
From: Thomas Gleixner @ 2011-03-25 12:33 UTC (permalink / raw)
  To: Mark Brown; +Cc: LKML, Andrew Morton, Samuel Ortiz

On Fri, 25 Mar 2011, Mark Brown wrote:

> On Fri, Mar 25, 2011 at 11:12:32AM -0000, Thomas Gleixner wrote:
> > Converted with coccinelle.
> > 
> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> 
> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
> 
> but
> 
> >  #ifdef CONFIG_ARM
> >  		set_irq_flags(__irq, IRQF_VALID);
> >  #else
> > -		set_irq_noprobe(__irq);
> > +		irq_set_noprobe(__irq);
> 
> it looks like you also need to update the set_irq_flags() naming.

No, that's an ARM thing.

Thanks,

	tglx
 

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

* Re: [patch 09/10] mfd: Cleanup irq namespace
  2011-03-25 12:33     ` Thomas Gleixner
@ 2011-03-25 12:41       ` Mark Brown
  0 siblings, 0 replies; 14+ messages in thread
From: Mark Brown @ 2011-03-25 12:41 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, Andrew Morton, Samuel Ortiz

On Fri, Mar 25, 2011 at 01:33:34PM +0100, Thomas Gleixner wrote:
> On Fri, 25 Mar 2011, Mark Brown wrote:

> > it looks like you also need to update the set_irq_flags() naming.

> No, that's an ARM thing.

It seems like if you're going through and renaming all the genirq APIs
then it'd be only sensible to also go through and do the same thing for
the ARM extensions, the new code looks less clean in the affected areas.

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

end of thread, other threads:[~2011-03-25 12:41 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-25 11:12 [patch 00/10] mfd: irq cleanup and namespace conversion Thomas Gleixner
2011-03-25 11:12 ` [patch 01/10] mfd: asic3: Cleanup irq handling Thomas Gleixner
2011-03-25 11:12 ` [patch 02/10] mfd: 88pm860x: Remove unused irq_desc leftovers Thomas Gleixner
2011-03-25 11:12 ` [patch 03/10] mfd: ezx-pcap: Remvove open coded irq handling Thomas Gleixner
2011-03-25 11:12 ` [patch 04/10] mfd: htc-egpio: Cleanup interrupt handling Thomas Gleixner
2011-03-25 11:12 ` [patch 05/10] mfd: htc-i2cpld: " Thomas Gleixner
2011-03-25 11:12 ` [patch 06/10] mfd: mx8925: Remove irq_desc leftovers Thomas Gleixner
2011-03-25 11:12 ` [patch 07/10] mfd: twl4030: Cleanup interrupt handling Thomas Gleixner
2011-03-25 11:12 ` [patch 08/10] mfd: twl6030: " Thomas Gleixner
2011-03-25 11:12 ` [patch 09/10] mfd: Cleanup irq namespace Thomas Gleixner
2011-03-25 12:08   ` Mark Brown
2011-03-25 12:33     ` Thomas Gleixner
2011-03-25 12:41       ` Mark Brown
2011-03-25 11:12 ` [patch 10/10] mfd: Fold irq_set_chip/irq_set_handler Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).