Message ID | 20190924181244.7159-8-nsaenzjulienne@suse.de (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Johannes Berg |
Headers | show |
Series | of: Fix DMA configuration for non-DT masters | expand |
On Tue, Sep 24, 2019 at 08:12:38PM +0200, Nicolas Saenz Julienne wrote: > qoriq-mc's dpmacs DMA configuration is inherited from their parent node, > which acts a bus in this regard. So far it maked all devices as > dma-coherent but no dma-ranges recommendation is made. > > The truth is that the underlying interconnect has DMA constraints, so > add an empty dma-ranges in qoriq-mc's node in order for DT's DMA > configuration code to get the DMA constraints from it. > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Updated subject prefix as 'arm64: dts: ...', and applied the patch. Shawn > --- > > arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 1 + > arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 1 + > arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 1 + > 3 files changed, 3 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > index c676d0771762..f0d0b6145b72 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi > @@ -698,6 +698,7 @@ > <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ > msi-parent = <&its>; > iommu-map = <0 &smmu 0 0>; /* This is fixed-up by u-boot */ > + dma-ranges; > dma-coherent; > #address-cells = <3>; > #size-cells = <1>; > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi > index 7a0be8eaa84a..fd6036b7865c 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi > +++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi > @@ -340,6 +340,7 @@ > <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ > msi-parent = <&its>; > iommu-map = <0 &smmu 0 0>; /* This is fixed-up by u-boot */ > + dma-ranges; > dma-coherent; > #address-cells = <3>; > #size-cells = <1>; > diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi > index 408e0ecdce6a..3735bb139cb2 100644 > --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi > +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi > @@ -868,6 +868,7 @@ > msi-parent = <&its>; > /* iommu-map property is fixed up by u-boot */ > iommu-map = <0 &smmu 0 0>; > + dma-ranges; > dma-coherent; > #address-cells = <3>; > #size-cells = <1>; > -- > 2.23.0 >
On Mon, 2019-10-14 at 16:28 +0800, Shawn Guo wrote: > On Tue, Sep 24, 2019 at 08:12:38PM +0200, Nicolas Saenz Julienne wrote: > > qoriq-mc's dpmacs DMA configuration is inherited from their parent node, > > which acts a bus in this regard. So far it maked all devices as > > dma-coherent but no dma-ranges recommendation is made. > > > > The truth is that the underlying interconnect has DMA constraints, so > > add an empty dma-ranges in qoriq-mc's node in order for DT's DMA > > configuration code to get the DMA constraints from it. > > > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > Updated subject prefix as 'arm64: dts: ...', and applied the patch. Hi Shawn, these two patches are no longer needed. This series has been superseded by this patch[1] 951d48855d ('of: Make of_dma_get_range() work on bus nodes', available in linux-next) which fixed the issue directly in OF code. Sorry for the noise. Regards, Nicolas [1] https://lkml.org/lkml/2019/10/8/870
On Mon, Oct 14, 2019 at 12:00:25PM +0200, Nicolas Saenz Julienne wrote: > On Mon, 2019-10-14 at 16:28 +0800, Shawn Guo wrote: > > On Tue, Sep 24, 2019 at 08:12:38PM +0200, Nicolas Saenz Julienne wrote: > > > qoriq-mc's dpmacs DMA configuration is inherited from their parent node, > > > which acts a bus in this regard. So far it maked all devices as > > > dma-coherent but no dma-ranges recommendation is made. > > > > > > The truth is that the underlying interconnect has DMA constraints, so > > > add an empty dma-ranges in qoriq-mc's node in order for DT's DMA > > > configuration code to get the DMA constraints from it. > > > > > > Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> > > > > Updated subject prefix as 'arm64: dts: ...', and applied the patch. > > Hi Shawn, > these two patches are no longer needed. This series has been superseded by this > patch[1] 951d48855d ('of: Make of_dma_get_range() work on bus nodes', available > in linux-next) which fixed the issue directly in OF code. > > Sorry for the noise. Okay, thanks for letting me know. Dropped them. Shawn
diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi index c676d0771762..f0d0b6145b72 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi @@ -698,6 +698,7 @@ <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ msi-parent = <&its>; iommu-map = <0 &smmu 0 0>; /* This is fixed-up by u-boot */ + dma-ranges; dma-coherent; #address-cells = <3>; #size-cells = <1>; diff --git a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi index 7a0be8eaa84a..fd6036b7865c 100644 --- a/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi @@ -340,6 +340,7 @@ <0x00000000 0x08340000 0 0x40000>; /* MC control reg */ msi-parent = <&its>; iommu-map = <0 &smmu 0 0>; /* This is fixed-up by u-boot */ + dma-ranges; dma-coherent; #address-cells = <3>; #size-cells = <1>; diff --git a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi index 408e0ecdce6a..3735bb139cb2 100644 --- a/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi @@ -868,6 +868,7 @@ msi-parent = <&its>; /* iommu-map property is fixed up by u-boot */ iommu-map = <0 &smmu 0 0>; + dma-ranges; dma-coherent; #address-cells = <3>; #size-cells = <1>;
qoriq-mc's dpmacs DMA configuration is inherited from their parent node, which acts a bus in this regard. So far it maked all devices as dma-coherent but no dma-ranges recommendation is made. The truth is that the underlying interconnect has DMA constraints, so add an empty dma-ranges in qoriq-mc's node in order for DT's DMA configuration code to get the DMA constraints from it. Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> --- arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi | 1 + arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 1 + arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi | 1 + 3 files changed, 3 insertions(+)