On 2019-12-18 11:34, Joakim Zhang wrote:
-----Original Message-----
From: Joakim Zhang <qiangqing.zhang@xxxxxxx>
Sent: 2019年12月18日 18:22
To: Marc Zyngier <maz@xxxxxxxxxx>
Cc: tglx@xxxxxxxxxxxxx; jason@xxxxxxxxxxxxxx; robh+dt@xxxxxxxxxx;
mark.rutland@xxxxxxx; shawnguo@xxxxxxxxxx; s.hauer@xxxxxxxxxxxxxx;
S.j.
Wang <shengjiu.wang@xxxxxxx>; kernel@xxxxxxxxxxxxxx;
festevam@xxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>;
linux-kernel@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; Andy Duan
<fugang.duan@xxxxxxx>;
Aisheng Dong <aisheng.dong@xxxxxxx>
Subject: RE: [PATCH 1/3] dt-bindings/irq: add binding for NXP INTMUX
interrupt
multiplexer
[...]
> What I don't understand is how the interrupt descriptor can
indicate
> which channel it is multiplexed on. The driver doesn't makes this
> clear either, and I strongly suspect that it was never tested with
more than a
single channel...
Yes, to be frank, I tested with a signle channel, I will take this
into
consideration. Thanks.
Hi Marc,
I tested channels from 1 to 8, and no issue found.
We register irq handler with irq_set_chained_handler_and_data(), so
the interrupt descriptor could find the controller's private data,
and
channel index is one part of private data.
I think this can explain the interrupt descriptor how to indicate
which channel it is multiplexed.
But that doesn't explain how the driver can find which channel a given
interrupts is wired to. Nothing in your binding shows how you can
extract
the channel number from the interrupt descriptor. Nothing in the driver
even *computes* a channel number.
As far as I can see, you register a bunch of domains, all with the same
OF node, so all your interrupts end-up with the same domain. Is it
really
what you expect?
This driver looks terribly wrong.
M.
--
Jazz is not dead. It just smells funny...