2015-07-08 18:11:31

by Alban

[permalink] [raw]
Subject: [PATCH] MIPS: ath79: irq: Remove the include of drivers/irqchip/irqchip.h

We shouldn't include irqchip.h from outside of the drivers/irqchip
directory. The irq driver should idealy be there, however this not
trivial at the moment. We still need to support platforms without DT
support and the interface to the DDR controller still use a custom
arch specific API.

For now just redefine the IRQCHIP_DECLARE macro to avoid the cross
tree include.

Signed-off-by: Alban Bedel <[email protected]>
---
arch/mips/ath79/irq.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/mips/ath79/irq.c b/arch/mips/ath79/irq.c
index afb0096..c5ad737 100644
--- a/arch/mips/ath79/irq.c
+++ b/arch/mips/ath79/irq.c
@@ -17,7 +17,6 @@
#include <linux/interrupt.h>
#include <linux/irqchip.h>
#include <linux/of_irq.h>
-#include "../../../drivers/irqchip/irqchip.h"

#include <asm/irq_cpu.h>
#include <asm/mipsregs.h>
@@ -272,6 +271,13 @@ asmlinkage void plat_irq_dispatch(void)
}

#ifdef CONFIG_IRQCHIP
+/*
+ * We cannot use the IRQCHIP_DECLARE macro that lives in
+ * drivers/irqchip, so we're forced to roll our own. Not very nice,
+ * but should do until this code is moved to drivers/irqchip.
+ */
+#define IRQCHIP_DECLARE(name, compat, fn) OF_DECLARE_2(irqchip, name, compat, fn)
+
static int misc_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hw)
{
irq_set_chip_and_handler(irq, &ath79_misc_irq_chip, handle_level_irq);
--
2.0.0


2015-07-08 18:28:42

by Jonas Gorski

[permalink] [raw]
Subject: Re: [PATCH] MIPS: ath79: irq: Remove the include of drivers/irqchip/irqchip.h

On Wed, Jul 8, 2015 at 8:11 PM, Alban Bedel <[email protected]> wrote:
> We shouldn't include irqchip.h from outside of the drivers/irqchip
> directory. The irq driver should idealy be there, however this not
> trivial at the moment. We still need to support platforms without DT
> support and the interface to the DDR controller still use a custom
> arch specific API.
>
> For now just redefine the IRQCHIP_DECLARE macro to avoid the cross
> tree include.
>
> Signed-off-by: Alban Bedel <[email protected]>

The define was moved into linux/irqchip.h in
91e20b5040c67c51aad88cf87db4305c5bd7f79d, so all you can/need to do is
...
> ---
> arch/mips/ath79/irq.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/arch/mips/ath79/irq.c b/arch/mips/ath79/irq.c
> index afb0096..c5ad737 100644
> --- a/arch/mips/ath79/irq.c
> +++ b/arch/mips/ath79/irq.c
> @@ -17,7 +17,6 @@
> #include <linux/interrupt.h>
> #include <linux/irqchip.h>
> #include <linux/of_irq.h>
> -#include "../../../drivers/irqchip/irqchip.h"
>
> #include <asm/irq_cpu.h>
> #include <asm/mipsregs.h>

this removal ;)


Jonas

2015-07-11 20:36:37

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH] MIPS: ath79: irq: Remove the include of drivers/irqchip/irqchip.h

On Wed, 8 Jul 2015, Alban Bedel wrote:
> We shouldn't include irqchip.h from outside of the drivers/irqchip
> directory. The irq driver should idealy be there, however this not
> trivial at the moment. We still need to support platforms without DT
> support and the interface to the DDR controller still use a custom
> arch specific API.
>
> For now just redefine the IRQCHIP_DECLARE macro to avoid the cross
> tree include.

The macro has been moved to linux/irqchip.h.

But even if it would still be in drivers/irqchip such a redefine is
even worse than the ../../... include. And the proper solution from
the very beginning would have been to move the macro to the global
header instead of this horrible include.

Sigh,

tglx