Re: [PATCH 09/15] mfd: kill off set_irq_flags usage

2015-06-11 Thread Lee Jones
On Tue, 09 Jun 2015, Rob Herring wrote:

 set_irq_flags is ARM specific with custom flags which have genirq
 equivalents. Convert drivers to use the genirq interfaces directly, so we
 can kill off set_irq_flags. The translation of flags is as follows:
 
 IRQF_VALID - !IRQ_NOREQUEST
 IRQF_PROBE - !IRQ_NOPROBE
 IRQF_NOAUTOEN - IRQ_NOAUTOEN
 
 For IRQs managed by an irqdomain, the irqdomain core code handles clearing
 and setting IRQ_NOREQUEST already, so there is no need to do this in
 .map() functions and we can simply remove the set_irq_flags calls. Some
 users also set IRQ_NOPROBE and this has been maintained although it is not
 clear that is really needed. There appears to be a great deal of blind
 copy and paste of this code.
 
 Signed-off-by: Rob Herring r...@kernel.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 Cc: Linus Walleij linus.wall...@linaro.org
 Cc: Milo Kim milo@ti.com
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Andy Gross agr...@codeaurora.org
 Cc: David Brown dav...@codeaurora.org
 Cc: Tony Lindgren t...@atomide.com
 Cc: linux-arm-ker...@lists.infradead.org
 Cc: patc...@opensource.wolfsonmicro.com
 Cc: linux-arm-...@vger.kernel.org
 Cc: linux-...@vger.kernel.org
 Cc: linux-omap@vger.kernel.org
 ---
  drivers/mfd/88pm860x-core.c |  4 
  drivers/mfd/ab8500-core.c   |  4 
  drivers/mfd/arizona-irq.c   |  7 ---
  drivers/mfd/asic3.c |  4 ++--
  drivers/mfd/db8500-prcmu.c  |  1 -
  drivers/mfd/ezx-pcap.c  |  6 +-
  drivers/mfd/htc-egpio.c |  4 ++--
  drivers/mfd/htc-i2cpld.c|  6 +-
  drivers/mfd/lp8788-irq.c|  5 -
  drivers/mfd/max8925-core.c  |  5 +
  drivers/mfd/max8997-irq.c   |  5 +
  drivers/mfd/max8998-irq.c   |  5 +
  drivers/mfd/mt6397-core.c   |  4 
  drivers/mfd/pm8921-core.c   |  5 +
  drivers/mfd/rc5t583-irq.c   |  4 +---
  drivers/mfd/stmpe.c |  7 ---
  drivers/mfd/t7l66xb.c   |  6 --
  drivers/mfd/tc3589x.c   |  7 ---
  drivers/mfd/tc6393xb.c  |  4 ++--
  drivers/mfd/tps6586x.c  |  7 ---
  drivers/mfd/tps65912-irq.c  |  8 +---
  drivers/mfd/twl4030-irq.c   | 11 +--
  drivers/mfd/twl6030-irq.c   | 13 -
  drivers/mfd/ucb1x00-core.c  |  2 +-
  drivers/mfd/wm831x-irq.c|  7 ---
  drivers/mfd/wm8350-irq.c|  8 +---
  drivers/mfd/wm8994-irq.c|  7 ---
  27 files changed, 17 insertions(+), 139 deletions(-)

Acked-by: Lee Jones lee.jo...@linaro.org

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 09/15] mfd: kill off set_irq_flags usage

2015-06-10 Thread Linus Walleij
On Tue, Jun 9, 2015 at 8:26 PM, Rob Herring r...@kernel.org wrote:

 set_irq_flags is ARM specific with custom flags which have genirq
 equivalents. Convert drivers to use the genirq interfaces directly, so we
 can kill off set_irq_flags. The translation of flags is as follows:

 IRQF_VALID - !IRQ_NOREQUEST
 IRQF_PROBE - !IRQ_NOPROBE
 IRQF_NOAUTOEN - IRQ_NOAUTOEN

 For IRQs managed by an irqdomain, the irqdomain core code handles clearing
 and setting IRQ_NOREQUEST already, so there is no need to do this in
 .map() functions and we can simply remove the set_irq_flags calls. Some
 users also set IRQ_NOPROBE and this has been maintained although it is not
 clear that is really needed. There appears to be a great deal of blind
 copy and paste of this code.

 Signed-off-by: Rob Herring r...@kernel.org
 Cc: Samuel Ortiz sa...@linux.intel.com
 Cc: Lee Jones lee.jo...@linaro.org
 Cc: Linus Walleij linus.wall...@linaro.org
 Cc: Milo Kim milo@ti.com
 Cc: Kumar Gala ga...@codeaurora.org
 Cc: Andy Gross agr...@codeaurora.org
 Cc: David Brown dav...@codeaurora.org
 Cc: Tony Lindgren t...@atomide.com
 Cc: linux-arm-ker...@lists.infradead.org
 Cc: patc...@opensource.wolfsonmicro.com
 Cc: linux-arm-...@vger.kernel.org
 Cc: linux-...@vger.kernel.org
 Cc: linux-omap@vger.kernel.org

Acked-by: Linus Walleij linus.wall...@linaro.org

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 09/15] mfd: kill off set_irq_flags usage

2015-06-09 Thread Rob Herring
set_irq_flags is ARM specific with custom flags which have genirq
equivalents. Convert drivers to use the genirq interfaces directly, so we
can kill off set_irq_flags. The translation of flags is as follows:

IRQF_VALID - !IRQ_NOREQUEST
IRQF_PROBE - !IRQ_NOPROBE
IRQF_NOAUTOEN - IRQ_NOAUTOEN

For IRQs managed by an irqdomain, the irqdomain core code handles clearing
and setting IRQ_NOREQUEST already, so there is no need to do this in
.map() functions and we can simply remove the set_irq_flags calls. Some
users also set IRQ_NOPROBE and this has been maintained although it is not
clear that is really needed. There appears to be a great deal of blind
copy and paste of this code.

Signed-off-by: Rob Herring r...@kernel.org
Cc: Samuel Ortiz sa...@linux.intel.com
Cc: Lee Jones lee.jo...@linaro.org
Cc: Linus Walleij linus.wall...@linaro.org
Cc: Milo Kim milo@ti.com
Cc: Kumar Gala ga...@codeaurora.org
Cc: Andy Gross agr...@codeaurora.org
Cc: David Brown dav...@codeaurora.org
Cc: Tony Lindgren t...@atomide.com
Cc: linux-arm-ker...@lists.infradead.org
Cc: patc...@opensource.wolfsonmicro.com
Cc: linux-arm-...@vger.kernel.org
Cc: linux-...@vger.kernel.org
Cc: linux-omap@vger.kernel.org
---
 drivers/mfd/88pm860x-core.c |  4 
 drivers/mfd/ab8500-core.c   |  4 
 drivers/mfd/arizona-irq.c   |  7 ---
 drivers/mfd/asic3.c |  4 ++--
 drivers/mfd/db8500-prcmu.c  |  1 -
 drivers/mfd/ezx-pcap.c  |  6 +-
 drivers/mfd/htc-egpio.c |  4 ++--
 drivers/mfd/htc-i2cpld.c|  6 +-
 drivers/mfd/lp8788-irq.c|  5 -
 drivers/mfd/max8925-core.c  |  5 +
 drivers/mfd/max8997-irq.c   |  5 +
 drivers/mfd/max8998-irq.c   |  5 +
 drivers/mfd/mt6397-core.c   |  4 
 drivers/mfd/pm8921-core.c   |  5 +
 drivers/mfd/rc5t583-irq.c   |  4 +---
 drivers/mfd/stmpe.c |  7 ---
 drivers/mfd/t7l66xb.c   |  6 --
 drivers/mfd/tc3589x.c   |  7 ---
 drivers/mfd/tc6393xb.c  |  4 ++--
 drivers/mfd/tps6586x.c  |  7 ---
 drivers/mfd/tps65912-irq.c  |  8 +---
 drivers/mfd/twl4030-irq.c   | 11 +--
 drivers/mfd/twl6030-irq.c   | 13 -
 drivers/mfd/ucb1x00-core.c  |  2 +-
 drivers/mfd/wm831x-irq.c|  7 ---
 drivers/mfd/wm8350-irq.c|  8 +---
 drivers/mfd/wm8994-irq.c|  7 ---
 27 files changed, 17 insertions(+), 139 deletions(-)

diff --git a/drivers/mfd/88pm860x-core.c b/drivers/mfd/88pm860x-core.c
index d2a85cd..17984d65 100644
--- a/drivers/mfd/88pm860x-core.c
+++ b/drivers/mfd/88pm860x-core.c
@@ -558,11 +558,7 @@ static int pm860x_irq_domain_map(struct irq_domain *d, 
unsigned int virq,
irq_set_chip_data(virq, d-host_data);
irq_set_chip_and_handler(virq, pm860x_irq_chip, handle_edge_irq);
irq_set_nested_thread(virq, 1);
-#ifdef CONFIG_ARM
-   set_irq_flags(virq, IRQF_VALID);
-#else
irq_set_noprobe(virq);
-#endif
return 0;
 }
 
diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c
index c80a292..24a159b 100644
--- a/drivers/mfd/ab8500-core.c
+++ b/drivers/mfd/ab8500-core.c
@@ -565,11 +565,7 @@ static int ab8500_irq_map(struct irq_domain *d, unsigned 
int virq,
irq_set_chip_and_handler(virq, ab8500_irq_chip,
handle_simple_irq);
irq_set_nested_thread(virq, 1);
-#ifdef CONFIG_ARM
-   set_irq_flags(virq, IRQF_VALID);
-#else
irq_set_noprobe(virq);
-#endif
 
return 0;
 }
diff --git a/drivers/mfd/arizona-irq.c b/drivers/mfd/arizona-irq.c
index d063b94..d32673d 100644
--- a/drivers/mfd/arizona-irq.c
+++ b/drivers/mfd/arizona-irq.c
@@ -174,14 +174,7 @@ static int arizona_irq_map(struct irq_domain *h, unsigned 
int virq,
irq_set_chip_data(virq, data);
irq_set_chip_and_handler(virq, arizona_irq_chip, handle_simple_irq);
irq_set_nested_thread(virq, 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(virq, IRQF_VALID);
-#else
irq_set_noprobe(virq);
-#endif
 
return 0;
 }
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
index 977bd3a..54a133c 100644
--- a/drivers/mfd/asic3.c
+++ b/drivers/mfd/asic3.c
@@ -411,7 +411,7 @@ static int __init asic3_irq_probe(struct platform_device 
*pdev)
 
irq_set_chip_data(irq, asic);
irq_set_handler(irq, handle_level_irq);
-   set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
+   irq_clear_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE);
}
 
asic3_write_register(asic, ASIC3_OFFSET(INTR, INT_MASK),
@@ -432,7 +432,7 @@ static void asic3_irq_remove(struct platform_device *pdev)
irq_base = asic-irq_base;
 
for (irq = irq_base; irq  irq_base + ASIC3_NR_IRQS; irq++) {
-   set_irq_flags(irq, 0);
+   irq_set_status_flags(irq, IRQ_NOREQUEST | IRQ_NOPROBE);
irq_set_chip_and_handler(irq, NULL, NULL);