aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2007-07-16 02:38:41 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 12:05:37 -0400
commit5c6af69abe9436c33b82a13623b38a4cc51e6464 (patch)
tree1104c8392b17bd3132ada20ced79efff593261a2
parentebaf4fc13e293dcafbb13c91aae2a45722652740 (diff)
fix alpha ISA support
isa_bus_to_virt() is still needed in a few places (lance.c, at least). When we switch the kernel to using -Werror-implicit-function-declaration, the lack of isa_bus_to_virt() breaks alpha allmodconfig builds. Add isa_bus_to_virt() and deprecate the ezisting ISA APIs, though it might be better to define these functions as BUG(), since virt_to_bus/bus_to_virt just do wrong things on a number of machines. [akpm@linux-foundation.org: build fix] Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru> Cc: Richard Henderson <rth@twiddle.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--include/asm-alpha/io.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/include/asm-alpha/io.h b/include/asm-alpha/io.h
index 21a86f1a05b3..ab5b60dcef19 100644
--- a/include/asm-alpha/io.h
+++ b/include/asm-alpha/io.h
@@ -4,6 +4,7 @@
4#ifdef __KERNEL__ 4#ifdef __KERNEL__
5 5
6#include <linux/kernel.h> 6#include <linux/kernel.h>
7#include <linux/mm.h>
7#include <asm/compiler.h> 8#include <asm/compiler.h>
8#include <asm/system.h> 9#include <asm/system.h>
9#include <asm/pgtable.h> 10#include <asm/pgtable.h>
@@ -90,6 +91,11 @@ static inline void * phys_to_virt(unsigned long address)
90 91
91#define page_to_phys(page) page_to_pa(page) 92#define page_to_phys(page) page_to_pa(page)
92 93
94static inline dma_addr_t __deprecated isa_page_to_bus(struct page *page)
95{
96 return page_to_phys(page);
97}
98
93/* This depends on working iommu. */ 99/* This depends on working iommu. */
94#define BIO_VMERGE_BOUNDARY (alpha_mv.mv_pci_tbi ? PAGE_SIZE : 0) 100#define BIO_VMERGE_BOUNDARY (alpha_mv.mv_pci_tbi ? PAGE_SIZE : 0)
95 101
@@ -102,12 +108,12 @@ static inline void * phys_to_virt(unsigned long address)
102 * 108 *
103 * Note that this only works for a limited range of kernel addresses, 109 * Note that this only works for a limited range of kernel addresses,
104 * and very well may not span all memory. Consider this interface 110 * and very well may not span all memory. Consider this interface
105 * deprecated in favour of the mapping functions in <asm/pci.h>. 111 * deprecated in favour of the DMA-mapping API.
106 */ 112 */
107extern unsigned long __direct_map_base; 113extern unsigned long __direct_map_base;
108extern unsigned long __direct_map_size; 114extern unsigned long __direct_map_size;
109 115
110static inline unsigned long virt_to_bus(void *address) 116static inline unsigned long __deprecated virt_to_bus(void *address)
111{ 117{
112 unsigned long phys = virt_to_phys(address); 118 unsigned long phys = virt_to_phys(address);
113 unsigned long bus = phys + __direct_map_base; 119 unsigned long bus = phys + __direct_map_base;
@@ -115,7 +121,7 @@ static inline unsigned long virt_to_bus(void *address)
115} 121}
116#define isa_virt_to_bus virt_to_bus 122#define isa_virt_to_bus virt_to_bus
117 123
118static inline void *bus_to_virt(unsigned long address) 124static inline void * __deprecated bus_to_virt(unsigned long address)
119{ 125{
120 void *virt; 126 void *virt;
121 127
@@ -126,6 +132,7 @@ static inline void *bus_to_virt(unsigned long address)
126 virt = phys_to_virt(address); 132 virt = phys_to_virt(address);
127 return (long)address <= 0 ? NULL : virt; 133 return (long)address <= 0 ? NULL : virt;
128} 134}
135#define isa_bus_to_virt bus_to_virt
129 136
130/* 137/*
131 * There are different chipsets to interface the Alpha CPUs to the world. 138 * There are different chipsets to interface the Alpha CPUs to the world.