Re: [PATCH v3] irqchip: kill off set_irq_flags usage

2015-08-27 Thread Thomas Gleixner
On Wed, 26 Aug 2015, Rob Herring wrote:
 Everything except this patch, sh, gpu, and final removal of
 set_irq_flags in arm/arm64 are in -next. There don't appear to be any
 new users either.
 
 Can you apply this patch and these 2 now so they have some time in -next:
 
 http://lkml.kernel.org/r/1438030523-15853-11-git-send-email-r...@kernel.org
 http://lkml.kernel.org/r/1438030523-15853-5-git-send-email-r...@kernel.org
 
 And these 2 toward the end of the merge window once there is no more
 set_irq_flags:
 
 http://lkml.kernel.org/r/1436711211-18223-13-git-send-email-r...@kernel.org
 http://lkml.kernel.org/r/1436711211-18223-14-git-send-email-r...@kernel.org

Could you please resend these 5 patches to me. Seems I lost some of them.

Thanks,

tglx
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v3] irqchip: kill off set_irq_flags usage

2015-08-26 Thread Rob Herring
On Mon, Jul 27, 2015 at 3:55 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 modify 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: Thomas Gleixner t...@linutronix.de
 Cc: Jason Cooper ja...@lakedaemon.net
 Cc: Kukjin Kim kg...@kernel.org
 Cc: Krzysztof Kozlowski k.kozlow...@samsung.com
 Cc: Stephen Warren swar...@wwwdotorg.org
 Cc: Lee Jones l...@kernel.org
 Cc: Alexander Shiyan shc_w...@mail.ru
 Cc: Maxime Ripard maxime.rip...@free-electrons.com
 Cc: linux-arm-ker...@lists.infradead.org
 Cc: linux-samsung-soc@vger.kernel.org
 Cc: linux-rpi-ker...@lists.infradead.org
 ---
 Thomas asked that this be merged thru subsystem trees instead of arm-soc,
 so please apply this to your tree.

Thomas, Jason,

Everything except this patch, sh, gpu, and final removal of
set_irq_flags in arm/arm64 are in -next. There don't appear to be any
new users either.

Can you apply this patch and these 2 now so they have some time in -next:

http://lkml.kernel.org/r/1438030523-15853-11-git-send-email-r...@kernel.org
http://lkml.kernel.org/r/1438030523-15853-5-git-send-email-r...@kernel.org

And these 2 toward the end of the merge window once there is no more
set_irq_flags:

http://lkml.kernel.org/r/1436711211-18223-13-git-send-email-r...@kernel.org
http://lkml.kernel.org/r/1436711211-18223-14-git-send-email-r...@kernel.org

Rob

  drivers/irqchip/exynos-combiner.c |  2 +-
  drivers/irqchip/irq-armada-370-xp.c   |  3 +--
  drivers/irqchip/irq-bcm2835.c |  2 +-
  drivers/irqchip/irq-clps711x.c|  6 +++---
  drivers/irqchip/irq-gic-v3.c  |  5 ++---
  drivers/irqchip/irq-gic.c |  4 ++--
  drivers/irqchip/irq-hip04.c   |  4 ++--
  drivers/irqchip/irq-keystone.c|  2 +-
  drivers/irqchip/irq-mmp.c |  3 ---
  drivers/irqchip/irq-mxs.c |  1 -
  drivers/irqchip/irq-renesas-intc-irqpin.c |  1 -
  drivers/irqchip/irq-renesas-irqc.c|  1 -
  drivers/irqchip/irq-s3c24xx.c | 14 ++
  drivers/irqchip/irq-sun4i.c   |  2 +-
  drivers/irqchip/irq-versatile-fpga.c  |  2 +-
  drivers/irqchip/irq-vic.c |  2 +-
  drivers/irqchip/irq-vt8500.c  |  1 -
  drivers/irqchip/spear-shirq.c |  1 -
  18 files changed, 18 insertions(+), 38 deletions(-)

 diff --git a/drivers/irqchip/exynos-combiner.c 
 b/drivers/irqchip/exynos-combiner.c
 index 5c82e3b..a62cfd3 100644
 --- a/drivers/irqchip/exynos-combiner.c
 +++ b/drivers/irqchip/exynos-combiner.c
 @@ -165,7 +165,7 @@ static int combiner_irq_domain_map(struct irq_domain *d, 
 unsigned int irq,

 irq_set_chip_and_handler(irq, combiner_chip, handle_level_irq);
 irq_set_chip_data(irq, combiner_data[hw  3]);
 -   set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 +   irq_set_probe(irq);

 return 0;
  }
 diff --git a/drivers/irqchip/irq-armada-370-xp.c 
 b/drivers/irqchip/irq-armada-370-xp.c
 index 0d3b0fe..017f881 100644
 --- a/drivers/irqchip/irq-armada-370-xp.c
 +++ b/drivers/irqchip/irq-armada-370-xp.c
 @@ -201,7 +201,6 @@ static int armada_370_xp_msi_map(struct irq_domain 
 *domain, unsigned int virq,
  {
 irq_set_chip_and_handler(virq, armada_370_xp_msi_irq_chip,
  handle_simple_irq);
 -   set_irq_flags(virq, IRQF_VALID);

 return 0;
  }
 @@ -318,7 +317,7 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain 
 *h,
 irq_set_chip_and_handler(virq, armada_370_xp_irq_chip,
 handle_level_irq);
 }
 -   set_irq_flags(virq, IRQF_VALID | IRQF_PROBE);
 +   irq_set_probe(virq);

 return 0;
  }
 diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
 index e68c3b6..9c4ba16 100644
 --- a/drivers/irqchip/irq-bcm2835.c
 +++ b/drivers/irqchip/irq-bcm2835.c
 @@ -165,7 +165,7 @@ static int __init armctrl_of_init(struct device_node 
 *node,
 BUG_ON(irq = 0);
 irq_set_chip_and_handler(irq, armctrl_chip,
 handle_level_irq);
 -   set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 +   irq_set_probe(irq);
 }
 }

 diff --git 

Re: [PATCH v3] irqchip: kill off set_irq_flags usage

2015-07-28 Thread Gregory CLEMENT
Hi Rob, Thomas, Jason,

On 27/07/2015 22:55, 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 modify 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: Thomas Gleixner t...@linutronix.de
 Cc: Jason Cooper ja...@lakedaemon.net
 Cc: Kukjin Kim kg...@kernel.org
 Cc: Krzysztof Kozlowski k.kozlow...@samsung.com
 Cc: Stephen Warren swar...@wwwdotorg.org
 Cc: Lee Jones l...@kernel.org
 Cc: Alexander Shiyan shc_w...@mail.ru
 Cc: Maxime Ripard maxime.rip...@free-electrons.com
 Cc: linux-arm-ker...@lists.infradead.org
 Cc: linux-samsung-soc@vger.kernel.org
 Cc: linux-rpi-ker...@lists.infradead.org

for irq-armada-370-xp


Acked-by: Gregory CLEMENT gregory.clem...@free-electrons.com


Thanks,

Gregory


 ---
 Thomas asked that this be merged thru subsystem trees instead of arm-soc,
 so please apply this to your tree.
 
 Rob
 
  drivers/irqchip/exynos-combiner.c |  2 +-
  drivers/irqchip/irq-armada-370-xp.c   |  3 +--
  drivers/irqchip/irq-bcm2835.c |  2 +-
  drivers/irqchip/irq-clps711x.c|  6 +++---
  drivers/irqchip/irq-gic-v3.c  |  5 ++---
  drivers/irqchip/irq-gic.c |  4 ++--
  drivers/irqchip/irq-hip04.c   |  4 ++--
  drivers/irqchip/irq-keystone.c|  2 +-
  drivers/irqchip/irq-mmp.c |  3 ---
  drivers/irqchip/irq-mxs.c |  1 -
  drivers/irqchip/irq-renesas-intc-irqpin.c |  1 -
  drivers/irqchip/irq-renesas-irqc.c|  1 -
  drivers/irqchip/irq-s3c24xx.c | 14 ++
  drivers/irqchip/irq-sun4i.c   |  2 +-
  drivers/irqchip/irq-versatile-fpga.c  |  2 +-
  drivers/irqchip/irq-vic.c |  2 +-
  drivers/irqchip/irq-vt8500.c  |  1 -
  drivers/irqchip/spear-shirq.c |  1 -
  18 files changed, 18 insertions(+), 38 deletions(-)
 
 diff --git a/drivers/irqchip/exynos-combiner.c 
 b/drivers/irqchip/exynos-combiner.c
 index 5c82e3b..a62cfd3 100644
 --- a/drivers/irqchip/exynos-combiner.c
 +++ b/drivers/irqchip/exynos-combiner.c
 @@ -165,7 +165,7 @@ static int combiner_irq_domain_map(struct irq_domain *d, 
 unsigned int irq,
 
   irq_set_chip_and_handler(irq, combiner_chip, handle_level_irq);
   irq_set_chip_data(irq, combiner_data[hw  3]);
 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 + irq_set_probe(irq);
 
   return 0;
  }
 diff --git a/drivers/irqchip/irq-armada-370-xp.c 
 b/drivers/irqchip/irq-armada-370-xp.c
 index 0d3b0fe..017f881 100644
 --- a/drivers/irqchip/irq-armada-370-xp.c
 +++ b/drivers/irqchip/irq-armada-370-xp.c
 @@ -201,7 +201,6 @@ static int armada_370_xp_msi_map(struct irq_domain 
 *domain, unsigned int virq,
  {
   irq_set_chip_and_handler(virq, armada_370_xp_msi_irq_chip,
handle_simple_irq);
 - set_irq_flags(virq, IRQF_VALID);
 
   return 0;
  }
 @@ -318,7 +317,7 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain 
 *h,
   irq_set_chip_and_handler(virq, armada_370_xp_irq_chip,
   handle_level_irq);
   }
 - set_irq_flags(virq, IRQF_VALID | IRQF_PROBE);
 + irq_set_probe(virq);
 
   return 0;
  }
 diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
 index e68c3b6..9c4ba16 100644
 --- a/drivers/irqchip/irq-bcm2835.c
 +++ b/drivers/irqchip/irq-bcm2835.c
 @@ -165,7 +165,7 @@ static int __init armctrl_of_init(struct device_node 
 *node,
   BUG_ON(irq = 0);
   irq_set_chip_and_handler(irq, armctrl_chip,
   handle_level_irq);
 - set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
 + irq_set_probe(irq);
   }
   }
 
 diff --git a/drivers/irqchip/irq-clps711x.c b/drivers/irqchip/irq-clps711x.c
 index 33127f1..2e74e81 100644
 --- a/drivers/irqchip/irq-clps711x.c
 +++ b/drivers/irqchip/irq-clps711x.c
 @@ -133,14 +133,14 @@ static int __init clps711x_intc_irq_map(struct 
 irq_domain *h, unsigned int virq,
   irq_hw_number_t hw)
  {
   irq_flow_handler_t handler = handle_level_irq;
 - unsigned int flags = IRQF_VALID | IRQF_PROBE;
 + unsigned int flags = 0;
 
   if (!clps711x_irqs[hw].flags)
   return 0;
 
   if (clps711x_irqs[hw].flags 

[PATCH v3] irqchip: kill off set_irq_flags usage

2015-07-27 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 modify 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: Thomas Gleixner t...@linutronix.de
Cc: Jason Cooper ja...@lakedaemon.net
Cc: Kukjin Kim kg...@kernel.org
Cc: Krzysztof Kozlowski k.kozlow...@samsung.com
Cc: Stephen Warren swar...@wwwdotorg.org
Cc: Lee Jones l...@kernel.org
Cc: Alexander Shiyan shc_w...@mail.ru
Cc: Maxime Ripard maxime.rip...@free-electrons.com
Cc: linux-arm-ker...@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: linux-rpi-ker...@lists.infradead.org
---
Thomas asked that this be merged thru subsystem trees instead of arm-soc,
so please apply this to your tree.

Rob

 drivers/irqchip/exynos-combiner.c |  2 +-
 drivers/irqchip/irq-armada-370-xp.c   |  3 +--
 drivers/irqchip/irq-bcm2835.c |  2 +-
 drivers/irqchip/irq-clps711x.c|  6 +++---
 drivers/irqchip/irq-gic-v3.c  |  5 ++---
 drivers/irqchip/irq-gic.c |  4 ++--
 drivers/irqchip/irq-hip04.c   |  4 ++--
 drivers/irqchip/irq-keystone.c|  2 +-
 drivers/irqchip/irq-mmp.c |  3 ---
 drivers/irqchip/irq-mxs.c |  1 -
 drivers/irqchip/irq-renesas-intc-irqpin.c |  1 -
 drivers/irqchip/irq-renesas-irqc.c|  1 -
 drivers/irqchip/irq-s3c24xx.c | 14 ++
 drivers/irqchip/irq-sun4i.c   |  2 +-
 drivers/irqchip/irq-versatile-fpga.c  |  2 +-
 drivers/irqchip/irq-vic.c |  2 +-
 drivers/irqchip/irq-vt8500.c  |  1 -
 drivers/irqchip/spear-shirq.c |  1 -
 18 files changed, 18 insertions(+), 38 deletions(-)

diff --git a/drivers/irqchip/exynos-combiner.c 
b/drivers/irqchip/exynos-combiner.c
index 5c82e3b..a62cfd3 100644
--- a/drivers/irqchip/exynos-combiner.c
+++ b/drivers/irqchip/exynos-combiner.c
@@ -165,7 +165,7 @@ static int combiner_irq_domain_map(struct irq_domain *d, 
unsigned int irq,

irq_set_chip_and_handler(irq, combiner_chip, handle_level_irq);
irq_set_chip_data(irq, combiner_data[hw  3]);
-   set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
+   irq_set_probe(irq);

return 0;
 }
diff --git a/drivers/irqchip/irq-armada-370-xp.c 
b/drivers/irqchip/irq-armada-370-xp.c
index 0d3b0fe..017f881 100644
--- a/drivers/irqchip/irq-armada-370-xp.c
+++ b/drivers/irqchip/irq-armada-370-xp.c
@@ -201,7 +201,6 @@ static int armada_370_xp_msi_map(struct irq_domain *domain, 
unsigned int virq,
 {
irq_set_chip_and_handler(virq, armada_370_xp_msi_irq_chip,
 handle_simple_irq);
-   set_irq_flags(virq, IRQF_VALID);

return 0;
 }
@@ -318,7 +317,7 @@ static int armada_370_xp_mpic_irq_map(struct irq_domain *h,
irq_set_chip_and_handler(virq, armada_370_xp_irq_chip,
handle_level_irq);
}
-   set_irq_flags(virq, IRQF_VALID | IRQF_PROBE);
+   irq_set_probe(virq);

return 0;
 }
diff --git a/drivers/irqchip/irq-bcm2835.c b/drivers/irqchip/irq-bcm2835.c
index e68c3b6..9c4ba16 100644
--- a/drivers/irqchip/irq-bcm2835.c
+++ b/drivers/irqchip/irq-bcm2835.c
@@ -165,7 +165,7 @@ static int __init armctrl_of_init(struct device_node *node,
BUG_ON(irq = 0);
irq_set_chip_and_handler(irq, armctrl_chip,
handle_level_irq);
-   set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
+   irq_set_probe(irq);
}
}

diff --git a/drivers/irqchip/irq-clps711x.c b/drivers/irqchip/irq-clps711x.c
index 33127f1..2e74e81 100644
--- a/drivers/irqchip/irq-clps711x.c
+++ b/drivers/irqchip/irq-clps711x.c
@@ -133,14 +133,14 @@ static int __init clps711x_intc_irq_map(struct irq_domain 
*h, unsigned int virq,
irq_hw_number_t hw)
 {
irq_flow_handler_t handler = handle_level_irq;
-   unsigned int flags = IRQF_VALID | IRQF_PROBE;
+   unsigned int flags = 0;

if (!clps711x_irqs[hw].flags)
return 0;

if (clps711x_irqs[hw].flags  CLPS711X_FLAG_FIQ) {
handler = handle_bad_irq;
-   flags |= IRQF_NOAUTOEN;
+   flags |= IRQ_NOAUTOEN;
} else if (clps711x_irqs[hw].eoi) {
handler = handle_fasteoi_irq;