diff options
Diffstat (limited to 'include')
30 files changed, 230 insertions, 163 deletions
diff --git a/include/asm-avr32/arch-at32ap/at32ap7000.h b/include/asm-avr32/arch-at32ap/at32ap7000.h new file mode 100644 index 000000000000..ba85e04553d4 --- /dev/null +++ b/include/asm-avr32/arch-at32ap/at32ap7000.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Pin definitions for AT32AP7000. | ||
3 | * | ||
4 | * Copyright (C) 2006 Atmel Corporation | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | #ifndef __ASM_ARCH_AT32AP7000_H__ | ||
11 | #define __ASM_ARCH_AT32AP7000_H__ | ||
12 | |||
13 | #define GPIO_PERIPH_A 0 | ||
14 | #define GPIO_PERIPH_B 1 | ||
15 | |||
16 | #define NR_GPIO_CONTROLLERS 4 | ||
17 | |||
18 | /* | ||
19 | * Pin numbers identifying specific GPIO pins on the chip. They can | ||
20 | * also be converted to IRQ numbers by passing them through | ||
21 | * gpio_to_irq(). | ||
22 | */ | ||
23 | #define GPIO_PIOA_BASE (0) | ||
24 | #define GPIO_PIOB_BASE (GPIO_PIOA_BASE + 32) | ||
25 | #define GPIO_PIOC_BASE (GPIO_PIOB_BASE + 32) | ||
26 | #define GPIO_PIOD_BASE (GPIO_PIOC_BASE + 32) | ||
27 | |||
28 | #define GPIO_PIN_PA(N) (GPIO_PIOA_BASE + (N)) | ||
29 | #define GPIO_PIN_PB(N) (GPIO_PIOB_BASE + (N)) | ||
30 | #define GPIO_PIN_PC(N) (GPIO_PIOC_BASE + (N)) | ||
31 | #define GPIO_PIN_PD(N) (GPIO_PIOD_BASE + (N)) | ||
32 | |||
33 | #endif /* __ASM_ARCH_AT32AP7000_H__ */ | ||
diff --git a/include/asm-avr32/arch-at32ap/board.h b/include/asm-avr32/arch-at32ap/board.h index a39b3e999f18..b120ee030c86 100644 --- a/include/asm-avr32/arch-at32ap/board.h +++ b/include/asm-avr32/arch-at32ap/board.h | |||
@@ -21,10 +21,7 @@ void at32_map_usart(unsigned int hw_id, unsigned int line); | |||
21 | struct platform_device *at32_add_device_usart(unsigned int id); | 21 | struct platform_device *at32_add_device_usart(unsigned int id); |
22 | 22 | ||
23 | struct eth_platform_data { | 23 | struct eth_platform_data { |
24 | u8 valid; | ||
25 | u8 mii_phy_addr; | ||
26 | u8 is_rmii; | 24 | u8 is_rmii; |
27 | u8 hw_addr[6]; | ||
28 | }; | 25 | }; |
29 | struct platform_device * | 26 | struct platform_device * |
30 | at32_add_device_eth(unsigned int id, struct eth_platform_data *data); | 27 | at32_add_device_eth(unsigned int id, struct eth_platform_data *data); |
diff --git a/include/asm-avr32/arch-at32ap/portmux.h b/include/asm-avr32/arch-at32ap/portmux.h index 4d50421262a1..83c690571322 100644 --- a/include/asm-avr32/arch-at32ap/portmux.h +++ b/include/asm-avr32/arch-at32ap/portmux.h | |||
@@ -7,10 +7,20 @@ | |||
7 | * it under the terms of the GNU General Public License version 2 as | 7 | * it under the terms of the GNU General Public License version 2 as |
8 | * published by the Free Software Foundation. | 8 | * published by the Free Software Foundation. |
9 | */ | 9 | */ |
10 | #ifndef __ASM_AVR32_AT32_PORTMUX_H__ | 10 | #ifndef __ASM_ARCH_PORTMUX_H__ |
11 | #define __ASM_AVR32_AT32_PORTMUX_H__ | 11 | #define __ASM_ARCH_PORTMUX_H__ |
12 | 12 | ||
13 | void portmux_set_func(unsigned int portmux_id, unsigned int pin_id, | 13 | /* |
14 | unsigned int function_id); | 14 | * Set up pin multiplexing, called from board init only. |
15 | * | ||
16 | * The following flags determine the initial state of the pin. | ||
17 | */ | ||
18 | #define AT32_GPIOF_PULLUP 0x00000001 /* Enable pull-up */ | ||
19 | #define AT32_GPIOF_OUTPUT 0x00000002 /* Enable output driver */ | ||
20 | #define AT32_GPIOF_HIGH 0x00000004 /* Set output high */ | ||
21 | |||
22 | void at32_select_periph(unsigned int pin, unsigned int periph, | ||
23 | unsigned long flags); | ||
24 | void at32_select_gpio(unsigned int pin, unsigned long flags); | ||
15 | 25 | ||
16 | #endif /* __ASM_AVR32_AT32_PORTMUX_H__ */ | 26 | #endif /* __ASM_ARCH_PORTMUX_H__ */ |
diff --git a/include/asm-avr32/dma-mapping.h b/include/asm-avr32/dma-mapping.h index 0580b5d62bba..5c01e27f0b41 100644 --- a/include/asm-avr32/dma-mapping.h +++ b/include/asm-avr32/dma-mapping.h | |||
@@ -109,7 +109,7 @@ static inline dma_addr_t | |||
109 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, | 109 | dma_map_single(struct device *dev, void *cpu_addr, size_t size, |
110 | enum dma_data_direction direction) | 110 | enum dma_data_direction direction) |
111 | { | 111 | { |
112 | dma_cache_sync(cpu_addr, size, direction); | 112 | dma_cache_sync(dev, cpu_addr, size, direction); |
113 | return virt_to_bus(cpu_addr); | 113 | return virt_to_bus(cpu_addr); |
114 | } | 114 | } |
115 | 115 | ||
@@ -211,7 +211,7 @@ dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | |||
211 | 211 | ||
212 | sg[i].dma_address = page_to_bus(sg[i].page) + sg[i].offset; | 212 | sg[i].dma_address = page_to_bus(sg[i].page) + sg[i].offset; |
213 | virt = page_address(sg[i].page) + sg[i].offset; | 213 | virt = page_address(sg[i].page) + sg[i].offset; |
214 | dma_cache_sync(virt, sg[i].length, direction); | 214 | dma_cache_sync(dev, virt, sg[i].length, direction); |
215 | } | 215 | } |
216 | 216 | ||
217 | return nents; | 217 | return nents; |
@@ -256,14 +256,14 @@ static inline void | |||
256 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, | 256 | dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, |
257 | size_t size, enum dma_data_direction direction) | 257 | size_t size, enum dma_data_direction direction) |
258 | { | 258 | { |
259 | dma_cache_sync(bus_to_virt(dma_handle), size, direction); | 259 | dma_cache_sync(dev, bus_to_virt(dma_handle), size, direction); |
260 | } | 260 | } |
261 | 261 | ||
262 | static inline void | 262 | static inline void |
263 | dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, | 263 | dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, |
264 | size_t size, enum dma_data_direction direction) | 264 | size_t size, enum dma_data_direction direction) |
265 | { | 265 | { |
266 | dma_cache_sync(bus_to_virt(dma_handle), size, direction); | 266 | dma_cache_sync(dev, bus_to_virt(dma_handle), size, direction); |
267 | } | 267 | } |
268 | 268 | ||
269 | /** | 269 | /** |
@@ -286,7 +286,7 @@ dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, | |||
286 | int i; | 286 | int i; |
287 | 287 | ||
288 | for (i = 0; i < nents; i++) { | 288 | for (i = 0; i < nents; i++) { |
289 | dma_cache_sync(page_address(sg[i].page) + sg[i].offset, | 289 | dma_cache_sync(dev, page_address(sg[i].page) + sg[i].offset, |
290 | sg[i].length, direction); | 290 | sg[i].length, direction); |
291 | } | 291 | } |
292 | } | 292 | } |
@@ -298,7 +298,7 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, | |||
298 | int i; | 298 | int i; |
299 | 299 | ||
300 | for (i = 0; i < nents; i++) { | 300 | for (i = 0; i < nents; i++) { |
301 | dma_cache_sync(page_address(sg[i].page) + sg[i].offset, | 301 | dma_cache_sync(dev, page_address(sg[i].page) + sg[i].offset, |
302 | sg[i].length, direction); | 302 | sg[i].length, direction); |
303 | } | 303 | } |
304 | } | 304 | } |
diff --git a/include/asm-mips/compat.h b/include/asm-mips/compat.h index 55a0152feb08..432653d7ae09 100644 --- a/include/asm-mips/compat.h +++ b/include/asm-mips/compat.h | |||
@@ -5,6 +5,7 @@ | |||
5 | */ | 5 | */ |
6 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <asm/page.h> | 7 | #include <asm/page.h> |
8 | #include <asm/ptrace.h> | ||
8 | 9 | ||
9 | #define COMPAT_USER_HZ 100 | 10 | #define COMPAT_USER_HZ 100 |
10 | 11 | ||
diff --git a/include/asm-mips/mach-ip27/irq.h b/include/asm-mips/mach-ip27/irq.h index 806213ce31b6..25f0c3f39adf 100644 --- a/include/asm-mips/mach-ip27/irq.h +++ b/include/asm-mips/mach-ip27/irq.h | |||
@@ -10,8 +10,6 @@ | |||
10 | #ifndef __ASM_MACH_IP27_IRQ_H | 10 | #ifndef __ASM_MACH_IP27_IRQ_H |
11 | #define __ASM_MACH_IP27_IRQ_H | 11 | #define __ASM_MACH_IP27_IRQ_H |
12 | 12 | ||
13 | #include <asm/sn/arch.h> | ||
14 | |||
15 | /* | 13 | /* |
16 | * A hardwired interrupt number is completly stupid for this system - a | 14 | * A hardwired interrupt number is completly stupid for this system - a |
17 | * large configuration might have thousands if not tenthousands of | 15 | * large configuration might have thousands if not tenthousands of |
diff --git a/include/asm-mips/mach-ip27/topology.h b/include/asm-mips/mach-ip27/topology.h index a13b715fd9ca..44790fdc5d00 100644 --- a/include/asm-mips/mach-ip27/topology.h +++ b/include/asm-mips/mach-ip27/topology.h | |||
@@ -1,7 +1,6 @@ | |||
1 | #ifndef _ASM_MACH_TOPOLOGY_H | 1 | #ifndef _ASM_MACH_TOPOLOGY_H |
2 | #define _ASM_MACH_TOPOLOGY_H 1 | 2 | #define _ASM_MACH_TOPOLOGY_H 1 |
3 | 3 | ||
4 | #include <asm/sn/arch.h> | ||
5 | #include <asm/sn/hub.h> | 4 | #include <asm/sn/hub.h> |
6 | #include <asm/mmzone.h> | 5 | #include <asm/mmzone.h> |
7 | 6 | ||
diff --git a/include/asm-mips/sn/arch.h b/include/asm-mips/sn/arch.h index 51174af6ac52..da523de628be 100644 --- a/include/asm-mips/sn/arch.h +++ b/include/asm-mips/sn/arch.h | |||
@@ -18,7 +18,6 @@ | |||
18 | #endif | 18 | #endif |
19 | 19 | ||
20 | typedef u64 hubreg_t; | 20 | typedef u64 hubreg_t; |
21 | typedef u64 nic_t; | ||
22 | 21 | ||
23 | #define cputonasid(cpu) (cpu_data[(cpu)].p_nasid) | 22 | #define cputonasid(cpu) (cpu_data[(cpu)].p_nasid) |
24 | #define cputoslice(cpu) (cpu_data[(cpu)].p_slice) | 23 | #define cputoslice(cpu) (cpu_data[(cpu)].p_slice) |
diff --git a/include/asm-mips/sn/klconfig.h b/include/asm-mips/sn/klconfig.h index 15d70ca56187..82aeb9e322db 100644 --- a/include/asm-mips/sn/klconfig.h +++ b/include/asm-mips/sn/klconfig.h | |||
@@ -61,6 +61,8 @@ | |||
61 | #endif /* CONFIG_SGI_IP35 */ | 61 | #endif /* CONFIG_SGI_IP35 */ |
62 | #endif /* CONFIG_SGI_IP27 || CONFIG_SGI_IP35 */ | 62 | #endif /* CONFIG_SGI_IP27 || CONFIG_SGI_IP35 */ |
63 | 63 | ||
64 | typedef u64 nic_t; | ||
65 | |||
64 | #define KLCFGINFO_MAGIC 0xbeedbabe | 66 | #define KLCFGINFO_MAGIC 0xbeedbabe |
65 | 67 | ||
66 | typedef s32 klconf_off_t; | 68 | typedef s32 klconf_off_t; |
diff --git a/include/asm-powerpc/Kbuild b/include/asm-powerpc/Kbuild index 1e637381c118..703970fb0ec0 100644 --- a/include/asm-powerpc/Kbuild +++ b/include/asm-powerpc/Kbuild | |||
@@ -17,7 +17,6 @@ header-y += ipc.h | |||
17 | header-y += poll.h | 17 | header-y += poll.h |
18 | header-y += shmparam.h | 18 | header-y += shmparam.h |
19 | header-y += sockios.h | 19 | header-y += sockios.h |
20 | header-y += spu_info.h | ||
21 | header-y += ucontext.h | 20 | header-y += ucontext.h |
22 | header-y += ioctl.h | 21 | header-y += ioctl.h |
23 | header-y += linkage.h | 22 | header-y += linkage.h |
@@ -37,6 +36,7 @@ unifdef-y += posix_types.h | |||
37 | unifdef-y += ptrace.h | 36 | unifdef-y += ptrace.h |
38 | unifdef-y += seccomp.h | 37 | unifdef-y += seccomp.h |
39 | unifdef-y += signal.h | 38 | unifdef-y += signal.h |
39 | unifdef-y += spu_info.h | ||
40 | unifdef-y += termios.h | 40 | unifdef-y += termios.h |
41 | unifdef-y += types.h | 41 | unifdef-y += types.h |
42 | unifdef-y += unistd.h | 42 | unifdef-y += unistd.h |
diff --git a/include/asm-powerpc/bug.h b/include/asm-powerpc/bug.h index 978b2c7e84ea..709568879f73 100644 --- a/include/asm-powerpc/bug.h +++ b/include/asm-powerpc/bug.h | |||
@@ -13,36 +13,39 @@ | |||
13 | 13 | ||
14 | #ifndef __ASSEMBLY__ | 14 | #ifndef __ASSEMBLY__ |
15 | 15 | ||
16 | struct bug_entry { | ||
17 | unsigned long bug_addr; | ||
18 | long line; | ||
19 | const char *file; | ||
20 | const char *function; | ||
21 | }; | ||
22 | |||
23 | struct bug_entry *find_bug(unsigned long bugaddr); | ||
24 | |||
25 | /* | ||
26 | * If this bit is set in the line number it means that the trap | ||
27 | * is for WARN_ON rather than BUG or BUG_ON. | ||
28 | */ | ||
29 | #define BUG_WARNING_TRAP 0x1000000 | ||
30 | |||
31 | #ifdef CONFIG_BUG | 16 | #ifdef CONFIG_BUG |
32 | 17 | ||
18 | /* _EMIT_BUG_ENTRY expects args %0,%1,%2,%3 to be FILE, LINE, flags and | ||
19 | sizeof(struct bug_entry), respectively */ | ||
20 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
21 | #define _EMIT_BUG_ENTRY \ | ||
22 | ".section __bug_table,\"a\"\n" \ | ||
23 | "2:\t" PPC_LONG "1b, %0\n" \ | ||
24 | "\t.short %1, %2\n" \ | ||
25 | ".org 2b+%3\n" \ | ||
26 | ".previous\n" | ||
27 | #else | ||
28 | #define _EMIT_BUG_ENTRY \ | ||
29 | ".section __bug_table,\"a\"\n" \ | ||
30 | "2:\t" PPC_LONG "1b\n" \ | ||
31 | "\t.short %2\n" \ | ||
32 | ".org 2b+%3\n" \ | ||
33 | ".previous\n" | ||
34 | #endif | ||
35 | |||
33 | /* | 36 | /* |
34 | * BUG_ON() and WARN_ON() do their best to cooperate with compile-time | 37 | * BUG_ON() and WARN_ON() do their best to cooperate with compile-time |
35 | * optimisations. However depending on the complexity of the condition | 38 | * optimisations. However depending on the complexity of the condition |
36 | * some compiler versions may not produce optimal results. | 39 | * some compiler versions may not produce optimal results. |
37 | */ | 40 | */ |
38 | 41 | ||
39 | #define BUG() do { \ | 42 | #define BUG() do { \ |
40 | __asm__ __volatile__( \ | 43 | __asm__ __volatile__( \ |
41 | "1: twi 31,0,0\n" \ | 44 | "1: twi 31,0,0\n" \ |
42 | ".section __bug_table,\"a\"\n" \ | 45 | _EMIT_BUG_ENTRY \ |
43 | "\t"PPC_LONG" 1b,%0,%1,%2\n" \ | 46 | : : "i" (__FILE__), "i" (__LINE__), \ |
44 | ".previous" \ | 47 | "i" (0), "i" (sizeof(struct bug_entry))); \ |
45 | : : "i" (__LINE__), "i" (__FILE__), "i" (__FUNCTION__)); \ | 48 | for(;;) ; \ |
46 | } while (0) | 49 | } while (0) |
47 | 50 | ||
48 | #define BUG_ON(x) do { \ | 51 | #define BUG_ON(x) do { \ |
@@ -51,23 +54,21 @@ struct bug_entry *find_bug(unsigned long bugaddr); | |||
51 | BUG(); \ | 54 | BUG(); \ |
52 | } else { \ | 55 | } else { \ |
53 | __asm__ __volatile__( \ | 56 | __asm__ __volatile__( \ |
54 | "1: "PPC_TLNEI" %0,0\n" \ | 57 | "1: "PPC_TLNEI" %4,0\n" \ |
55 | ".section __bug_table,\"a\"\n" \ | 58 | _EMIT_BUG_ENTRY \ |
56 | "\t"PPC_LONG" 1b,%1,%2,%3\n" \ | 59 | : : "i" (__FILE__), "i" (__LINE__), "i" (0), \ |
57 | ".previous" \ | 60 | "i" (sizeof(struct bug_entry)), \ |
58 | : : "r" ((long)(x)), "i" (__LINE__), \ | 61 | "r" ((long)(x))); \ |
59 | "i" (__FILE__), "i" (__FUNCTION__)); \ | ||
60 | } \ | 62 | } \ |
61 | } while (0) | 63 | } while (0) |
62 | 64 | ||
63 | #define __WARN() do { \ | 65 | #define __WARN() do { \ |
64 | __asm__ __volatile__( \ | 66 | __asm__ __volatile__( \ |
65 | "1: twi 31,0,0\n" \ | 67 | "1: twi 31,0,0\n" \ |
66 | ".section __bug_table,\"a\"\n" \ | 68 | _EMIT_BUG_ENTRY \ |
67 | "\t"PPC_LONG" 1b,%0,%1,%2\n" \ | 69 | : : "i" (__FILE__), "i" (__LINE__), \ |
68 | ".previous" \ | 70 | "i" (BUGFLAG_WARNING), \ |
69 | : : "i" (__LINE__ + BUG_WARNING_TRAP), \ | 71 | "i" (sizeof(struct bug_entry))); \ |
70 | "i" (__FILE__), "i" (__FUNCTION__)); \ | ||
71 | } while (0) | 72 | } while (0) |
72 | 73 | ||
73 | #define WARN_ON(x) ({ \ | 74 | #define WARN_ON(x) ({ \ |
@@ -77,13 +78,12 @@ struct bug_entry *find_bug(unsigned long bugaddr); | |||
77 | __WARN(); \ | 78 | __WARN(); \ |
78 | } else { \ | 79 | } else { \ |
79 | __asm__ __volatile__( \ | 80 | __asm__ __volatile__( \ |
80 | "1: "PPC_TLNEI" %0,0\n" \ | 81 | "1: "PPC_TLNEI" %4,0\n" \ |
81 | ".section __bug_table,\"a\"\n" \ | 82 | _EMIT_BUG_ENTRY \ |
82 | "\t"PPC_LONG" 1b,%1,%2,%3\n" \ | 83 | : : "i" (__FILE__), "i" (__LINE__), \ |
83 | ".previous" \ | 84 | "i" (BUGFLAG_WARNING), \ |
84 | : : "r" (__ret_warn_on), \ | 85 | "i" (sizeof(struct bug_entry)), \ |
85 | "i" (__LINE__ + BUG_WARNING_TRAP), \ | 86 | "r" (__ret_warn_on)); \ |
86 | "i" (__FILE__), "i" (__FUNCTION__)); \ | ||
87 | } \ | 87 | } \ |
88 | unlikely(__ret_warn_on); \ | 88 | unlikely(__ret_warn_on); \ |
89 | }) | 89 | }) |
diff --git a/include/asm-powerpc/cputable.h b/include/asm-powerpc/cputable.h index 6fe5c9d4ca3b..7384b8086b75 100644 --- a/include/asm-powerpc/cputable.h +++ b/include/asm-powerpc/cputable.h | |||
@@ -126,6 +126,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
126 | #define CPU_FTR_NODSISRALIGN ASM_CONST(0x0000000000100000) | 126 | #define CPU_FTR_NODSISRALIGN ASM_CONST(0x0000000000100000) |
127 | #define CPU_FTR_PPC_LE ASM_CONST(0x0000000000200000) | 127 | #define CPU_FTR_PPC_LE ASM_CONST(0x0000000000200000) |
128 | #define CPU_FTR_REAL_LE ASM_CONST(0x0000000000400000) | 128 | #define CPU_FTR_REAL_LE ASM_CONST(0x0000000000400000) |
129 | #define CPU_FTR_FPU_UNAVAILABLE ASM_CONST(0x0000000000800000) | ||
129 | 130 | ||
130 | /* | 131 | /* |
131 | * Add the 64-bit processor unique features in the top half of the word; | 132 | * Add the 64-bit processor unique features in the top half of the word; |
@@ -152,6 +153,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
152 | #define CPU_FTR_PURR LONG_ASM_CONST(0x0000400000000000) | 153 | #define CPU_FTR_PURR LONG_ASM_CONST(0x0000400000000000) |
153 | #define CPU_FTR_CELL_TB_BUG LONG_ASM_CONST(0x0000800000000000) | 154 | #define CPU_FTR_CELL_TB_BUG LONG_ASM_CONST(0x0000800000000000) |
154 | #define CPU_FTR_SPURR LONG_ASM_CONST(0x0001000000000000) | 155 | #define CPU_FTR_SPURR LONG_ASM_CONST(0x0001000000000000) |
156 | #define CPU_FTR_DSCR LONG_ASM_CONST(0x0002000000000000) | ||
155 | 157 | ||
156 | #ifndef __ASSEMBLY__ | 158 | #ifndef __ASSEMBLY__ |
157 | 159 | ||
@@ -295,6 +297,9 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
295 | #define CPU_FTRS_E300 (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | \ | 297 | #define CPU_FTRS_E300 (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | \ |
296 | CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS | \ | 298 | CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS | \ |
297 | CPU_FTR_COMMON) | 299 | CPU_FTR_COMMON) |
300 | #define CPU_FTRS_E300C2 (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | \ | ||
301 | CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS | \ | ||
302 | CPU_FTR_COMMON | CPU_FTR_FPU_UNAVAILABLE) | ||
298 | #define CPU_FTRS_CLASSIC32 (CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | \ | 303 | #define CPU_FTRS_CLASSIC32 (CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | \ |
299 | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE) | 304 | CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE) |
300 | #define CPU_FTRS_8XX (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB) | 305 | #define CPU_FTRS_8XX (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB) |
@@ -330,13 +335,14 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start, | |||
330 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ | 335 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ |
331 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | 336 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
332 | CPU_FTR_COHERENT_ICACHE | CPU_FTR_LOCKLESS_TLBIE | \ | 337 | CPU_FTR_COHERENT_ICACHE | CPU_FTR_LOCKLESS_TLBIE | \ |
333 | CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE) | 338 | CPU_FTR_PURR | CPU_FTR_SPURR | CPU_FTR_REAL_LE | \ |
339 | CPU_FTR_DSCR) | ||
334 | #define CPU_FTRS_POWER6X (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \ | 340 | #define CPU_FTRS_POWER6X (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \ |
335 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ | 341 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ |
336 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | 342 | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
337 | CPU_FTR_COHERENT_ICACHE | CPU_FTR_LOCKLESS_TLBIE | \ | 343 | CPU_FTR_COHERENT_ICACHE | CPU_FTR_LOCKLESS_TLBIE | \ |
338 | CPU_FTR_PURR | CPU_FTR_CI_LARGE_PAGE | \ | 344 | CPU_FTR_PURR | CPU_FTR_CI_LARGE_PAGE | \ |
339 | CPU_FTR_SPURR | CPU_FTR_REAL_LE) | 345 | CPU_FTR_SPURR | CPU_FTR_REAL_LE | CPU_FTR_DSCR) |
340 | #define CPU_FTRS_CELL (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \ | 346 | #define CPU_FTRS_CELL (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB | \ |
341 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ | 347 | CPU_FTR_HPTE_TABLE | CPU_FTR_PPCAS_ARCH_V2 | CPU_FTR_CTRL | \ |
342 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ | 348 | CPU_FTR_ALTIVEC_COMP | CPU_FTR_MMCRA | CPU_FTR_SMT | \ |
@@ -364,7 +370,8 @@ enum { | |||
364 | CPU_FTRS_7450_21 | CPU_FTRS_7450_23 | CPU_FTRS_7455_1 | | 370 | CPU_FTRS_7450_21 | CPU_FTRS_7450_23 | CPU_FTRS_7455_1 | |
365 | CPU_FTRS_7455_20 | CPU_FTRS_7455 | CPU_FTRS_7447_10 | | 371 | CPU_FTRS_7455_20 | CPU_FTRS_7455 | CPU_FTRS_7447_10 | |
366 | CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX | | 372 | CPU_FTRS_7447 | CPU_FTRS_7447A | CPU_FTRS_82XX | |
367 | CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_CLASSIC32 | | 373 | CPU_FTRS_G2_LE | CPU_FTRS_E300 | CPU_FTRS_E300C2 | |
374 | CPU_FTRS_CLASSIC32 | | ||
368 | #else | 375 | #else |
369 | CPU_FTRS_GENERIC_32 | | 376 | CPU_FTRS_GENERIC_32 | |
370 | #endif | 377 | #endif |
@@ -403,7 +410,8 @@ enum { | |||
403 | CPU_FTRS_7450_21 & CPU_FTRS_7450_23 & CPU_FTRS_7455_1 & | 410 | CPU_FTRS_7450_21 & CPU_FTRS_7450_23 & CPU_FTRS_7455_1 & |
404 | CPU_FTRS_7455_20 & CPU_FTRS_7455 & CPU_FTRS_7447_10 & | 411 | CPU_FTRS_7455_20 & CPU_FTRS_7455 & CPU_FTRS_7447_10 & |
405 | CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX & | 412 | CPU_FTRS_7447 & CPU_FTRS_7447A & CPU_FTRS_82XX & |
406 | CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_CLASSIC32 & | 413 | CPU_FTRS_G2_LE & CPU_FTRS_E300 & CPU_FTRS_E300C2 & |
414 | CPU_FTRS_CLASSIC32 & | ||
407 | #else | 415 | #else |
408 | CPU_FTRS_GENERIC_32 & | 416 | CPU_FTRS_GENERIC_32 & |
409 | #endif | 417 | #endif |
diff --git a/include/asm-powerpc/dcr-native.h b/include/asm-powerpc/dcr-native.h index fd4a5f5e33d1..d7a1bc1551c6 100644 --- a/include/asm-powerpc/dcr-native.h +++ b/include/asm-powerpc/dcr-native.h | |||
@@ -20,8 +20,7 @@ | |||
20 | #ifndef _ASM_POWERPC_DCR_NATIVE_H | 20 | #ifndef _ASM_POWERPC_DCR_NATIVE_H |
21 | #define _ASM_POWERPC_DCR_NATIVE_H | 21 | #define _ASM_POWERPC_DCR_NATIVE_H |
22 | #ifdef __KERNEL__ | 22 | #ifdef __KERNEL__ |
23 | 23 | #ifndef __ASSEMBLY__ | |
24 | #include <asm/reg.h> | ||
25 | 24 | ||
26 | typedef struct {} dcr_host_t; | 25 | typedef struct {} dcr_host_t; |
27 | 26 | ||
@@ -32,7 +31,41 @@ typedef struct {} dcr_host_t; | |||
32 | #define dcr_read(host, dcr_n) mfdcr(dcr_n) | 31 | #define dcr_read(host, dcr_n) mfdcr(dcr_n) |
33 | #define dcr_write(host, dcr_n, value) mtdcr(dcr_n, value) | 32 | #define dcr_write(host, dcr_n, value) mtdcr(dcr_n, value) |
34 | 33 | ||
34 | /* Device Control Registers */ | ||
35 | void __mtdcr(int reg, unsigned int val); | ||
36 | unsigned int __mfdcr(int reg); | ||
37 | #define mfdcr(rn) \ | ||
38 | ({unsigned int rval; \ | ||
39 | if (__builtin_constant_p(rn)) \ | ||
40 | asm volatile("mfdcr %0," __stringify(rn) \ | ||
41 | : "=r" (rval)); \ | ||
42 | else \ | ||
43 | rval = __mfdcr(rn); \ | ||
44 | rval;}) | ||
45 | |||
46 | #define mtdcr(rn, v) \ | ||
47 | do { \ | ||
48 | if (__builtin_constant_p(rn)) \ | ||
49 | asm volatile("mtdcr " __stringify(rn) ",%0" \ | ||
50 | : : "r" (v)); \ | ||
51 | else \ | ||
52 | __mtdcr(rn, v); \ | ||
53 | } while (0) | ||
54 | |||
55 | /* R/W of indirect DCRs make use of standard naming conventions for DCRs */ | ||
56 | #define mfdcri(base, reg) \ | ||
57 | ({ \ | ||
58 | mtdcr(base ## _CFGADDR, base ## _ ## reg); \ | ||
59 | mfdcr(base ## _CFGDATA); \ | ||
60 | }) | ||
61 | |||
62 | #define mtdcri(base, reg, data) \ | ||
63 | do { \ | ||
64 | mtdcr(base ## _CFGADDR, base ## _ ## reg); \ | ||
65 | mtdcr(base ## _CFGDATA, data); \ | ||
66 | } while (0) | ||
35 | 67 | ||
68 | #endif /* __ASSEMBLY__ */ | ||
36 | #endif /* __KERNEL__ */ | 69 | #endif /* __KERNEL__ */ |
37 | #endif /* _ASM_POWERPC_DCR_NATIVE_H */ | 70 | #endif /* _ASM_POWERPC_DCR_NATIVE_H */ |
38 | 71 | ||
diff --git a/include/asm-powerpc/dcr.h b/include/asm-powerpc/dcr.h index 473f2c7fd892..b66c5e6941f0 100644 --- a/include/asm-powerpc/dcr.h +++ b/include/asm-powerpc/dcr.h | |||
@@ -20,6 +20,7 @@ | |||
20 | #ifndef _ASM_POWERPC_DCR_H | 20 | #ifndef _ASM_POWERPC_DCR_H |
21 | #define _ASM_POWERPC_DCR_H | 21 | #define _ASM_POWERPC_DCR_H |
22 | #ifdef __KERNEL__ | 22 | #ifdef __KERNEL__ |
23 | #ifdef CONFIG_PPC_DCR | ||
23 | 24 | ||
24 | #ifdef CONFIG_PPC_DCR_NATIVE | 25 | #ifdef CONFIG_PPC_DCR_NATIVE |
25 | #include <asm/dcr-native.h> | 26 | #include <asm/dcr-native.h> |
@@ -38,5 +39,6 @@ extern unsigned int dcr_resource_len(struct device_node *np, | |||
38 | unsigned int index); | 39 | unsigned int index); |
39 | #endif /* CONFIG_PPC_MERGE */ | 40 | #endif /* CONFIG_PPC_MERGE */ |
40 | 41 | ||
42 | #endif /* CONFIG_PPC_DCR */ | ||
41 | #endif /* __KERNEL__ */ | 43 | #endif /* __KERNEL__ */ |
42 | #endif /* _ASM_POWERPC_DCR_H */ | 44 | #endif /* _ASM_POWERPC_DCR_H */ |
diff --git a/include/asm-powerpc/hw_irq.h b/include/asm-powerpc/hw_irq.h index d604863d72fb..9e4dd98eb220 100644 --- a/include/asm-powerpc/hw_irq.h +++ b/include/asm-powerpc/hw_irq.h | |||
@@ -107,25 +107,6 @@ static inline void local_irq_save_ptr(unsigned long *flags) | |||
107 | 107 | ||
108 | #endif /* CONFIG_PPC64 */ | 108 | #endif /* CONFIG_PPC64 */ |
109 | 109 | ||
110 | #define mask_irq(irq) \ | ||
111 | ({ \ | ||
112 | irq_desc_t *desc = get_irq_desc(irq); \ | ||
113 | if (desc->chip && desc->chip->disable) \ | ||
114 | desc->chip->disable(irq); \ | ||
115 | }) | ||
116 | #define unmask_irq(irq) \ | ||
117 | ({ \ | ||
118 | irq_desc_t *desc = get_irq_desc(irq); \ | ||
119 | if (desc->chip && desc->chip->enable) \ | ||
120 | desc->chip->enable(irq); \ | ||
121 | }) | ||
122 | #define ack_irq(irq) \ | ||
123 | ({ \ | ||
124 | irq_desc_t *desc = get_irq_desc(irq); \ | ||
125 | if (desc->chip && desc->chip->ack) \ | ||
126 | desc->chip->ack(irq); \ | ||
127 | }) | ||
128 | |||
129 | /* | 110 | /* |
130 | * interrupt-retrigger: should we handle this via lost interrupts and IPIs | 111 | * interrupt-retrigger: should we handle this via lost interrupts and IPIs |
131 | * or should we not care like we do now ? --BenH. | 112 | * or should we not care like we do now ? --BenH. |
diff --git a/include/asm-powerpc/module.h b/include/asm-powerpc/module.h index 584fabfb4f08..e5f14b13ccf0 100644 --- a/include/asm-powerpc/module.h +++ b/include/asm-powerpc/module.h | |||
@@ -46,8 +46,6 @@ struct mod_arch_specific { | |||
46 | unsigned int num_bugs; | 46 | unsigned int num_bugs; |
47 | }; | 47 | }; |
48 | 48 | ||
49 | extern struct bug_entry *module_find_bug(unsigned long bugaddr); | ||
50 | |||
51 | /* | 49 | /* |
52 | * Select ELF headers. | 50 | * Select ELF headers. |
53 | * Make empty section for module_frob_arch_sections to expand. | 51 | * Make empty section for module_frob_arch_sections to expand. |
diff --git a/include/asm-powerpc/pci-bridge.h b/include/asm-powerpc/pci-bridge.h index 7bb7f9009806..cb02c9d1ef93 100644 --- a/include/asm-powerpc/pci-bridge.h +++ b/include/asm-powerpc/pci-bridge.h | |||
@@ -31,12 +31,12 @@ struct pci_controller { | |||
31 | int last_busno; | 31 | int last_busno; |
32 | 32 | ||
33 | void __iomem *io_base_virt; | 33 | void __iomem *io_base_virt; |
34 | unsigned long io_base_phys; | 34 | resource_size_t io_base_phys; |
35 | 35 | ||
36 | /* Some machines have a non 1:1 mapping of | 36 | /* Some machines have a non 1:1 mapping of |
37 | * the PCI memory space in the CPU bus space | 37 | * the PCI memory space in the CPU bus space |
38 | */ | 38 | */ |
39 | unsigned long pci_mem_offset; | 39 | resource_size_t pci_mem_offset; |
40 | unsigned long pci_io_size; | 40 | unsigned long pci_io_size; |
41 | 41 | ||
42 | struct pci_ops *ops; | 42 | struct pci_ops *ops; |
diff --git a/include/asm-powerpc/pci.h b/include/asm-powerpc/pci.h index 16f13319c769..ac656ee6bb19 100644 --- a/include/asm-powerpc/pci.h +++ b/include/asm-powerpc/pci.h | |||
@@ -143,8 +143,13 @@ int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma, | |||
143 | /* Tell drivers/pci/proc.c that we have pci_mmap_page_range() */ | 143 | /* Tell drivers/pci/proc.c that we have pci_mmap_page_range() */ |
144 | #define HAVE_PCI_MMAP 1 | 144 | #define HAVE_PCI_MMAP 1 |
145 | 145 | ||
146 | #ifdef CONFIG_PPC64 | 146 | #if defined(CONFIG_PPC64) || defined(CONFIG_NOT_COHERENT_CACHE) |
147 | /* pci_unmap_{single,page} is not a nop, thus... */ | 147 | /* |
148 | * For 64-bit kernels, pci_unmap_{single,page} is not a nop. | ||
149 | * For 32-bit non-coherent kernels, pci_dma_sync_single_for_cpu() and | ||
150 | * so on are not nops. | ||
151 | * and thus... | ||
152 | */ | ||
148 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ | 153 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ |
149 | dma_addr_t ADDR_NAME; | 154 | dma_addr_t ADDR_NAME; |
150 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ | 155 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ |
@@ -158,6 +163,20 @@ int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma, | |||
158 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ | 163 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ |
159 | (((PTR)->LEN_NAME) = (VAL)) | 164 | (((PTR)->LEN_NAME) = (VAL)) |
160 | 165 | ||
166 | #else /* 32-bit && coherent */ | ||
167 | |||
168 | /* pci_unmap_{page,single} is a nop so... */ | ||
169 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) | ||
170 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) | ||
171 | #define pci_unmap_addr(PTR, ADDR_NAME) (0) | ||
172 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) | ||
173 | #define pci_unmap_len(PTR, LEN_NAME) (0) | ||
174 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | ||
175 | |||
176 | #endif /* CONFIG_PPC64 || CONFIG_NOT_COHERENT_CACHE */ | ||
177 | |||
178 | #ifdef CONFIG_PPC64 | ||
179 | |||
161 | /* The PCI address space does not equal the physical memory address | 180 | /* The PCI address space does not equal the physical memory address |
162 | * space (we have an IOMMU). The IDE and SCSI device layers use | 181 | * space (we have an IOMMU). The IDE and SCSI device layers use |
163 | * this boolean for bounce buffer decisions. | 182 | * this boolean for bounce buffer decisions. |
@@ -172,16 +191,8 @@ int pci_mmap_page_range(struct pci_dev *pdev, struct vm_area_struct *vma, | |||
172 | */ | 191 | */ |
173 | #define PCI_DMA_BUS_IS_PHYS (1) | 192 | #define PCI_DMA_BUS_IS_PHYS (1) |
174 | 193 | ||
175 | /* pci_unmap_{page,single} is a nop so... */ | ||
176 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) | ||
177 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) | ||
178 | #define pci_unmap_addr(PTR, ADDR_NAME) (0) | ||
179 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) | ||
180 | #define pci_unmap_len(PTR, LEN_NAME) (0) | ||
181 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | ||
182 | |||
183 | #endif /* CONFIG_PPC64 */ | 194 | #endif /* CONFIG_PPC64 */ |
184 | 195 | ||
185 | extern void pcibios_resource_to_bus(struct pci_dev *dev, | 196 | extern void pcibios_resource_to_bus(struct pci_dev *dev, |
186 | struct pci_bus_region *region, | 197 | struct pci_bus_region *region, |
187 | struct resource *res); | 198 | struct resource *res); |
diff --git a/include/asm-powerpc/reg.h b/include/asm-powerpc/reg.h index 6faae7b14d55..a3631b15754c 100644 --- a/include/asm-powerpc/reg.h +++ b/include/asm-powerpc/reg.h | |||
@@ -143,6 +143,7 @@ | |||
143 | 143 | ||
144 | /* Special Purpose Registers (SPRNs)*/ | 144 | /* Special Purpose Registers (SPRNs)*/ |
145 | #define SPRN_CTR 0x009 /* Count Register */ | 145 | #define SPRN_CTR 0x009 /* Count Register */ |
146 | #define SPRN_DSCR 0x11 | ||
146 | #define SPRN_CTRLF 0x088 | 147 | #define SPRN_CTRLF 0x088 |
147 | #define SPRN_CTRLT 0x098 | 148 | #define SPRN_CTRLT 0x098 |
148 | #define CTRL_CT 0xc0000000 /* current thread */ | 149 | #define CTRL_CT 0xc0000000 /* current thread */ |
@@ -163,6 +164,7 @@ | |||
163 | #define SPRN_TBRU 0x10D /* Time Base Read Upper Register (user, R/O) */ | 164 | #define SPRN_TBRU 0x10D /* Time Base Read Upper Register (user, R/O) */ |
164 | #define SPRN_TBWL 0x11C /* Time Base Lower Register (super, R/W) */ | 165 | #define SPRN_TBWL 0x11C /* Time Base Lower Register (super, R/W) */ |
165 | #define SPRN_TBWU 0x11D /* Time Base Upper Register (super, R/W) */ | 166 | #define SPRN_TBWU 0x11D /* Time Base Upper Register (super, R/W) */ |
167 | #define SPRN_SPURR 0x134 /* Scaled PURR */ | ||
166 | #define SPRN_HIOR 0x137 /* 970 Hypervisor interrupt offset */ | 168 | #define SPRN_HIOR 0x137 /* 970 Hypervisor interrupt offset */ |
167 | #define SPRN_DBAT0L 0x219 /* Data BAT 0 Lower Register */ | 169 | #define SPRN_DBAT0L 0x219 /* Data BAT 0 Lower Register */ |
168 | #define SPRN_DBAT0U 0x218 /* Data BAT 0 Upper Register */ | 170 | #define SPRN_DBAT0U 0x218 /* Data BAT 0 Upper Register */ |
diff --git a/include/asm-powerpc/rtas.h b/include/asm-powerpc/rtas.h index 5a0c136c0416..8eaa7b28d9d0 100644 --- a/include/asm-powerpc/rtas.h +++ b/include/asm-powerpc/rtas.h | |||
@@ -159,6 +159,7 @@ extern struct rtas_t rtas; | |||
159 | 159 | ||
160 | extern void enter_rtas(unsigned long); | 160 | extern void enter_rtas(unsigned long); |
161 | extern int rtas_token(const char *service); | 161 | extern int rtas_token(const char *service); |
162 | extern int rtas_service_present(const char *service); | ||
162 | extern int rtas_call(int token, int, int, int *, ...); | 163 | extern int rtas_call(int token, int, int, int *, ...); |
163 | extern void rtas_restart(char *cmd); | 164 | extern void rtas_restart(char *cmd); |
164 | extern void rtas_power_off(void); | 165 | extern void rtas_power_off(void); |
@@ -221,8 +222,6 @@ extern int rtas_get_error_log_max(void); | |||
221 | extern spinlock_t rtas_data_buf_lock; | 222 | extern spinlock_t rtas_data_buf_lock; |
222 | extern char rtas_data_buf[RTAS_DATA_BUF_SIZE]; | 223 | extern char rtas_data_buf[RTAS_DATA_BUF_SIZE]; |
223 | 224 | ||
224 | extern void rtas_stop_self(void); | ||
225 | |||
226 | /* RMO buffer reserved for user-space RTAS use */ | 225 | /* RMO buffer reserved for user-space RTAS use */ |
227 | extern unsigned long rtas_rmo_buf; | 226 | extern unsigned long rtas_rmo_buf; |
228 | 227 | ||
diff --git a/include/asm-ppc/pci-bridge.h b/include/asm-ppc/pci-bridge.h index 6c955d0c1ef0..4d35b844bc58 100644 --- a/include/asm-ppc/pci-bridge.h +++ b/include/asm-ppc/pci-bridge.h | |||
@@ -20,8 +20,8 @@ extern unsigned long pci_bus_mem_base_phys(unsigned int bus); | |||
20 | extern struct pci_controller* pcibios_alloc_controller(void); | 20 | extern struct pci_controller* pcibios_alloc_controller(void); |
21 | 21 | ||
22 | /* Helper function for setting up resources */ | 22 | /* Helper function for setting up resources */ |
23 | extern void pci_init_resource(struct resource *res, unsigned long start, | 23 | extern void pci_init_resource(struct resource *res, resource_size_t start, |
24 | unsigned long end, int flags, char *name); | 24 | resource_size_t end, int flags, char *name); |
25 | 25 | ||
26 | /* Get the PCI host controller for a bus */ | 26 | /* Get the PCI host controller for a bus */ |
27 | extern struct pci_controller* pci_bus_to_hose(int bus); | 27 | extern struct pci_controller* pci_bus_to_hose(int bus); |
@@ -50,12 +50,12 @@ struct pci_controller { | |||
50 | int bus_offset; | 50 | int bus_offset; |
51 | 51 | ||
52 | void __iomem *io_base_virt; | 52 | void __iomem *io_base_virt; |
53 | unsigned long io_base_phys; | 53 | resource_size_t io_base_phys; |
54 | 54 | ||
55 | /* Some machines (PReP) have a non 1:1 mapping of | 55 | /* Some machines (PReP) have a non 1:1 mapping of |
56 | * the PCI memory space in the CPU bus space | 56 | * the PCI memory space in the CPU bus space |
57 | */ | 57 | */ |
58 | unsigned long pci_mem_offset; | 58 | resource_size_t pci_mem_offset; |
59 | 59 | ||
60 | struct pci_ops *ops; | 60 | struct pci_ops *ops; |
61 | volatile unsigned int __iomem *cfg_addr; | 61 | volatile unsigned int __iomem *cfg_addr; |
diff --git a/include/asm-ppc/pci.h b/include/asm-ppc/pci.h index 11ffaaa5da16..9d162028dab9 100644 --- a/include/asm-ppc/pci.h +++ b/include/asm-ppc/pci.h | |||
@@ -61,6 +61,27 @@ extern unsigned long pci_bus_to_phys(unsigned int ba, int busnr); | |||
61 | */ | 61 | */ |
62 | #define PCI_DMA_BUS_IS_PHYS (1) | 62 | #define PCI_DMA_BUS_IS_PHYS (1) |
63 | 63 | ||
64 | #ifdef CONFIG_NOT_COHERENT_CACHE | ||
65 | /* | ||
66 | * pci_unmap_{page,single} are NOPs but pci_dma_sync_single_for_cpu() | ||
67 | * and so on are not, so... | ||
68 | */ | ||
69 | |||
70 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ | ||
71 | dma_addr_t ADDR_NAME; | ||
72 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ | ||
73 | __u32 LEN_NAME; | ||
74 | #define pci_unmap_addr(PTR, ADDR_NAME) \ | ||
75 | ((PTR)->ADDR_NAME) | ||
76 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) \ | ||
77 | (((PTR)->ADDR_NAME) = (VAL)) | ||
78 | #define pci_unmap_len(PTR, LEN_NAME) \ | ||
79 | ((PTR)->LEN_NAME) | ||
80 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ | ||
81 | (((PTR)->LEN_NAME) = (VAL)) | ||
82 | |||
83 | #else /* coherent */ | ||
84 | |||
64 | /* pci_unmap_{page,single} is a nop so... */ | 85 | /* pci_unmap_{page,single} is a nop so... */ |
65 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) | 86 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) |
66 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) | 87 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) |
@@ -69,6 +90,8 @@ extern unsigned long pci_bus_to_phys(unsigned int ba, int busnr); | |||
69 | #define pci_unmap_len(PTR, LEN_NAME) (0) | 90 | #define pci_unmap_len(PTR, LEN_NAME) (0) |
70 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | 91 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) |
71 | 92 | ||
93 | #endif /* CONFIG_NOT_COHERENT_CACHE */ | ||
94 | |||
72 | #ifdef CONFIG_PCI | 95 | #ifdef CONFIG_PCI |
73 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, | 96 | static inline void pci_dma_burst_advice(struct pci_dev *pdev, |
74 | enum pci_dma_burst_strategy *strat, | 97 | enum pci_dma_burst_strategy *strat, |
diff --git a/include/asm-ppc/reg_booke.h b/include/asm-ppc/reg_booke.h index 602fbadeaf48..a263fc1e65c4 100644 --- a/include/asm-ppc/reg_booke.h +++ b/include/asm-ppc/reg_booke.h | |||
@@ -9,41 +9,9 @@ | |||
9 | #ifndef __ASM_PPC_REG_BOOKE_H__ | 9 | #ifndef __ASM_PPC_REG_BOOKE_H__ |
10 | #define __ASM_PPC_REG_BOOKE_H__ | 10 | #define __ASM_PPC_REG_BOOKE_H__ |
11 | 11 | ||
12 | #ifndef __ASSEMBLY__ | 12 | #include <asm/dcr.h> |
13 | /* Device Control Registers */ | ||
14 | void __mtdcr(int reg, unsigned int val); | ||
15 | unsigned int __mfdcr(int reg); | ||
16 | #define mfdcr(rn) \ | ||
17 | ({unsigned int rval; \ | ||
18 | if (__builtin_constant_p(rn)) \ | ||
19 | asm volatile("mfdcr %0," __stringify(rn) \ | ||
20 | : "=r" (rval)); \ | ||
21 | else \ | ||
22 | rval = __mfdcr(rn); \ | ||
23 | rval;}) | ||
24 | |||
25 | #define mtdcr(rn, v) \ | ||
26 | do { \ | ||
27 | if (__builtin_constant_p(rn)) \ | ||
28 | asm volatile("mtdcr " __stringify(rn) ",%0" \ | ||
29 | : : "r" (v)); \ | ||
30 | else \ | ||
31 | __mtdcr(rn, v); \ | ||
32 | } while (0) | ||
33 | |||
34 | /* R/W of indirect DCRs make use of standard naming conventions for DCRs */ | ||
35 | #define mfdcri(base, reg) \ | ||
36 | ({ \ | ||
37 | mtdcr(base ## _CFGADDR, base ## _ ## reg); \ | ||
38 | mfdcr(base ## _CFGDATA); \ | ||
39 | }) | ||
40 | |||
41 | #define mtdcri(base, reg, data) \ | ||
42 | do { \ | ||
43 | mtdcr(base ## _CFGADDR, base ## _ ## reg); \ | ||
44 | mtdcr(base ## _CFGDATA, data); \ | ||
45 | } while (0) | ||
46 | 13 | ||
14 | #ifndef __ASSEMBLY__ | ||
47 | /* Performance Monitor Registers */ | 15 | /* Performance Monitor Registers */ |
48 | #define mfpmr(rn) ({unsigned int rval; \ | 16 | #define mfpmr(rn) ({unsigned int rval; \ |
49 | asm volatile("mfpmr %0," __stringify(rn) \ | 17 | asm volatile("mfpmr %0," __stringify(rn) \ |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index e1c7286165ff..ea330d7b46c0 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -342,7 +342,6 @@ typedef void (unplug_fn) (request_queue_t *); | |||
342 | 342 | ||
343 | struct bio_vec; | 343 | struct bio_vec; |
344 | typedef int (merge_bvec_fn) (request_queue_t *, struct bio *, struct bio_vec *); | 344 | typedef int (merge_bvec_fn) (request_queue_t *, struct bio *, struct bio_vec *); |
345 | typedef void (activity_fn) (void *data, int rw); | ||
346 | typedef int (issue_flush_fn) (request_queue_t *, struct gendisk *, sector_t *); | 345 | typedef int (issue_flush_fn) (request_queue_t *, struct gendisk *, sector_t *); |
347 | typedef void (prepare_flush_fn) (request_queue_t *, struct request *); | 346 | typedef void (prepare_flush_fn) (request_queue_t *, struct request *); |
348 | typedef void (softirq_done_fn)(struct request *); | 347 | typedef void (softirq_done_fn)(struct request *); |
@@ -384,7 +383,6 @@ struct request_queue | |||
384 | prep_rq_fn *prep_rq_fn; | 383 | prep_rq_fn *prep_rq_fn; |
385 | unplug_fn *unplug_fn; | 384 | unplug_fn *unplug_fn; |
386 | merge_bvec_fn *merge_bvec_fn; | 385 | merge_bvec_fn *merge_bvec_fn; |
387 | activity_fn *activity_fn; | ||
388 | issue_flush_fn *issue_flush_fn; | 386 | issue_flush_fn *issue_flush_fn; |
389 | prepare_flush_fn *prepare_flush_fn; | 387 | prepare_flush_fn *prepare_flush_fn; |
390 | softirq_done_fn *softirq_done_fn; | 388 | softirq_done_fn *softirq_done_fn; |
@@ -411,8 +409,6 @@ struct request_queue | |||
411 | */ | 409 | */ |
412 | void *queuedata; | 410 | void *queuedata; |
413 | 411 | ||
414 | void *activity_data; | ||
415 | |||
416 | /* | 412 | /* |
417 | * queue needs bounce pages for pages above this limit | 413 | * queue needs bounce pages for pages above this limit |
418 | */ | 414 | */ |
@@ -677,7 +673,6 @@ extern void blk_sync_queue(struct request_queue *q); | |||
677 | extern void __blk_stop_queue(request_queue_t *q); | 673 | extern void __blk_stop_queue(request_queue_t *q); |
678 | extern void blk_run_queue(request_queue_t *); | 674 | extern void blk_run_queue(request_queue_t *); |
679 | extern void blk_start_queueing(request_queue_t *); | 675 | extern void blk_start_queueing(request_queue_t *); |
680 | extern void blk_queue_activity_fn(request_queue_t *, activity_fn *, void *); | ||
681 | extern int blk_rq_map_user(request_queue_t *, struct request *, void __user *, unsigned long); | 676 | extern int blk_rq_map_user(request_queue_t *, struct request *, void __user *, unsigned long); |
682 | extern int blk_rq_unmap_user(struct request *); | 677 | extern int blk_rq_unmap_user(struct request *); |
683 | extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, gfp_t); | 678 | extern int blk_rq_map_kern(request_queue_t *, struct request *, void *, unsigned int, gfp_t); |
diff --git a/include/linux/dccp.h b/include/linux/dccp.h index ed6cc8962d87..1cb054bd93f2 100644 --- a/include/linux/dccp.h +++ b/include/linux/dccp.h | |||
@@ -176,20 +176,20 @@ enum { | |||
176 | }; | 176 | }; |
177 | 177 | ||
178 | /* DCCP features (RFC 4340 section 6.4) */ | 178 | /* DCCP features (RFC 4340 section 6.4) */ |
179 | enum { | 179 | enum { |
180 | DCCPF_RESERVED = 0, | 180 | DCCPF_RESERVED = 0, |
181 | DCCPF_CCID = 1, | 181 | DCCPF_CCID = 1, |
182 | DCCPF_SHORT_SEQNOS = 2, /* XXX: not yet implemented */ | 182 | DCCPF_SHORT_SEQNOS = 2, /* XXX: not yet implemented */ |
183 | DCCPF_SEQUENCE_WINDOW = 3, | 183 | DCCPF_SEQUENCE_WINDOW = 3, |
184 | DCCPF_ECN_INCAPABLE = 4, /* XXX: not yet implemented */ | 184 | DCCPF_ECN_INCAPABLE = 4, /* XXX: not yet implemented */ |
185 | DCCPF_ACK_RATIO = 5, | 185 | DCCPF_ACK_RATIO = 5, |
186 | DCCPF_SEND_ACK_VECTOR = 6, | 186 | DCCPF_SEND_ACK_VECTOR = 6, |
187 | DCCPF_SEND_NDP_COUNT = 7, | 187 | DCCPF_SEND_NDP_COUNT = 7, |
188 | DCCPF_MIN_CSUM_COVER = 8, | 188 | DCCPF_MIN_CSUM_COVER = 8, |
189 | DCCPF_DATA_CHECKSUM = 9, /* XXX: not yet implemented */ | 189 | DCCPF_DATA_CHECKSUM = 9, /* XXX: not yet implemented */ |
190 | /* 10-127 reserved */ | 190 | /* 10-127 reserved */ |
191 | DCCPF_MIN_CCID_SPECIFIC = 128, | 191 | DCCPF_MIN_CCID_SPECIFIC = 128, |
192 | DCCPF_MAX_CCID_SPECIFIC = 255, | 192 | DCCPF_MAX_CCID_SPECIFIC = 255, |
193 | }; | 193 | }; |
194 | 194 | ||
195 | /* this structure is argument to DCCP_SOCKOPT_CHANGE_X */ | 195 | /* this structure is argument to DCCP_SOCKOPT_CHANGE_X */ |
@@ -427,7 +427,7 @@ struct dccp_service_list { | |||
427 | }; | 427 | }; |
428 | 428 | ||
429 | #define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1) | 429 | #define DCCP_SERVICE_INVALID_VALUE htonl((__u32)-1) |
430 | #define DCCP_SERVICE_CODE_IS_ABSENT 0 | 430 | #define DCCP_SERVICE_CODE_IS_ABSENT 0 |
431 | 431 | ||
432 | static inline int dccp_list_has_service(const struct dccp_service_list *sl, | 432 | static inline int dccp_list_has_service(const struct dccp_service_list *sl, |
433 | const __be32 service) | 433 | const __be32 service) |
@@ -436,7 +436,7 @@ static inline int dccp_list_has_service(const struct dccp_service_list *sl, | |||
436 | u32 i = sl->dccpsl_nr; | 436 | u32 i = sl->dccpsl_nr; |
437 | while (i--) | 437 | while (i--) |
438 | if (sl->dccpsl_list[i] == service) | 438 | if (sl->dccpsl_list[i] == service) |
439 | return 1; | 439 | return 1; |
440 | } | 440 | } |
441 | return 0; | 441 | return 0; |
442 | } | 442 | } |
@@ -511,7 +511,7 @@ struct dccp_sock { | |||
511 | __u8 dccps_hc_tx_insert_options:1; | 511 | __u8 dccps_hc_tx_insert_options:1; |
512 | struct timer_list dccps_xmit_timer; | 512 | struct timer_list dccps_xmit_timer; |
513 | }; | 513 | }; |
514 | 514 | ||
515 | static inline struct dccp_sock *dccp_sk(const struct sock *sk) | 515 | static inline struct dccp_sock *dccp_sk(const struct sock *sk) |
516 | { | 516 | { |
517 | return (struct dccp_sock *)sk; | 517 | return (struct dccp_sock *)sk; |
diff --git a/include/linux/fsl_devices.h b/include/linux/fsl_devices.h index 3da29e2d524a..abb64c437f6f 100644 --- a/include/linux/fsl_devices.h +++ b/include/linux/fsl_devices.h | |||
@@ -19,6 +19,7 @@ | |||
19 | #define _FSL_DEVICE_H_ | 19 | #define _FSL_DEVICE_H_ |
20 | 20 | ||
21 | #include <linux/types.h> | 21 | #include <linux/types.h> |
22 | #include <linux/phy.h> | ||
22 | 23 | ||
23 | /* | 24 | /* |
24 | * Some conventions on how we handle peripherals on Freescale chips | 25 | * Some conventions on how we handle peripherals on Freescale chips |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 64e070f62a87..e26a03981a94 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -804,8 +804,6 @@ typedef struct hwif_s { | |||
804 | void *hwif_data; /* extra hwif data */ | 804 | void *hwif_data; /* extra hwif data */ |
805 | 805 | ||
806 | unsigned dma; | 806 | unsigned dma; |
807 | |||
808 | void (*led_act)(void *data, int rw); | ||
809 | } ____cacheline_internodealigned_in_smp ide_hwif_t; | 807 | } ____cacheline_internodealigned_in_smp ide_hwif_t; |
810 | 808 | ||
811 | /* | 809 | /* |
diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h index 46000936f8f1..6b0648cfdffc 100644 --- a/include/linux/seqlock.h +++ b/include/linux/seqlock.h | |||
@@ -44,8 +44,11 @@ typedef struct { | |||
44 | #define SEQLOCK_UNLOCKED \ | 44 | #define SEQLOCK_UNLOCKED \ |
45 | __SEQLOCK_UNLOCKED(old_style_seqlock_init) | 45 | __SEQLOCK_UNLOCKED(old_style_seqlock_init) |
46 | 46 | ||
47 | #define seqlock_init(x) \ | 47 | #define seqlock_init(x) \ |
48 | do { *(x) = (seqlock_t) __SEQLOCK_UNLOCKED(x); } while (0) | 48 | do { \ |
49 | (x)->sequence = 0; \ | ||
50 | spin_lock_init(&(x)->lock); \ | ||
51 | } while (0) | ||
49 | 52 | ||
50 | #define DEFINE_SEQLOCK(x) \ | 53 | #define DEFINE_SEQLOCK(x) \ |
51 | seqlock_t x = __SEQLOCK_UNLOCKED(x) | 54 | seqlock_t x = __SEQLOCK_UNLOCKED(x) |
diff --git a/include/linux/tfrc.h b/include/linux/tfrc.h index 31a9b25276fe..8a8462b4a4dd 100644 --- a/include/linux/tfrc.h +++ b/include/linux/tfrc.h | |||
@@ -37,10 +37,14 @@ struct tfrc_rx_info { | |||
37 | * @tfrctx_p: current loss event rate (5.4) | 37 | * @tfrctx_p: current loss event rate (5.4) |
38 | * @tfrctx_rto: estimate of RTO, equals 4*RTT (4.3) | 38 | * @tfrctx_rto: estimate of RTO, equals 4*RTT (4.3) |
39 | * @tfrctx_ipi: inter-packet interval (4.6) | 39 | * @tfrctx_ipi: inter-packet interval (4.6) |
40 | * | ||
41 | * Note: X and X_recv are both maintained in units of 64 * bytes/second. This | ||
42 | * enables a finer resolution of sending rates and avoids problems with | ||
43 | * integer arithmetic; u32 is not sufficient as scaling consumes 6 bits. | ||
40 | */ | 44 | */ |
41 | struct tfrc_tx_info { | 45 | struct tfrc_tx_info { |
42 | __u32 tfrctx_x; | 46 | __u64 tfrctx_x; |
43 | __u32 tfrctx_x_recv; | 47 | __u64 tfrctx_x_recv; |
44 | __u32 tfrctx_x_calc; | 48 | __u32 tfrctx_x_calc; |
45 | __u32 tfrctx_rtt; | 49 | __u32 tfrctx_rtt; |
46 | __u32 tfrctx_p; | 50 | __u32 tfrctx_p; |
diff --git a/include/net/ax25.h b/include/net/ax25.h index e1d116f11923..14b72d868f03 100644 --- a/include/net/ax25.h +++ b/include/net/ax25.h | |||
@@ -285,6 +285,8 @@ extern struct sock *ax25_make_new(struct sock *, struct ax25_dev *); | |||
285 | extern const ax25_address ax25_bcast; | 285 | extern const ax25_address ax25_bcast; |
286 | extern const ax25_address ax25_defaddr; | 286 | extern const ax25_address ax25_defaddr; |
287 | extern const ax25_address null_ax25_address; | 287 | extern const ax25_address null_ax25_address; |
288 | extern char *ax2asc(char *buf, const ax25_address *); | ||
289 | extern void asc2ax(ax25_address *addr, const char *callsign); | ||
288 | extern int ax25cmp(const ax25_address *, const ax25_address *); | 290 | extern int ax25cmp(const ax25_address *, const ax25_address *); |
289 | extern int ax25digicmp(const ax25_digi *, const ax25_digi *); | 291 | extern int ax25digicmp(const ax25_digi *, const ax25_digi *); |
290 | extern const unsigned char *ax25_addr_parse(const unsigned char *, int, | 292 | extern const unsigned char *ax25_addr_parse(const unsigned char *, int, |