Commit 3e50594e authored by FUJITA Tomonori's avatar FUJITA Tomonori Committed by Linus Torvalds

add the common dma_addr_t typedef to include/linux/types.h

All architectures can use the common dma_addr_t typedef now. We can
remove the arch specific dma_addr_t.
Signed-off-by: default avatarFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Matt Turner <mattst88@gmail.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Chris Metcalf <cmetcalf@tilera.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 8a06dc4d
...@@ -27,7 +27,6 @@ typedef unsigned int umode_t; ...@@ -27,7 +27,6 @@ typedef unsigned int umode_t;
#ifdef __KERNEL__ #ifdef __KERNEL__
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef u64 dma_addr_t;
typedef u64 dma64_addr_t; typedef u64 dma64_addr_t;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -18,9 +18,6 @@ typedef unsigned short umode_t; ...@@ -18,9 +18,6 @@ typedef unsigned short umode_t;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
typedef u32 dma64_addr_t; typedef u32 dma64_addr_t;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -23,14 +23,6 @@ typedef unsigned short umode_t; ...@@ -23,14 +23,6 @@ typedef unsigned short umode_t;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
#ifndef __ASSEMBLY__
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -18,9 +18,6 @@ typedef unsigned short umode_t; ...@@ -18,9 +18,6 @@ typedef unsigned short umode_t;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* Dma addresses are 32-bits wide, just like our other addresses. */
typedef u32 dma_addr_t;
typedef u32 dma64_addr_t; typedef u32 dma64_addr_t;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -27,14 +27,6 @@ typedef unsigned short umode_t; ...@@ -27,14 +27,6 @@ typedef unsigned short umode_t;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
#ifndef __ASSEMBLY__
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* _ASM_TYPES_H */ #endif /* _ASM_TYPES_H */
...@@ -22,10 +22,6 @@ typedef unsigned short umode_t; ...@@ -22,10 +22,6 @@ typedef unsigned short umode_t;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -40,9 +40,6 @@ struct fnptr { ...@@ -40,9 +40,6 @@ struct fnptr {
unsigned long gp; unsigned long gp;
}; };
/* DMA addresses are 64-bits wide, in general. */
typedef u64 dma_addr_t;
# endif /* __KERNEL__ */ # endif /* __KERNEL__ */
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
......
...@@ -18,9 +18,6 @@ typedef unsigned short umode_t; ...@@ -18,9 +18,6 @@ typedef unsigned short umode_t;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* DMA addresses are 32-bits wide. */
typedef u32 dma_addr_t;
typedef u64 dma64_addr_t; typedef u64 dma64_addr_t;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -25,9 +25,6 @@ typedef unsigned short umode_t; ...@@ -25,9 +25,6 @@ typedef unsigned short umode_t;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* DMA addresses are always 32-bits wide */
typedef u32 dma_addr_t;
typedef u32 dma64_addr_t; typedef u32 dma64_addr_t;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -33,12 +33,6 @@ typedef unsigned short umode_t; ...@@ -33,12 +33,6 @@ typedef unsigned short umode_t;
#ifdef __KERNEL__ #ifdef __KERNEL__
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#if (defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) \
|| defined(CONFIG_64BIT)
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif
typedef u64 dma64_addr_t; typedef u64 dma64_addr_t;
/* /*
......
...@@ -26,13 +26,6 @@ typedef unsigned short umode_t; ...@@ -26,13 +26,6 @@ typedef unsigned short umode_t;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
#ifndef __ASSEMBLY__
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* _ASM_TYPES_H */ #endif /* _ASM_TYPES_H */
...@@ -16,9 +16,6 @@ typedef unsigned short umode_t; ...@@ -16,9 +16,6 @@ typedef unsigned short umode_t;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
typedef u64 dma64_addr_t; typedef u64 dma64_addr_t;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
...@@ -44,11 +44,6 @@ typedef struct { ...@@ -44,11 +44,6 @@ typedef struct {
typedef __vector128 vector128; typedef __vector128 vector128;
#if defined(__powerpc64__) || defined(CONFIG_PHYS_64BIT)
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif
typedef u64 dma64_addr_t; typedef u64 dma64_addr_t;
typedef struct { typedef struct {
......
...@@ -31,12 +31,6 @@ typedef __signed__ long saddr_t; ...@@ -31,12 +31,6 @@ typedef __signed__ long saddr_t;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef u64 dma64_addr_t; typedef u64 dma64_addr_t;
#ifdef __s390x__
/* DMA addresses come in 32-bit and 64-bit flavours. */
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif
#ifndef __s390x__ #ifndef __s390x__
typedef union { typedef union {
......
...@@ -22,10 +22,6 @@ typedef unsigned short umode_t; ...@@ -22,10 +22,6 @@ typedef unsigned short umode_t;
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
/* Dma addresses come in generic and 64-bit flavours. */
typedef u32 dma_addr_t;
#if defined(__arch64__) #if defined(__arch64__)
/*** SPARC 64 bit ***/ /*** SPARC 64 bit ***/
......
#ifndef _ASM_X86_TYPES_H #ifndef _ASM_X86_TYPES_H
#define _ASM_X86_TYPES_H #define _ASM_X86_TYPES_H
#define dma_addr_t dma_addr_t
#include <asm-generic/types.h> #include <asm-generic/types.h>
#ifdef __KERNEL__ #ifdef __KERNEL__
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
typedef u64 dma64_addr_t; typedef u64 dma64_addr_t;
#if defined(CONFIG_X86_64) || defined(CONFIG_HIGHMEM64G)
/* DMA addresses come in 32-bit and 64-bit flavours. */
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
...@@ -32,10 +32,6 @@ typedef unsigned short umode_t; ...@@ -32,10 +32,6 @@ typedef unsigned short umode_t;
#define BITS_PER_LONG 32 #define BITS_PER_LONG 32
/* Dma addresses are 32-bits wide. */
typedef u32 dma_addr_t;
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif #endif
......
...@@ -12,31 +12,4 @@ typedef unsigned short umode_t; ...@@ -12,31 +12,4 @@ typedef unsigned short umode_t;
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
/*
* These aren't exported outside the kernel to avoid name space clashes
*/
#ifdef __KERNEL__
#ifndef __ASSEMBLY__
/*
* DMA addresses may be very different from physical addresses
* and pointers. i386 and powerpc may have 64 bit DMA on 32 bit
* systems, while sparc64 uses 32 bit DMA addresses for 64 bit
* physical addresses.
* This default defines dma_addr_t to have the same size as
* phys_addr_t, which is the most common way.
* Do not define the dma64_addr_t type, which never really
* worked.
*/
#ifndef dma_addr_t
#ifdef CONFIG_PHYS_ADDR_T_64BIT
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif /* CONFIG_PHYS_ADDR_T_64BIT */
#endif /* dma_addr_t */
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */
#endif /* _ASM_GENERIC_TYPES_H */ #endif /* _ASM_GENERIC_TYPES_H */
...@@ -150,6 +150,12 @@ typedef unsigned long blkcnt_t; ...@@ -150,6 +150,12 @@ typedef unsigned long blkcnt_t;
#define pgoff_t unsigned long #define pgoff_t unsigned long
#endif #endif
#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
typedef u64 dma_addr_t;
#else
typedef u32 dma_addr_t;
#endif /* dma_addr_t */
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment