Re: [PATCH] irqchip: xilinx: Add support for multiple instances

From: Michal Simek
Date: Fri Jan 31 2020 - 09:36:11 EST


On 31. 01. 20 15:18, Mubin Usman Sayyed wrote:
> From: Mubin Sayyed <mubin.usman.sayyed@xxxxxxxxxx>
>
> This patch adds support for multiple instances of
> xilinx interrupt controller. Below configurations are
> supported by driver,
>
> - peripheral->xilinx-intc->xilinx-intc->gic
> - peripheral->xilinx-intc->xilinx-intc
>
> Signed-off-by: Anirudha Sarangi <anirudha.sarangi@xxxxxxxxxx>
> Signed-off-by: Mubin Sayyed <mubin.usman.sayyed@xxxxxxxxxx>
> ---
> drivers/irqchip/irq-xilinx-intc.c | 143 +++++++++++++++++++++++---------------
> 1 file changed, 87 insertions(+), 56 deletions(-)
>
> diff --git a/drivers/irqchip/irq-xilinx-intc.c b/drivers/irqchip/irq-xilinx-intc.c
> index e3043de..43d6e4e 100644
> --- a/drivers/irqchip/irq-xilinx-intc.c
> +++ b/drivers/irqchip/irq-xilinx-intc.c
> @@ -15,10 +15,11 @@
> #include <linux/irqchip/chained_irq.h>
> #include <linux/of_address.h>
> #include <linux/io.h>
> -#include <linux/jump_label.h>
> #include <linux/bug.h>
> #include <linux/of_irq.h>
>
> +static struct xintc_irq_chip *primary_intc;

nit: please place it below xintc_irq_chip.

> +
> /* No one else should require these constants, so define them locally here. */
> #define ISR 0x00 /* Interrupt Status Register */
> #define IPR 0x04 /* Interrupt Pending Register */
> @@ -32,35 +33,40 @@
> #define MER_ME (1<<0)
> #define MER_HIE (1<<1)
>
> -static DEFINE_STATIC_KEY_FALSE(xintc_is_be);

I am playing with this driver a little bit now and I pretty much dislike
remove this. I haven't see any configuration which mixes little and big
endian together. That's why I prefer not to create read_fn/write_fn hooks.

Thanks,
Michal