Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2)  * include/asm-xtensa/dma.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * This file is subject to the terms and conditions of the GNU General Public
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * License.  See the file "COPYING" in the main directory of this archive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * for more details.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  * Copyright (C) 2003 - 2005 Tensilica Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #ifndef _XTENSA_DMA_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define _XTENSA_DMA_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include <asm/io.h>		/* need byte IO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)  * This is only to be defined if we have PC-like DMA.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)  * By default this is not true on an Xtensa processor,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)  * however on boards with a PCI bus, such functionality
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)  * might be emulated externally.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)  * NOTE:  there still exists driver code that assumes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)  * this is defined, eg. drivers/sound/soundcard.c (as of 2.4).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define MAX_DMA_CHANNELS	8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)  * The maximum virtual address to which DMA transfers
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)  * can be performed on this platform.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)  * NOTE: This is board (platform) specific, not processor-specific!
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)  * NOTE: This assumes DMA transfers can only be performed on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)  *	the section of physical memory contiguously mapped in virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)  *	space for the kernel.  For the Xtensa architecture, this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)  *	means the maximum possible size of this DMA area is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)  *	the size of the statically mapped kernel segment
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)  *	(XCHAL_KSEG_{CACHED,BYPASS}_SIZE), ie. 128 MB.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)  * NOTE: When the entire KSEG area is DMA capable, we subtract
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)  *	one from the max address so that the virt_to_phys() macro
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)  *	works correctly on the address (otherwise the address
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)  *	enters another area, and virt_to_phys() may not return
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)  *	the value desired).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) #ifndef MAX_DMA_ADDRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define MAX_DMA_ADDRESS		(PAGE_OFFSET + XCHAL_KIO_SIZE - 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) /* Reserve and release a DMA channel */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) extern int request_dma(unsigned int dmanr, const char * device_id);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) extern void free_dma(unsigned int dmanr);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #ifdef CONFIG_PCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) extern int isa_dma_bridge_buggy;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) #define isa_dma_bridge_buggy 	(0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) #endif