• Paul Burton's avatar
    MIPS: Support per-device DMA coherence · 20d33064
    Paul Burton authored
    On some MIPS systems, a subset of devices may have DMA coherent with CPU
    caches. For example in systems including a MIPS I/O Coherence Unit
    (IOCU), some devices may be connected to that IOCU whilst others are
    not.
    
    Prior to this patch, we have a plat_device_is_coherent() function but no
    implementation which does anything besides return a global true or
    false, optionally chosen at runtime. For devices such as those described
    above this is insufficient.
    
    Fix this by tracking DMA coherence on a per-device basis with a
    dma_coherent field in struct dev_archdata. Setting this from
    arch_setup_dma_ops() takes care of devices which set the dma-coherent
    property via device tree, and any PCI devices beneath a bridge described
    in DT, automatically.
    Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14349/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    20d33064
c-r4k.c 52.9 KB