of_dma_is_coherent() currently expects the architecture to be non-coherent and some devices being coherent getting marked as such with the dma-coherent devicetree property. For PowerPC CONFIG_OF_DMA_DEFAULT_COHERENT was added which currently makes of_dma_is_coherent() always return true but doesn't handle the case of the architecture being coherent but some devices not. So modify the function to also check for dma-noncoherent and set a suitable default return value. If CONFIG_OF_DMA_DEFAULT_COHERENT is set the value starts with true and finding dma-noncoherent will set it to false and without CONFIG_OF_DMA_DEFAULT_COHERENT, the behaviour is reversed. Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Rob Herring <robh@kernel.org> Reviewed-by: Guo Ren <guoren@kernel.org> Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://lore.kernel.org/r/20220706231536.2041855-2-heiko@sntech.de Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> |
||
|---|---|---|
| .. | ||
| unittest-data | ||
| address.c | ||
| base.c | ||
| device.c | ||
| dynamic.c | ||
| fdt_address.c | ||
| fdt.c | ||
| irq.c | ||
| Kconfig | ||
| kexec.c | ||
| kobj.c | ||
| Makefile | ||
| of_numa.c | ||
| of_private.h | ||
| of_reserved_mem.c | ||
| overlay.c | ||
| pdt.c | ||
| platform.c | ||
| property.c | ||
| resolver.c | ||
| unittest.c | ||