mbox series

[V2,0/2] irqchip: add NXP INTMUX interrupt controller

Message ID 1576750865-14442-1-git-send-email-qiangqing.zhang@nxp.com (mailing list archive)
Headers show
Series irqchip: add NXP INTMUX interrupt controller | expand

Message

Joakim Zhang Dec. 19, 2019, 10:21 a.m. UTC
Hi Marc,

   Registering domain for each channel is indeed a bit unreasonable, I have
changed the driver to support only one channel (channel 0 by default) as
muti-channels is designed to route interrupt to different cores. The fixed
channel is enough for us.
  Thanks for your kindly review.

ChangeLog:
V1->V2:	*squash patches:
		drivers/irqchip: enable INTMUX interrupt controller driver
 		drivers/irqchip: add NXP INTMUX interrupt multiplexer support
	*remove properity "fsl,intmux_chans", only support channel 0 by
	default.
	*delete two unused macros.
	*align the various field in struct intmux_data.
	*turn to spin lock _irqsave version.
	*delete struct intmux_irqchip_data
	*disable interrupt in probe stage and clear pending status in remove
	stage

Joakim Zhang (2):
  dt-bindings/irq: add binding for NXP INTMUX interrupt multiplexer
  drivers/irqchip: add NXP INTMUX interrupt multiplexer support

 .../interrupt-controller/fsl,intmux.txt       |  28 ++
 drivers/irqchip/Kconfig                       |   6 +
 drivers/irqchip/Makefile                      |   1 +
 drivers/irqchip/irq-imx-intmux.c              | 240 ++++++++++++++++++
 4 files changed, 275 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/interrupt-controller/fsl,intmux.txt
 create mode 100644 drivers/irqchip/irq-imx-intmux.c

Comments

Marc Zyngier Dec. 19, 2019, 12:14 p.m. UTC | #1
On 2019-12-19 10:21, Joakim Zhang wrote:
> Hi Marc,
>
>    Registering domain for each channel is indeed a bit unreasonable, 
> I have
> changed the driver to support only one channel (channel 0 by default) 
> as
> muti-channels is designed to route interrupt to different cores. The 
> fixed
> channel is enough for us.

But that's not what the HW does, right? Next time, you will post
the patches that enabled multiple channels, and the interrupt specifier
will have to change, which will impact all existing DTs.

So please do the right thing from the start. Add channel selection to
the interrupt specifier. Pick the right irq domain with a .select()
callback, and your driver will magically work.

Thanks,

         M.

>   Thanks for your kindly review.
>
> ChangeLog:
> V1->V2:	*squash patches:
> 		drivers/irqchip: enable INTMUX interrupt controller driver
>  		drivers/irqchip: add NXP INTMUX interrupt multiplexer support
> 	*remove properity "fsl,intmux_chans", only support channel 0 by
> 	default.
> 	*delete two unused macros.
> 	*align the various field in struct intmux_data.
> 	*turn to spin lock _irqsave version.
> 	*delete struct intmux_irqchip_data
> 	*disable interrupt in probe stage and clear pending status in remove
> 	stage
>
> Joakim Zhang (2):
>   dt-bindings/irq: add binding for NXP INTMUX interrupt multiplexer
>   drivers/irqchip: add NXP INTMUX interrupt multiplexer support
>
>  .../interrupt-controller/fsl,intmux.txt       |  28 ++
>  drivers/irqchip/Kconfig                       |   6 +
>  drivers/irqchip/Makefile                      |   1 +
>  drivers/irqchip/irq-imx-intmux.c              | 240 
> ++++++++++++++++++
>  4 files changed, 275 insertions(+)
>  create mode 100644
> Documentation/devicetree/bindings/interrupt-controller/fsl,intmux.txt
>  create mode 100644 drivers/irqchip/irq-imx-intmux.c