diff mbox

arm64: dts: rockchip: fix PCIe domain number for rk3399

Message ID 1489977480-8785-1-git-send-email-shawn.lin@rock-chips.com (mailing list archive)
State New, archived
Headers show

Commit Message

Shawn Lin March 20, 2017, 2:38 a.m. UTC
It's suggested to fix the domain number for all PCIe
host bridges or not set it at all. However, if we don't
fix it, the domain number will keep increasing ever when
doing unbind/bind test, which makes the bus tree of lspci
introduce pointless domain hierarchy. More investigation shows
the domain number allocater of PCI doesn't consider the conflict
of domain number if we have more than one PCIe port belonging to
different domains. So once unbinding/binding one of them and keep
others would going to overflow the domain number so that finally
it will share the same domain as others, but actually it shouldn't.
We should fix the domain number for PCIe or invent new indexing
ID mechanisms. However it isn't worth inventing new indexing ID
mechanisms personlly, Just look at how other Root Complex drivers
did, for instance, broadcom and qualcomm, it seems fixing the domain
number was more popular. So this patch gonna fix the domain number
of PCIe for rk3399.

Cc: Brian Norris <briannorris@chromium.org>
Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
---

 arch/arm64/boot/dts/rockchip/rk3399.dtsi | 1 +
 1 file changed, 1 insertion(+)

Comments

Brian Norris March 20, 2017, 10:14 p.m. UTC | #1
On Mon, Mar 20, 2017 at 10:38:00AM +0800, Shawn Lin wrote:
> It's suggested to fix the domain number for all PCIe
> host bridges or not set it at all. However, if we don't
> fix it, the domain number will keep increasing ever when
> doing unbind/bind test, which makes the bus tree of lspci
> introduce pointless domain hierarchy. More investigation shows
> the domain number allocater of PCI doesn't consider the conflict
> of domain number if we have more than one PCIe port belonging to
> different domains. So once unbinding/binding one of them and keep
> others would going to overflow the domain number so that finally
> it will share the same domain as others, but actually it shouldn't.
> We should fix the domain number for PCIe or invent new indexing
> ID mechanisms. However it isn't worth inventing new indexing ID
> mechanisms personlly, Just look at how other Root Complex drivers
> did, for instance, broadcom and qualcomm, it seems fixing the domain
> number was more popular. So this patch gonna fix the domain number
> of PCIe for rk3399.
> 
> Cc: Brian Norris <briannorris@chromium.org>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

Seems OK, though it still feels like we should fix the domain number
allocation code.

Reviewed-by: Brian Norris <briannorris@chromium.org>
Tested-by: Brian Norris <briannorris@chromium.org>

> ---
> 
>  arch/arm64/boot/dts/rockchip/rk3399.dtsi | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> index f5681be..f66c320 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
> @@ -234,6 +234,7 @@
>  				<0 0 0 2 &pcie0_intc 1>,
>  				<0 0 0 3 &pcie0_intc 2>,
>  				<0 0 0 4 &pcie0_intc 3>;
> +		linux,pci-domain = <0>;
>  		max-link-speed = <1>;
>  		msi-map = <0x0 &its 0x0 0x1000>;
>  		phys = <&pcie_phy>;
> -- 
> 1.9.1
> 
>
Heiko Stübner March 22, 2017, 4:51 p.m. UTC | #2
Am Montag, 20. März 2017, 10:38:00 CET schrieb Shawn Lin:
> It's suggested to fix the domain number for all PCIe
> host bridges or not set it at all. However, if we don't
> fix it, the domain number will keep increasing ever when
> doing unbind/bind test, which makes the bus tree of lspci
> introduce pointless domain hierarchy. More investigation shows
> the domain number allocater of PCI doesn't consider the conflict
> of domain number if we have more than one PCIe port belonging to
> different domains. So once unbinding/binding one of them and keep
> others would going to overflow the domain number so that finally
> it will share the same domain as others, but actually it shouldn't.
> We should fix the domain number for PCIe or invent new indexing
> ID mechanisms. However it isn't worth inventing new indexing ID
> mechanisms personlly, Just look at how other Root Complex drivers
> did, for instance, broadcom and qualcomm, it seems fixing the domain
> number was more popular. So this patch gonna fix the domain number
> of PCIe for rk3399.
> 
> Cc: Brian Norris <briannorris@chromium.org>
> Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>

applied for 4.12 with Brian's tags.


Thanks
Heiko
diff mbox

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3399.dtsi b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
index f5681be..f66c320 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399.dtsi
@@ -234,6 +234,7 @@ 
 				<0 0 0 2 &pcie0_intc 1>,
 				<0 0 0 3 &pcie0_intc 2>,
 				<0 0 0 4 &pcie0_intc 3>;
+		linux,pci-domain = <0>;
 		max-link-speed = <1>;
 		msi-map = <0x0 &its 0x0 0x1000>;
 		phys = <&pcie_phy>;