summaryrefslogtreecommitdiff
path: root/include/asm-alpha/io.h
diff options
context:
space:
mode:
authorIvan Kokshaysky <ink@jurassic.park.msu.ru>2007-07-15 23:38:41 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 09:05:37 -0700
commit5c6af69abe9436c33b82a13623b38a4cc51e6464 (patch)
tree1104c8392b17bd3132ada20ced79efff593261a2 /include/asm-alpha/io.h
parentebaf4fc13e293dcafbb13c91aae2a45722652740 (diff)
downloadlwn-5c6af69abe9436c33b82a13623b38a4cc51e6464.tar.gz
lwn-5c6af69abe9436c33b82a13623b38a4cc51e6464.zip
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>
Diffstat (limited to 'include/asm-alpha/io.h')
-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 @@
#ifdef __KERNEL__
#include <linux/kernel.h>
+#include <linux/mm.h>
#include <asm/compiler.h>
#include <asm/system.h>
#include <asm/pgtable.h>
@@ -90,6 +91,11 @@ static inline void * phys_to_virt(unsigned long address)
#define page_to_phys(page) page_to_pa(page)
+static inline dma_addr_t __deprecated isa_page_to_bus(struct page *page)
+{
+ return page_to_phys(page);
+}
+
/* This depends on working iommu. */
#define BIO_VMERGE_BOUNDARY (alpha_mv.mv_pci_tbi ? PAGE_SIZE : 0)
@@ -102,12 +108,12 @@ static inline void * phys_to_virt(unsigned long address)
*
* Note that this only works for a limited range of kernel addresses,
* and very well may not span all memory. Consider this interface
- * deprecated in favour of the mapping functions in <asm/pci.h>.
+ * deprecated in favour of the DMA-mapping API.
*/
extern unsigned long __direct_map_base;
extern unsigned long __direct_map_size;
-static inline unsigned long virt_to_bus(void *address)
+static inline unsigned long __deprecated virt_to_bus(void *address)
{
unsigned long phys = virt_to_phys(address);
unsigned long bus = phys + __direct_map_base;
@@ -115,7 +121,7 @@ static inline unsigned long virt_to_bus(void *address)
}
#define isa_virt_to_bus virt_to_bus
-static inline void *bus_to_virt(unsigned long address)
+static inline void * __deprecated bus_to_virt(unsigned long address)
{
void *virt;
@@ -126,6 +132,7 @@ static inline void *bus_to_virt(unsigned long address)
virt = phys_to_virt(address);
return (long)address <= 0 ? NULL : virt;
}
+#define isa_bus_to_virt bus_to_virt
/*
* There are different chipsets to interface the Alpha CPUs to the world.