![Nicolas Pitre](/assets/img/avatar_default.png)
Let's provide an overridable default instead of having every machine class define __virt_to_bus and __bus_to_virt to the same thing. What most platforms are using is bus_addr == phys_addr so such is the default. One exception is ebsa110 which has no DMA what so ever, so the actual definition is not important except only for proper compilation. Also added a comment about the special footbridge bus translation. Let's also remove comments alluding to set_dma_addr which is not (and should not) be commonly used. Signed-off-by: Nicolas Pitre <nico@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/*
|
|
* arch/arm/mach-ks8695/include/mach/memory.h
|
|
*
|
|
* Copyright (C) 2006 Andrew Victor
|
|
*
|
|
* KS8695 Memory definitions
|
|
*
|
|
* This file is licensed under the terms of the GNU General Public
|
|
* License version 2. This program is licensed "as is" without any
|
|
* warranty of any kind, whether express or implied.
|
|
*/
|
|
|
|
#ifndef __ASM_ARCH_MEMORY_H
|
|
#define __ASM_ARCH_MEMORY_H
|
|
|
|
#include <mach/hardware.h>
|
|
|
|
/*
|
|
* Physical SRAM offset.
|
|
*/
|
|
#define PHYS_OFFSET KS8695_SDRAM_PA
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#ifdef CONFIG_PCI
|
|
|
|
/* PCI mappings */
|
|
#define __virt_to_bus(x) ((x) - PAGE_OFFSET + KS8695_PCIMEM_PA)
|
|
#define __bus_to_virt(x) ((x) - KS8695_PCIMEM_PA + PAGE_OFFSET)
|
|
|
|
/* Platform-bus mapping */
|
|
extern struct bus_type platform_bus_type;
|
|
#define is_lbus_device(dev) (dev && dev->bus == &platform_bus_type)
|
|
#define __arch_dma_to_virt(dev, x) ({ (void *) (is_lbus_device(dev) ? \
|
|
__phys_to_virt(x) : __bus_to_virt(x)); })
|
|
#define __arch_virt_to_dma(dev, x) ({ is_lbus_device(dev) ? \
|
|
(dma_addr_t)__virt_to_phys(x) : (dma_addr_t)__virt_to_bus(x); })
|
|
#define __arch_page_to_dma(dev, x) __arch_virt_to_dma(dev, page_address(x))
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|