-----Original Message-----
From: Florian Fainelli <f.fainelli@xxxxxxxxx>
Sent: 2021年8月11日 1:45
To: Joakim Zhang <qiangqing.zhang@xxxxxxx>; davem@xxxxxxxxxxxxx;
kuba@xxxxxxxxxx; robh+dt@xxxxxxxxxx; shawnguo@xxxxxxxxxx;
s.hauer@xxxxxxxxxxxxxx; festevam@xxxxxxxxx; andrew@xxxxxxx
Cc: kernel@xxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>;
netdev@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH net-next 1/3] dt-bindings: net: fsl, fec: add "fsl,
wakeup-irq" property
On 8/9/2021 7:21 PM, Joakim Zhang wrote:
better.
Hi Florian,
-----Original Message-----
From: Florian Fainelli <f.fainelli@xxxxxxxxx>
Sent: 2021年8月10日 2:40
To: Joakim Zhang <qiangqing.zhang@xxxxxxx>; davem@xxxxxxxxxxxxx;
kuba@xxxxxxxxxx; robh+dt@xxxxxxxxxx; shawnguo@xxxxxxxxxx;
s.hauer@xxxxxxxxxxxxxx; festevam@xxxxxxxxx; andrew@xxxxxxx
Cc: kernel@xxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>;
netdev@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH net-next 1/3] dt-bindings: net: fsl, fec: add
"fsl, wakeup-irq" property
On 8/8/2021 10:08 PM, Joakim Zhang wrote:
interrupt lines are originating from the same interrupt controllers.
Hi Florian,
-----Original Message-----
From: Florian Fainelli <f.fainelli@xxxxxxxxx>
Sent: 2021年8月5日 17:18
To: Joakim Zhang <qiangqing.zhang@xxxxxxx>; davem@xxxxxxxxxxxxx;
kuba@xxxxxxxxxx; robh+dt@xxxxxxxxxx; shawnguo@xxxxxxxxxx;
s.hauer@xxxxxxxxxxxxxx; festevam@xxxxxxxxx; andrew@xxxxxxx
Cc: kernel@xxxxxxxxxxxxxx; dl-linux-imx <linux-imx@xxxxxxx>;
netdev@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
linux-kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [PATCH net-next 1/3] dt-bindings: net: fsl, fec: add
"fsl, wakeup-irq" property
On 8/5/2021 12:46 AM, Joakim Zhang wrote:
Add "fsl,wakeup-irq" property for FEC controller to select wakeup
irq source.
Signed-off-by: Fugang Duan <fugang.duan@xxxxxxx>
Signed-off-by: Joakim Zhang <qiangqing.zhang@xxxxxxx>
Why are not you making use of the standard interrupts-extended
property which allows different interrupt lines to be originating
from different interrupt controllers, e.g.:
interrupts-extended = <&gic GIC_SPI 112 4>, <&wakeup_intc 0>;
Thanks.
AFAIK, interrupts-extended should be used instead of interrupts when
a device is connected to multiple interrupt controllers as it
encodes a parent phandle with each interrupt specifier. However, for
FEC controller, all
OK, so why this custom property then?
interrupt controller.
1) FEC controller has up to 4 interrupt lines and all of these are
routed to GIC
2) FEC has a wakeup interrupt signal and always are mixed with otherinterrupt signals, and then output to one interrupt line.
3) For legacy SoCs, wakeup interrupt are mixed to int0 line, but forserials, are mixed to int2 line.
i.MX8M
4) Now driver treat int0 as the wakeup source by default, it isi.MX8M.
broken for
I don't really know what to make of your response, it seems to me
that you are carrying some legacy Device Tree properties that were
invented when interrupts-extended did not exist and we did not know any
property.
As I described in former mail, it is not related to interrupts-extended
queue 1; "int2" for queue 2.
Let's take a look, e.g.
1) arch/arm/boot/dts/imx7d.dtsi
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "int0", "int1", "int2", "pps";
For these 4 interrupts are originating from GIC interrupt controller,
"int0" for queue 0 and other interrupt signals, containing wakeup; "int1" for
interrupt signals, containing wakeup.
2) arch/arm64/boot/dts/freescale/imx8mq.dtsi
interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "int0", "int1", "int2", "pps";
For these 4 interrupts are also originating from GIC interrupt
controller, "int0" for queue 0; "int1" for queue 1; "int2" for queue 2 and other
i.MX8M serials, since SoC mix wakeup interrupt signal into "int2", so I add this
If we want to use WoL feature, we need invoke enable_irq_wake() to let
this specific interrupt line be a wakeup source. For FEC driver now,
it treats "int0" as wakeup interrupt by default. Obviously it's not fine for
"fsl,wakeup-irq" custom property to indicate which interrupt line contains
wakeup signal.
interrupts-extended property can't fix this issue, right?
Not sure if I have explained it clearly enough, from my point of view, I think
This is clearer, and indeed interrupts-extended won't fix that, however it seems
to me that this is a problem that ought to be fixed at the interrupt
controller/irq_chip level which should know and be told which interrupt lines
can be made wake-up interrupts or not. From there on, the driver can test with
enable_irq_wake() whether this has a chance of working or not.
How can we test with enable_irq_wake()? I agree that interrupt controller can recognize
wakeup interrupt is better.
It seems to me that the 'fsl,wakeup-irq' property ought to be within the
interrupt controller Device Tree node (where it would be easier to validate that
the specific interrupt line is correct) as opposed to within the consumer (FEC)
Device Tree node.
Not quite understand, could you explain more?