1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Copyright (C) 2023 Renesas Electronics Corp. 4 */ 5 6#ifndef __ASM_DMA_NONCOHERENT_H 7#define __ASM_DMA_NONCOHERENT_H 8 9#include <linux/dma-direct.h> 10 11/* 12 * struct riscv_nonstd_cache_ops - Structure for non-standard CMO function pointers 13 * 14 * @wback: Function pointer for cache writeback 15 * @inv: Function pointer for invalidating cache 16 * @wback_inv: Function pointer for flushing the cache (writeback + invalidating) 17 */ 18struct riscv_nonstd_cache_ops { 19 void (*wback)(phys_addr_t paddr, size_t size); 20 void (*inv)(phys_addr_t paddr, size_t size); 21 void (*wback_inv)(phys_addr_t paddr, size_t size); 22}; 23 24extern struct riscv_nonstd_cache_ops noncoherent_cache_ops; 25 26void riscv_noncoherent_register_cache_ops(const struct riscv_nonstd_cache_ops *ops); 27 28#endif /* __ASM_DMA_NONCOHERENT_H */ 29