With the patch (in the end). dev->bus_dma_limit is still set to 0 and so is not being used.
from of_dma_configure()
ÂÂÂÂÂÂÂÂ ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
...
ÂÂÂÂÂÂÂÂ /* ...but only set bus limit if we found valid dma-ranges earlier */
ÂÂÂÂÂÂÂÂ if (!ret)
ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ dev->bus_dma_limit = end;
There is no other place bus_dma_limit is set. Looks like every device should inherit that
from it's parent right?
Any ideas how to expect this to work?
diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi
index 64a0f90f5b52..5418c31d4da7 100644
--- a/arch/arm/boot/dts/dra7.dtsi
+++ b/arch/arm/boot/dts/dra7.dtsi
@@ -680,15 +680,22 @@
ÂÂÂÂÂÂÂÂÂ };
ÂÂÂÂÂÂÂÂÂ /* OCP2SCP3 */
-ÂÂÂÂÂÂÂ sata: sata@4a141100 {
-ÂÂÂÂÂÂÂÂÂÂÂ compatible = "snps,dwc-ahci";
-ÂÂÂÂÂÂÂÂÂÂÂ reg = <0x4a140000 0x1100>, <0x4a141100 0x7>;
-ÂÂÂÂÂÂÂÂÂÂÂ interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
-ÂÂÂÂÂÂÂÂÂÂÂ phys = <&sata_phy>;
-ÂÂÂÂÂÂÂÂÂÂÂ phy-names = "sata-phy";
-ÂÂÂÂÂÂÂÂÂÂÂ clocks = <&l3init_clkctrl DRA7_L3INIT_SATA_CLKCTRL 8>;
-ÂÂÂÂÂÂÂÂÂÂÂ ti,hwmods = "sata";
-ÂÂÂÂÂÂÂÂÂÂÂ ports-implemented = <0x1>;
+ÂÂÂÂÂÂÂ sata_aux_bus {
+ÂÂÂÂÂÂÂÂÂÂÂ #address-cells = <2>;
+ÂÂÂÂÂÂÂÂÂÂÂ #size-cells = <2>;
+ÂÂÂÂÂÂÂÂÂÂÂ compatible = "simple-bus";
+ÂÂÂÂÂÂÂÂÂÂÂ ranges = <0x0 0x0 0x4a140000 0x0 0x1200>;
+ÂÂÂÂÂÂÂÂÂÂÂ dma-ranges = <0x0 0x0 0x0 0x0 0x1 0x00000000>;
+ÂÂÂÂÂÂÂÂÂÂÂ sata: sata@4a141100 {
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ compatible = "snps,dwc-ahci";
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ reg = <0x0 0x0 0x0 0x1100>, <0x0 0x1100 0x0 0x7>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ phys = <&sata_phy>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ phy-names = "sata-phy";
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ clocks = <&l3init_clkctrl DRA7_L3INIT_SATA_CLKCTRL 8>;
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ ti,hwmods = "sata";
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ ports-implemented = <0x1>;
+ÂÂÂÂÂÂÂÂÂÂÂ };
ÂÂÂÂÂÂÂÂÂ };
ÂÂÂÂÂÂÂÂÂ /* OCP2SCP1 */