// SPDX-License-Identifier: GPL-2.0-only /* * RISC-V specific functions to support DMA for non-coherent devices * * Copyright (c) 2021 Western Digital Corporation or its affiliates.
*/
case DMA_FROM_DEVICE: if (!arch_sync_dma_clean_before_fromdevice()) {
arch_dma_cache_inv(paddr, size); break;
}
fallthrough;
case DMA_BIDIRECTIONAL: /* Skip the invalidate here if it's done later */ if (IS_ENABLED(CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU) &&
arch_sync_dma_cpu_needs_post_dma_flush())
arch_dma_cache_wback(paddr, size); else
arch_dma_cache_wback_inv(paddr, size); break;
case DMA_FROM_DEVICE: case DMA_BIDIRECTIONAL: /* FROM_DEVICE invalidate needed if speculative CPU prefetch only */ if (arch_sync_dma_cpu_needs_post_dma_flush())
arch_dma_cache_inv(paddr, size); break;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.