| Ralf Baechle | 9a88cbb | 2006-11-16 02:56:12 +0000 | [diff] [blame] | 1 | /* | 
 | 2 |  * This file is subject to the terms and conditions of the GNU General Public | 
 | 3 |  * License.  See the file "COPYING" in the main directory of this archive | 
 | 4 |  * for more details. | 
 | 5 |  * | 
 | 6 |  * Copyright (C) 2006  Ralf Baechle <ralf@linux-mips.org> | 
 | 7 |  * | 
 | 8 |  */ | 
 | 9 | #ifndef __ASM_MACH_IP27_DMA_COHERENCE_H | 
 | 10 | #define __ASM_MACH_IP27_DMA_COHERENCE_H | 
 | 11 |  | 
 | 12 | #include <asm/pci/bridge.h> | 
 | 13 |  | 
 | 14 | #define pdev_to_baddr(pdev, addr) \ | 
 | 15 | 	(BRIDGE_CONTROLLER(pdev->bus)->baddr + (addr)) | 
 | 16 | #define dev_to_baddr(dev, addr) \ | 
 | 17 | 	pdev_to_baddr(to_pci_dev(dev), (addr)) | 
 | 18 |  | 
 | 19 | struct device; | 
 | 20 |  | 
| Ralf Baechle | f1dbf8e | 2007-03-10 03:26:56 +0000 | [diff] [blame] | 21 | static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, | 
 | 22 | 	size_t size) | 
| Ralf Baechle | 9a88cbb | 2006-11-16 02:56:12 +0000 | [diff] [blame] | 23 | { | 
 | 24 | 	dma_addr_t pa = dev_to_baddr(dev, virt_to_phys(addr)); | 
 | 25 |  | 
 | 26 | 	return pa; | 
 | 27 | } | 
 | 28 |  | 
 | 29 | static dma_addr_t plat_map_dma_mem_page(struct device *dev, struct page *page) | 
 | 30 | { | 
 | 31 | 	dma_addr_t pa = dev_to_baddr(dev, page_to_phys(page)); | 
 | 32 |  | 
 | 33 | 	return pa; | 
 | 34 | } | 
 | 35 |  | 
 | 36 | static unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr) | 
 | 37 | { | 
 | 38 | 	return dma_addr & (0xffUL << 56); | 
 | 39 | } | 
 | 40 |  | 
| Ralf Baechle | f1dbf8e | 2007-03-10 03:26:56 +0000 | [diff] [blame] | 41 | static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) | 
| Ralf Baechle | 9a88cbb | 2006-11-16 02:56:12 +0000 | [diff] [blame] | 42 | { | 
 | 43 | } | 
 | 44 |  | 
 | 45 | static inline int plat_device_is_coherent(struct device *dev) | 
 | 46 | { | 
 | 47 | 	return 1;		/* IP27 non-cohernet mode is unsupported */ | 
 | 48 | } | 
 | 49 |  | 
 | 50 | #endif /* __ASM_MACH_IP27_DMA_COHERENCE_H */ |