/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 2006 Ralf Baechle <ralf@linux-mips.org> * */ #ifndef __ASM_DMA_COHERENCE_H #define __ASM_DMA_COHERENCE_H enum coherent_io_user_state { IO_COHERENCE_DEFAULT, IO_COHERENCE_ENABLED, IO_COHERENCE_DISABLED, }; #if defined([31mCONFIG_DMA_PERDEV_COHERENT[0m) /* Don't provide (hw_)coherentio to avoid misuse */ #elif defined([31mCONFIG_DMA_MAYBE_COHERENT[0m) extern enum coherent_io_user_state coherentio; extern int hw_coherentio; static inline bool dev_is_dma_coherent(struct device *dev) { return coherentio == IO_COHERENCE_ENABLED || (coherentio == IO_COHERENCE_DEFAULT && hw_coherentio); } #else #ifdef [31mCONFIG_DMA_NONCOHERENT[0m #define coherentio IO_COHERENCE_DISABLED #else #define coherentio IO_COHERENCE_ENABLED #endif #define hw_coherentio 0 #endif /* CONFIG_DMA_MAYBE_COHERENT */ #endif |