On Wed, Oct 23, 2019 at 08:52:33AM -0500, Rob Herring wrote: > On Wed, Oct 23, 2019 at 1:41 AM Benjamin Herrenschmidt > <benh@xxxxxxxxxxxxxxxxxxx> wrote: > > > > On Wed, 2019-10-23 at 16:42 +1100, Michael Ellerman wrote: > > > > > > Right, it seems of_dma_is_coherent() has baked in the assumption that > > > devices are non-coherent unless explicitly marked as coherent. > > > > > > Which is wrong on all or at least most existing powerpc systems > > > according to Ben. > > > > This is probably broken on sparc(64) as well and whatever else uses > > DT and is an intrinsicly coherent architecture (did we ever have > > DT enabled x86s ? Wasn't OLPC such a beast ?). > > Only if those platforms use one of the 5 drivers that call this function: > > drivers/ata/ahci_qoriq.c: qoriq_priv->is_dmacoherent = > of_dma_is_coherent(np); > drivers/crypto/ccree/cc_driver.c: new_drvdata->coherent = > of_dma_is_coherent(np); > drivers/iommu/arm-smmu-v3.c: if (of_dma_is_coherent(dev->of_node)) > drivers/iommu/arm-smmu.c: if (of_dma_is_coherent(dev->of_node)) > drivers/mmc/host/sdhci-of-esdhc.c: if (of_dma_is_coherent(dev->of_node)) > > Curious that a PPC specific driver (ahci_qoriq) calls it... Maybe because it is not PPC specific: arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi: compatible = "fsl,lx2160a-ahci"; arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi: compatible = "fsl,lx2160a-ahci"; arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi: compatible = "fsl,lx2160a-ahci"; arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi: compatible = "fsl,lx2160a-ahci"; drivers/ata/ahci_qoriq.c: { .compatible = "fsl,lx2160a-ahci", .data = (void *)AHCI_LX2160A}, -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up