diff mbox series

[v2,11/11] ARM: dts: armada-385.dtsi: Add definitions for PCIe legacy INTx interrupts

Message ID 20220112151814.24361-12-pali@kernel.org
State New
Headers show
Series PCI: mvebu: subsystem ids, AER and INTx | expand

Commit Message

Pali Rohár Jan. 12, 2022, 3:18 p.m. UTC
With this change legacy INTA, INTB, INTC and INTD interrupts are reported
separately and not mixed into one Linux virq source anymore.

Signed-off-by: Pali Rohár <pali@kernel.org>
---
 arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----
 1 file changed, 44 insertions(+), 8 deletions(-)

Comments

Gregory CLEMENT Feb. 14, 2022, 3:07 p.m. UTC | #1
Hello Pali,

> With this change legacy INTA, INTB, INTC and INTD interrupts are reported
> separately and not mixed into one Linux virq source anymore.
>
> Signed-off-by: Pali Rohár <pali@kernel.org>
> ---
>  arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----

Is there any reason for not doing the same change in armada-380.dtsi ?

Grégory

>  1 file changed, 44 insertions(+), 8 deletions(-)
>
> diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
> index f0022d10c715..83392b92dae2 100644
> --- a/arch/arm/boot/dts/armada-385.dtsi
> +++ b/arch/arm/boot/dts/armada-385.dtsi
> @@ -69,16 +69,25 @@
>  				reg = <0x0800 0 0 0 0>;
>  				#address-cells = <3>;
>  				#size-cells = <2>;
> +				interrupt-names = "intx";
> +				interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
>  				#interrupt-cells = <1>;
>  				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
>  					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
>  				bus-range = <0x00 0xff>;
> -				interrupt-map-mask = <0 0 0 0>;
> -				interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> +				interrupt-map-mask = <0 0 0 7>;
> +				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
> +						<0 0 0 2 &pcie1_intc 1>,
> +						<0 0 0 3 &pcie1_intc 2>,
> +						<0 0 0 4 &pcie1_intc 3>;
>  				marvell,pcie-port = <0>;
>  				marvell,pcie-lane = <0>;
>  				clocks = <&gateclk 8>;
>  				status = "disabled";
> +				pcie1_intc: interrupt-controller {
> +					interrupt-controller;
> +					#interrupt-cells = <1>;
> +				};
>  			};
>  
>  			/* x1 port */
> @@ -88,16 +97,25 @@
>  				reg = <0x1000 0 0 0 0>;
>  				#address-cells = <3>;
>  				#size-cells = <2>;
> +				interrupt-names = "intx";
> +				interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
>  				#interrupt-cells = <1>;
>  				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
>  					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
>  				bus-range = <0x00 0xff>;
> -				interrupt-map-mask = <0 0 0 0>;
> -				interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> +				interrupt-map-mask = <0 0 0 7>;
> +				interrupt-map = <0 0 0 1 &pcie2_intc 0>,
> +						<0 0 0 2 &pcie2_intc 1>,
> +						<0 0 0 3 &pcie2_intc 2>,
> +						<0 0 0 4 &pcie2_intc 3>;
>  				marvell,pcie-port = <1>;
>  				marvell,pcie-lane = <0>;
>  				clocks = <&gateclk 5>;
>  				status = "disabled";
> +				pcie2_intc: interrupt-controller {
> +					interrupt-controller;
> +					#interrupt-cells = <1>;
> +				};
>  			};
>  
>  			/* x1 port */
> @@ -107,16 +125,25 @@
>  				reg = <0x1800 0 0 0 0>;
>  				#address-cells = <3>;
>  				#size-cells = <2>;
> +				interrupt-names = "intx";
> +				interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
>  				#interrupt-cells = <1>;
>  				ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
>  					  0x81000000 0 0 0x81000000 0x3 0 1 0>;
>  				bus-range = <0x00 0xff>;
> -				interrupt-map-mask = <0 0 0 0>;
> -				interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> +				interrupt-map-mask = <0 0 0 7>;
> +				interrupt-map = <0 0 0 1 &pcie3_intc 0>,
> +						<0 0 0 2 &pcie3_intc 1>,
> +						<0 0 0 3 &pcie3_intc 2>,
> +						<0 0 0 4 &pcie3_intc 3>;
>  				marvell,pcie-port = <2>;
>  				marvell,pcie-lane = <0>;
>  				clocks = <&gateclk 6>;
>  				status = "disabled";
> +				pcie3_intc: interrupt-controller {
> +					interrupt-controller;
> +					#interrupt-cells = <1>;
> +				};
>  			};
>  
>  			/*
> @@ -129,16 +156,25 @@
>  				reg = <0x2000 0 0 0 0>;
>  				#address-cells = <3>;
>  				#size-cells = <2>;
> +				interrupt-names = "intx";
> +				interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
>  				#interrupt-cells = <1>;
>  				ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
>  					  0x81000000 0 0 0x81000000 0x4 0 1 0>;
>  				bus-range = <0x00 0xff>;
> -				interrupt-map-mask = <0 0 0 0>;
> -				interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> +				interrupt-map-mask = <0 0 0 7>;
> +				interrupt-map = <0 0 0 1 &pcie4_intc 0>,
> +						<0 0 0 2 &pcie4_intc 1>,
> +						<0 0 0 3 &pcie4_intc 2>,
> +						<0 0 0 4 &pcie4_intc 3>;
>  				marvell,pcie-port = <3>;
>  				marvell,pcie-lane = <0>;
>  				clocks = <&gateclk 7>;
>  				status = "disabled";
> +				pcie4_intc: interrupt-controller {
> +					interrupt-controller;
> +					#interrupt-cells = <1>;
> +				};
>  			};
>  		};
>  	};
> -- 
> 2.20.1
>
Pali Rohár Feb. 14, 2022, 3:09 p.m. UTC | #2
On Monday 14 February 2022 16:07:13 Gregory CLEMENT wrote:
> Hello Pali,
> 
> > With this change legacy INTA, INTB, INTC and INTD interrupts are reported
> > separately and not mixed into one Linux virq source anymore.
> >
> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > ---
> >  arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----
> 
> Is there any reason for not doing the same change in armada-380.dtsi ?

I do not have A380 HW, so I did this change only for A385 which I have tested.

> Grégory
> 
> >  1 file changed, 44 insertions(+), 8 deletions(-)
> >
> > diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
> > index f0022d10c715..83392b92dae2 100644
> > --- a/arch/arm/boot/dts/armada-385.dtsi
> > +++ b/arch/arm/boot/dts/armada-385.dtsi
> > @@ -69,16 +69,25 @@
> >  				reg = <0x0800 0 0 0 0>;
> >  				#address-cells = <3>;
> >  				#size-cells = <2>;
> > +				interrupt-names = "intx";
> > +				interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> >  				#interrupt-cells = <1>;
> >  				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
> >  					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
> >  				bus-range = <0x00 0xff>;
> > -				interrupt-map-mask = <0 0 0 0>;
> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> > +				interrupt-map-mask = <0 0 0 7>;
> > +				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
> > +						<0 0 0 2 &pcie1_intc 1>,
> > +						<0 0 0 3 &pcie1_intc 2>,
> > +						<0 0 0 4 &pcie1_intc 3>;
> >  				marvell,pcie-port = <0>;
> >  				marvell,pcie-lane = <0>;
> >  				clocks = <&gateclk 8>;
> >  				status = "disabled";
> > +				pcie1_intc: interrupt-controller {
> > +					interrupt-controller;
> > +					#interrupt-cells = <1>;
> > +				};
> >  			};
> >  
> >  			/* x1 port */
> > @@ -88,16 +97,25 @@
> >  				reg = <0x1000 0 0 0 0>;
> >  				#address-cells = <3>;
> >  				#size-cells = <2>;
> > +				interrupt-names = "intx";
> > +				interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> >  				#interrupt-cells = <1>;
> >  				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
> >  					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
> >  				bus-range = <0x00 0xff>;
> > -				interrupt-map-mask = <0 0 0 0>;
> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> > +				interrupt-map-mask = <0 0 0 7>;
> > +				interrupt-map = <0 0 0 1 &pcie2_intc 0>,
> > +						<0 0 0 2 &pcie2_intc 1>,
> > +						<0 0 0 3 &pcie2_intc 2>,
> > +						<0 0 0 4 &pcie2_intc 3>;
> >  				marvell,pcie-port = <1>;
> >  				marvell,pcie-lane = <0>;
> >  				clocks = <&gateclk 5>;
> >  				status = "disabled";
> > +				pcie2_intc: interrupt-controller {
> > +					interrupt-controller;
> > +					#interrupt-cells = <1>;
> > +				};
> >  			};
> >  
> >  			/* x1 port */
> > @@ -107,16 +125,25 @@
> >  				reg = <0x1800 0 0 0 0>;
> >  				#address-cells = <3>;
> >  				#size-cells = <2>;
> > +				interrupt-names = "intx";
> > +				interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> >  				#interrupt-cells = <1>;
> >  				ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
> >  					  0x81000000 0 0 0x81000000 0x3 0 1 0>;
> >  				bus-range = <0x00 0xff>;
> > -				interrupt-map-mask = <0 0 0 0>;
> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> > +				interrupt-map-mask = <0 0 0 7>;
> > +				interrupt-map = <0 0 0 1 &pcie3_intc 0>,
> > +						<0 0 0 2 &pcie3_intc 1>,
> > +						<0 0 0 3 &pcie3_intc 2>,
> > +						<0 0 0 4 &pcie3_intc 3>;
> >  				marvell,pcie-port = <2>;
> >  				marvell,pcie-lane = <0>;
> >  				clocks = <&gateclk 6>;
> >  				status = "disabled";
> > +				pcie3_intc: interrupt-controller {
> > +					interrupt-controller;
> > +					#interrupt-cells = <1>;
> > +				};
> >  			};
> >  
> >  			/*
> > @@ -129,16 +156,25 @@
> >  				reg = <0x2000 0 0 0 0>;
> >  				#address-cells = <3>;
> >  				#size-cells = <2>;
> > +				interrupt-names = "intx";
> > +				interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> >  				#interrupt-cells = <1>;
> >  				ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
> >  					  0x81000000 0 0 0x81000000 0x4 0 1 0>;
> >  				bus-range = <0x00 0xff>;
> > -				interrupt-map-mask = <0 0 0 0>;
> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> > +				interrupt-map-mask = <0 0 0 7>;
> > +				interrupt-map = <0 0 0 1 &pcie4_intc 0>,
> > +						<0 0 0 2 &pcie4_intc 1>,
> > +						<0 0 0 3 &pcie4_intc 2>,
> > +						<0 0 0 4 &pcie4_intc 3>;
> >  				marvell,pcie-port = <3>;
> >  				marvell,pcie-lane = <0>;
> >  				clocks = <&gateclk 7>;
> >  				status = "disabled";
> > +				pcie4_intc: interrupt-controller {
> > +					interrupt-controller;
> > +					#interrupt-cells = <1>;
> > +				};
> >  			};
> >  		};
> >  	};
> > -- 
> > 2.20.1
> >
> 
> -- 
> Gregory Clement, Bootlin
> Embedded Linux and Kernel engineering
> http://bootlin.com
Gregory CLEMENT Feb. 14, 2022, 3:26 p.m. UTC | #3
Hello,

> On Monday 14 February 2022 16:07:13 Gregory CLEMENT wrote:
>> Hello Pali,
>> 
>> > With this change legacy INTA, INTB, INTC and INTD interrupts are reported
>> > separately and not mixed into one Linux virq source anymore.
>> >
>> > Signed-off-by: Pali Rohár <pali@kernel.org>
>> > ---
>> >  arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----
>> 
>> Is there any reason for not doing the same change in armada-380.dtsi ?
>
> I do not have A380 HW, so I did this change only for A385 which I have
> tested.

OK fair enough.

So you can add my
Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>

Moreover to keep biscetability  this patch should be merged after the
support in the driver. So the easier is to let merge it through the PCI
subsystem with the other patches from this series. I do not think there
will be any other changes in this file so there won't be any merge
conflicts.

Thanks,

Grégory


>
>> Grégory
>> 
>> >  1 file changed, 44 insertions(+), 8 deletions(-)
>> >
>> > diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
>> > index f0022d10c715..83392b92dae2 100644
>> > --- a/arch/arm/boot/dts/armada-385.dtsi
>> > +++ b/arch/arm/boot/dts/armada-385.dtsi
>> > @@ -69,16 +69,25 @@
>> >  				reg = <0x0800 0 0 0 0>;
>> >  				#address-cells = <3>;
>> >  				#size-cells = <2>;
>> > +				interrupt-names = "intx";
>> > +				interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
>> >  				#interrupt-cells = <1>;
>> >  				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
>> >  					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
>> >  				bus-range = <0x00 0xff>;
>> > -				interrupt-map-mask = <0 0 0 0>;
>> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
>> > +				interrupt-map-mask = <0 0 0 7>;
>> > +				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
>> > +						<0 0 0 2 &pcie1_intc 1>,
>> > +						<0 0 0 3 &pcie1_intc 2>,
>> > +						<0 0 0 4 &pcie1_intc 3>;
>> >  				marvell,pcie-port = <0>;
>> >  				marvell,pcie-lane = <0>;
>> >  				clocks = <&gateclk 8>;
>> >  				status = "disabled";
>> > +				pcie1_intc: interrupt-controller {
>> > +					interrupt-controller;
>> > +					#interrupt-cells = <1>;
>> > +				};
>> >  			};
>> >  
>> >  			/* x1 port */
>> > @@ -88,16 +97,25 @@
>> >  				reg = <0x1000 0 0 0 0>;
>> >  				#address-cells = <3>;
>> >  				#size-cells = <2>;
>> > +				interrupt-names = "intx";
>> > +				interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
>> >  				#interrupt-cells = <1>;
>> >  				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
>> >  					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
>> >  				bus-range = <0x00 0xff>;
>> > -				interrupt-map-mask = <0 0 0 0>;
>> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
>> > +				interrupt-map-mask = <0 0 0 7>;
>> > +				interrupt-map = <0 0 0 1 &pcie2_intc 0>,
>> > +						<0 0 0 2 &pcie2_intc 1>,
>> > +						<0 0 0 3 &pcie2_intc 2>,
>> > +						<0 0 0 4 &pcie2_intc 3>;
>> >  				marvell,pcie-port = <1>;
>> >  				marvell,pcie-lane = <0>;
>> >  				clocks = <&gateclk 5>;
>> >  				status = "disabled";
>> > +				pcie2_intc: interrupt-controller {
>> > +					interrupt-controller;
>> > +					#interrupt-cells = <1>;
>> > +				};
>> >  			};
>> >  
>> >  			/* x1 port */
>> > @@ -107,16 +125,25 @@
>> >  				reg = <0x1800 0 0 0 0>;
>> >  				#address-cells = <3>;
>> >  				#size-cells = <2>;
>> > +				interrupt-names = "intx";
>> > +				interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
>> >  				#interrupt-cells = <1>;
>> >  				ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
>> >  					  0x81000000 0 0 0x81000000 0x3 0 1 0>;
>> >  				bus-range = <0x00 0xff>;
>> > -				interrupt-map-mask = <0 0 0 0>;
>> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
>> > +				interrupt-map-mask = <0 0 0 7>;
>> > +				interrupt-map = <0 0 0 1 &pcie3_intc 0>,
>> > +						<0 0 0 2 &pcie3_intc 1>,
>> > +						<0 0 0 3 &pcie3_intc 2>,
>> > +						<0 0 0 4 &pcie3_intc 3>;
>> >  				marvell,pcie-port = <2>;
>> >  				marvell,pcie-lane = <0>;
>> >  				clocks = <&gateclk 6>;
>> >  				status = "disabled";
>> > +				pcie3_intc: interrupt-controller {
>> > +					interrupt-controller;
>> > +					#interrupt-cells = <1>;
>> > +				};
>> >  			};
>> >  
>> >  			/*
>> > @@ -129,16 +156,25 @@
>> >  				reg = <0x2000 0 0 0 0>;
>> >  				#address-cells = <3>;
>> >  				#size-cells = <2>;
>> > +				interrupt-names = "intx";
>> > +				interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
>> >  				#interrupt-cells = <1>;
>> >  				ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
>> >  					  0x81000000 0 0 0x81000000 0x4 0 1 0>;
>> >  				bus-range = <0x00 0xff>;
>> > -				interrupt-map-mask = <0 0 0 0>;
>> > -				interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
>> > +				interrupt-map-mask = <0 0 0 7>;
>> > +				interrupt-map = <0 0 0 1 &pcie4_intc 0>,
>> > +						<0 0 0 2 &pcie4_intc 1>,
>> > +						<0 0 0 3 &pcie4_intc 2>,
>> > +						<0 0 0 4 &pcie4_intc 3>;
>> >  				marvell,pcie-port = <3>;
>> >  				marvell,pcie-lane = <0>;
>> >  				clocks = <&gateclk 7>;
>> >  				status = "disabled";
>> > +				pcie4_intc: interrupt-controller {
>> > +					interrupt-controller;
>> > +					#interrupt-cells = <1>;
>> > +				};
>> >  			};
>> >  		};
>> >  	};
>> > -- 
>> > 2.20.1
>> >
>> 
>> -- 
>> Gregory Clement, Bootlin
>> Embedded Linux and Kernel engineering
>> http://bootlin.com
Luís Mendes Feb. 15, 2022, 10:48 a.m. UTC | #4
Hello,

Sorry for jumping in the conversation, but I read this thread and I
have an Armada A388 HW so I can test it, if desired.

Luís


On Tue, Feb 15, 2022 at 10:47 AM Luís Mendes <luis.p.mendes@gmail.com> wrote:
>
> Hello,
>
> Sorry for jumping in the conversation, but I read this thread and I have an Armada A388 HW so I can test it, if desired.
>
> Luís
>
> On Mon, Feb 14, 2022 at 7:57 PM Gregory CLEMENT <gregory.clement@bootlin.com> wrote:
>>
>> Hello,
>>
>> > On Monday 14 February 2022 16:07:13 Gregory CLEMENT wrote:
>> >> Hello Pali,
>> >>
>> >> > With this change legacy INTA, INTB, INTC and INTD interrupts are reported
>> >> > separately and not mixed into one Linux virq source anymore.
>> >> >
>> >> > Signed-off-by: Pali Rohár <pali@kernel.org>
>> >> > ---
>> >> >  arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----
>> >>
>> >> Is there any reason for not doing the same change in armada-380.dtsi ?
>> >
>> > I do not have A380 HW, so I did this change only for A385 which I have
>> > tested.
>>
>> OK fair enough.
>>
>> So you can add my
>> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
>>
>> Moreover to keep biscetability  this patch should be merged after the
>> support in the driver. So the easier is to let merge it through the PCI
>> subsystem with the other patches from this series. I do not think there
>> will be any other changes in this file so there won't be any merge
>> conflicts.
>>
>> Thanks,
>>
>> Grégory
>>
>>
>> >
>> >> Grégory
>> >>
>> >> >  1 file changed, 44 insertions(+), 8 deletions(-)
>> >> >
>> >> > diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
>> >> > index f0022d10c715..83392b92dae2 100644
>> >> > --- a/arch/arm/boot/dts/armada-385.dtsi
>> >> > +++ b/arch/arm/boot/dts/armada-385.dtsi
>> >> > @@ -69,16 +69,25 @@
>> >> >                            reg = <0x0800 0 0 0 0>;
>> >> >                            #address-cells = <3>;
>> >> >                            #size-cells = <2>;
>> >> > +                          interrupt-names = "intx";
>> >> > +                          interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
>> >> >                            #interrupt-cells = <1>;
>> >> >                            ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
>> >> >                                      0x81000000 0 0 0x81000000 0x1 0 1 0>;
>> >> >                            bus-range = <0x00 0xff>;
>> >> > -                          interrupt-map-mask = <0 0 0 0>;
>> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
>> >> > +                          interrupt-map-mask = <0 0 0 7>;
>> >> > +                          interrupt-map = <0 0 0 1 &pcie1_intc 0>,
>> >> > +                                          <0 0 0 2 &pcie1_intc 1>,
>> >> > +                                          <0 0 0 3 &pcie1_intc 2>,
>> >> > +                                          <0 0 0 4 &pcie1_intc 3>;
>> >> >                            marvell,pcie-port = <0>;
>> >> >                            marvell,pcie-lane = <0>;
>> >> >                            clocks = <&gateclk 8>;
>> >> >                            status = "disabled";
>> >> > +                          pcie1_intc: interrupt-controller {
>> >> > +                                  interrupt-controller;
>> >> > +                                  #interrupt-cells = <1>;
>> >> > +                          };
>> >> >                    };
>> >> >
>> >> >                    /* x1 port */
>> >> > @@ -88,16 +97,25 @@
>> >> >                            reg = <0x1000 0 0 0 0>;
>> >> >                            #address-cells = <3>;
>> >> >                            #size-cells = <2>;
>> >> > +                          interrupt-names = "intx";
>> >> > +                          interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
>> >> >                            #interrupt-cells = <1>;
>> >> >                            ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
>> >> >                                      0x81000000 0 0 0x81000000 0x2 0 1 0>;
>> >> >                            bus-range = <0x00 0xff>;
>> >> > -                          interrupt-map-mask = <0 0 0 0>;
>> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
>> >> > +                          interrupt-map-mask = <0 0 0 7>;
>> >> > +                          interrupt-map = <0 0 0 1 &pcie2_intc 0>,
>> >> > +                                          <0 0 0 2 &pcie2_intc 1>,
>> >> > +                                          <0 0 0 3 &pcie2_intc 2>,
>> >> > +                                          <0 0 0 4 &pcie2_intc 3>;
>> >> >                            marvell,pcie-port = <1>;
>> >> >                            marvell,pcie-lane = <0>;
>> >> >                            clocks = <&gateclk 5>;
>> >> >                            status = "disabled";
>> >> > +                          pcie2_intc: interrupt-controller {
>> >> > +                                  interrupt-controller;
>> >> > +                                  #interrupt-cells = <1>;
>> >> > +                          };
>> >> >                    };
>> >> >
>> >> >                    /* x1 port */
>> >> > @@ -107,16 +125,25 @@
>> >> >                            reg = <0x1800 0 0 0 0>;
>> >> >                            #address-cells = <3>;
>> >> >                            #size-cells = <2>;
>> >> > +                          interrupt-names = "intx";
>> >> > +                          interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
>> >> >                            #interrupt-cells = <1>;
>> >> >                            ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
>> >> >                                      0x81000000 0 0 0x81000000 0x3 0 1 0>;
>> >> >                            bus-range = <0x00 0xff>;
>> >> > -                          interrupt-map-mask = <0 0 0 0>;
>> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
>> >> > +                          interrupt-map-mask = <0 0 0 7>;
>> >> > +                          interrupt-map = <0 0 0 1 &pcie3_intc 0>,
>> >> > +                                          <0 0 0 2 &pcie3_intc 1>,
>> >> > +                                          <0 0 0 3 &pcie3_intc 2>,
>> >> > +                                          <0 0 0 4 &pcie3_intc 3>;
>> >> >                            marvell,pcie-port = <2>;
>> >> >                            marvell,pcie-lane = <0>;
>> >> >                            clocks = <&gateclk 6>;
>> >> >                            status = "disabled";
>> >> > +                          pcie3_intc: interrupt-controller {
>> >> > +                                  interrupt-controller;
>> >> > +                                  #interrupt-cells = <1>;
>> >> > +                          };
>> >> >                    };
>> >> >
>> >> >                    /*
>> >> > @@ -129,16 +156,25 @@
>> >> >                            reg = <0x2000 0 0 0 0>;
>> >> >                            #address-cells = <3>;
>> >> >                            #size-cells = <2>;
>> >> > +                          interrupt-names = "intx";
>> >> > +                          interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
>> >> >                            #interrupt-cells = <1>;
>> >> >                            ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
>> >> >                                      0x81000000 0 0 0x81000000 0x4 0 1 0>;
>> >> >                            bus-range = <0x00 0xff>;
>> >> > -                          interrupt-map-mask = <0 0 0 0>;
>> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
>> >> > +                          interrupt-map-mask = <0 0 0 7>;
>> >> > +                          interrupt-map = <0 0 0 1 &pcie4_intc 0>,
>> >> > +                                          <0 0 0 2 &pcie4_intc 1>,
>> >> > +                                          <0 0 0 3 &pcie4_intc 2>,
>> >> > +                                          <0 0 0 4 &pcie4_intc 3>;
>> >> >                            marvell,pcie-port = <3>;
>> >> >                            marvell,pcie-lane = <0>;
>> >> >                            clocks = <&gateclk 7>;
>> >> >                            status = "disabled";
>> >> > +                          pcie4_intc: interrupt-controller {
>> >> > +                                  interrupt-controller;
>> >> > +                                  #interrupt-cells = <1>;
>> >> > +                          };
>> >> >                    };
>> >> >            };
>> >> >    };
>> >> > --
>> >> > 2.20.1
>> >> >
>> >>
>> >> --
>> >> Gregory Clement, Bootlin
>> >> Embedded Linux and Kernel engineering
>> >> http://bootlin.com
>>
>> --
>> Gregory Clement, Bootlin
>> Embedded Linux and Kernel engineering
>> http://bootlin.com
Pali Rohár Feb. 15, 2022, 10:52 a.m. UTC | #5
Hello! armada-388.dtsi file has #include "armada-385.dtsi" line and
therefore is already covered by this my patch.

Gregory's question was about A380.

But if you want, you can test this patch series (which already covers
A388) on your A388 HW. It is still better to do tests on more HW.

On Tuesday 15 February 2022 10:48:17 Luís Mendes wrote:
> Hello,
> 
> Sorry for jumping in the conversation, but I read this thread and I
> have an Armada A388 HW so I can test it, if desired.
> 
> Luís
> 
> 
> On Tue, Feb 15, 2022 at 10:47 AM Luís Mendes <luis.p.mendes@gmail.com> wrote:
> >
> > Hello,
> >
> > Sorry for jumping in the conversation, but I read this thread and I have an Armada A388 HW so I can test it, if desired.
> >
> > Luís
> >
> > On Mon, Feb 14, 2022 at 7:57 PM Gregory CLEMENT <gregory.clement@bootlin.com> wrote:
> >>
> >> Hello,
> >>
> >> > On Monday 14 February 2022 16:07:13 Gregory CLEMENT wrote:
> >> >> Hello Pali,
> >> >>
> >> >> > With this change legacy INTA, INTB, INTC and INTD interrupts are reported
> >> >> > separately and not mixed into one Linux virq source anymore.
> >> >> >
> >> >> > Signed-off-by: Pali Rohár <pali@kernel.org>
> >> >> > ---
> >> >> >  arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----
> >> >>
> >> >> Is there any reason for not doing the same change in armada-380.dtsi ?
> >> >
> >> > I do not have A380 HW, so I did this change only for A385 which I have
> >> > tested.
> >>
> >> OK fair enough.
> >>
> >> So you can add my
> >> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> >>
> >> Moreover to keep biscetability  this patch should be merged after the
> >> support in the driver. So the easier is to let merge it through the PCI
> >> subsystem with the other patches from this series. I do not think there
> >> will be any other changes in this file so there won't be any merge
> >> conflicts.
> >>
> >> Thanks,
> >>
> >> Grégory
> >>
> >>
> >> >
> >> >> Grégory
> >> >>
> >> >> >  1 file changed, 44 insertions(+), 8 deletions(-)
> >> >> >
> >> >> > diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
> >> >> > index f0022d10c715..83392b92dae2 100644
> >> >> > --- a/arch/arm/boot/dts/armada-385.dtsi
> >> >> > +++ b/arch/arm/boot/dts/armada-385.dtsi
> >> >> > @@ -69,16 +69,25 @@
> >> >> >                            reg = <0x0800 0 0 0 0>;
> >> >> >                            #address-cells = <3>;
> >> >> >                            #size-cells = <2>;
> >> >> > +                          interrupt-names = "intx";
> >> >> > +                          interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> >> >> >                            #interrupt-cells = <1>;
> >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
> >> >> >                                      0x81000000 0 0 0x81000000 0x1 0 1 0>;
> >> >> >                            bus-range = <0x00 0xff>;
> >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> >> >> > +                          interrupt-map = <0 0 0 1 &pcie1_intc 0>,
> >> >> > +                                          <0 0 0 2 &pcie1_intc 1>,
> >> >> > +                                          <0 0 0 3 &pcie1_intc 2>,
> >> >> > +                                          <0 0 0 4 &pcie1_intc 3>;
> >> >> >                            marvell,pcie-port = <0>;
> >> >> >                            marvell,pcie-lane = <0>;
> >> >> >                            clocks = <&gateclk 8>;
> >> >> >                            status = "disabled";
> >> >> > +                          pcie1_intc: interrupt-controller {
> >> >> > +                                  interrupt-controller;
> >> >> > +                                  #interrupt-cells = <1>;
> >> >> > +                          };
> >> >> >                    };
> >> >> >
> >> >> >                    /* x1 port */
> >> >> > @@ -88,16 +97,25 @@
> >> >> >                            reg = <0x1000 0 0 0 0>;
> >> >> >                            #address-cells = <3>;
> >> >> >                            #size-cells = <2>;
> >> >> > +                          interrupt-names = "intx";
> >> >> > +                          interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> >> >> >                            #interrupt-cells = <1>;
> >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
> >> >> >                                      0x81000000 0 0 0x81000000 0x2 0 1 0>;
> >> >> >                            bus-range = <0x00 0xff>;
> >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> >> >> > +                          interrupt-map = <0 0 0 1 &pcie2_intc 0>,
> >> >> > +                                          <0 0 0 2 &pcie2_intc 1>,
> >> >> > +                                          <0 0 0 3 &pcie2_intc 2>,
> >> >> > +                                          <0 0 0 4 &pcie2_intc 3>;
> >> >> >                            marvell,pcie-port = <1>;
> >> >> >                            marvell,pcie-lane = <0>;
> >> >> >                            clocks = <&gateclk 5>;
> >> >> >                            status = "disabled";
> >> >> > +                          pcie2_intc: interrupt-controller {
> >> >> > +                                  interrupt-controller;
> >> >> > +                                  #interrupt-cells = <1>;
> >> >> > +                          };
> >> >> >                    };
> >> >> >
> >> >> >                    /* x1 port */
> >> >> > @@ -107,16 +125,25 @@
> >> >> >                            reg = <0x1800 0 0 0 0>;
> >> >> >                            #address-cells = <3>;
> >> >> >                            #size-cells = <2>;
> >> >> > +                          interrupt-names = "intx";
> >> >> > +                          interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> >> >> >                            #interrupt-cells = <1>;
> >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
> >> >> >                                      0x81000000 0 0 0x81000000 0x3 0 1 0>;
> >> >> >                            bus-range = <0x00 0xff>;
> >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> >> >> > +                          interrupt-map = <0 0 0 1 &pcie3_intc 0>,
> >> >> > +                                          <0 0 0 2 &pcie3_intc 1>,
> >> >> > +                                          <0 0 0 3 &pcie3_intc 2>,
> >> >> > +                                          <0 0 0 4 &pcie3_intc 3>;
> >> >> >                            marvell,pcie-port = <2>;
> >> >> >                            marvell,pcie-lane = <0>;
> >> >> >                            clocks = <&gateclk 6>;
> >> >> >                            status = "disabled";
> >> >> > +                          pcie3_intc: interrupt-controller {
> >> >> > +                                  interrupt-controller;
> >> >> > +                                  #interrupt-cells = <1>;
> >> >> > +                          };
> >> >> >                    };
> >> >> >
> >> >> >                    /*
> >> >> > @@ -129,16 +156,25 @@
> >> >> >                            reg = <0x2000 0 0 0 0>;
> >> >> >                            #address-cells = <3>;
> >> >> >                            #size-cells = <2>;
> >> >> > +                          interrupt-names = "intx";
> >> >> > +                          interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> >> >> >                            #interrupt-cells = <1>;
> >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
> >> >> >                                      0x81000000 0 0 0x81000000 0x4 0 1 0>;
> >> >> >                            bus-range = <0x00 0xff>;
> >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> >> >> > +                          interrupt-map = <0 0 0 1 &pcie4_intc 0>,
> >> >> > +                                          <0 0 0 2 &pcie4_intc 1>,
> >> >> > +                                          <0 0 0 3 &pcie4_intc 2>,
> >> >> > +                                          <0 0 0 4 &pcie4_intc 3>;
> >> >> >                            marvell,pcie-port = <3>;
> >> >> >                            marvell,pcie-lane = <0>;
> >> >> >                            clocks = <&gateclk 7>;
> >> >> >                            status = "disabled";
> >> >> > +                          pcie4_intc: interrupt-controller {
> >> >> > +                                  interrupt-controller;
> >> >> > +                                  #interrupt-cells = <1>;
> >> >> > +                          };
> >> >> >                    };
> >> >> >            };
> >> >> >    };
> >> >> > --
> >> >> > 2.20.1
> >> >> >
> >> >>
> >> >> --
> >> >> Gregory Clement, Bootlin
> >> >> Embedded Linux and Kernel engineering
> >> >> http://bootlin.com
> >>
> >> --
> >> Gregory Clement, Bootlin
> >> Embedded Linux and Kernel engineering
> >> http://bootlin.com
Luís Mendes Feb. 18, 2022, 9:53 p.m. UTC | #6
Successfully tested on my custom A388 system with two PCI express slots.

If you wish you can add a:
Tested-by: Luis Mendes <luis.p.mendes@gmail.com>

On Tue, Feb 15, 2022 at 10:52 AM Pali Rohár <pali@kernel.org> wrote:
>
> Hello! armada-388.dtsi file has #include "armada-385.dtsi" line and
> therefore is already covered by this my patch.
>
> Gregory's question was about A380.
>
> But if you want, you can test this patch series (which already covers
> A388) on your A388 HW. It is still better to do tests on more HW.
>
> On Tuesday 15 February 2022 10:48:17 Luís Mendes wrote:
> > Hello,
> >
> > Sorry for jumping in the conversation, but I read this thread and I
> > have an Armada A388 HW so I can test it, if desired.
> >
> > Luís
> >
> >
> > On Tue, Feb 15, 2022 at 10:47 AM Luís Mendes <luis.p.mendes@gmail.com> wrote:
> > >
> > > Hello,
> > >
> > > Sorry for jumping in the conversation, but I read this thread and I have an Armada A388 HW so I can test it, if desired.
> > >
> > > Luís
> > >
> > > On Mon, Feb 14, 2022 at 7:57 PM Gregory CLEMENT <gregory.clement@bootlin.com> wrote:
> > >>
> > >> Hello,
> > >>
> > >> > On Monday 14 February 2022 16:07:13 Gregory CLEMENT wrote:
> > >> >> Hello Pali,
> > >> >>
> > >> >> > With this change legacy INTA, INTB, INTC and INTD interrupts are reported
> > >> >> > separately and not mixed into one Linux virq source anymore.
> > >> >> >
> > >> >> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > >> >> > ---
> > >> >> >  arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----
> > >> >>
> > >> >> Is there any reason for not doing the same change in armada-380.dtsi ?
> > >> >
> > >> > I do not have A380 HW, so I did this change only for A385 which I have
> > >> > tested.
> > >>
> > >> OK fair enough.
> > >>
> > >> So you can add my
> > >> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> > >>
> > >> Moreover to keep biscetability  this patch should be merged after the
> > >> support in the driver. So the easier is to let merge it through the PCI
> > >> subsystem with the other patches from this series. I do not think there
> > >> will be any other changes in this file so there won't be any merge
> > >> conflicts.
> > >>
> > >> Thanks,
> > >>
> > >> Grégory
> > >>
> > >>
> > >> >
> > >> >> Grégory
> > >> >>
> > >> >> >  1 file changed, 44 insertions(+), 8 deletions(-)
> > >> >> >
> > >> >> > diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
> > >> >> > index f0022d10c715..83392b92dae2 100644
> > >> >> > --- a/arch/arm/boot/dts/armada-385.dtsi
> > >> >> > +++ b/arch/arm/boot/dts/armada-385.dtsi
> > >> >> > @@ -69,16 +69,25 @@
> > >> >> >                            reg = <0x0800 0 0 0 0>;
> > >> >> >                            #address-cells = <3>;
> > >> >> >                            #size-cells = <2>;
> > >> >> > +                          interrupt-names = "intx";
> > >> >> > +                          interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> >                            #interrupt-cells = <1>;
> > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
> > >> >> >                                      0x81000000 0 0 0x81000000 0x1 0 1 0>;
> > >> >> >                            bus-range = <0x00 0xff>;
> > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > >> >> > +                          interrupt-map = <0 0 0 1 &pcie1_intc 0>,
> > >> >> > +                                          <0 0 0 2 &pcie1_intc 1>,
> > >> >> > +                                          <0 0 0 3 &pcie1_intc 2>,
> > >> >> > +                                          <0 0 0 4 &pcie1_intc 3>;
> > >> >> >                            marvell,pcie-port = <0>;
> > >> >> >                            marvell,pcie-lane = <0>;
> > >> >> >                            clocks = <&gateclk 8>;
> > >> >> >                            status = "disabled";
> > >> >> > +                          pcie1_intc: interrupt-controller {
> > >> >> > +                                  interrupt-controller;
> > >> >> > +                                  #interrupt-cells = <1>;
> > >> >> > +                          };
> > >> >> >                    };
> > >> >> >
> > >> >> >                    /* x1 port */
> > >> >> > @@ -88,16 +97,25 @@
> > >> >> >                            reg = <0x1000 0 0 0 0>;
> > >> >> >                            #address-cells = <3>;
> > >> >> >                            #size-cells = <2>;
> > >> >> > +                          interrupt-names = "intx";
> > >> >> > +                          interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> >                            #interrupt-cells = <1>;
> > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
> > >> >> >                                      0x81000000 0 0 0x81000000 0x2 0 1 0>;
> > >> >> >                            bus-range = <0x00 0xff>;
> > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > >> >> > +                          interrupt-map = <0 0 0 1 &pcie2_intc 0>,
> > >> >> > +                                          <0 0 0 2 &pcie2_intc 1>,
> > >> >> > +                                          <0 0 0 3 &pcie2_intc 2>,
> > >> >> > +                                          <0 0 0 4 &pcie2_intc 3>;
> > >> >> >                            marvell,pcie-port = <1>;
> > >> >> >                            marvell,pcie-lane = <0>;
> > >> >> >                            clocks = <&gateclk 5>;
> > >> >> >                            status = "disabled";
> > >> >> > +                          pcie2_intc: interrupt-controller {
> > >> >> > +                                  interrupt-controller;
> > >> >> > +                                  #interrupt-cells = <1>;
> > >> >> > +                          };
> > >> >> >                    };
> > >> >> >
> > >> >> >                    /* x1 port */
> > >> >> > @@ -107,16 +125,25 @@
> > >> >> >                            reg = <0x1800 0 0 0 0>;
> > >> >> >                            #address-cells = <3>;
> > >> >> >                            #size-cells = <2>;
> > >> >> > +                          interrupt-names = "intx";
> > >> >> > +                          interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> >                            #interrupt-cells = <1>;
> > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
> > >> >> >                                      0x81000000 0 0 0x81000000 0x3 0 1 0>;
> > >> >> >                            bus-range = <0x00 0xff>;
> > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > >> >> > +                          interrupt-map = <0 0 0 1 &pcie3_intc 0>,
> > >> >> > +                                          <0 0 0 2 &pcie3_intc 1>,
> > >> >> > +                                          <0 0 0 3 &pcie3_intc 2>,
> > >> >> > +                                          <0 0 0 4 &pcie3_intc 3>;
> > >> >> >                            marvell,pcie-port = <2>;
> > >> >> >                            marvell,pcie-lane = <0>;
> > >> >> >                            clocks = <&gateclk 6>;
> > >> >> >                            status = "disabled";
> > >> >> > +                          pcie3_intc: interrupt-controller {
> > >> >> > +                                  interrupt-controller;
> > >> >> > +                                  #interrupt-cells = <1>;
> > >> >> > +                          };
> > >> >> >                    };
> > >> >> >
> > >> >> >                    /*
> > >> >> > @@ -129,16 +156,25 @@
> > >> >> >                            reg = <0x2000 0 0 0 0>;
> > >> >> >                            #address-cells = <3>;
> > >> >> >                            #size-cells = <2>;
> > >> >> > +                          interrupt-names = "intx";
> > >> >> > +                          interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> >                            #interrupt-cells = <1>;
> > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
> > >> >> >                                      0x81000000 0 0 0x81000000 0x4 0 1 0>;
> > >> >> >                            bus-range = <0x00 0xff>;
> > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > >> >> > +                          interrupt-map = <0 0 0 1 &pcie4_intc 0>,
> > >> >> > +                                          <0 0 0 2 &pcie4_intc 1>,
> > >> >> > +                                          <0 0 0 3 &pcie4_intc 2>,
> > >> >> > +                                          <0 0 0 4 &pcie4_intc 3>;
> > >> >> >                            marvell,pcie-port = <3>;
> > >> >> >                            marvell,pcie-lane = <0>;
> > >> >> >                            clocks = <&gateclk 7>;
> > >> >> >                            status = "disabled";
> > >> >> > +                          pcie4_intc: interrupt-controller {
> > >> >> > +                                  interrupt-controller;
> > >> >> > +                                  #interrupt-cells = <1>;
> > >> >> > +                          };
> > >> >> >                    };
> > >> >> >            };
> > >> >> >    };
> > >> >> > --
> > >> >> > 2.20.1
> > >> >> >
> > >> >>
> > >> >> --
> > >> >> Gregory Clement, Bootlin
> > >> >> Embedded Linux and Kernel engineering
> > >> >> http://bootlin.com
> > >>
> > >> --
> > >> Gregory Clement, Bootlin
> > >> Embedded Linux and Kernel engineering
> > >> http://bootlin.com
Pali Rohár Feb. 19, 2022, 1:36 p.m. UTC | #7
Perfect, thanks!

On Friday 18 February 2022 21:53:43 Luís Mendes wrote:
> Successfully tested on my custom A388 system with two PCI express slots.
> 
> If you wish you can add a:
> Tested-by: Luis Mendes <luis.p.mendes@gmail.com>
> 
> On Tue, Feb 15, 2022 at 10:52 AM Pali Rohár <pali@kernel.org> wrote:
> >
> > Hello! armada-388.dtsi file has #include "armada-385.dtsi" line and
> > therefore is already covered by this my patch.
> >
> > Gregory's question was about A380.
> >
> > But if you want, you can test this patch series (which already covers
> > A388) on your A388 HW. It is still better to do tests on more HW.
> >
> > On Tuesday 15 February 2022 10:48:17 Luís Mendes wrote:
> > > Hello,
> > >
> > > Sorry for jumping in the conversation, but I read this thread and I
> > > have an Armada A388 HW so I can test it, if desired.
> > >
> > > Luís
> > >
> > >
> > > On Tue, Feb 15, 2022 at 10:47 AM Luís Mendes <luis.p.mendes@gmail.com> wrote:
> > > >
> > > > Hello,
> > > >
> > > > Sorry for jumping in the conversation, but I read this thread and I have an Armada A388 HW so I can test it, if desired.
> > > >
> > > > Luís
> > > >
> > > > On Mon, Feb 14, 2022 at 7:57 PM Gregory CLEMENT <gregory.clement@bootlin.com> wrote:
> > > >>
> > > >> Hello,
> > > >>
> > > >> > On Monday 14 February 2022 16:07:13 Gregory CLEMENT wrote:
> > > >> >> Hello Pali,
> > > >> >>
> > > >> >> > With this change legacy INTA, INTB, INTC and INTD interrupts are reported
> > > >> >> > separately and not mixed into one Linux virq source anymore.
> > > >> >> >
> > > >> >> > Signed-off-by: Pali Rohár <pali@kernel.org>
> > > >> >> > ---
> > > >> >> >  arch/arm/boot/dts/armada-385.dtsi | 52 ++++++++++++++++++++++++++-----
> > > >> >>
> > > >> >> Is there any reason for not doing the same change in armada-380.dtsi ?
> > > >> >
> > > >> > I do not have A380 HW, so I did this change only for A385 which I have
> > > >> > tested.
> > > >>
> > > >> OK fair enough.
> > > >>
> > > >> So you can add my
> > > >> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com>
> > > >>
> > > >> Moreover to keep biscetability  this patch should be merged after the
> > > >> support in the driver. So the easier is to let merge it through the PCI
> > > >> subsystem with the other patches from this series. I do not think there
> > > >> will be any other changes in this file so there won't be any merge
> > > >> conflicts.
> > > >>
> > > >> Thanks,
> > > >>
> > > >> Grégory
> > > >>
> > > >>
> > > >> >
> > > >> >> Grégory
> > > >> >>
> > > >> >> >  1 file changed, 44 insertions(+), 8 deletions(-)
> > > >> >> >
> > > >> >> > diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
> > > >> >> > index f0022d10c715..83392b92dae2 100644
> > > >> >> > --- a/arch/arm/boot/dts/armada-385.dtsi
> > > >> >> > +++ b/arch/arm/boot/dts/armada-385.dtsi
> > > >> >> > @@ -69,16 +69,25 @@
> > > >> >> >                            reg = <0x0800 0 0 0 0>;
> > > >> >> >                            #address-cells = <3>;
> > > >> >> >                            #size-cells = <2>;
> > > >> >> > +                          interrupt-names = "intx";
> > > >> >> > +                          interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> >                            #interrupt-cells = <1>;
> > > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
> > > >> >> >                                      0x81000000 0 0 0x81000000 0x1 0 1 0>;
> > > >> >> >                            bus-range = <0x00 0xff>;
> > > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > > >> >> > +                          interrupt-map = <0 0 0 1 &pcie1_intc 0>,
> > > >> >> > +                                          <0 0 0 2 &pcie1_intc 1>,
> > > >> >> > +                                          <0 0 0 3 &pcie1_intc 2>,
> > > >> >> > +                                          <0 0 0 4 &pcie1_intc 3>;
> > > >> >> >                            marvell,pcie-port = <0>;
> > > >> >> >                            marvell,pcie-lane = <0>;
> > > >> >> >                            clocks = <&gateclk 8>;
> > > >> >> >                            status = "disabled";
> > > >> >> > +                          pcie1_intc: interrupt-controller {
> > > >> >> > +                                  interrupt-controller;
> > > >> >> > +                                  #interrupt-cells = <1>;
> > > >> >> > +                          };
> > > >> >> >                    };
> > > >> >> >
> > > >> >> >                    /* x1 port */
> > > >> >> > @@ -88,16 +97,25 @@
> > > >> >> >                            reg = <0x1000 0 0 0 0>;
> > > >> >> >                            #address-cells = <3>;
> > > >> >> >                            #size-cells = <2>;
> > > >> >> > +                          interrupt-names = "intx";
> > > >> >> > +                          interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> >                            #interrupt-cells = <1>;
> > > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
> > > >> >> >                                      0x81000000 0 0 0x81000000 0x2 0 1 0>;
> > > >> >> >                            bus-range = <0x00 0xff>;
> > > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > > >> >> > +                          interrupt-map = <0 0 0 1 &pcie2_intc 0>,
> > > >> >> > +                                          <0 0 0 2 &pcie2_intc 1>,
> > > >> >> > +                                          <0 0 0 3 &pcie2_intc 2>,
> > > >> >> > +                                          <0 0 0 4 &pcie2_intc 3>;
> > > >> >> >                            marvell,pcie-port = <1>;
> > > >> >> >                            marvell,pcie-lane = <0>;
> > > >> >> >                            clocks = <&gateclk 5>;
> > > >> >> >                            status = "disabled";
> > > >> >> > +                          pcie2_intc: interrupt-controller {
> > > >> >> > +                                  interrupt-controller;
> > > >> >> > +                                  #interrupt-cells = <1>;
> > > >> >> > +                          };
> > > >> >> >                    };
> > > >> >> >
> > > >> >> >                    /* x1 port */
> > > >> >> > @@ -107,16 +125,25 @@
> > > >> >> >                            reg = <0x1800 0 0 0 0>;
> > > >> >> >                            #address-cells = <3>;
> > > >> >> >                            #size-cells = <2>;
> > > >> >> > +                          interrupt-names = "intx";
> > > >> >> > +                          interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> >                            #interrupt-cells = <1>;
> > > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
> > > >> >> >                                      0x81000000 0 0 0x81000000 0x3 0 1 0>;
> > > >> >> >                            bus-range = <0x00 0xff>;
> > > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > > >> >> > +                          interrupt-map = <0 0 0 1 &pcie3_intc 0>,
> > > >> >> > +                                          <0 0 0 2 &pcie3_intc 1>,
> > > >> >> > +                                          <0 0 0 3 &pcie3_intc 2>,
> > > >> >> > +                                          <0 0 0 4 &pcie3_intc 3>;
> > > >> >> >                            marvell,pcie-port = <2>;
> > > >> >> >                            marvell,pcie-lane = <0>;
> > > >> >> >                            clocks = <&gateclk 6>;
> > > >> >> >                            status = "disabled";
> > > >> >> > +                          pcie3_intc: interrupt-controller {
> > > >> >> > +                                  interrupt-controller;
> > > >> >> > +                                  #interrupt-cells = <1>;
> > > >> >> > +                          };
> > > >> >> >                    };
> > > >> >> >
> > > >> >> >                    /*
> > > >> >> > @@ -129,16 +156,25 @@
> > > >> >> >                            reg = <0x2000 0 0 0 0>;
> > > >> >> >                            #address-cells = <3>;
> > > >> >> >                            #size-cells = <2>;
> > > >> >> > +                          interrupt-names = "intx";
> > > >> >> > +                          interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> >                            #interrupt-cells = <1>;
> > > >> >> >                            ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
> > > >> >> >                                      0x81000000 0 0 0x81000000 0x4 0 1 0>;
> > > >> >> >                            bus-range = <0x00 0xff>;
> > > >> >> > -                          interrupt-map-mask = <0 0 0 0>;
> > > >> >> > -                          interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
> > > >> >> > +                          interrupt-map-mask = <0 0 0 7>;
> > > >> >> > +                          interrupt-map = <0 0 0 1 &pcie4_intc 0>,
> > > >> >> > +                                          <0 0 0 2 &pcie4_intc 1>,
> > > >> >> > +                                          <0 0 0 3 &pcie4_intc 2>,
> > > >> >> > +                                          <0 0 0 4 &pcie4_intc 3>;
> > > >> >> >                            marvell,pcie-port = <3>;
> > > >> >> >                            marvell,pcie-lane = <0>;
> > > >> >> >                            clocks = <&gateclk 7>;
> > > >> >> >                            status = "disabled";
> > > >> >> > +                          pcie4_intc: interrupt-controller {
> > > >> >> > +                                  interrupt-controller;
> > > >> >> > +                                  #interrupt-cells = <1>;
> > > >> >> > +                          };
> > > >> >> >                    };
> > > >> >> >            };
> > > >> >> >    };
> > > >> >> > --
> > > >> >> > 2.20.1
> > > >> >> >
> > > >> >>
> > > >> >> --
> > > >> >> Gregory Clement, Bootlin
> > > >> >> Embedded Linux and Kernel engineering
> > > >> >> http://bootlin.com
> > > >>
> > > >> --
> > > >> Gregory Clement, Bootlin
> > > >> Embedded Linux and Kernel engineering
> > > >> http://bootlin.com
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/armada-385.dtsi b/arch/arm/boot/dts/armada-385.dtsi
index f0022d10c715..83392b92dae2 100644
--- a/arch/arm/boot/dts/armada-385.dtsi
+++ b/arch/arm/boot/dts/armada-385.dtsi
@@ -69,16 +69,25 @@ 
 				reg = <0x0800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
+				interrupt-names = "intx";
+				interrupts-extended = <&gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
 				#interrupt-cells = <1>;
 				ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0
 					  0x81000000 0 0 0x81000000 0x1 0 1 0>;
 				bus-range = <0x00 0xff>;
-				interrupt-map-mask = <0 0 0 0>;
-				interrupt-map = <0 0 0 0 &gic GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-map-mask = <0 0 0 7>;
+				interrupt-map = <0 0 0 1 &pcie1_intc 0>,
+						<0 0 0 2 &pcie1_intc 1>,
+						<0 0 0 3 &pcie1_intc 2>,
+						<0 0 0 4 &pcie1_intc 3>;
 				marvell,pcie-port = <0>;
 				marvell,pcie-lane = <0>;
 				clocks = <&gateclk 8>;
 				status = "disabled";
+				pcie1_intc: interrupt-controller {
+					interrupt-controller;
+					#interrupt-cells = <1>;
+				};
 			};
 
 			/* x1 port */
@@ -88,16 +97,25 @@ 
 				reg = <0x1000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
+				interrupt-names = "intx";
+				interrupts-extended = <&gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
 				#interrupt-cells = <1>;
 				ranges = <0x82000000 0 0 0x82000000 0x2 0 1 0
 					  0x81000000 0 0 0x81000000 0x2 0 1 0>;
 				bus-range = <0x00 0xff>;
-				interrupt-map-mask = <0 0 0 0>;
-				interrupt-map = <0 0 0 0 &gic GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-map-mask = <0 0 0 7>;
+				interrupt-map = <0 0 0 1 &pcie2_intc 0>,
+						<0 0 0 2 &pcie2_intc 1>,
+						<0 0 0 3 &pcie2_intc 2>,
+						<0 0 0 4 &pcie2_intc 3>;
 				marvell,pcie-port = <1>;
 				marvell,pcie-lane = <0>;
 				clocks = <&gateclk 5>;
 				status = "disabled";
+				pcie2_intc: interrupt-controller {
+					interrupt-controller;
+					#interrupt-cells = <1>;
+				};
 			};
 
 			/* x1 port */
@@ -107,16 +125,25 @@ 
 				reg = <0x1800 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
+				interrupt-names = "intx";
+				interrupts-extended = <&gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
 				#interrupt-cells = <1>;
 				ranges = <0x82000000 0 0 0x82000000 0x3 0 1 0
 					  0x81000000 0 0 0x81000000 0x3 0 1 0>;
 				bus-range = <0x00 0xff>;
-				interrupt-map-mask = <0 0 0 0>;
-				interrupt-map = <0 0 0 0 &gic GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-map-mask = <0 0 0 7>;
+				interrupt-map = <0 0 0 1 &pcie3_intc 0>,
+						<0 0 0 2 &pcie3_intc 1>,
+						<0 0 0 3 &pcie3_intc 2>,
+						<0 0 0 4 &pcie3_intc 3>;
 				marvell,pcie-port = <2>;
 				marvell,pcie-lane = <0>;
 				clocks = <&gateclk 6>;
 				status = "disabled";
+				pcie3_intc: interrupt-controller {
+					interrupt-controller;
+					#interrupt-cells = <1>;
+				};
 			};
 
 			/*
@@ -129,16 +156,25 @@ 
 				reg = <0x2000 0 0 0 0>;
 				#address-cells = <3>;
 				#size-cells = <2>;
+				interrupt-names = "intx";
+				interrupts-extended = <&gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
 				#interrupt-cells = <1>;
 				ranges = <0x82000000 0 0 0x82000000 0x4 0 1 0
 					  0x81000000 0 0 0x81000000 0x4 0 1 0>;
 				bus-range = <0x00 0xff>;
-				interrupt-map-mask = <0 0 0 0>;
-				interrupt-map = <0 0 0 0 &gic GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
+				interrupt-map-mask = <0 0 0 7>;
+				interrupt-map = <0 0 0 1 &pcie4_intc 0>,
+						<0 0 0 2 &pcie4_intc 1>,
+						<0 0 0 3 &pcie4_intc 2>,
+						<0 0 0 4 &pcie4_intc 3>;
 				marvell,pcie-port = <3>;
 				marvell,pcie-lane = <0>;
 				clocks = <&gateclk 7>;
 				status = "disabled";
+				pcie4_intc: interrupt-controller {
+					interrupt-controller;
+					#interrupt-cells = <1>;
+				};
 			};
 		};
 	};