diff options
Diffstat (limited to 'arch')
97 files changed, 817 insertions, 1550 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index a0cdaafa115b..a7e9fea978a6 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -1040,6 +1040,8 @@ source "drivers/power/Kconfig" | |||
1040 | 1040 | ||
1041 | source "drivers/hwmon/Kconfig" | 1041 | source "drivers/hwmon/Kconfig" |
1042 | 1042 | ||
1043 | source "drivers/watchdog/Kconfig" | ||
1044 | |||
1043 | source "drivers/ssb/Kconfig" | 1045 | source "drivers/ssb/Kconfig" |
1044 | 1046 | ||
1045 | #source "drivers/l3/Kconfig" | 1047 | #source "drivers/l3/Kconfig" |
diff --git a/arch/arm/mach-netx/xc.c b/arch/arm/mach-netx/xc.c index bd5184fe177c..ca9c5b61283a 100644 --- a/arch/arm/mach-netx/xc.c +++ b/arch/arm/mach-netx/xc.c | |||
@@ -190,15 +190,15 @@ struct xc *request_xc(int xcno, struct device *dev) | |||
190 | goto exit; | 190 | goto exit; |
191 | 191 | ||
192 | if (!request_mem_region | 192 | if (!request_mem_region |
193 | (NETX_PA_XPEC(xcno), XPEC_MEM_SIZE, kobject_name(dev->kobj))) | 193 | (NETX_PA_XPEC(xcno), XPEC_MEM_SIZE, kobject_name(&dev->kobj))) |
194 | goto exit_free; | 194 | goto exit_free; |
195 | 195 | ||
196 | if (!request_mem_region | 196 | if (!request_mem_region |
197 | (NETX_PA_XMAC(xcno), XMAC_MEM_SIZE, kobject_name(dev->kobj))) | 197 | (NETX_PA_XMAC(xcno), XMAC_MEM_SIZE, kobject_name(&dev->kobj))) |
198 | goto exit_release_1; | 198 | goto exit_release_1; |
199 | 199 | ||
200 | if (!request_mem_region | 200 | if (!request_mem_region |
201 | (SRAM_INTERNAL_PHYS(xcno), SRAM_MEM_SIZE, kobject_name(dev->kobj))) | 201 | (SRAM_INTERNAL_PHYS(xcno), SRAM_MEM_SIZE, kobject_name(&dev->kobj))) |
202 | goto exit_release_2; | 202 | goto exit_release_2; |
203 | 203 | ||
204 | x->xpec_base = (void * __iomem)io_p2v(NETX_PA_XPEC(xcno)); | 204 | x->xpec_base = (void * __iomem)io_p2v(NETX_PA_XPEC(xcno)); |
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c index a2d45d742ce4..fbfa1920353d 100644 --- a/arch/arm/mach-pxa/time.c +++ b/arch/arm/mach-pxa/time.c | |||
@@ -68,6 +68,7 @@ pxa_ost0_interrupt(int irq, void *dev_id) | |||
68 | if (c->mode == CLOCK_EVT_MODE_ONESHOT) { | 68 | if (c->mode == CLOCK_EVT_MODE_ONESHOT) { |
69 | /* Disarm the compare/match, signal the event. */ | 69 | /* Disarm the compare/match, signal the event. */ |
70 | OIER &= ~OIER_E0; | 70 | OIER &= ~OIER_E0; |
71 | OSSR = OSSR_M0; | ||
71 | c->event_handler(c); | 72 | c->event_handler(c); |
72 | } else if (c->mode == CLOCK_EVT_MODE_PERIODIC) { | 73 | } else if (c->mode == CLOCK_EVT_MODE_PERIODIC) { |
73 | /* Call the event handler as many times as necessary | 74 | /* Call the event handler as many times as necessary |
@@ -100,9 +101,9 @@ pxa_ost0_interrupt(int irq, void *dev_id) | |||
100 | * anything that might put us "very close". | 101 | * anything that might put us "very close". |
101 | */ | 102 | */ |
102 | #define MIN_OSCR_DELTA 16 | 103 | #define MIN_OSCR_DELTA 16 |
103 | do { | 104 | do { |
104 | OSSR = OSSR_M0; | 105 | OSSR = OSSR_M0; |
105 | next_match = (OSMR0 += LATCH); | 106 | next_match = (OSMR0 += LATCH); |
106 | c->event_handler(c); | 107 | c->event_handler(c); |
107 | } while (((signed long)(next_match - OSCR) <= MIN_OSCR_DELTA) | 108 | } while (((signed long)(next_match - OSCR) <= MIN_OSCR_DELTA) |
108 | && (c->mode == CLOCK_EVT_MODE_PERIODIC)); | 109 | && (c->mode == CLOCK_EVT_MODE_PERIODIC)); |
@@ -114,14 +115,16 @@ pxa_ost0_interrupt(int irq, void *dev_id) | |||
114 | static int | 115 | static int |
115 | pxa_osmr0_set_next_event(unsigned long delta, struct clock_event_device *dev) | 116 | pxa_osmr0_set_next_event(unsigned long delta, struct clock_event_device *dev) |
116 | { | 117 | { |
117 | unsigned long irqflags; | 118 | unsigned long flags, next, oscr; |
118 | 119 | ||
119 | raw_local_irq_save(irqflags); | 120 | raw_local_irq_save(flags); |
120 | OSMR0 = OSCR + delta; | ||
121 | OSSR = OSSR_M0; | ||
122 | OIER |= OIER_E0; | 121 | OIER |= OIER_E0; |
123 | raw_local_irq_restore(irqflags); | 122 | next = OSCR + delta; |
124 | return 0; | 123 | OSMR0 = next; |
124 | oscr = OSCR; | ||
125 | raw_local_irq_restore(flags); | ||
126 | |||
127 | return (signed)(next - oscr) <= MIN_OSCR_DELTA ? -ETIME : 0; | ||
125 | } | 128 | } |
126 | 129 | ||
127 | static void | 130 | static void |
@@ -132,15 +135,16 @@ pxa_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *dev) | |||
132 | switch (mode) { | 135 | switch (mode) { |
133 | case CLOCK_EVT_MODE_PERIODIC: | 136 | case CLOCK_EVT_MODE_PERIODIC: |
134 | raw_local_irq_save(irqflags); | 137 | raw_local_irq_save(irqflags); |
135 | OSMR0 = OSCR + LATCH; | ||
136 | OSSR = OSSR_M0; | 138 | OSSR = OSSR_M0; |
137 | OIER |= OIER_E0; | 139 | OIER |= OIER_E0; |
140 | OSMR0 = OSCR + LATCH; | ||
138 | raw_local_irq_restore(irqflags); | 141 | raw_local_irq_restore(irqflags); |
139 | break; | 142 | break; |
140 | 143 | ||
141 | case CLOCK_EVT_MODE_ONESHOT: | 144 | case CLOCK_EVT_MODE_ONESHOT: |
142 | raw_local_irq_save(irqflags); | 145 | raw_local_irq_save(irqflags); |
143 | OIER &= ~OIER_E0; | 146 | OIER &= ~OIER_E0; |
147 | OSSR = OSSR_M0; | ||
144 | raw_local_irq_restore(irqflags); | 148 | raw_local_irq_restore(irqflags); |
145 | break; | 149 | break; |
146 | 150 | ||
@@ -149,6 +153,7 @@ pxa_osmr0_set_mode(enum clock_event_mode mode, struct clock_event_device *dev) | |||
149 | /* initializing, released, or preparing for suspend */ | 153 | /* initializing, released, or preparing for suspend */ |
150 | raw_local_irq_save(irqflags); | 154 | raw_local_irq_save(irqflags); |
151 | OIER &= ~OIER_E0; | 155 | OIER &= ~OIER_E0; |
156 | OSSR = OSSR_M0; | ||
152 | raw_local_irq_restore(irqflags); | 157 | raw_local_irq_restore(irqflags); |
153 | break; | 158 | break; |
154 | 159 | ||
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c index 4493bcff5172..ee40c1a0b83d 100644 --- a/arch/arm/plat-omap/fb.c +++ b/arch/arm/plat-omap/fb.c | |||
@@ -171,7 +171,7 @@ static int check_fbmem_region(int region_idx, struct omapfb_mem_region *rg, | |||
171 | * Called from map_io. We need to call to this early enough so that we | 171 | * Called from map_io. We need to call to this early enough so that we |
172 | * can reserve the fixed SDRAM regions before VM could get hold of them. | 172 | * can reserve the fixed SDRAM regions before VM could get hold of them. |
173 | */ | 173 | */ |
174 | void omapfb_reserve_sdram(void) | 174 | void __init omapfb_reserve_sdram(void) |
175 | { | 175 | { |
176 | struct bootmem_data *bdata; | 176 | struct bootmem_data *bdata; |
177 | unsigned long sdram_start, sdram_size; | 177 | unsigned long sdram_start, sdram_size; |
diff --git a/arch/frv/mm/init.c b/arch/frv/mm/init.c index 4103c2c487f3..b841ecfd5d5a 100644 --- a/arch/frv/mm/init.c +++ b/arch/frv/mm/init.c | |||
@@ -197,7 +197,7 @@ void __init mem_init(void) | |||
197 | /* | 197 | /* |
198 | * free the memory that was only required for initialisation | 198 | * free the memory that was only required for initialisation |
199 | */ | 199 | */ |
200 | void __init free_initmem(void) | 200 | void free_initmem(void) |
201 | { | 201 | { |
202 | #if defined(CONFIG_RAMKERNEL) && !defined(CONFIG_PROTECT_KERNEL) | 202 | #if defined(CONFIG_RAMKERNEL) && !defined(CONFIG_PROTECT_KERNEL) |
203 | unsigned long start, end, addr; | 203 | unsigned long start, end, addr; |
diff --git a/arch/powerpc/boot/dts/walnut.dts b/arch/powerpc/boot/dts/walnut.dts index fa681f5343fe..754fa3960f83 100644 --- a/arch/powerpc/boot/dts/walnut.dts +++ b/arch/powerpc/boot/dts/walnut.dts | |||
@@ -122,7 +122,9 @@ | |||
122 | device_type = "network"; | 122 | device_type = "network"; |
123 | compatible = "ibm,emac-405gp", "ibm,emac"; | 123 | compatible = "ibm,emac-405gp", "ibm,emac"; |
124 | interrupt-parent = <&UIC0>; | 124 | interrupt-parent = <&UIC0>; |
125 | interrupts = <9 4 f 4>; | 125 | interrupts = < |
126 | f 4 /* Ethernet */ | ||
127 | 9 4 /* Ethernet Wake Up */>; | ||
126 | local-mac-address = [000000000000]; /* Filled in by zImage */ | 128 | local-mac-address = [000000000000]; /* Filled in by zImage */ |
127 | reg = <ef600800 70>; | 129 | reg = <ef600800 70>; |
128 | mal-device = <&MAL>; | 130 | mal-device = <&MAL>; |
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index 39b27e5ef6c1..31147a037728 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
@@ -21,6 +21,14 @@ | |||
21 | # (default ./arch/powerpc/boot) | 21 | # (default ./arch/powerpc/boot) |
22 | # -W dir specify working directory for temporary files (default .) | 22 | # -W dir specify working directory for temporary files (default .) |
23 | 23 | ||
24 | # Stop execution if any command fails | ||
25 | set -e | ||
26 | |||
27 | # Allow for verbose output | ||
28 | if [ "$V" = 1 ]; then | ||
29 | set -x | ||
30 | fi | ||
31 | |||
24 | # defaults | 32 | # defaults |
25 | kernel= | 33 | kernel= |
26 | ofile=zImage | 34 | ofile=zImage |
@@ -111,7 +119,7 @@ if [ -n "$dts" ]; then | |||
111 | if [ -z "$dtb" ]; then | 119 | if [ -z "$dtb" ]; then |
112 | dtb="$platform.dtb" | 120 | dtb="$platform.dtb" |
113 | fi | 121 | fi |
114 | dtc -O dtb -o "$dtb" -b 0 -V 16 "$dts" || exit 1 | 122 | dtc -O dtb -o "$dtb" -b 0 -V 16 "$dts" |
115 | fi | 123 | fi |
116 | 124 | ||
117 | if [ -z "$kernel" ]; then | 125 | if [ -z "$kernel" ]; then |
@@ -149,7 +157,6 @@ cuboot*) | |||
149 | ps3) | 157 | ps3) |
150 | platformo="$object/ps3-head.o $object/ps3-hvcall.o $object/ps3.o" | 158 | platformo="$object/ps3-head.o $object/ps3-hvcall.o $object/ps3.o" |
151 | lds=$object/zImage.ps3.lds | 159 | lds=$object/zImage.ps3.lds |
152 | binary=y | ||
153 | gzip= | 160 | gzip= |
154 | ext=bin | 161 | ext=bin |
155 | objflags="-O binary --set-section-flags=.bss=contents,alloc,load,data" | 162 | objflags="-O binary --set-section-flags=.bss=contents,alloc,load,data" |
@@ -233,7 +240,7 @@ entry=`${CROSS}objdump -f "$ofile" | grep '^start address ' | cut -d' ' -f3` | |||
233 | 240 | ||
234 | if [ -n "$binary" ]; then | 241 | if [ -n "$binary" ]; then |
235 | mv "$ofile" "$ofile".elf | 242 | mv "$ofile" "$ofile".elf |
236 | ${CROSS}objcopy -O binary "$ofile".elf "$ofile".bin | 243 | ${CROSS}objcopy -O binary "$ofile".elf "$ofile" |
237 | fi | 244 | fi |
238 | 245 | ||
239 | # post-processing needed for some platforms | 246 | # post-processing needed for some platforms |
@@ -246,9 +253,9 @@ coff) | |||
246 | $object/hack-coff "$ofile" | 253 | $object/hack-coff "$ofile" |
247 | ;; | 254 | ;; |
248 | cuboot*) | 255 | cuboot*) |
249 | gzip -f -9 "$ofile".bin | 256 | gzip -f -9 "$ofile" |
250 | mkimage -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \ | 257 | mkimage -A ppc -O linux -T kernel -C gzip -a "$base" -e "$entry" \ |
251 | $uboot_version -d "$ofile".bin.gz "$ofile" | 258 | $uboot_version -d "$ofile".gz "$ofile" |
252 | ;; | 259 | ;; |
253 | treeboot*) | 260 | treeboot*) |
254 | mv "$ofile" "$ofile.elf" | 261 | mv "$ofile" "$ofile.elf" |
@@ -269,11 +276,11 @@ ps3) | |||
269 | # then copied to offset 0x100. At runtime the bootwrapper program | 276 | # then copied to offset 0x100. At runtime the bootwrapper program |
270 | # copies the 0x100 bytes at __system_reset_kernel to addr 0x100. | 277 | # copies the 0x100 bytes at __system_reset_kernel to addr 0x100. |
271 | 278 | ||
272 | system_reset_overlay=0x`${CROSS}nm "$ofile".elf \ | 279 | system_reset_overlay=0x`${CROSS}nm "$ofile" \ |
273 | | grep ' __system_reset_overlay$' \ | 280 | | grep ' __system_reset_overlay$' \ |
274 | | cut -d' ' -f1` | 281 | | cut -d' ' -f1` |
275 | system_reset_overlay=`printf "%d" $system_reset_overlay` | 282 | system_reset_overlay=`printf "%d" $system_reset_overlay` |
276 | system_reset_kernel=0x`${CROSS}nm "$ofile".elf \ | 283 | system_reset_kernel=0x`${CROSS}nm "$ofile" \ |
277 | | grep ' __system_reset_kernel$' \ | 284 | | grep ' __system_reset_kernel$' \ |
278 | | cut -d' ' -f1` | 285 | | cut -d' ' -f1` |
279 | system_reset_kernel=`printf "%d" $system_reset_kernel` | 286 | system_reset_kernel=`printf "%d" $system_reset_kernel` |
@@ -282,23 +289,15 @@ ps3) | |||
282 | 289 | ||
283 | rm -f "$object/otheros.bld" | 290 | rm -f "$object/otheros.bld" |
284 | 291 | ||
285 | msg=$(dd if="$ofile.bin" of="$ofile.bin" conv=notrunc \ | 292 | ${CROSS}objcopy -O binary "$ofile" "$ofile.bin" |
286 | skip=$overlay_dest seek=$system_reset_kernel \ | ||
287 | count=$overlay_size bs=1 2>&1) | ||
288 | 293 | ||
289 | if [ $? -ne "0" ]; then | 294 | dd if="$ofile.bin" of="$ofile.bin" conv=notrunc \ |
290 | echo $msg | 295 | skip=$overlay_dest seek=$system_reset_kernel \ |
291 | exit 1 | 296 | count=$overlay_size bs=1 |
292 | fi | ||
293 | |||
294 | msg=$(dd if="$ofile.bin" of="$ofile.bin" conv=notrunc \ | ||
295 | skip=$system_reset_overlay seek=$overlay_dest \ | ||
296 | count=$overlay_size bs=1 2>&1) | ||
297 | 297 | ||
298 | if [ $? -ne "0" ]; then | 298 | dd if="$ofile.bin" of="$ofile.bin" conv=notrunc \ |
299 | echo $msg | 299 | skip=$system_reset_overlay seek=$overlay_dest \ |
300 | exit 2 | 300 | count=$overlay_size bs=1 |
301 | fi | ||
302 | 301 | ||
303 | gzip --force -9 --stdout "$ofile.bin" > "$object/otheros.bld" | 302 | gzip --force -9 --stdout "$ofile.bin" > "$object/otheros.bld" |
304 | ;; | 303 | ;; |
diff --git a/arch/powerpc/configs/pasemi_defconfig b/arch/powerpc/configs/pasemi_defconfig index 1ccf3ed7693e..78c968aade4e 100644 --- a/arch/powerpc/configs/pasemi_defconfig +++ b/arch/powerpc/configs/pasemi_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.23-rc4 | 3 | # Linux kernel version: 2.6.24-rc2 |
4 | # Thu Aug 30 16:40:47 2007 | 4 | # Tue Nov 6 23:23:50 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -10,6 +10,7 @@ CONFIG_PPC64=y | |||
10 | # | 10 | # |
11 | CONFIG_POWER4_ONLY=y | 11 | CONFIG_POWER4_ONLY=y |
12 | CONFIG_POWER4=y | 12 | CONFIG_POWER4=y |
13 | # CONFIG_TUNE_CELL is not set | ||
13 | CONFIG_PPC_FPU=y | 14 | CONFIG_PPC_FPU=y |
14 | CONFIG_ALTIVEC=y | 15 | CONFIG_ALTIVEC=y |
15 | CONFIG_PPC_STD_MMU=y | 16 | CONFIG_PPC_STD_MMU=y |
@@ -18,8 +19,13 @@ CONFIG_PPC_MM_SLICES=y | |||
18 | CONFIG_SMP=y | 19 | CONFIG_SMP=y |
19 | CONFIG_NR_CPUS=2 | 20 | CONFIG_NR_CPUS=2 |
20 | CONFIG_64BIT=y | 21 | CONFIG_64BIT=y |
22 | CONFIG_WORD_SIZE=64 | ||
21 | CONFIG_PPC_MERGE=y | 23 | CONFIG_PPC_MERGE=y |
22 | CONFIG_MMU=y | 24 | CONFIG_MMU=y |
25 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
26 | CONFIG_GENERIC_TIME=y | ||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
28 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
23 | CONFIG_GENERIC_HARDIRQS=y | 29 | CONFIG_GENERIC_HARDIRQS=y |
24 | CONFIG_IRQ_PER_CPU=y | 30 | CONFIG_IRQ_PER_CPU=y |
25 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 31 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
@@ -65,7 +71,10 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
65 | # CONFIG_AUDIT is not set | 71 | # CONFIG_AUDIT is not set |
66 | # CONFIG_IKCONFIG is not set | 72 | # CONFIG_IKCONFIG is not set |
67 | CONFIG_LOG_BUF_SHIFT=17 | 73 | CONFIG_LOG_BUF_SHIFT=17 |
68 | # CONFIG_CPUSETS is not set | 74 | # CONFIG_CGROUPS is not set |
75 | CONFIG_FAIR_GROUP_SCHED=y | ||
76 | CONFIG_FAIR_USER_SCHED=y | ||
77 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
69 | CONFIG_SYSFS_DEPRECATED=y | 78 | CONFIG_SYSFS_DEPRECATED=y |
70 | # CONFIG_RELAY is not set | 79 | # CONFIG_RELAY is not set |
71 | CONFIG_BLK_DEV_INITRD=y | 80 | CONFIG_BLK_DEV_INITRD=y |
@@ -86,7 +95,6 @@ CONFIG_FUTEX=y | |||
86 | CONFIG_ANON_INODES=y | 95 | CONFIG_ANON_INODES=y |
87 | CONFIG_EPOLL=y | 96 | CONFIG_EPOLL=y |
88 | CONFIG_SIGNALFD=y | 97 | CONFIG_SIGNALFD=y |
89 | CONFIG_TIMERFD=y | ||
90 | CONFIG_EVENTFD=y | 98 | CONFIG_EVENTFD=y |
91 | CONFIG_SHMEM=y | 99 | CONFIG_SHMEM=y |
92 | CONFIG_VM_EVENT_COUNTERS=y | 100 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -107,14 +115,15 @@ CONFIG_STOP_MACHINE=y | |||
107 | CONFIG_BLOCK=y | 115 | CONFIG_BLOCK=y |
108 | # CONFIG_BLK_DEV_IO_TRACE is not set | 116 | # CONFIG_BLK_DEV_IO_TRACE is not set |
109 | # CONFIG_BLK_DEV_BSG is not set | 117 | # CONFIG_BLK_DEV_BSG is not set |
118 | CONFIG_BLOCK_COMPAT=y | ||
110 | 119 | ||
111 | # | 120 | # |
112 | # IO Schedulers | 121 | # IO Schedulers |
113 | # | 122 | # |
114 | CONFIG_IOSCHED_NOOP=y | 123 | CONFIG_IOSCHED_NOOP=y |
115 | CONFIG_IOSCHED_AS=y | 124 | CONFIG_IOSCHED_AS=y |
116 | # CONFIG_IOSCHED_DEADLINE is not set | 125 | CONFIG_IOSCHED_DEADLINE=y |
117 | # CONFIG_IOSCHED_CFQ is not set | 126 | CONFIG_IOSCHED_CFQ=y |
118 | CONFIG_DEFAULT_AS=y | 127 | CONFIG_DEFAULT_AS=y |
119 | # CONFIG_DEFAULT_DEADLINE is not set | 128 | # CONFIG_DEFAULT_DEADLINE is not set |
120 | # CONFIG_DEFAULT_CFQ is not set | 129 | # CONFIG_DEFAULT_CFQ is not set |
@@ -125,7 +134,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
125 | # Platform support | 134 | # Platform support |
126 | # | 135 | # |
127 | CONFIG_PPC_MULTIPLATFORM=y | 136 | CONFIG_PPC_MULTIPLATFORM=y |
128 | # CONFIG_EMBEDDED6xx is not set | ||
129 | # CONFIG_PPC_82xx is not set | 137 | # CONFIG_PPC_82xx is not set |
130 | # CONFIG_PPC_83xx is not set | 138 | # CONFIG_PPC_83xx is not set |
131 | # CONFIG_PPC_86xx is not set | 139 | # CONFIG_PPC_86xx is not set |
@@ -141,6 +149,7 @@ CONFIG_PPC_PASEMI=y | |||
141 | # PA Semi PWRficient options | 149 | # PA Semi PWRficient options |
142 | # | 150 | # |
143 | CONFIG_PPC_PASEMI_IOMMU=y | 151 | CONFIG_PPC_PASEMI_IOMMU=y |
152 | # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set | ||
144 | CONFIG_PPC_PASEMI_MDIO=y | 153 | CONFIG_PPC_PASEMI_MDIO=y |
145 | CONFIG_ELECTRA_IDE=y | 154 | CONFIG_ELECTRA_IDE=y |
146 | # CONFIG_PPC_CELLEB is not set | 155 | # CONFIG_PPC_CELLEB is not set |
@@ -156,29 +165,52 @@ CONFIG_MPIC=y | |||
156 | # CONFIG_U3_DART is not set | 165 | # CONFIG_U3_DART is not set |
157 | # CONFIG_PPC_RTAS is not set | 166 | # CONFIG_PPC_RTAS is not set |
158 | # CONFIG_MMIO_NVRAM is not set | 167 | # CONFIG_MMIO_NVRAM is not set |
168 | CONFIG_MPIC_BROKEN_REGREAD=y | ||
159 | # CONFIG_PPC_MPC106 is not set | 169 | # CONFIG_PPC_MPC106 is not set |
160 | # CONFIG_PPC_970_NAP is not set | 170 | # CONFIG_PPC_970_NAP is not set |
161 | # CONFIG_PPC_INDIRECT_IO is not set | 171 | # CONFIG_PPC_INDIRECT_IO is not set |
162 | # CONFIG_GENERIC_IOMAP is not set | 172 | # CONFIG_GENERIC_IOMAP is not set |
163 | # CONFIG_CPU_FREQ is not set | 173 | CONFIG_CPU_FREQ=y |
174 | CONFIG_CPU_FREQ_TABLE=y | ||
175 | CONFIG_CPU_FREQ_DEBUG=y | ||
176 | CONFIG_CPU_FREQ_STAT=y | ||
177 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set | ||
178 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | ||
179 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | ||
180 | # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set | ||
181 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
182 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | ||
183 | CONFIG_CPU_FREQ_GOV_POWERSAVE=y | ||
184 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | ||
185 | CONFIG_CPU_FREQ_GOV_ONDEMAND=y | ||
186 | # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set | ||
187 | |||
188 | # | ||
189 | # CPU Frequency drivers | ||
190 | # | ||
191 | CONFIG_PPC_PASEMI_CPUFREQ=y | ||
164 | # CONFIG_CPM2 is not set | 192 | # CONFIG_CPM2 is not set |
165 | # CONFIG_FSL_ULI1575 is not set | 193 | # CONFIG_FSL_ULI1575 is not set |
166 | 194 | ||
167 | # | 195 | # |
168 | # Kernel options | 196 | # Kernel options |
169 | # | 197 | # |
170 | CONFIG_HZ_100=y | 198 | CONFIG_TICK_ONESHOT=y |
199 | CONFIG_NO_HZ=y | ||
200 | CONFIG_HIGH_RES_TIMERS=y | ||
201 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
202 | # CONFIG_HZ_100 is not set | ||
171 | # CONFIG_HZ_250 is not set | 203 | # CONFIG_HZ_250 is not set |
172 | # CONFIG_HZ_300 is not set | 204 | # CONFIG_HZ_300 is not set |
173 | # CONFIG_HZ_1000 is not set | 205 | CONFIG_HZ_1000=y |
174 | CONFIG_HZ=100 | 206 | CONFIG_HZ=1000 |
175 | CONFIG_PREEMPT_NONE=y | 207 | CONFIG_PREEMPT_NONE=y |
176 | # CONFIG_PREEMPT_VOLUNTARY is not set | 208 | # CONFIG_PREEMPT_VOLUNTARY is not set |
177 | # CONFIG_PREEMPT is not set | 209 | # CONFIG_PREEMPT is not set |
178 | CONFIG_PREEMPT_BKL=y | 210 | # CONFIG_PREEMPT_BKL is not set |
179 | CONFIG_BINFMT_ELF=y | 211 | CONFIG_BINFMT_ELF=y |
180 | # CONFIG_BINFMT_MISC is not set | 212 | # CONFIG_BINFMT_MISC is not set |
181 | CONFIG_FORCE_MAX_ZONEORDER=13 | 213 | CONFIG_FORCE_MAX_ZONEORDER=9 |
182 | CONFIG_IOMMU_VMERGE=y | 214 | CONFIG_IOMMU_VMERGE=y |
183 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 215 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
184 | # CONFIG_KEXEC is not set | 216 | # CONFIG_KEXEC is not set |
@@ -196,12 +228,13 @@ CONFIG_FLATMEM_MANUAL=y | |||
196 | CONFIG_FLATMEM=y | 228 | CONFIG_FLATMEM=y |
197 | CONFIG_FLAT_NODE_MEM_MAP=y | 229 | CONFIG_FLAT_NODE_MEM_MAP=y |
198 | # CONFIG_SPARSEMEM_STATIC is not set | 230 | # CONFIG_SPARSEMEM_STATIC is not set |
231 | CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y | ||
199 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 232 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
200 | CONFIG_RESOURCES_64BIT=y | 233 | CONFIG_RESOURCES_64BIT=y |
201 | CONFIG_ZONE_DMA_FLAG=1 | 234 | CONFIG_ZONE_DMA_FLAG=1 |
202 | CONFIG_BOUNCE=y | 235 | CONFIG_BOUNCE=y |
203 | # CONFIG_PPC_HAS_HASH_64K is not set | 236 | CONFIG_PPC_HAS_HASH_64K=y |
204 | # CONFIG_PPC_64K_PAGES is not set | 237 | CONFIG_PPC_64K_PAGES=y |
205 | # CONFIG_SCHED_SMT is not set | 238 | # CONFIG_SCHED_SMT is not set |
206 | CONFIG_PROC_DEVICETREE=y | 239 | CONFIG_PROC_DEVICETREE=y |
207 | # CONFIG_CMDLINE_BOOL is not set | 240 | # CONFIG_CMDLINE_BOOL is not set |
@@ -222,11 +255,8 @@ CONFIG_PCI_SYSCALL=y | |||
222 | # CONFIG_PCIEPORTBUS is not set | 255 | # CONFIG_PCIEPORTBUS is not set |
223 | CONFIG_ARCH_SUPPORTS_MSI=y | 256 | CONFIG_ARCH_SUPPORTS_MSI=y |
224 | # CONFIG_PCI_MSI is not set | 257 | # CONFIG_PCI_MSI is not set |
258 | CONFIG_PCI_LEGACY=y | ||
225 | # CONFIG_PCI_DEBUG is not set | 259 | # CONFIG_PCI_DEBUG is not set |
226 | |||
227 | # | ||
228 | # PCCARD (PCMCIA/CardBus) support | ||
229 | # | ||
230 | CONFIG_PCCARD=y | 260 | CONFIG_PCCARD=y |
231 | CONFIG_PCMCIA_DEBUG=y | 261 | CONFIG_PCMCIA_DEBUG=y |
232 | CONFIG_PCMCIA=y | 262 | CONFIG_PCMCIA=y |
@@ -240,6 +270,7 @@ CONFIG_CARDBUS=y | |||
240 | # CONFIG_YENTA is not set | 270 | # CONFIG_YENTA is not set |
241 | # CONFIG_PD6729 is not set | 271 | # CONFIG_PD6729 is not set |
242 | # CONFIG_I82092 is not set | 272 | # CONFIG_I82092 is not set |
273 | # CONFIG_ELECTRA_CF is not set | ||
243 | # CONFIG_HOTPLUG_PCI is not set | 274 | # CONFIG_HOTPLUG_PCI is not set |
244 | CONFIG_KERNEL_START=0xc000000000000000 | 275 | CONFIG_KERNEL_START=0xc000000000000000 |
245 | 276 | ||
@@ -255,7 +286,7 @@ CONFIG_PACKET=y | |||
255 | # CONFIG_PACKET_MMAP is not set | 286 | # CONFIG_PACKET_MMAP is not set |
256 | CONFIG_UNIX=y | 287 | CONFIG_UNIX=y |
257 | CONFIG_XFRM=y | 288 | CONFIG_XFRM=y |
258 | # CONFIG_XFRM_USER is not set | 289 | CONFIG_XFRM_USER=y |
259 | # CONFIG_XFRM_SUB_POLICY is not set | 290 | # CONFIG_XFRM_SUB_POLICY is not set |
260 | # CONFIG_XFRM_MIGRATE is not set | 291 | # CONFIG_XFRM_MIGRATE is not set |
261 | CONFIG_NET_KEY=y | 292 | CONFIG_NET_KEY=y |
@@ -281,6 +312,7 @@ CONFIG_INET_TUNNEL=y | |||
281 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 312 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
282 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 313 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
283 | CONFIG_INET_XFRM_MODE_BEET=y | 314 | CONFIG_INET_XFRM_MODE_BEET=y |
315 | CONFIG_INET_LRO=y | ||
284 | CONFIG_INET_DIAG=y | 316 | CONFIG_INET_DIAG=y |
285 | CONFIG_INET_TCP_DIAG=y | 317 | CONFIG_INET_TCP_DIAG=y |
286 | # CONFIG_TCP_CONG_ADVANCED is not set | 318 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -306,10 +338,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
306 | # CONFIG_LAPB is not set | 338 | # CONFIG_LAPB is not set |
307 | # CONFIG_ECONET is not set | 339 | # CONFIG_ECONET is not set |
308 | # CONFIG_WAN_ROUTER is not set | 340 | # CONFIG_WAN_ROUTER is not set |
309 | |||
310 | # | ||
311 | # QoS and/or fair queueing | ||
312 | # | ||
313 | # CONFIG_NET_SCHED is not set | 341 | # CONFIG_NET_SCHED is not set |
314 | 342 | ||
315 | # | 343 | # |
@@ -338,6 +366,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
338 | # | 366 | # |
339 | # Generic Driver Options | 367 | # Generic Driver Options |
340 | # | 368 | # |
369 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
341 | CONFIG_STANDALONE=y | 370 | CONFIG_STANDALONE=y |
342 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 371 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
343 | CONFIG_FW_LOADER=y | 372 | CONFIG_FW_LOADER=y |
@@ -361,6 +390,7 @@ CONFIG_MTD_BLOCK=y | |||
361 | # CONFIG_INFTL is not set | 390 | # CONFIG_INFTL is not set |
362 | # CONFIG_RFD_FTL is not set | 391 | # CONFIG_RFD_FTL is not set |
363 | # CONFIG_SSFDC is not set | 392 | # CONFIG_SSFDC is not set |
393 | # CONFIG_MTD_OOPS is not set | ||
364 | 394 | ||
365 | # | 395 | # |
366 | # RAM/ROM/Flash chip drivers | 396 | # RAM/ROM/Flash chip drivers |
@@ -385,6 +415,7 @@ CONFIG_MTD_CFI_I2=y | |||
385 | # Mapping drivers for chip access | 415 | # Mapping drivers for chip access |
386 | # | 416 | # |
387 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set | 417 | # CONFIG_MTD_COMPLEX_MAPPINGS is not set |
418 | # CONFIG_MTD_INTEL_VR_NOR is not set | ||
388 | # CONFIG_MTD_PLATRAM is not set | 419 | # CONFIG_MTD_PLATRAM is not set |
389 | 420 | ||
390 | # | 421 | # |
@@ -402,7 +433,15 @@ CONFIG_MTD_PHRAM=y | |||
402 | # CONFIG_MTD_DOC2000 is not set | 433 | # CONFIG_MTD_DOC2000 is not set |
403 | # CONFIG_MTD_DOC2001 is not set | 434 | # CONFIG_MTD_DOC2001 is not set |
404 | # CONFIG_MTD_DOC2001PLUS is not set | 435 | # CONFIG_MTD_DOC2001PLUS is not set |
405 | # CONFIG_MTD_NAND is not set | 436 | CONFIG_MTD_NAND=y |
437 | # CONFIG_MTD_NAND_VERIFY_WRITE is not set | ||
438 | # CONFIG_MTD_NAND_ECC_SMC is not set | ||
439 | # CONFIG_MTD_NAND_MUSEUM_IDS is not set | ||
440 | CONFIG_MTD_NAND_IDS=y | ||
441 | # CONFIG_MTD_NAND_DISKONCHIP is not set | ||
442 | # CONFIG_MTD_NAND_CAFE is not set | ||
443 | # CONFIG_MTD_NAND_PLATFORM is not set | ||
444 | # CONFIG_MTD_ALAUDA is not set | ||
406 | # CONFIG_MTD_ONENAND is not set | 445 | # CONFIG_MTD_ONENAND is not set |
407 | 446 | ||
408 | # | 447 | # |
@@ -455,10 +494,42 @@ CONFIG_IDE_PROC_FS=y | |||
455 | # IDE chipset support/bugfixes | 494 | # IDE chipset support/bugfixes |
456 | # | 495 | # |
457 | # CONFIG_IDE_GENERIC is not set | 496 | # CONFIG_IDE_GENERIC is not set |
458 | # CONFIG_BLK_DEV_IDEPCI is not set | 497 | # CONFIG_BLK_DEV_PLATFORM is not set |
498 | |||
499 | # | ||
500 | # PCI IDE chipsets support | ||
501 | # | ||
459 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set | 502 | # CONFIG_IDEPCI_PCIBUS_ORDER is not set |
503 | # CONFIG_BLK_DEV_GENERIC is not set | ||
504 | # CONFIG_BLK_DEV_OPTI621 is not set | ||
505 | # CONFIG_BLK_DEV_AEC62XX is not set | ||
506 | # CONFIG_BLK_DEV_ALI15X3 is not set | ||
507 | # CONFIG_BLK_DEV_AMD74XX is not set | ||
508 | # CONFIG_BLK_DEV_CMD64X is not set | ||
509 | # CONFIG_BLK_DEV_TRIFLEX is not set | ||
510 | # CONFIG_BLK_DEV_CY82C693 is not set | ||
511 | # CONFIG_BLK_DEV_CS5520 is not set | ||
512 | # CONFIG_BLK_DEV_CS5530 is not set | ||
513 | # CONFIG_BLK_DEV_HPT34X is not set | ||
514 | # CONFIG_BLK_DEV_HPT366 is not set | ||
515 | # CONFIG_BLK_DEV_JMICRON is not set | ||
516 | # CONFIG_BLK_DEV_SC1200 is not set | ||
517 | # CONFIG_BLK_DEV_PIIX is not set | ||
518 | # CONFIG_BLK_DEV_IT8213 is not set | ||
519 | # CONFIG_BLK_DEV_IT821X is not set | ||
520 | # CONFIG_BLK_DEV_NS87415 is not set | ||
521 | # CONFIG_BLK_DEV_PDC202XX_OLD is not set | ||
522 | # CONFIG_BLK_DEV_PDC202XX_NEW is not set | ||
523 | # CONFIG_BLK_DEV_SVWKS is not set | ||
524 | # CONFIG_BLK_DEV_SIIMAGE is not set | ||
525 | # CONFIG_BLK_DEV_SL82C105 is not set | ||
526 | # CONFIG_BLK_DEV_SLC90E66 is not set | ||
527 | # CONFIG_BLK_DEV_TRM290 is not set | ||
528 | # CONFIG_BLK_DEV_VIA82CXXX is not set | ||
529 | # CONFIG_BLK_DEV_TC86C001 is not set | ||
460 | # CONFIG_IDE_ARM is not set | 530 | # CONFIG_IDE_ARM is not set |
461 | # CONFIG_BLK_DEV_IDEDMA is not set | 531 | # CONFIG_BLK_DEV_IDEDMA is not set |
532 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | ||
462 | # CONFIG_BLK_DEV_HD is not set | 533 | # CONFIG_BLK_DEV_HD is not set |
463 | 534 | ||
464 | # | 535 | # |
@@ -498,10 +569,11 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
498 | # CONFIG_SCSI_FC_ATTRS is not set | 569 | # CONFIG_SCSI_FC_ATTRS is not set |
499 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 570 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
500 | # CONFIG_SCSI_SAS_LIBSAS is not set | 571 | # CONFIG_SCSI_SAS_LIBSAS is not set |
572 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
501 | CONFIG_SCSI_LOWLEVEL=y | 573 | CONFIG_SCSI_LOWLEVEL=y |
502 | # CONFIG_ISCSI_TCP is not set | 574 | # CONFIG_ISCSI_TCP is not set |
503 | CONFIG_BLK_DEV_3W_XXXX_RAID=y | 575 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
504 | CONFIG_SCSI_3W_9XXX=y | 576 | # CONFIG_SCSI_3W_9XXX is not set |
505 | # CONFIG_SCSI_ACARD is not set | 577 | # CONFIG_SCSI_ACARD is not set |
506 | # CONFIG_SCSI_AACRAID is not set | 578 | # CONFIG_SCSI_AACRAID is not set |
507 | # CONFIG_SCSI_AIC7XXX is not set | 579 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -574,9 +646,10 @@ CONFIG_ATA_GENERIC=y | |||
574 | # CONFIG_PATA_OLDPIIX is not set | 646 | # CONFIG_PATA_OLDPIIX is not set |
575 | # CONFIG_PATA_NETCELL is not set | 647 | # CONFIG_PATA_NETCELL is not set |
576 | # CONFIG_PATA_NS87410 is not set | 648 | # CONFIG_PATA_NS87410 is not set |
649 | # CONFIG_PATA_NS87415 is not set | ||
577 | # CONFIG_PATA_OPTI is not set | 650 | # CONFIG_PATA_OPTI is not set |
578 | # CONFIG_PATA_OPTIDMA is not set | 651 | # CONFIG_PATA_OPTIDMA is not set |
579 | # CONFIG_PATA_PCMCIA is not set | 652 | CONFIG_PATA_PCMCIA=y |
580 | # CONFIG_PATA_PDC_OLD is not set | 653 | # CONFIG_PATA_PDC_OLD is not set |
581 | # CONFIG_PATA_RADISYS is not set | 654 | # CONFIG_PATA_RADISYS is not set |
582 | # CONFIG_PATA_RZ1000 is not set | 655 | # CONFIG_PATA_RZ1000 is not set |
@@ -589,41 +662,13 @@ CONFIG_ATA_GENERIC=y | |||
589 | # CONFIG_PATA_WINBOND is not set | 662 | # CONFIG_PATA_WINBOND is not set |
590 | CONFIG_PATA_PLATFORM=y | 663 | CONFIG_PATA_PLATFORM=y |
591 | # CONFIG_MD is not set | 664 | # CONFIG_MD is not set |
592 | |||
593 | # | ||
594 | # Fusion MPT device support | ||
595 | # | ||
596 | # CONFIG_FUSION is not set | 665 | # CONFIG_FUSION is not set |
597 | # CONFIG_FUSION_SPI is not set | ||
598 | # CONFIG_FUSION_FC is not set | ||
599 | # CONFIG_FUSION_SAS is not set | ||
600 | 666 | ||
601 | # | 667 | # |
602 | # IEEE 1394 (FireWire) support | 668 | # IEEE 1394 (FireWire) support |
603 | # | 669 | # |
604 | # CONFIG_FIREWIRE is not set | 670 | # CONFIG_FIREWIRE is not set |
605 | CONFIG_IEEE1394=y | 671 | # CONFIG_IEEE1394 is not set |
606 | |||
607 | # | ||
608 | # Subsystem Options | ||
609 | # | ||
610 | # CONFIG_IEEE1394_VERBOSEDEBUG is not set | ||
611 | |||
612 | # | ||
613 | # Controllers | ||
614 | # | ||
615 | CONFIG_IEEE1394_PCILYNX=y | ||
616 | CONFIG_IEEE1394_OHCI1394=y | ||
617 | |||
618 | # | ||
619 | # Protocols | ||
620 | # | ||
621 | # CONFIG_IEEE1394_VIDEO1394 is not set | ||
622 | CONFIG_IEEE1394_SBP2=y | ||
623 | # CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set | ||
624 | # CONFIG_IEEE1394_ETH1394 is not set | ||
625 | # CONFIG_IEEE1394_DV1394 is not set | ||
626 | CONFIG_IEEE1394_RAWIO=y | ||
627 | # CONFIG_I2O is not set | 672 | # CONFIG_I2O is not set |
628 | # CONFIG_MACINTOSH_DRIVERS is not set | 673 | # CONFIG_MACINTOSH_DRIVERS is not set |
629 | CONFIG_NETDEVICES=y | 674 | CONFIG_NETDEVICES=y |
@@ -633,6 +678,8 @@ CONFIG_DUMMY=y | |||
633 | # CONFIG_MACVLAN is not set | 678 | # CONFIG_MACVLAN is not set |
634 | # CONFIG_EQUALIZER is not set | 679 | # CONFIG_EQUALIZER is not set |
635 | # CONFIG_TUN is not set | 680 | # CONFIG_TUN is not set |
681 | # CONFIG_VETH is not set | ||
682 | # CONFIG_IP1000 is not set | ||
636 | # CONFIG_ARCNET is not set | 683 | # CONFIG_ARCNET is not set |
637 | CONFIG_PHYLIB=y | 684 | CONFIG_PHYLIB=y |
638 | 685 | ||
@@ -649,6 +696,7 @@ CONFIG_MARVELL_PHY=y | |||
649 | # CONFIG_BROADCOM_PHY is not set | 696 | # CONFIG_BROADCOM_PHY is not set |
650 | # CONFIG_ICPLUS_PHY is not set | 697 | # CONFIG_ICPLUS_PHY is not set |
651 | # CONFIG_FIXED_PHY is not set | 698 | # CONFIG_FIXED_PHY is not set |
699 | # CONFIG_MDIO_BITBANG is not set | ||
652 | CONFIG_NET_ETHERNET=y | 700 | CONFIG_NET_ETHERNET=y |
653 | CONFIG_MII=y | 701 | CONFIG_MII=y |
654 | # CONFIG_HAPPYMEAL is not set | 702 | # CONFIG_HAPPYMEAL is not set |
@@ -657,13 +705,16 @@ CONFIG_MII=y | |||
657 | # CONFIG_NET_VENDOR_3COM is not set | 705 | # CONFIG_NET_VENDOR_3COM is not set |
658 | # CONFIG_NET_TULIP is not set | 706 | # CONFIG_NET_TULIP is not set |
659 | # CONFIG_HP100 is not set | 707 | # CONFIG_HP100 is not set |
708 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
709 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
710 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
711 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
660 | CONFIG_NET_PCI=y | 712 | CONFIG_NET_PCI=y |
661 | # CONFIG_PCNET32 is not set | 713 | # CONFIG_PCNET32 is not set |
662 | # CONFIG_AMD8111_ETH is not set | 714 | # CONFIG_AMD8111_ETH is not set |
663 | # CONFIG_ADAPTEC_STARFIRE is not set | 715 | # CONFIG_ADAPTEC_STARFIRE is not set |
664 | # CONFIG_B44 is not set | 716 | # CONFIG_B44 is not set |
665 | # CONFIG_FORCEDETH is not set | 717 | # CONFIG_FORCEDETH is not set |
666 | # CONFIG_DGRS is not set | ||
667 | # CONFIG_EEPRO100 is not set | 718 | # CONFIG_EEPRO100 is not set |
668 | # CONFIG_E100 is not set | 719 | # CONFIG_E100 is not set |
669 | # CONFIG_FEALNX is not set | 720 | # CONFIG_FEALNX is not set |
@@ -682,6 +733,7 @@ CONFIG_NETDEV_1000=y | |||
682 | CONFIG_E1000=y | 733 | CONFIG_E1000=y |
683 | CONFIG_E1000_NAPI=y | 734 | CONFIG_E1000_NAPI=y |
684 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 735 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
736 | # CONFIG_E1000E is not set | ||
685 | # CONFIG_NS83820 is not set | 737 | # CONFIG_NS83820 is not set |
686 | # CONFIG_HAMACHI is not set | 738 | # CONFIG_HAMACHI is not set |
687 | # CONFIG_YELLOWFIN is not set | 739 | # CONFIG_YELLOWFIN is not set |
@@ -689,6 +741,7 @@ CONFIG_E1000_NAPI=y | |||
689 | # CONFIG_SIS190 is not set | 741 | # CONFIG_SIS190 is not set |
690 | # CONFIG_SKGE is not set | 742 | # CONFIG_SKGE is not set |
691 | # CONFIG_SKY2 is not set | 743 | # CONFIG_SKY2 is not set |
744 | # CONFIG_SK98LIN is not set | ||
692 | # CONFIG_VIA_VELOCITY is not set | 745 | # CONFIG_VIA_VELOCITY is not set |
693 | CONFIG_TIGON3=y | 746 | CONFIG_TIGON3=y |
694 | # CONFIG_BNX2 is not set | 747 | # CONFIG_BNX2 is not set |
@@ -697,12 +750,15 @@ CONFIG_TIGON3=y | |||
697 | CONFIG_NETDEV_10000=y | 750 | CONFIG_NETDEV_10000=y |
698 | # CONFIG_CHELSIO_T1 is not set | 751 | # CONFIG_CHELSIO_T1 is not set |
699 | # CONFIG_CHELSIO_T3 is not set | 752 | # CONFIG_CHELSIO_T3 is not set |
753 | # CONFIG_IXGBE is not set | ||
700 | # CONFIG_IXGB is not set | 754 | # CONFIG_IXGB is not set |
701 | # CONFIG_S2IO is not set | 755 | # CONFIG_S2IO is not set |
702 | # CONFIG_MYRI10GE is not set | 756 | # CONFIG_MYRI10GE is not set |
703 | # CONFIG_NETXEN_NIC is not set | 757 | # CONFIG_NETXEN_NIC is not set |
758 | # CONFIG_NIU is not set | ||
704 | CONFIG_PASEMI_MAC=y | 759 | CONFIG_PASEMI_MAC=y |
705 | # CONFIG_MLX4_CORE is not set | 760 | # CONFIG_MLX4_CORE is not set |
761 | # CONFIG_TEHUTI is not set | ||
706 | # CONFIG_TR is not set | 762 | # CONFIG_TR is not set |
707 | 763 | ||
708 | # | 764 | # |
@@ -749,7 +805,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y | |||
749 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 805 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
750 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 806 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
751 | CONFIG_INPUT_JOYDEV=y | 807 | CONFIG_INPUT_JOYDEV=y |
752 | # CONFIG_INPUT_TSDEV is not set | ||
753 | CONFIG_INPUT_EVDEV=y | 808 | CONFIG_INPUT_EVDEV=y |
754 | # CONFIG_INPUT_EVBUG is not set | 809 | # CONFIG_INPUT_EVBUG is not set |
755 | 810 | ||
@@ -810,15 +865,12 @@ CONFIG_UNIX98_PTYS=y | |||
810 | CONFIG_LEGACY_PTYS=y | 865 | CONFIG_LEGACY_PTYS=y |
811 | CONFIG_LEGACY_PTY_COUNT=4 | 866 | CONFIG_LEGACY_PTY_COUNT=4 |
812 | # CONFIG_IPMI_HANDLER is not set | 867 | # CONFIG_IPMI_HANDLER is not set |
813 | # CONFIG_WATCHDOG is not set | ||
814 | CONFIG_HW_RANDOM=y | 868 | CONFIG_HW_RANDOM=y |
815 | CONFIG_HW_RANDOM_PASEMI=y | 869 | CONFIG_HW_RANDOM_PASEMI=y |
816 | CONFIG_GEN_RTC=y | 870 | CONFIG_GEN_RTC=y |
817 | CONFIG_GEN_RTC_X=y | 871 | CONFIG_GEN_RTC_X=y |
818 | # CONFIG_R3964 is not set | 872 | # CONFIG_R3964 is not set |
819 | # CONFIG_APPLICOM is not set | 873 | # CONFIG_APPLICOM is not set |
820 | # CONFIG_AGP is not set | ||
821 | # CONFIG_DRM is not set | ||
822 | 874 | ||
823 | # | 875 | # |
824 | # PCMCIA character devices | 876 | # PCMCIA character devices |
@@ -896,8 +948,6 @@ CONFIG_SENSORS_EEPROM=y | |||
896 | # CONFIG_POWER_SUPPLY is not set | 948 | # CONFIG_POWER_SUPPLY is not set |
897 | CONFIG_HWMON=y | 949 | CONFIG_HWMON=y |
898 | CONFIG_HWMON_VID=y | 950 | CONFIG_HWMON_VID=y |
899 | # CONFIG_SENSORS_ABITUGURU is not set | ||
900 | # CONFIG_SENSORS_ABITUGURU3 is not set | ||
901 | # CONFIG_SENSORS_AD7418 is not set | 951 | # CONFIG_SENSORS_AD7418 is not set |
902 | # CONFIG_SENSORS_ADM1021 is not set | 952 | # CONFIG_SENSORS_ADM1021 is not set |
903 | # CONFIG_SENSORS_ADM1025 is not set | 953 | # CONFIG_SENSORS_ADM1025 is not set |
@@ -905,12 +955,12 @@ CONFIG_HWMON_VID=y | |||
905 | # CONFIG_SENSORS_ADM1029 is not set | 955 | # CONFIG_SENSORS_ADM1029 is not set |
906 | # CONFIG_SENSORS_ADM1031 is not set | 956 | # CONFIG_SENSORS_ADM1031 is not set |
907 | # CONFIG_SENSORS_ADM9240 is not set | 957 | # CONFIG_SENSORS_ADM9240 is not set |
908 | # CONFIG_SENSORS_ASB100 is not set | 958 | # CONFIG_SENSORS_ADT7470 is not set |
909 | # CONFIG_SENSORS_ATXP1 is not set | 959 | # CONFIG_SENSORS_ATXP1 is not set |
910 | # CONFIG_SENSORS_DS1621 is not set | 960 | # CONFIG_SENSORS_DS1621 is not set |
911 | # CONFIG_SENSORS_F71805F is not set | 961 | # CONFIG_SENSORS_F71805F is not set |
912 | # CONFIG_SENSORS_FSCHER is not set | 962 | # CONFIG_SENSORS_F71882FG is not set |
913 | # CONFIG_SENSORS_FSCPOS is not set | 963 | # CONFIG_SENSORS_F75375S is not set |
914 | # CONFIG_SENSORS_GL518SM is not set | 964 | # CONFIG_SENSORS_GL518SM is not set |
915 | # CONFIG_SENSORS_GL520SM is not set | 965 | # CONFIG_SENSORS_GL520SM is not set |
916 | # CONFIG_SENSORS_IT87 is not set | 966 | # CONFIG_SENSORS_IT87 is not set |
@@ -946,6 +996,13 @@ CONFIG_SENSORS_LM90=y | |||
946 | # CONFIG_SENSORS_W83627HF is not set | 996 | # CONFIG_SENSORS_W83627HF is not set |
947 | # CONFIG_SENSORS_W83627EHF is not set | 997 | # CONFIG_SENSORS_W83627EHF is not set |
948 | # CONFIG_HWMON_DEBUG_CHIP is not set | 998 | # CONFIG_HWMON_DEBUG_CHIP is not set |
999 | # CONFIG_WATCHDOG is not set | ||
1000 | |||
1001 | # | ||
1002 | # Sonics Silicon Backplane | ||
1003 | # | ||
1004 | CONFIG_SSB_POSSIBLE=y | ||
1005 | # CONFIG_SSB is not set | ||
949 | 1006 | ||
950 | # | 1007 | # |
951 | # Multifunction device drivers | 1008 | # Multifunction device drivers |
@@ -963,14 +1020,14 @@ CONFIG_DAB=y | |||
963 | # | 1020 | # |
964 | # Graphics support | 1021 | # Graphics support |
965 | # | 1022 | # |
966 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 1023 | # CONFIG_AGP is not set |
967 | CONFIG_LCD_CLASS_DEVICE=m | 1024 | CONFIG_DRM=y |
968 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | 1025 | # CONFIG_DRM_TDFX is not set |
969 | 1026 | # CONFIG_DRM_R128 is not set | |
970 | # | 1027 | CONFIG_DRM_RADEON=y |
971 | # Display device support | 1028 | # CONFIG_DRM_MGA is not set |
972 | # | 1029 | # CONFIG_DRM_VIA is not set |
973 | # CONFIG_DISPLAY_SUPPORT is not set | 1030 | # CONFIG_DRM_SAVAGE is not set |
974 | CONFIG_VGASTATE=y | 1031 | CONFIG_VGASTATE=y |
975 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 1032 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
976 | CONFIG_FB=y | 1033 | CONFIG_FB=y |
@@ -979,6 +1036,7 @@ CONFIG_FB_DDC=y | |||
979 | CONFIG_FB_CFB_FILLRECT=y | 1036 | CONFIG_FB_CFB_FILLRECT=y |
980 | CONFIG_FB_CFB_COPYAREA=y | 1037 | CONFIG_FB_CFB_COPYAREA=y |
981 | CONFIG_FB_CFB_IMAGEBLIT=y | 1038 | CONFIG_FB_CFB_IMAGEBLIT=y |
1039 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
982 | # CONFIG_FB_SYS_FILLRECT is not set | 1040 | # CONFIG_FB_SYS_FILLRECT is not set |
983 | # CONFIG_FB_SYS_COPYAREA is not set | 1041 | # CONFIG_FB_SYS_COPYAREA is not set |
984 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 1042 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
@@ -1026,6 +1084,15 @@ CONFIG_FB_RADEON_BACKLIGHT=y | |||
1026 | # CONFIG_FB_PM3 is not set | 1084 | # CONFIG_FB_PM3 is not set |
1027 | # CONFIG_FB_IBM_GXT4500 is not set | 1085 | # CONFIG_FB_IBM_GXT4500 is not set |
1028 | # CONFIG_FB_VIRTUAL is not set | 1086 | # CONFIG_FB_VIRTUAL is not set |
1087 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1088 | # CONFIG_LCD_CLASS_DEVICE is not set | ||
1089 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1090 | # CONFIG_BACKLIGHT_CORGI is not set | ||
1091 | |||
1092 | # | ||
1093 | # Display device support | ||
1094 | # | ||
1095 | # CONFIG_DISPLAY_SUPPORT is not set | ||
1029 | 1096 | ||
1030 | # | 1097 | # |
1031 | # Console display driver support | 1098 | # Console display driver support |
@@ -1178,6 +1245,7 @@ CONFIG_SND_USB_USX2Y=y | |||
1178 | CONFIG_HID_SUPPORT=y | 1245 | CONFIG_HID_SUPPORT=y |
1179 | CONFIG_HID=y | 1246 | CONFIG_HID=y |
1180 | # CONFIG_HID_DEBUG is not set | 1247 | # CONFIG_HID_DEBUG is not set |
1248 | # CONFIG_HIDRAW is not set | ||
1181 | 1249 | ||
1182 | # | 1250 | # |
1183 | # USB Input Devices | 1251 | # USB Input Devices |
@@ -1328,6 +1396,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1328 | # I2C RTC drivers | 1396 | # I2C RTC drivers |
1329 | # | 1397 | # |
1330 | CONFIG_RTC_DRV_DS1307=y | 1398 | CONFIG_RTC_DRV_DS1307=y |
1399 | # CONFIG_RTC_DRV_DS1374 is not set | ||
1331 | # CONFIG_RTC_DRV_DS1672 is not set | 1400 | # CONFIG_RTC_DRV_DS1672 is not set |
1332 | # CONFIG_RTC_DRV_MAX6900 is not set | 1401 | # CONFIG_RTC_DRV_MAX6900 is not set |
1333 | # CONFIG_RTC_DRV_RS5C372 is not set | 1402 | # CONFIG_RTC_DRV_RS5C372 is not set |
@@ -1357,19 +1426,6 @@ CONFIG_RTC_DRV_DS1307=y | |||
1357 | # | 1426 | # |
1358 | 1427 | ||
1359 | # | 1428 | # |
1360 | # DMA Engine support | ||
1361 | # | ||
1362 | # CONFIG_DMA_ENGINE is not set | ||
1363 | |||
1364 | # | ||
1365 | # DMA Clients | ||
1366 | # | ||
1367 | |||
1368 | # | ||
1369 | # DMA Devices | ||
1370 | # | ||
1371 | |||
1372 | # | ||
1373 | # Userspace I/O | 1429 | # Userspace I/O |
1374 | # | 1430 | # |
1375 | # CONFIG_UIO is not set | 1431 | # CONFIG_UIO is not set |
@@ -1388,7 +1444,6 @@ CONFIG_EXT3_FS_XATTR=y | |||
1388 | # CONFIG_EXT3_FS_SECURITY is not set | 1444 | # CONFIG_EXT3_FS_SECURITY is not set |
1389 | # CONFIG_EXT4DEV_FS is not set | 1445 | # CONFIG_EXT4DEV_FS is not set |
1390 | CONFIG_JBD=y | 1446 | CONFIG_JBD=y |
1391 | # CONFIG_JBD_DEBUG is not set | ||
1392 | CONFIG_FS_MBCACHE=y | 1447 | CONFIG_FS_MBCACHE=y |
1393 | # CONFIG_REISERFS_FS is not set | 1448 | # CONFIG_REISERFS_FS is not set |
1394 | # CONFIG_JFS_FS is not set | 1449 | # CONFIG_JFS_FS is not set |
@@ -1436,7 +1491,6 @@ CONFIG_TMPFS=y | |||
1436 | # CONFIG_TMPFS_POSIX_ACL is not set | 1491 | # CONFIG_TMPFS_POSIX_ACL is not set |
1437 | CONFIG_HUGETLBFS=y | 1492 | CONFIG_HUGETLBFS=y |
1438 | CONFIG_HUGETLB_PAGE=y | 1493 | CONFIG_HUGETLB_PAGE=y |
1439 | CONFIG_RAMFS=y | ||
1440 | CONFIG_CONFIGFS_FS=y | 1494 | CONFIG_CONFIGFS_FS=y |
1441 | 1495 | ||
1442 | # | 1496 | # |
@@ -1449,30 +1503,43 @@ CONFIG_CONFIGFS_FS=y | |||
1449 | # CONFIG_BEFS_FS is not set | 1503 | # CONFIG_BEFS_FS is not set |
1450 | # CONFIG_BFS_FS is not set | 1504 | # CONFIG_BFS_FS is not set |
1451 | # CONFIG_EFS_FS is not set | 1505 | # CONFIG_EFS_FS is not set |
1452 | # CONFIG_JFFS2_FS is not set | 1506 | CONFIG_JFFS2_FS=y |
1507 | CONFIG_JFFS2_FS_DEBUG=0 | ||
1508 | CONFIG_JFFS2_FS_WRITEBUFFER=y | ||
1509 | # CONFIG_JFFS2_FS_WBUF_VERIFY is not set | ||
1510 | # CONFIG_JFFS2_SUMMARY is not set | ||
1511 | # CONFIG_JFFS2_FS_XATTR is not set | ||
1512 | # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set | ||
1513 | CONFIG_JFFS2_ZLIB=y | ||
1514 | # CONFIG_JFFS2_LZO is not set | ||
1515 | CONFIG_JFFS2_RTIME=y | ||
1516 | # CONFIG_JFFS2_RUBIN is not set | ||
1453 | # CONFIG_CRAMFS is not set | 1517 | # CONFIG_CRAMFS is not set |
1454 | # CONFIG_VXFS_FS is not set | 1518 | # CONFIG_VXFS_FS is not set |
1455 | # CONFIG_HPFS_FS is not set | 1519 | # CONFIG_HPFS_FS is not set |
1456 | # CONFIG_QNX4FS_FS is not set | 1520 | # CONFIG_QNX4FS_FS is not set |
1457 | # CONFIG_SYSV_FS is not set | 1521 | # CONFIG_SYSV_FS is not set |
1458 | # CONFIG_UFS_FS is not set | 1522 | # CONFIG_UFS_FS is not set |
1459 | 1523 | CONFIG_NETWORK_FILESYSTEMS=y | |
1460 | # | ||
1461 | # Network File Systems | ||
1462 | # | ||
1463 | CONFIG_NFS_FS=y | 1524 | CONFIG_NFS_FS=y |
1464 | CONFIG_NFS_V3=y | 1525 | CONFIG_NFS_V3=y |
1465 | # CONFIG_NFS_V3_ACL is not set | 1526 | # CONFIG_NFS_V3_ACL is not set |
1466 | # CONFIG_NFS_V4 is not set | 1527 | # CONFIG_NFS_V4 is not set |
1467 | # CONFIG_NFS_DIRECTIO is not set | 1528 | # CONFIG_NFS_DIRECTIO is not set |
1468 | # CONFIG_NFSD is not set | 1529 | CONFIG_NFSD=y |
1530 | CONFIG_NFSD_V3=y | ||
1531 | # CONFIG_NFSD_V3_ACL is not set | ||
1532 | CONFIG_NFSD_V4=y | ||
1533 | CONFIG_NFSD_TCP=y | ||
1469 | CONFIG_ROOT_NFS=y | 1534 | CONFIG_ROOT_NFS=y |
1470 | CONFIG_LOCKD=y | 1535 | CONFIG_LOCKD=y |
1471 | CONFIG_LOCKD_V4=y | 1536 | CONFIG_LOCKD_V4=y |
1537 | CONFIG_EXPORTFS=y | ||
1472 | CONFIG_NFS_COMMON=y | 1538 | CONFIG_NFS_COMMON=y |
1473 | CONFIG_SUNRPC=y | 1539 | CONFIG_SUNRPC=y |
1540 | CONFIG_SUNRPC_GSS=y | ||
1474 | # CONFIG_SUNRPC_BIND34 is not set | 1541 | # CONFIG_SUNRPC_BIND34 is not set |
1475 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1542 | CONFIG_RPCSEC_GSS_KRB5=y |
1476 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1543 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1477 | # CONFIG_SMB_FS is not set | 1544 | # CONFIG_SMB_FS is not set |
1478 | # CONFIG_CIFS is not set | 1545 | # CONFIG_CIFS is not set |
@@ -1501,10 +1568,6 @@ CONFIG_MSDOS_PARTITION=y | |||
1501 | # CONFIG_KARMA_PARTITION is not set | 1568 | # CONFIG_KARMA_PARTITION is not set |
1502 | # CONFIG_EFI_PARTITION is not set | 1569 | # CONFIG_EFI_PARTITION is not set |
1503 | # CONFIG_SYSV68_PARTITION is not set | 1570 | # CONFIG_SYSV68_PARTITION is not set |
1504 | |||
1505 | # | ||
1506 | # Native Language Support | ||
1507 | # | ||
1508 | CONFIG_NLS=y | 1571 | CONFIG_NLS=y |
1509 | CONFIG_NLS_DEFAULT="iso8859-1" | 1572 | CONFIG_NLS_DEFAULT="iso8859-1" |
1510 | CONFIG_NLS_CODEPAGE_437=y | 1573 | CONFIG_NLS_CODEPAGE_437=y |
@@ -1545,10 +1608,6 @@ CONFIG_NLS_ISO8859_1=y | |||
1545 | # CONFIG_NLS_KOI8_R is not set | 1608 | # CONFIG_NLS_KOI8_R is not set |
1546 | # CONFIG_NLS_KOI8_U is not set | 1609 | # CONFIG_NLS_KOI8_U is not set |
1547 | # CONFIG_NLS_UTF8 is not set | 1610 | # CONFIG_NLS_UTF8 is not set |
1548 | |||
1549 | # | ||
1550 | # Distributed Lock Manager | ||
1551 | # | ||
1552 | # CONFIG_DLM is not set | 1611 | # CONFIG_DLM is not set |
1553 | # CONFIG_UCC_SLOW is not set | 1612 | # CONFIG_UCC_SLOW is not set |
1554 | 1613 | ||
@@ -1561,23 +1620,24 @@ CONFIG_CRC_CCITT=y | |||
1561 | # CONFIG_CRC_ITU_T is not set | 1620 | # CONFIG_CRC_ITU_T is not set |
1562 | CONFIG_CRC32=y | 1621 | CONFIG_CRC32=y |
1563 | # CONFIG_CRC7 is not set | 1622 | # CONFIG_CRC7 is not set |
1564 | # CONFIG_LIBCRC32C is not set | 1623 | CONFIG_LIBCRC32C=m |
1624 | CONFIG_ZLIB_INFLATE=y | ||
1625 | CONFIG_ZLIB_DEFLATE=y | ||
1565 | CONFIG_PLIST=y | 1626 | CONFIG_PLIST=y |
1566 | CONFIG_HAS_IOMEM=y | 1627 | CONFIG_HAS_IOMEM=y |
1567 | CONFIG_HAS_IOPORT=y | 1628 | CONFIG_HAS_IOPORT=y |
1568 | CONFIG_HAS_DMA=y | 1629 | CONFIG_HAS_DMA=y |
1569 | 1630 | CONFIG_INSTRUMENTATION=y | |
1570 | # | ||
1571 | # Instrumentation Support | ||
1572 | # | ||
1573 | CONFIG_PROFILING=y | 1631 | CONFIG_PROFILING=y |
1574 | CONFIG_OPROFILE=y | 1632 | CONFIG_OPROFILE=y |
1575 | # CONFIG_KPROBES is not set | 1633 | # CONFIG_KPROBES is not set |
1634 | # CONFIG_MARKERS is not set | ||
1576 | 1635 | ||
1577 | # | 1636 | # |
1578 | # Kernel hacking | 1637 | # Kernel hacking |
1579 | # | 1638 | # |
1580 | # CONFIG_PRINTK_TIME is not set | 1639 | # CONFIG_PRINTK_TIME is not set |
1640 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1581 | CONFIG_ENABLE_MUST_CHECK=y | 1641 | CONFIG_ENABLE_MUST_CHECK=y |
1582 | CONFIG_MAGIC_SYSRQ=y | 1642 | CONFIG_MAGIC_SYSRQ=y |
1583 | # CONFIG_UNUSED_SYMBOLS is not set | 1643 | # CONFIG_UNUSED_SYMBOLS is not set |
@@ -1586,7 +1646,7 @@ CONFIG_MAGIC_SYSRQ=y | |||
1586 | CONFIG_DEBUG_KERNEL=y | 1646 | CONFIG_DEBUG_KERNEL=y |
1587 | # CONFIG_DEBUG_SHIRQ is not set | 1647 | # CONFIG_DEBUG_SHIRQ is not set |
1588 | CONFIG_DETECT_SOFTLOCKUP=y | 1648 | CONFIG_DETECT_SOFTLOCKUP=y |
1589 | CONFIG_SCHED_DEBUG=y | 1649 | # CONFIG_SCHED_DEBUG is not set |
1590 | # CONFIG_SCHEDSTATS is not set | 1650 | # CONFIG_SCHEDSTATS is not set |
1591 | # CONFIG_TIMER_STATS is not set | 1651 | # CONFIG_TIMER_STATS is not set |
1592 | # CONFIG_SLUB_DEBUG_ON is not set | 1652 | # CONFIG_SLUB_DEBUG_ON is not set |
@@ -1601,9 +1661,12 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1601 | # CONFIG_DEBUG_INFO is not set | 1661 | # CONFIG_DEBUG_INFO is not set |
1602 | # CONFIG_DEBUG_VM is not set | 1662 | # CONFIG_DEBUG_VM is not set |
1603 | # CONFIG_DEBUG_LIST is not set | 1663 | # CONFIG_DEBUG_LIST is not set |
1664 | # CONFIG_DEBUG_SG is not set | ||
1604 | # CONFIG_FORCED_INLINING is not set | 1665 | # CONFIG_FORCED_INLINING is not set |
1666 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1605 | # CONFIG_RCU_TORTURE_TEST is not set | 1667 | # CONFIG_RCU_TORTURE_TEST is not set |
1606 | # CONFIG_FAULT_INJECTION is not set | 1668 | # CONFIG_FAULT_INJECTION is not set |
1669 | # CONFIG_SAMPLES is not set | ||
1607 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1670 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1608 | # CONFIG_DEBUG_STACK_USAGE is not set | 1671 | # CONFIG_DEBUG_STACK_USAGE is not set |
1609 | # CONFIG_DEBUG_PAGEALLOC is not set | 1672 | # CONFIG_DEBUG_PAGEALLOC is not set |
@@ -1620,6 +1683,7 @@ CONFIG_XMON_DISASSEMBLY=y | |||
1620 | # | 1683 | # |
1621 | # CONFIG_KEYS is not set | 1684 | # CONFIG_KEYS is not set |
1622 | # CONFIG_SECURITY is not set | 1685 | # CONFIG_SECURITY is not set |
1686 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1623 | CONFIG_CRYPTO=y | 1687 | CONFIG_CRYPTO=y |
1624 | CONFIG_CRYPTO_ALGAPI=y | 1688 | CONFIG_CRYPTO_ALGAPI=y |
1625 | CONFIG_CRYPTO_BLKCIPHER=y | 1689 | CONFIG_CRYPTO_BLKCIPHER=y |
@@ -1628,34 +1692,38 @@ CONFIG_CRYPTO_MANAGER=y | |||
1628 | CONFIG_CRYPTO_HMAC=y | 1692 | CONFIG_CRYPTO_HMAC=y |
1629 | # CONFIG_CRYPTO_XCBC is not set | 1693 | # CONFIG_CRYPTO_XCBC is not set |
1630 | # CONFIG_CRYPTO_NULL is not set | 1694 | # CONFIG_CRYPTO_NULL is not set |
1631 | # CONFIG_CRYPTO_MD4 is not set | 1695 | CONFIG_CRYPTO_MD4=y |
1632 | CONFIG_CRYPTO_MD5=y | 1696 | CONFIG_CRYPTO_MD5=y |
1633 | CONFIG_CRYPTO_SHA1=y | 1697 | CONFIG_CRYPTO_SHA1=y |
1634 | # CONFIG_CRYPTO_SHA256 is not set | 1698 | CONFIG_CRYPTO_SHA256=y |
1635 | # CONFIG_CRYPTO_SHA512 is not set | 1699 | CONFIG_CRYPTO_SHA512=y |
1636 | # CONFIG_CRYPTO_WP512 is not set | 1700 | # CONFIG_CRYPTO_WP512 is not set |
1637 | # CONFIG_CRYPTO_TGR192 is not set | 1701 | # CONFIG_CRYPTO_TGR192 is not set |
1638 | # CONFIG_CRYPTO_GF128MUL is not set | 1702 | # CONFIG_CRYPTO_GF128MUL is not set |
1639 | CONFIG_CRYPTO_ECB=m | 1703 | # CONFIG_CRYPTO_ECB is not set |
1640 | CONFIG_CRYPTO_CBC=y | 1704 | CONFIG_CRYPTO_CBC=y |
1641 | CONFIG_CRYPTO_PCBC=m | 1705 | # CONFIG_CRYPTO_PCBC is not set |
1642 | # CONFIG_CRYPTO_LRW is not set | 1706 | # CONFIG_CRYPTO_LRW is not set |
1707 | # CONFIG_CRYPTO_XTS is not set | ||
1643 | # CONFIG_CRYPTO_CRYPTD is not set | 1708 | # CONFIG_CRYPTO_CRYPTD is not set |
1644 | CONFIG_CRYPTO_DES=y | 1709 | CONFIG_CRYPTO_DES=y |
1645 | # CONFIG_CRYPTO_FCRYPT is not set | 1710 | # CONFIG_CRYPTO_FCRYPT is not set |
1646 | # CONFIG_CRYPTO_BLOWFISH is not set | 1711 | CONFIG_CRYPTO_BLOWFISH=y |
1647 | # CONFIG_CRYPTO_TWOFISH is not set | 1712 | # CONFIG_CRYPTO_TWOFISH is not set |
1648 | # CONFIG_CRYPTO_SERPENT is not set | 1713 | # CONFIG_CRYPTO_SERPENT is not set |
1649 | # CONFIG_CRYPTO_AES is not set | 1714 | CONFIG_CRYPTO_AES=y |
1650 | # CONFIG_CRYPTO_CAST5 is not set | 1715 | # CONFIG_CRYPTO_CAST5 is not set |
1651 | # CONFIG_CRYPTO_CAST6 is not set | 1716 | # CONFIG_CRYPTO_CAST6 is not set |
1652 | # CONFIG_CRYPTO_TEA is not set | 1717 | # CONFIG_CRYPTO_TEA is not set |
1653 | # CONFIG_CRYPTO_ARC4 is not set | 1718 | # CONFIG_CRYPTO_ARC4 is not set |
1654 | # CONFIG_CRYPTO_KHAZAD is not set | 1719 | # CONFIG_CRYPTO_KHAZAD is not set |
1655 | # CONFIG_CRYPTO_ANUBIS is not set | 1720 | # CONFIG_CRYPTO_ANUBIS is not set |
1721 | # CONFIG_CRYPTO_SEED is not set | ||
1656 | # CONFIG_CRYPTO_DEFLATE is not set | 1722 | # CONFIG_CRYPTO_DEFLATE is not set |
1657 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1723 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1658 | # CONFIG_CRYPTO_CRC32C is not set | 1724 | # CONFIG_CRYPTO_CRC32C is not set |
1659 | # CONFIG_CRYPTO_CAMELLIA is not set | 1725 | # CONFIG_CRYPTO_CAMELLIA is not set |
1660 | # CONFIG_CRYPTO_TEST is not set | 1726 | # CONFIG_CRYPTO_TEST is not set |
1661 | # CONFIG_CRYPTO_HW is not set | 1727 | # CONFIG_CRYPTO_AUTHENC is not set |
1728 | CONFIG_CRYPTO_HW=y | ||
1729 | # CONFIG_PPC_CLOCK is not set | ||
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig index 05582af50c5b..3e90c835fe12 100644 --- a/arch/powerpc/configs/ppc64_defconfig +++ b/arch/powerpc/configs/ppc64_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.23-rc4 | 3 | # Linux kernel version: 2.6.24-rc2 |
4 | # Thu Aug 30 16:47:09 2007 | 4 | # Tue Nov 6 23:43:56 2007 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -11,6 +11,7 @@ CONFIG_PPC64=y | |||
11 | # CONFIG_POWER4_ONLY is not set | 11 | # CONFIG_POWER4_ONLY is not set |
12 | CONFIG_POWER3=y | 12 | CONFIG_POWER3=y |
13 | CONFIG_POWER4=y | 13 | CONFIG_POWER4=y |
14 | # CONFIG_TUNE_CELL is not set | ||
14 | CONFIG_PPC_FPU=y | 15 | CONFIG_PPC_FPU=y |
15 | CONFIG_ALTIVEC=y | 16 | CONFIG_ALTIVEC=y |
16 | CONFIG_PPC_STD_MMU=y | 17 | CONFIG_PPC_STD_MMU=y |
@@ -19,8 +20,13 @@ CONFIG_VIRT_CPU_ACCOUNTING=y | |||
19 | CONFIG_SMP=y | 20 | CONFIG_SMP=y |
20 | CONFIG_NR_CPUS=32 | 21 | CONFIG_NR_CPUS=32 |
21 | CONFIG_64BIT=y | 22 | CONFIG_64BIT=y |
23 | CONFIG_WORD_SIZE=64 | ||
22 | CONFIG_PPC_MERGE=y | 24 | CONFIG_PPC_MERGE=y |
23 | CONFIG_MMU=y | 25 | CONFIG_MMU=y |
26 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
27 | CONFIG_GENERIC_TIME=y | ||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
29 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
24 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
25 | CONFIG_IRQ_PER_CPU=y | 31 | CONFIG_IRQ_PER_CPU=y |
26 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
@@ -72,8 +78,15 @@ CONFIG_IKCONFIG=y | |||
72 | CONFIG_IKCONFIG_PROC=y | 78 | CONFIG_IKCONFIG_PROC=y |
73 | CONFIG_LOG_BUF_SHIFT=17 | 79 | CONFIG_LOG_BUF_SHIFT=17 |
74 | CONFIG_CGROUPS=y | 80 | CONFIG_CGROUPS=y |
81 | # CONFIG_CGROUP_DEBUG is not set | ||
82 | # CONFIG_CGROUP_NS is not set | ||
83 | # CONFIG_CGROUP_CPUACCT is not set | ||
75 | CONFIG_CPUSETS=y | 84 | CONFIG_CPUSETS=y |
85 | CONFIG_FAIR_GROUP_SCHED=y | ||
86 | CONFIG_FAIR_USER_SCHED=y | ||
87 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
76 | CONFIG_SYSFS_DEPRECATED=y | 88 | CONFIG_SYSFS_DEPRECATED=y |
89 | CONFIG_PROC_PID_CPUSET=y | ||
77 | CONFIG_RELAY=y | 90 | CONFIG_RELAY=y |
78 | CONFIG_BLK_DEV_INITRD=y | 91 | CONFIG_BLK_DEV_INITRD=y |
79 | CONFIG_INITRAMFS_SOURCE="" | 92 | CONFIG_INITRAMFS_SOURCE="" |
@@ -93,7 +106,6 @@ CONFIG_FUTEX=y | |||
93 | CONFIG_ANON_INODES=y | 106 | CONFIG_ANON_INODES=y |
94 | CONFIG_EPOLL=y | 107 | CONFIG_EPOLL=y |
95 | CONFIG_SIGNALFD=y | 108 | CONFIG_SIGNALFD=y |
96 | CONFIG_TIMERFD=y | ||
97 | CONFIG_EVENTFD=y | 109 | CONFIG_EVENTFD=y |
98 | CONFIG_SHMEM=y | 110 | CONFIG_SHMEM=y |
99 | CONFIG_VM_EVENT_COUNTERS=y | 111 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -114,6 +126,7 @@ CONFIG_STOP_MACHINE=y | |||
114 | CONFIG_BLOCK=y | 126 | CONFIG_BLOCK=y |
115 | CONFIG_BLK_DEV_IO_TRACE=y | 127 | CONFIG_BLK_DEV_IO_TRACE=y |
116 | CONFIG_BLK_DEV_BSG=y | 128 | CONFIG_BLK_DEV_BSG=y |
129 | CONFIG_BLOCK_COMPAT=y | ||
117 | 130 | ||
118 | # | 131 | # |
119 | # IO Schedulers | 132 | # IO Schedulers |
@@ -132,7 +145,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" | |||
132 | # Platform support | 145 | # Platform support |
133 | # | 146 | # |
134 | CONFIG_PPC_MULTIPLATFORM=y | 147 | CONFIG_PPC_MULTIPLATFORM=y |
135 | # CONFIG_EMBEDDED6xx is not set | ||
136 | # CONFIG_PPC_82xx is not set | 148 | # CONFIG_PPC_82xx is not set |
137 | # CONFIG_PPC_83xx is not set | 149 | # CONFIG_PPC_83xx is not set |
138 | # CONFIG_PPC_86xx is not set | 150 | # CONFIG_PPC_86xx is not set |
@@ -155,7 +167,15 @@ CONFIG_VIOPATH=y | |||
155 | CONFIG_PPC_PMAC=y | 167 | CONFIG_PPC_PMAC=y |
156 | CONFIG_PPC_PMAC64=y | 168 | CONFIG_PPC_PMAC64=y |
157 | CONFIG_PPC_MAPLE=y | 169 | CONFIG_PPC_MAPLE=y |
158 | # CONFIG_PPC_PASEMI is not set | 170 | CONFIG_PPC_PASEMI=y |
171 | |||
172 | # | ||
173 | # PA Semi PWRficient options | ||
174 | # | ||
175 | CONFIG_PPC_PASEMI_IOMMU=y | ||
176 | # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set | ||
177 | CONFIG_PPC_PASEMI_MDIO=y | ||
178 | CONFIG_ELECTRA_IDE=y | ||
159 | CONFIG_PPC_CELLEB=y | 179 | CONFIG_PPC_CELLEB=y |
160 | # CONFIG_PPC_PS3 is not set | 180 | # CONFIG_PPC_PS3 is not set |
161 | CONFIG_PPC_CELL=y | 181 | CONFIG_PPC_CELL=y |
@@ -188,6 +208,7 @@ CONFIG_RTAS_FLASH=m | |||
188 | CONFIG_PPC_PMI=m | 208 | CONFIG_PPC_PMI=m |
189 | CONFIG_MMIO_NVRAM=y | 209 | CONFIG_MMIO_NVRAM=y |
190 | CONFIG_MPIC_U3_HT_IRQS=y | 210 | CONFIG_MPIC_U3_HT_IRQS=y |
211 | CONFIG_MPIC_BROKEN_REGREAD=y | ||
191 | CONFIG_IBMVIO=y | 212 | CONFIG_IBMVIO=y |
192 | # CONFIG_IBMEBUS is not set | 213 | # CONFIG_IBMEBUS is not set |
193 | # CONFIG_PPC_MPC106 is not set | 214 | # CONFIG_PPC_MPC106 is not set |
@@ -201,6 +222,8 @@ CONFIG_CPU_FREQ_STAT=y | |||
201 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set | 222 | # CONFIG_CPU_FREQ_STAT_DETAILS is not set |
202 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y | 223 | CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y |
203 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set | 224 | # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set |
225 | # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set | ||
226 | # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set | ||
204 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y | 227 | CONFIG_CPU_FREQ_GOV_PERFORMANCE=y |
205 | CONFIG_CPU_FREQ_GOV_POWERSAVE=y | 228 | CONFIG_CPU_FREQ_GOV_POWERSAVE=y |
206 | CONFIG_CPU_FREQ_GOV_USERSPACE=y | 229 | CONFIG_CPU_FREQ_GOV_USERSPACE=y |
@@ -211,6 +234,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y | |||
211 | # CPU Frequency drivers | 234 | # CPU Frequency drivers |
212 | # | 235 | # |
213 | CONFIG_CPU_FREQ_PMAC64=y | 236 | CONFIG_CPU_FREQ_PMAC64=y |
237 | CONFIG_PPC_PASEMI_CPUFREQ=y | ||
214 | # CONFIG_CPM2 is not set | 238 | # CONFIG_CPM2 is not set |
215 | CONFIG_AXON_RAM=m | 239 | CONFIG_AXON_RAM=m |
216 | # CONFIG_FSL_ULI1575 is not set | 240 | # CONFIG_FSL_ULI1575 is not set |
@@ -254,6 +278,8 @@ CONFIG_SPARSEMEM=y | |||
254 | CONFIG_HAVE_MEMORY_PRESENT=y | 278 | CONFIG_HAVE_MEMORY_PRESENT=y |
255 | # CONFIG_SPARSEMEM_STATIC is not set | 279 | # CONFIG_SPARSEMEM_STATIC is not set |
256 | CONFIG_SPARSEMEM_EXTREME=y | 280 | CONFIG_SPARSEMEM_EXTREME=y |
281 | CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y | ||
282 | CONFIG_SPARSEMEM_VMEMMAP=y | ||
257 | CONFIG_MEMORY_HOTPLUG=y | 283 | CONFIG_MEMORY_HOTPLUG=y |
258 | CONFIG_MEMORY_HOTPLUG_SPARSE=y | 284 | CONFIG_MEMORY_HOTPLUG_SPARSE=y |
259 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 285 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
@@ -268,6 +294,7 @@ CONFIG_PROC_DEVICETREE=y | |||
268 | # CONFIG_CMDLINE_BOOL is not set | 294 | # CONFIG_CMDLINE_BOOL is not set |
269 | # CONFIG_PM is not set | 295 | # CONFIG_PM is not set |
270 | CONFIG_SUSPEND_SMP_POSSIBLE=y | 296 | CONFIG_SUSPEND_SMP_POSSIBLE=y |
297 | CONFIG_HIBERNATION_SMP_POSSIBLE=y | ||
271 | CONFIG_SECCOMP=y | 298 | CONFIG_SECCOMP=y |
272 | # CONFIG_WANT_DEVICE_TREE is not set | 299 | # CONFIG_WANT_DEVICE_TREE is not set |
273 | CONFIG_ISA_DMA_API=y | 300 | CONFIG_ISA_DMA_API=y |
@@ -284,12 +311,22 @@ CONFIG_PCI_SYSCALL=y | |||
284 | # CONFIG_PCIEPORTBUS is not set | 311 | # CONFIG_PCIEPORTBUS is not set |
285 | CONFIG_ARCH_SUPPORTS_MSI=y | 312 | CONFIG_ARCH_SUPPORTS_MSI=y |
286 | CONFIG_PCI_MSI=y | 313 | CONFIG_PCI_MSI=y |
314 | CONFIG_PCI_LEGACY=y | ||
287 | # CONFIG_PCI_DEBUG is not set | 315 | # CONFIG_PCI_DEBUG is not set |
316 | CONFIG_PCCARD=y | ||
317 | # CONFIG_PCMCIA_DEBUG is not set | ||
318 | CONFIG_PCMCIA=y | ||
319 | CONFIG_PCMCIA_LOAD_CIS=y | ||
320 | CONFIG_PCMCIA_IOCTL=y | ||
321 | CONFIG_CARDBUS=y | ||
288 | 322 | ||
289 | # | 323 | # |
290 | # PCCARD (PCMCIA/CardBus) support | 324 | # PC-card bridges |
291 | # | 325 | # |
292 | # CONFIG_PCCARD is not set | 326 | # CONFIG_YENTA is not set |
327 | # CONFIG_PD6729 is not set | ||
328 | # CONFIG_I82092 is not set | ||
329 | CONFIG_ELECTRA_CF=y | ||
293 | CONFIG_HOTPLUG_PCI=m | 330 | CONFIG_HOTPLUG_PCI=m |
294 | # CONFIG_HOTPLUG_PCI_FAKE is not set | 331 | # CONFIG_HOTPLUG_PCI_FAKE is not set |
295 | # CONFIG_HOTPLUG_PCI_CPCI is not set | 332 | # CONFIG_HOTPLUG_PCI_CPCI is not set |
@@ -319,7 +356,10 @@ CONFIG_INET=y | |||
319 | CONFIG_IP_MULTICAST=y | 356 | CONFIG_IP_MULTICAST=y |
320 | # CONFIG_IP_ADVANCED_ROUTER is not set | 357 | # CONFIG_IP_ADVANCED_ROUTER is not set |
321 | CONFIG_IP_FIB_HASH=y | 358 | CONFIG_IP_FIB_HASH=y |
322 | # CONFIG_IP_PNP is not set | 359 | CONFIG_IP_PNP=y |
360 | CONFIG_IP_PNP_DHCP=y | ||
361 | CONFIG_IP_PNP_BOOTP=y | ||
362 | # CONFIG_IP_PNP_RARP is not set | ||
323 | CONFIG_NET_IPIP=y | 363 | CONFIG_NET_IPIP=y |
324 | # CONFIG_NET_IPGRE is not set | 364 | # CONFIG_NET_IPGRE is not set |
325 | # CONFIG_IP_MROUTE is not set | 365 | # CONFIG_IP_MROUTE is not set |
@@ -333,6 +373,7 @@ CONFIG_INET_TUNNEL=y | |||
333 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 373 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
334 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 374 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
335 | CONFIG_INET_XFRM_MODE_BEET=y | 375 | CONFIG_INET_XFRM_MODE_BEET=y |
376 | # CONFIG_INET_LRO is not set | ||
336 | CONFIG_INET_DIAG=y | 377 | CONFIG_INET_DIAG=y |
337 | CONFIG_INET_TCP_DIAG=y | 378 | CONFIG_INET_TCP_DIAG=y |
338 | # CONFIG_TCP_CONG_ADVANCED is not set | 379 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -404,6 +445,7 @@ CONFIG_NETFILTER_XT_MATCH_STATE=m | |||
404 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | 445 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m |
405 | CONFIG_NETFILTER_XT_MATCH_STRING=m | 446 | CONFIG_NETFILTER_XT_MATCH_STRING=m |
406 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m | 447 | CONFIG_NETFILTER_XT_MATCH_TCPMSS=m |
448 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | ||
407 | CONFIG_NETFILTER_XT_MATCH_U32=m | 449 | CONFIG_NETFILTER_XT_MATCH_U32=m |
408 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | 450 | CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m |
409 | 451 | ||
@@ -465,10 +507,6 @@ CONFIG_LLC=y | |||
465 | # CONFIG_LAPB is not set | 507 | # CONFIG_LAPB is not set |
466 | # CONFIG_ECONET is not set | 508 | # CONFIG_ECONET is not set |
467 | # CONFIG_WAN_ROUTER is not set | 509 | # CONFIG_WAN_ROUTER is not set |
468 | |||
469 | # | ||
470 | # QoS and/or fair queueing | ||
471 | # | ||
472 | # CONFIG_NET_SCHED is not set | 510 | # CONFIG_NET_SCHED is not set |
473 | CONFIG_NET_CLS_ROUTE=y | 511 | CONFIG_NET_CLS_ROUTE=y |
474 | 512 | ||
@@ -498,6 +536,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
498 | # | 536 | # |
499 | # Generic Driver Options | 537 | # Generic Driver Options |
500 | # | 538 | # |
539 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
501 | CONFIG_STANDALONE=y | 540 | CONFIG_STANDALONE=y |
502 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 541 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
503 | CONFIG_FW_LOADER=y | 542 | CONFIG_FW_LOADER=y |
@@ -539,6 +578,8 @@ CONFIG_BLK_DEV_IDE=y | |||
539 | # CONFIG_BLK_DEV_IDE_SATA is not set | 578 | # CONFIG_BLK_DEV_IDE_SATA is not set |
540 | CONFIG_BLK_DEV_IDEDISK=y | 579 | CONFIG_BLK_DEV_IDEDISK=y |
541 | # CONFIG_IDEDISK_MULTI_MODE is not set | 580 | # CONFIG_IDEDISK_MULTI_MODE is not set |
581 | # CONFIG_BLK_DEV_IDECS is not set | ||
582 | # CONFIG_BLK_DEV_DELKIN is not set | ||
542 | CONFIG_BLK_DEV_IDECD=y | 583 | CONFIG_BLK_DEV_IDECD=y |
543 | # CONFIG_BLK_DEV_IDETAPE is not set | 584 | # CONFIG_BLK_DEV_IDETAPE is not set |
544 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 585 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
@@ -550,6 +591,11 @@ CONFIG_IDE_PROC_FS=y | |||
550 | # IDE chipset support/bugfixes | 591 | # IDE chipset support/bugfixes |
551 | # | 592 | # |
552 | CONFIG_IDE_GENERIC=y | 593 | CONFIG_IDE_GENERIC=y |
594 | # CONFIG_BLK_DEV_PLATFORM is not set | ||
595 | |||
596 | # | ||
597 | # PCI IDE chipsets support | ||
598 | # | ||
553 | CONFIG_BLK_DEV_IDEPCI=y | 599 | CONFIG_BLK_DEV_IDEPCI=y |
554 | CONFIG_IDEPCI_SHARE_IRQ=y | 600 | CONFIG_IDEPCI_SHARE_IRQ=y |
555 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 601 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
@@ -557,8 +603,6 @@ CONFIG_IDEPCI_PCIBUS_ORDER=y | |||
557 | CONFIG_BLK_DEV_GENERIC=y | 603 | CONFIG_BLK_DEV_GENERIC=y |
558 | # CONFIG_BLK_DEV_OPTI621 is not set | 604 | # CONFIG_BLK_DEV_OPTI621 is not set |
559 | CONFIG_BLK_DEV_IDEDMA_PCI=y | 605 | CONFIG_BLK_DEV_IDEDMA_PCI=y |
560 | # CONFIG_BLK_DEV_IDEDMA_FORCED is not set | ||
561 | # CONFIG_IDEDMA_ONLYDISK is not set | ||
562 | # CONFIG_BLK_DEV_AEC62XX is not set | 606 | # CONFIG_BLK_DEV_AEC62XX is not set |
563 | # CONFIG_BLK_DEV_ALI15X3 is not set | 607 | # CONFIG_BLK_DEV_ALI15X3 is not set |
564 | CONFIG_BLK_DEV_AMD74XX=y | 608 | CONFIG_BLK_DEV_AMD74XX=y |
@@ -590,7 +634,7 @@ CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y | |||
590 | CONFIG_BLK_DEV_IDEDMA_PMAC=y | 634 | CONFIG_BLK_DEV_IDEDMA_PMAC=y |
591 | # CONFIG_IDE_ARM is not set | 635 | # CONFIG_IDE_ARM is not set |
592 | CONFIG_BLK_DEV_IDEDMA=y | 636 | CONFIG_BLK_DEV_IDEDMA=y |
593 | # CONFIG_IDEDMA_IVB is not set | 637 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
594 | # CONFIG_BLK_DEV_HD is not set | 638 | # CONFIG_BLK_DEV_HD is not set |
595 | 639 | ||
596 | # | 640 | # |
@@ -631,6 +675,7 @@ CONFIG_SCSI_FC_ATTRS=y | |||
631 | CONFIG_SCSI_ISCSI_ATTRS=m | 675 | CONFIG_SCSI_ISCSI_ATTRS=m |
632 | # CONFIG_SCSI_SAS_ATTRS is not set | 676 | # CONFIG_SCSI_SAS_ATTRS is not set |
633 | # CONFIG_SCSI_SAS_LIBSAS is not set | 677 | # CONFIG_SCSI_SAS_LIBSAS is not set |
678 | CONFIG_SCSI_SRP_ATTRS=y | ||
634 | CONFIG_SCSI_LOWLEVEL=y | 679 | CONFIG_SCSI_LOWLEVEL=y |
635 | # CONFIG_ISCSI_TCP is not set | 680 | # CONFIG_ISCSI_TCP is not set |
636 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 681 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
@@ -671,19 +716,20 @@ CONFIG_SCSI_LPFC=m | |||
671 | # CONFIG_SCSI_DC390T is not set | 716 | # CONFIG_SCSI_DC390T is not set |
672 | CONFIG_SCSI_DEBUG=m | 717 | CONFIG_SCSI_DEBUG=m |
673 | # CONFIG_SCSI_SRP is not set | 718 | # CONFIG_SCSI_SRP is not set |
719 | # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set | ||
674 | CONFIG_ATA=y | 720 | CONFIG_ATA=y |
675 | CONFIG_ATA_NONSTANDARD=y | 721 | CONFIG_ATA_NONSTANDARD=y |
676 | # CONFIG_SATA_AHCI is not set | 722 | # CONFIG_SATA_AHCI is not set |
677 | CONFIG_SATA_SVW=y | 723 | CONFIG_SATA_SVW=y |
678 | # CONFIG_ATA_PIIX is not set | 724 | # CONFIG_ATA_PIIX is not set |
679 | # CONFIG_SATA_MV is not set | 725 | CONFIG_SATA_MV=y |
680 | # CONFIG_SATA_NV is not set | 726 | # CONFIG_SATA_NV is not set |
681 | # CONFIG_PDC_ADMA is not set | 727 | # CONFIG_PDC_ADMA is not set |
682 | # CONFIG_SATA_QSTOR is not set | 728 | # CONFIG_SATA_QSTOR is not set |
683 | # CONFIG_SATA_PROMISE is not set | 729 | # CONFIG_SATA_PROMISE is not set |
684 | # CONFIG_SATA_SX4 is not set | 730 | # CONFIG_SATA_SX4 is not set |
685 | # CONFIG_SATA_SIL is not set | 731 | # CONFIG_SATA_SIL is not set |
686 | # CONFIG_SATA_SIL24 is not set | 732 | CONFIG_SATA_SIL24=y |
687 | # CONFIG_SATA_SIS is not set | 733 | # CONFIG_SATA_SIS is not set |
688 | # CONFIG_SATA_ULI is not set | 734 | # CONFIG_SATA_ULI is not set |
689 | # CONFIG_SATA_VIA is not set | 735 | # CONFIG_SATA_VIA is not set |
@@ -713,8 +759,10 @@ CONFIG_SATA_SVW=y | |||
713 | # CONFIG_PATA_OLDPIIX is not set | 759 | # CONFIG_PATA_OLDPIIX is not set |
714 | # CONFIG_PATA_NETCELL is not set | 760 | # CONFIG_PATA_NETCELL is not set |
715 | # CONFIG_PATA_NS87410 is not set | 761 | # CONFIG_PATA_NS87410 is not set |
762 | # CONFIG_PATA_NS87415 is not set | ||
716 | # CONFIG_PATA_OPTI is not set | 763 | # CONFIG_PATA_OPTI is not set |
717 | # CONFIG_PATA_OPTIDMA is not set | 764 | # CONFIG_PATA_OPTIDMA is not set |
765 | CONFIG_PATA_PCMCIA=y | ||
718 | # CONFIG_PATA_PDC_OLD is not set | 766 | # CONFIG_PATA_PDC_OLD is not set |
719 | # CONFIG_PATA_RADISYS is not set | 767 | # CONFIG_PATA_RADISYS is not set |
720 | # CONFIG_PATA_RZ1000 is not set | 768 | # CONFIG_PATA_RZ1000 is not set |
@@ -725,6 +773,7 @@ CONFIG_SATA_SVW=y | |||
725 | # CONFIG_PATA_SIS is not set | 773 | # CONFIG_PATA_SIS is not set |
726 | # CONFIG_PATA_VIA is not set | 774 | # CONFIG_PATA_VIA is not set |
727 | CONFIG_PATA_WINBOND=y | 775 | CONFIG_PATA_WINBOND=y |
776 | CONFIG_PATA_PLATFORM=y | ||
728 | CONFIG_PATA_SCC=y | 777 | CONFIG_PATA_SCC=y |
729 | CONFIG_MD=y | 778 | CONFIG_MD=y |
730 | CONFIG_BLK_DEV_MD=y | 779 | CONFIG_BLK_DEV_MD=y |
@@ -745,15 +794,10 @@ CONFIG_DM_ZERO=m | |||
745 | CONFIG_DM_MULTIPATH=m | 794 | CONFIG_DM_MULTIPATH=m |
746 | CONFIG_DM_MULTIPATH_EMC=m | 795 | CONFIG_DM_MULTIPATH_EMC=m |
747 | # CONFIG_DM_MULTIPATH_RDAC is not set | 796 | # CONFIG_DM_MULTIPATH_RDAC is not set |
797 | # CONFIG_DM_MULTIPATH_HP is not set | ||
748 | # CONFIG_DM_DELAY is not set | 798 | # CONFIG_DM_DELAY is not set |
749 | 799 | # CONFIG_DM_UEVENT is not set | |
750 | # | ||
751 | # Fusion MPT device support | ||
752 | # | ||
753 | # CONFIG_FUSION is not set | 800 | # CONFIG_FUSION is not set |
754 | # CONFIG_FUSION_SPI is not set | ||
755 | # CONFIG_FUSION_FC is not set | ||
756 | # CONFIG_FUSION_SAS is not set | ||
757 | 801 | ||
758 | # | 802 | # |
759 | # IEEE 1394 (FireWire) support | 803 | # IEEE 1394 (FireWire) support |
@@ -800,13 +844,15 @@ CONFIG_BONDING=m | |||
800 | # CONFIG_MACVLAN is not set | 844 | # CONFIG_MACVLAN is not set |
801 | # CONFIG_EQUALIZER is not set | 845 | # CONFIG_EQUALIZER is not set |
802 | CONFIG_TUN=m | 846 | CONFIG_TUN=m |
847 | # CONFIG_VETH is not set | ||
848 | # CONFIG_IP1000 is not set | ||
803 | # CONFIG_ARCNET is not set | 849 | # CONFIG_ARCNET is not set |
804 | CONFIG_PHYLIB=m | 850 | CONFIG_PHYLIB=y |
805 | 851 | ||
806 | # | 852 | # |
807 | # MII PHY device drivers | 853 | # MII PHY device drivers |
808 | # | 854 | # |
809 | CONFIG_MARVELL_PHY=m | 855 | CONFIG_MARVELL_PHY=y |
810 | # CONFIG_DAVICOM_PHY is not set | 856 | # CONFIG_DAVICOM_PHY is not set |
811 | # CONFIG_QSEMI_PHY is not set | 857 | # CONFIG_QSEMI_PHY is not set |
812 | # CONFIG_LXT_PHY is not set | 858 | # CONFIG_LXT_PHY is not set |
@@ -818,6 +864,9 @@ CONFIG_BROADCOM_PHY=m | |||
818 | CONFIG_FIXED_PHY=m | 864 | CONFIG_FIXED_PHY=m |
819 | CONFIG_FIXED_MII_10_FDX=y | 865 | CONFIG_FIXED_MII_10_FDX=y |
820 | CONFIG_FIXED_MII_100_FDX=y | 866 | CONFIG_FIXED_MII_100_FDX=y |
867 | # CONFIG_FIXED_MII_1000_FDX is not set | ||
868 | CONFIG_FIXED_MII_AMNT=1 | ||
869 | # CONFIG_MDIO_BITBANG is not set | ||
821 | CONFIG_NET_ETHERNET=y | 870 | CONFIG_NET_ETHERNET=y |
822 | CONFIG_MII=y | 871 | CONFIG_MII=y |
823 | # CONFIG_HAPPYMEAL is not set | 872 | # CONFIG_HAPPYMEAL is not set |
@@ -829,6 +878,11 @@ CONFIG_VORTEX=y | |||
829 | # CONFIG_NET_TULIP is not set | 878 | # CONFIG_NET_TULIP is not set |
830 | # CONFIG_HP100 is not set | 879 | # CONFIG_HP100 is not set |
831 | CONFIG_IBMVETH=m | 880 | CONFIG_IBMVETH=m |
881 | # CONFIG_IBM_NEW_EMAC is not set | ||
882 | CONFIG_IBM_NEW_EMAC_ZMII=y | ||
883 | CONFIG_IBM_NEW_EMAC_RGMII=y | ||
884 | CONFIG_IBM_NEW_EMAC_TAH=y | ||
885 | CONFIG_IBM_NEW_EMAC_EMAC4=y | ||
832 | CONFIG_NET_PCI=y | 886 | CONFIG_NET_PCI=y |
833 | CONFIG_PCNET32=y | 887 | CONFIG_PCNET32=y |
834 | # CONFIG_PCNET32_NAPI is not set | 888 | # CONFIG_PCNET32_NAPI is not set |
@@ -836,7 +890,6 @@ CONFIG_PCNET32=y | |||
836 | # CONFIG_ADAPTEC_STARFIRE is not set | 890 | # CONFIG_ADAPTEC_STARFIRE is not set |
837 | # CONFIG_B44 is not set | 891 | # CONFIG_B44 is not set |
838 | # CONFIG_FORCEDETH is not set | 892 | # CONFIG_FORCEDETH is not set |
839 | # CONFIG_DGRS is not set | ||
840 | # CONFIG_EEPRO100 is not set | 893 | # CONFIG_EEPRO100 is not set |
841 | CONFIG_E100=y | 894 | CONFIG_E100=y |
842 | # CONFIG_FEALNX is not set | 895 | # CONFIG_FEALNX is not set |
@@ -856,6 +909,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y | |||
856 | CONFIG_E1000=y | 909 | CONFIG_E1000=y |
857 | # CONFIG_E1000_NAPI is not set | 910 | # CONFIG_E1000_NAPI is not set |
858 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 911 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
912 | # CONFIG_E1000E is not set | ||
859 | # CONFIG_NS83820 is not set | 913 | # CONFIG_NS83820 is not set |
860 | # CONFIG_HAMACHI is not set | 914 | # CONFIG_HAMACHI is not set |
861 | # CONFIG_YELLOWFIN is not set | 915 | # CONFIG_YELLOWFIN is not set |
@@ -863,6 +917,7 @@ CONFIG_E1000=y | |||
863 | # CONFIG_SIS190 is not set | 917 | # CONFIG_SIS190 is not set |
864 | # CONFIG_SKGE is not set | 918 | # CONFIG_SKGE is not set |
865 | # CONFIG_SKY2 is not set | 919 | # CONFIG_SKY2 is not set |
920 | # CONFIG_SK98LIN is not set | ||
866 | # CONFIG_VIA_VELOCITY is not set | 921 | # CONFIG_VIA_VELOCITY is not set |
867 | CONFIG_TIGON3=y | 922 | CONFIG_TIGON3=y |
868 | # CONFIG_BNX2 is not set | 923 | # CONFIG_BNX2 is not set |
@@ -872,13 +927,16 @@ CONFIG_SPIDER_NET=m | |||
872 | CONFIG_NETDEV_10000=y | 927 | CONFIG_NETDEV_10000=y |
873 | # CONFIG_CHELSIO_T1 is not set | 928 | # CONFIG_CHELSIO_T1 is not set |
874 | # CONFIG_CHELSIO_T3 is not set | 929 | # CONFIG_CHELSIO_T3 is not set |
930 | # CONFIG_IXGBE is not set | ||
875 | CONFIG_IXGB=m | 931 | CONFIG_IXGB=m |
876 | # CONFIG_IXGB_NAPI is not set | 932 | # CONFIG_IXGB_NAPI is not set |
877 | # CONFIG_S2IO is not set | 933 | # CONFIG_S2IO is not set |
878 | # CONFIG_MYRI10GE is not set | 934 | # CONFIG_MYRI10GE is not set |
879 | # CONFIG_NETXEN_NIC is not set | 935 | # CONFIG_NETXEN_NIC is not set |
880 | CONFIG_PASEMI_MAC=m | 936 | # CONFIG_NIU is not set |
937 | CONFIG_PASEMI_MAC=y | ||
881 | # CONFIG_MLX4_CORE is not set | 938 | # CONFIG_MLX4_CORE is not set |
939 | # CONFIG_TEHUTI is not set | ||
882 | CONFIG_TR=y | 940 | CONFIG_TR=y |
883 | CONFIG_IBMOL=y | 941 | CONFIG_IBMOL=y |
884 | # CONFIG_3C359 is not set | 942 | # CONFIG_3C359 is not set |
@@ -899,6 +957,7 @@ CONFIG_IBMOL=y | |||
899 | # CONFIG_USB_RTL8150 is not set | 957 | # CONFIG_USB_RTL8150 is not set |
900 | # CONFIG_USB_USBNET_MII is not set | 958 | # CONFIG_USB_USBNET_MII is not set |
901 | # CONFIG_USB_USBNET is not set | 959 | # CONFIG_USB_USBNET is not set |
960 | # CONFIG_NET_PCMCIA is not set | ||
902 | # CONFIG_WAN is not set | 961 | # CONFIG_WAN is not set |
903 | CONFIG_ISERIES_VETH=m | 962 | CONFIG_ISERIES_VETH=m |
904 | # CONFIG_FDDI is not set | 963 | # CONFIG_FDDI is not set |
@@ -918,6 +977,7 @@ CONFIG_SLHC=m | |||
918 | # CONFIG_NET_FC is not set | 977 | # CONFIG_NET_FC is not set |
919 | # CONFIG_SHAPER is not set | 978 | # CONFIG_SHAPER is not set |
920 | CONFIG_NETCONSOLE=y | 979 | CONFIG_NETCONSOLE=y |
980 | # CONFIG_NETCONSOLE_DYNAMIC is not set | ||
921 | CONFIG_NETPOLL=y | 981 | CONFIG_NETPOLL=y |
922 | CONFIG_NETPOLL_TRAP=y | 982 | CONFIG_NETPOLL_TRAP=y |
923 | CONFIG_NET_POLL_CONTROLLER=y | 983 | CONFIG_NET_POLL_CONTROLLER=y |
@@ -939,7 +999,6 @@ CONFIG_INPUT_MOUSEDEV=y | |||
939 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | 999 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 |
940 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | 1000 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 |
941 | # CONFIG_INPUT_JOYDEV is not set | 1001 | # CONFIG_INPUT_JOYDEV is not set |
942 | # CONFIG_INPUT_TSDEV is not set | ||
943 | CONFIG_INPUT_EVDEV=m | 1002 | CONFIG_INPUT_EVDEV=m |
944 | # CONFIG_INPUT_EVBUG is not set | 1003 | # CONFIG_INPUT_EVBUG is not set |
945 | 1004 | ||
@@ -1002,6 +1061,7 @@ CONFIG_HW_CONSOLE=y | |||
1002 | CONFIG_SERIAL_8250=y | 1061 | CONFIG_SERIAL_8250=y |
1003 | CONFIG_SERIAL_8250_CONSOLE=y | 1062 | CONFIG_SERIAL_8250_CONSOLE=y |
1004 | CONFIG_SERIAL_8250_PCI=y | 1063 | CONFIG_SERIAL_8250_PCI=y |
1064 | # CONFIG_SERIAL_8250_CS is not set | ||
1005 | CONFIG_SERIAL_8250_NR_UARTS=4 | 1065 | CONFIG_SERIAL_8250_NR_UARTS=4 |
1006 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | 1066 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 |
1007 | # CONFIG_SERIAL_8250_EXTENDED is not set | 1067 | # CONFIG_SERIAL_8250_EXTENDED is not set |
@@ -1029,14 +1089,18 @@ CONFIG_HVC_RTAS=y | |||
1029 | CONFIG_HVC_BEAT=y | 1089 | CONFIG_HVC_BEAT=y |
1030 | CONFIG_HVCS=m | 1090 | CONFIG_HVCS=m |
1031 | # CONFIG_IPMI_HANDLER is not set | 1091 | # CONFIG_IPMI_HANDLER is not set |
1032 | # CONFIG_WATCHDOG is not set | ||
1033 | # CONFIG_HW_RANDOM is not set | 1092 | # CONFIG_HW_RANDOM is not set |
1034 | CONFIG_GEN_RTC=y | 1093 | CONFIG_GEN_RTC=y |
1035 | # CONFIG_GEN_RTC_X is not set | 1094 | # CONFIG_GEN_RTC_X is not set |
1036 | # CONFIG_R3964 is not set | 1095 | # CONFIG_R3964 is not set |
1037 | # CONFIG_APPLICOM is not set | 1096 | # CONFIG_APPLICOM is not set |
1038 | # CONFIG_AGP is not set | 1097 | |
1039 | # CONFIG_DRM is not set | 1098 | # |
1099 | # PCMCIA character devices | ||
1100 | # | ||
1101 | # CONFIG_SYNCLINK_CS is not set | ||
1102 | # CONFIG_CARDMAN_4000 is not set | ||
1103 | # CONFIG_CARDMAN_4040 is not set | ||
1040 | CONFIG_RAW_DRIVER=y | 1104 | CONFIG_RAW_DRIVER=y |
1041 | CONFIG_MAX_RAW_DEVS=256 | 1105 | CONFIG_MAX_RAW_DEVS=256 |
1042 | # CONFIG_HANGCHECK_TIMER is not set | 1106 | # CONFIG_HANGCHECK_TIMER is not set |
@@ -1068,6 +1132,7 @@ CONFIG_I2C_POWERMAC=y | |||
1068 | # CONFIG_I2C_NFORCE2 is not set | 1132 | # CONFIG_I2C_NFORCE2 is not set |
1069 | # CONFIG_I2C_OCORES is not set | 1133 | # CONFIG_I2C_OCORES is not set |
1070 | # CONFIG_I2C_PARPORT_LIGHT is not set | 1134 | # CONFIG_I2C_PARPORT_LIGHT is not set |
1135 | CONFIG_I2C_PASEMI=y | ||
1071 | # CONFIG_I2C_PROSAVAGE is not set | 1136 | # CONFIG_I2C_PROSAVAGE is not set |
1072 | # CONFIG_I2C_SAVAGE4 is not set | 1137 | # CONFIG_I2C_SAVAGE4 is not set |
1073 | # CONFIG_I2C_SIMTEC is not set | 1138 | # CONFIG_I2C_SIMTEC is not set |
@@ -1106,6 +1171,13 @@ CONFIG_I2C_POWERMAC=y | |||
1106 | # CONFIG_W1 is not set | 1171 | # CONFIG_W1 is not set |
1107 | # CONFIG_POWER_SUPPLY is not set | 1172 | # CONFIG_POWER_SUPPLY is not set |
1108 | # CONFIG_HWMON is not set | 1173 | # CONFIG_HWMON is not set |
1174 | # CONFIG_WATCHDOG is not set | ||
1175 | |||
1176 | # | ||
1177 | # Sonics Silicon Backplane | ||
1178 | # | ||
1179 | CONFIG_SSB_POSSIBLE=y | ||
1180 | # CONFIG_SSB is not set | ||
1109 | 1181 | ||
1110 | # | 1182 | # |
1111 | # Multifunction device drivers | 1183 | # Multifunction device drivers |
@@ -1122,18 +1194,8 @@ CONFIG_I2C_POWERMAC=y | |||
1122 | # | 1194 | # |
1123 | # Graphics support | 1195 | # Graphics support |
1124 | # | 1196 | # |
1125 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 1197 | # CONFIG_AGP is not set |
1126 | CONFIG_LCD_CLASS_DEVICE=y | 1198 | # CONFIG_DRM is not set |
1127 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1128 | |||
1129 | # | ||
1130 | # Display device support | ||
1131 | # | ||
1132 | CONFIG_DISPLAY_SUPPORT=y | ||
1133 | |||
1134 | # | ||
1135 | # Display hardware drivers | ||
1136 | # | ||
1137 | # CONFIG_VGASTATE is not set | 1199 | # CONFIG_VGASTATE is not set |
1138 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 1200 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
1139 | CONFIG_FB=y | 1201 | CONFIG_FB=y |
@@ -1142,6 +1204,7 @@ CONFIG_FB_DDC=y | |||
1142 | CONFIG_FB_CFB_FILLRECT=y | 1204 | CONFIG_FB_CFB_FILLRECT=y |
1143 | CONFIG_FB_CFB_COPYAREA=y | 1205 | CONFIG_FB_CFB_COPYAREA=y |
1144 | CONFIG_FB_CFB_IMAGEBLIT=y | 1206 | CONFIG_FB_CFB_IMAGEBLIT=y |
1207 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
1145 | # CONFIG_FB_SYS_FILLRECT is not set | 1208 | # CONFIG_FB_SYS_FILLRECT is not set |
1146 | # CONFIG_FB_SYS_COPYAREA is not set | 1209 | # CONFIG_FB_SYS_COPYAREA is not set |
1147 | # CONFIG_FB_SYS_IMAGEBLIT is not set | 1210 | # CONFIG_FB_SYS_IMAGEBLIT is not set |
@@ -1192,6 +1255,19 @@ CONFIG_FB_RADEON_BACKLIGHT=y | |||
1192 | # CONFIG_FB_PM3 is not set | 1255 | # CONFIG_FB_PM3 is not set |
1193 | CONFIG_FB_IBM_GXT4500=y | 1256 | CONFIG_FB_IBM_GXT4500=y |
1194 | # CONFIG_FB_VIRTUAL is not set | 1257 | # CONFIG_FB_VIRTUAL is not set |
1258 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1259 | CONFIG_LCD_CLASS_DEVICE=y | ||
1260 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1261 | # CONFIG_BACKLIGHT_CORGI is not set | ||
1262 | |||
1263 | # | ||
1264 | # Display device support | ||
1265 | # | ||
1266 | CONFIG_DISPLAY_SUPPORT=y | ||
1267 | |||
1268 | # | ||
1269 | # Display hardware drivers | ||
1270 | # | ||
1195 | 1271 | ||
1196 | # | 1272 | # |
1197 | # Console display driver support | 1273 | # Console display driver support |
@@ -1333,6 +1409,12 @@ CONFIG_SND_AOA_SOUNDBUS_I2S=m | |||
1333 | # CONFIG_SND_USB_CAIAQ is not set | 1409 | # CONFIG_SND_USB_CAIAQ is not set |
1334 | 1410 | ||
1335 | # | 1411 | # |
1412 | # PCMCIA devices | ||
1413 | # | ||
1414 | # CONFIG_SND_VXPOCKET is not set | ||
1415 | # CONFIG_SND_PDAUDIOCF is not set | ||
1416 | |||
1417 | # | ||
1336 | # System on Chip audio support | 1418 | # System on Chip audio support |
1337 | # | 1419 | # |
1338 | # CONFIG_SND_SOC is not set | 1420 | # CONFIG_SND_SOC is not set |
@@ -1348,6 +1430,7 @@ CONFIG_SND_AOA_SOUNDBUS_I2S=m | |||
1348 | CONFIG_HID_SUPPORT=y | 1430 | CONFIG_HID_SUPPORT=y |
1349 | CONFIG_HID=y | 1431 | CONFIG_HID=y |
1350 | # CONFIG_HID_DEBUG is not set | 1432 | # CONFIG_HID_DEBUG is not set |
1433 | # CONFIG_HIDRAW is not set | ||
1351 | 1434 | ||
1352 | # | 1435 | # |
1353 | # USB Input Devices | 1436 | # USB Input Devices |
@@ -1489,19 +1572,53 @@ CONFIG_EDAC=y | |||
1489 | # | 1572 | # |
1490 | # CONFIG_EDAC_DEBUG is not set | 1573 | # CONFIG_EDAC_DEBUG is not set |
1491 | CONFIG_EDAC_MM_EDAC=y | 1574 | CONFIG_EDAC_MM_EDAC=y |
1492 | # CONFIG_RTC_CLASS is not set | 1575 | CONFIG_EDAC_PASEMI=y |
1576 | CONFIG_RTC_LIB=y | ||
1577 | CONFIG_RTC_CLASS=y | ||
1578 | CONFIG_RTC_HCTOSYS=y | ||
1579 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1580 | # CONFIG_RTC_DEBUG is not set | ||
1581 | |||
1582 | # | ||
1583 | # RTC interfaces | ||
1584 | # | ||
1585 | CONFIG_RTC_INTF_SYSFS=y | ||
1586 | CONFIG_RTC_INTF_PROC=y | ||
1587 | CONFIG_RTC_INTF_DEV=y | ||
1588 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1589 | # CONFIG_RTC_DRV_TEST is not set | ||
1590 | |||
1591 | # | ||
1592 | # I2C RTC drivers | ||
1593 | # | ||
1594 | CONFIG_RTC_DRV_DS1307=y | ||
1595 | # CONFIG_RTC_DRV_DS1374 is not set | ||
1596 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1597 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
1598 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1599 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1600 | # CONFIG_RTC_DRV_X1205 is not set | ||
1601 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1602 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1603 | # CONFIG_RTC_DRV_M41T80 is not set | ||
1493 | 1604 | ||
1494 | # | 1605 | # |
1495 | # DMA Engine support | 1606 | # SPI RTC drivers |
1496 | # | 1607 | # |
1497 | # CONFIG_DMA_ENGINE is not set | ||
1498 | 1608 | ||
1499 | # | 1609 | # |
1500 | # DMA Clients | 1610 | # Platform RTC drivers |
1501 | # | 1611 | # |
1612 | # CONFIG_RTC_DRV_CMOS is not set | ||
1613 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1614 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1615 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1616 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1617 | # CONFIG_RTC_DRV_M48T59 is not set | ||
1618 | # CONFIG_RTC_DRV_V3020 is not set | ||
1502 | 1619 | ||
1503 | # | 1620 | # |
1504 | # DMA Devices | 1621 | # on-CPU RTC drivers |
1505 | # | 1622 | # |
1506 | 1623 | ||
1507 | # | 1624 | # |
@@ -1585,7 +1702,6 @@ CONFIG_TMPFS=y | |||
1585 | # CONFIG_TMPFS_POSIX_ACL is not set | 1702 | # CONFIG_TMPFS_POSIX_ACL is not set |
1586 | CONFIG_HUGETLBFS=y | 1703 | CONFIG_HUGETLBFS=y |
1587 | CONFIG_HUGETLB_PAGE=y | 1704 | CONFIG_HUGETLB_PAGE=y |
1588 | CONFIG_RAMFS=y | ||
1589 | # CONFIG_CONFIGFS_FS is not set | 1705 | # CONFIG_CONFIGFS_FS is not set |
1590 | 1706 | ||
1591 | # | 1707 | # |
@@ -1604,10 +1720,7 @@ CONFIG_CRAMFS=y | |||
1604 | # CONFIG_QNX4FS_FS is not set | 1720 | # CONFIG_QNX4FS_FS is not set |
1605 | # CONFIG_SYSV_FS is not set | 1721 | # CONFIG_SYSV_FS is not set |
1606 | # CONFIG_UFS_FS is not set | 1722 | # CONFIG_UFS_FS is not set |
1607 | 1723 | CONFIG_NETWORK_FILESYSTEMS=y | |
1608 | # | ||
1609 | # Network File Systems | ||
1610 | # | ||
1611 | CONFIG_NFS_FS=y | 1724 | CONFIG_NFS_FS=y |
1612 | CONFIG_NFS_V3=y | 1725 | CONFIG_NFS_V3=y |
1613 | CONFIG_NFS_V3_ACL=y | 1726 | CONFIG_NFS_V3_ACL=y |
@@ -1619,6 +1732,7 @@ CONFIG_NFSD_V3=y | |||
1619 | CONFIG_NFSD_V3_ACL=y | 1732 | CONFIG_NFSD_V3_ACL=y |
1620 | CONFIG_NFSD_V4=y | 1733 | CONFIG_NFSD_V4=y |
1621 | CONFIG_NFSD_TCP=y | 1734 | CONFIG_NFSD_TCP=y |
1735 | CONFIG_ROOT_NFS=y | ||
1622 | CONFIG_LOCKD=y | 1736 | CONFIG_LOCKD=y |
1623 | CONFIG_LOCKD_V4=y | 1737 | CONFIG_LOCKD_V4=y |
1624 | CONFIG_EXPORTFS=m | 1738 | CONFIG_EXPORTFS=m |
@@ -1626,6 +1740,7 @@ CONFIG_NFS_ACL_SUPPORT=y | |||
1626 | CONFIG_NFS_COMMON=y | 1740 | CONFIG_NFS_COMMON=y |
1627 | CONFIG_SUNRPC=y | 1741 | CONFIG_SUNRPC=y |
1628 | CONFIG_SUNRPC_GSS=y | 1742 | CONFIG_SUNRPC_GSS=y |
1743 | CONFIG_SUNRPC_XPRT_RDMA=m | ||
1629 | # CONFIG_SUNRPC_BIND34 is not set | 1744 | # CONFIG_SUNRPC_BIND34 is not set |
1630 | CONFIG_RPCSEC_GSS_KRB5=y | 1745 | CONFIG_RPCSEC_GSS_KRB5=y |
1631 | CONFIG_RPCSEC_GSS_SPKM3=m | 1746 | CONFIG_RPCSEC_GSS_SPKM3=m |
@@ -1662,10 +1777,6 @@ CONFIG_MSDOS_PARTITION=y | |||
1662 | # CONFIG_KARMA_PARTITION is not set | 1777 | # CONFIG_KARMA_PARTITION is not set |
1663 | # CONFIG_EFI_PARTITION is not set | 1778 | # CONFIG_EFI_PARTITION is not set |
1664 | # CONFIG_SYSV68_PARTITION is not set | 1779 | # CONFIG_SYSV68_PARTITION is not set |
1665 | |||
1666 | # | ||
1667 | # Native Language Support | ||
1668 | # | ||
1669 | CONFIG_NLS=y | 1780 | CONFIG_NLS=y |
1670 | CONFIG_NLS_DEFAULT="iso8859-1" | 1781 | CONFIG_NLS_DEFAULT="iso8859-1" |
1671 | CONFIG_NLS_CODEPAGE_437=y | 1782 | CONFIG_NLS_CODEPAGE_437=y |
@@ -1706,10 +1817,6 @@ CONFIG_NLS_ISO8859_15=m | |||
1706 | CONFIG_NLS_KOI8_R=m | 1817 | CONFIG_NLS_KOI8_R=m |
1707 | CONFIG_NLS_KOI8_U=m | 1818 | CONFIG_NLS_KOI8_U=m |
1708 | CONFIG_NLS_UTF8=m | 1819 | CONFIG_NLS_UTF8=m |
1709 | |||
1710 | # | ||
1711 | # Distributed Lock Manager | ||
1712 | # | ||
1713 | # CONFIG_DLM is not set | 1820 | # CONFIG_DLM is not set |
1714 | # CONFIG_UCC_SLOW is not set | 1821 | # CONFIG_UCC_SLOW is not set |
1715 | 1822 | ||
@@ -1733,18 +1840,17 @@ CONFIG_PLIST=y | |||
1733 | CONFIG_HAS_IOMEM=y | 1840 | CONFIG_HAS_IOMEM=y |
1734 | CONFIG_HAS_IOPORT=y | 1841 | CONFIG_HAS_IOPORT=y |
1735 | CONFIG_HAS_DMA=y | 1842 | CONFIG_HAS_DMA=y |
1736 | 1843 | CONFIG_INSTRUMENTATION=y | |
1737 | # | ||
1738 | # Instrumentation Support | ||
1739 | # | ||
1740 | CONFIG_PROFILING=y | 1844 | CONFIG_PROFILING=y |
1741 | CONFIG_OPROFILE=y | 1845 | CONFIG_OPROFILE=y |
1742 | # CONFIG_KPROBES is not set | 1846 | # CONFIG_KPROBES is not set |
1847 | # CONFIG_MARKERS is not set | ||
1743 | 1848 | ||
1744 | # | 1849 | # |
1745 | # Kernel hacking | 1850 | # Kernel hacking |
1746 | # | 1851 | # |
1747 | # CONFIG_PRINTK_TIME is not set | 1852 | # CONFIG_PRINTK_TIME is not set |
1853 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1748 | CONFIG_ENABLE_MUST_CHECK=y | 1854 | CONFIG_ENABLE_MUST_CHECK=y |
1749 | CONFIG_MAGIC_SYSRQ=y | 1855 | CONFIG_MAGIC_SYSRQ=y |
1750 | # CONFIG_UNUSED_SYMBOLS is not set | 1856 | # CONFIG_UNUSED_SYMBOLS is not set |
@@ -1768,9 +1874,12 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1768 | # CONFIG_DEBUG_INFO is not set | 1874 | # CONFIG_DEBUG_INFO is not set |
1769 | # CONFIG_DEBUG_VM is not set | 1875 | # CONFIG_DEBUG_VM is not set |
1770 | # CONFIG_DEBUG_LIST is not set | 1876 | # CONFIG_DEBUG_LIST is not set |
1877 | # CONFIG_DEBUG_SG is not set | ||
1771 | CONFIG_FORCED_INLINING=y | 1878 | CONFIG_FORCED_INLINING=y |
1879 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1772 | # CONFIG_RCU_TORTURE_TEST is not set | 1880 | # CONFIG_RCU_TORTURE_TEST is not set |
1773 | # CONFIG_FAULT_INJECTION is not set | 1881 | # CONFIG_FAULT_INJECTION is not set |
1882 | # CONFIG_SAMPLES is not set | ||
1774 | CONFIG_DEBUG_STACKOVERFLOW=y | 1883 | CONFIG_DEBUG_STACKOVERFLOW=y |
1775 | CONFIG_DEBUG_STACK_USAGE=y | 1884 | CONFIG_DEBUG_STACK_USAGE=y |
1776 | # CONFIG_DEBUG_PAGEALLOC is not set | 1885 | # CONFIG_DEBUG_PAGEALLOC is not set |
@@ -1780,6 +1889,7 @@ CONFIG_XMON=y | |||
1780 | # CONFIG_XMON_DEFAULT is not set | 1889 | # CONFIG_XMON_DEFAULT is not set |
1781 | CONFIG_XMON_DISASSEMBLY=y | 1890 | CONFIG_XMON_DISASSEMBLY=y |
1782 | CONFIG_IRQSTACKS=y | 1891 | CONFIG_IRQSTACKS=y |
1892 | # CONFIG_VIRQ_DEBUG is not set | ||
1783 | CONFIG_BOOTX_TEXT=y | 1893 | CONFIG_BOOTX_TEXT=y |
1784 | # CONFIG_PPC_EARLY_DEBUG is not set | 1894 | # CONFIG_PPC_EARLY_DEBUG is not set |
1785 | 1895 | ||
@@ -1788,6 +1898,7 @@ CONFIG_BOOTX_TEXT=y | |||
1788 | # | 1898 | # |
1789 | # CONFIG_KEYS is not set | 1899 | # CONFIG_KEYS is not set |
1790 | # CONFIG_SECURITY is not set | 1900 | # CONFIG_SECURITY is not set |
1901 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1791 | CONFIG_XOR_BLOCKS=y | 1902 | CONFIG_XOR_BLOCKS=y |
1792 | CONFIG_ASYNC_CORE=y | 1903 | CONFIG_ASYNC_CORE=y |
1793 | CONFIG_ASYNC_MEMCPY=y | 1904 | CONFIG_ASYNC_MEMCPY=y |
@@ -1812,6 +1923,7 @@ CONFIG_CRYPTO_ECB=m | |||
1812 | CONFIG_CRYPTO_CBC=y | 1923 | CONFIG_CRYPTO_CBC=y |
1813 | CONFIG_CRYPTO_PCBC=m | 1924 | CONFIG_CRYPTO_PCBC=m |
1814 | # CONFIG_CRYPTO_LRW is not set | 1925 | # CONFIG_CRYPTO_LRW is not set |
1926 | # CONFIG_CRYPTO_XTS is not set | ||
1815 | # CONFIG_CRYPTO_CRYPTD is not set | 1927 | # CONFIG_CRYPTO_CRYPTD is not set |
1816 | CONFIG_CRYPTO_DES=y | 1928 | CONFIG_CRYPTO_DES=y |
1817 | # CONFIG_CRYPTO_FCRYPT is not set | 1929 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1826,9 +1938,12 @@ CONFIG_CRYPTO_TEA=m | |||
1826 | CONFIG_CRYPTO_ARC4=m | 1938 | CONFIG_CRYPTO_ARC4=m |
1827 | CONFIG_CRYPTO_KHAZAD=m | 1939 | CONFIG_CRYPTO_KHAZAD=m |
1828 | CONFIG_CRYPTO_ANUBIS=m | 1940 | CONFIG_CRYPTO_ANUBIS=m |
1941 | # CONFIG_CRYPTO_SEED is not set | ||
1829 | CONFIG_CRYPTO_DEFLATE=m | 1942 | CONFIG_CRYPTO_DEFLATE=m |
1830 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1943 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1831 | CONFIG_CRYPTO_CRC32C=m | 1944 | CONFIG_CRYPTO_CRC32C=m |
1832 | # CONFIG_CRYPTO_CAMELLIA is not set | 1945 | # CONFIG_CRYPTO_CAMELLIA is not set |
1833 | CONFIG_CRYPTO_TEST=m | 1946 | CONFIG_CRYPTO_TEST=m |
1947 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1834 | # CONFIG_CRYPTO_HW is not set | 1948 | # CONFIG_CRYPTO_HW is not set |
1949 | # CONFIG_PPC_CLOCK is not set | ||
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c index d3fb7d0c6c1c..9ed351f3c966 100644 --- a/arch/powerpc/kernel/cputable.c +++ b/arch/powerpc/kernel/cputable.c | |||
@@ -1104,6 +1104,16 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1104 | { | 1104 | { |
1105 | .pvr_mask = 0xf0000fff, | 1105 | .pvr_mask = 0xf0000fff, |
1106 | .pvr_value = 0x40000850, | 1106 | .pvr_value = 0x40000850, |
1107 | .cpu_name = "440GR Rev. A", | ||
1108 | .cpu_features = CPU_FTRS_44X, | ||
1109 | .cpu_user_features = COMMON_USER_BOOKE, | ||
1110 | .icache_bsize = 32, | ||
1111 | .dcache_bsize = 32, | ||
1112 | .platform = "ppc440", | ||
1113 | }, | ||
1114 | { /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */ | ||
1115 | .pvr_mask = 0xf0000fff, | ||
1116 | .pvr_value = 0x40000858, | ||
1107 | .cpu_name = "440EP Rev. A", | 1117 | .cpu_name = "440EP Rev. A", |
1108 | .cpu_features = CPU_FTRS_44X, | 1118 | .cpu_features = CPU_FTRS_44X, |
1109 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, | 1119 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
@@ -1115,28 +1125,27 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1115 | { | 1125 | { |
1116 | .pvr_mask = 0xf0000fff, | 1126 | .pvr_mask = 0xf0000fff, |
1117 | .pvr_value = 0x400008d3, | 1127 | .pvr_value = 0x400008d3, |
1118 | .cpu_name = "440EP Rev. B", | 1128 | .cpu_name = "440GR Rev. B", |
1119 | .cpu_features = CPU_FTRS_44X, | 1129 | .cpu_features = CPU_FTRS_44X, |
1120 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, | 1130 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
1121 | .icache_bsize = 32, | 1131 | .icache_bsize = 32, |
1122 | .dcache_bsize = 32, | 1132 | .dcache_bsize = 32, |
1123 | .cpu_setup = __setup_cpu_440ep, | ||
1124 | .platform = "ppc440", | 1133 | .platform = "ppc440", |
1125 | }, | 1134 | }, |
1126 | { /* 440EPX */ | 1135 | { /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */ |
1127 | .pvr_mask = 0xf0000ffb, | 1136 | .pvr_mask = 0xf0000fff, |
1128 | .pvr_value = 0x200008D0, | 1137 | .pvr_value = 0x400008db, |
1129 | .cpu_name = "440EPX", | 1138 | .cpu_name = "440EP Rev. B", |
1130 | .cpu_features = CPU_FTRS_44X, | 1139 | .cpu_features = CPU_FTRS_44X, |
1131 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, | 1140 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
1132 | .icache_bsize = 32, | 1141 | .icache_bsize = 32, |
1133 | .dcache_bsize = 32, | 1142 | .dcache_bsize = 32, |
1134 | .cpu_setup = __setup_cpu_440epx, | 1143 | .cpu_setup = __setup_cpu_440ep, |
1135 | .platform = "ppc440", | 1144 | .platform = "ppc440", |
1136 | }, | 1145 | }, |
1137 | { /* 440GRX */ | 1146 | { /* 440GRX */ |
1138 | .pvr_mask = 0xf0000ffb, | 1147 | .pvr_mask = 0xf0000ffb, |
1139 | .pvr_value = 0x200008D8, | 1148 | .pvr_value = 0x200008D0, |
1140 | .cpu_name = "440GRX", | 1149 | .cpu_name = "440GRX", |
1141 | .cpu_features = CPU_FTRS_44X, | 1150 | .cpu_features = CPU_FTRS_44X, |
1142 | .cpu_user_features = COMMON_USER_BOOKE, | 1151 | .cpu_user_features = COMMON_USER_BOOKE, |
@@ -1145,6 +1154,17 @@ static struct cpu_spec __initdata cpu_specs[] = { | |||
1145 | .cpu_setup = __setup_cpu_440grx, | 1154 | .cpu_setup = __setup_cpu_440grx, |
1146 | .platform = "ppc440", | 1155 | .platform = "ppc440", |
1147 | }, | 1156 | }, |
1157 | { /* Use logical PVR for 440EPx (logical pvr = pvr | 0x8) */ | ||
1158 | .pvr_mask = 0xf0000ffb, | ||
1159 | .pvr_value = 0x200008D8, | ||
1160 | .cpu_name = "440EPX", | ||
1161 | .cpu_features = CPU_FTRS_44X, | ||
1162 | .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, | ||
1163 | .icache_bsize = 32, | ||
1164 | .dcache_bsize = 32, | ||
1165 | .cpu_setup = __setup_cpu_440epx, | ||
1166 | .platform = "ppc440", | ||
1167 | }, | ||
1148 | { /* 440GP Rev. B */ | 1168 | { /* 440GP Rev. B */ |
1149 | .pvr_mask = 0xf0000fff, | 1169 | .pvr_mask = 0xf0000fff, |
1150 | .pvr_value = 0x40000440, | 1170 | .pvr_value = 0x40000440, |
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index 21d889e63e87..a7572cf464bd 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -244,6 +244,13 @@ syscall_exit_cont: | |||
244 | andis. r10,r0,DBCR0_IC@h | 244 | andis. r10,r0,DBCR0_IC@h |
245 | bnel- load_dbcr0 | 245 | bnel- load_dbcr0 |
246 | #endif | 246 | #endif |
247 | #ifdef CONFIG_44x | ||
248 | lis r4,icache_44x_need_flush@ha | ||
249 | lwz r5,icache_44x_need_flush@l(r4) | ||
250 | cmplwi cr0,r5,0 | ||
251 | bne- 2f | ||
252 | 1: | ||
253 | #endif /* CONFIG_44x */ | ||
247 | stwcx. r0,0,r1 /* to clear the reservation */ | 254 | stwcx. r0,0,r1 /* to clear the reservation */ |
248 | lwz r4,_LINK(r1) | 255 | lwz r4,_LINK(r1) |
249 | lwz r5,_CCR(r1) | 256 | lwz r5,_CCR(r1) |
@@ -258,6 +265,12 @@ syscall_exit_cont: | |||
258 | mtspr SPRN_SRR1,r8 | 265 | mtspr SPRN_SRR1,r8 |
259 | SYNC | 266 | SYNC |
260 | RFI | 267 | RFI |
268 | #ifdef CONFIG_44x | ||
269 | 2: li r7,0 | ||
270 | iccci r0,r0 | ||
271 | stw r7,icache_44x_need_flush@l(r4) | ||
272 | b 1b | ||
273 | #endif /* CONFIG_44x */ | ||
261 | 274 | ||
262 | 66: li r3,-ENOSYS | 275 | 66: li r3,-ENOSYS |
263 | b ret_from_syscall | 276 | b ret_from_syscall |
@@ -683,6 +696,16 @@ resume_kernel: | |||
683 | 696 | ||
684 | /* interrupts are hard-disabled at this point */ | 697 | /* interrupts are hard-disabled at this point */ |
685 | restore: | 698 | restore: |
699 | #ifdef CONFIG_44x | ||
700 | lis r4,icache_44x_need_flush@ha | ||
701 | lwz r5,icache_44x_need_flush@l(r4) | ||
702 | cmplwi cr0,r5,0 | ||
703 | beq+ 1f | ||
704 | li r6,0 | ||
705 | iccci r0,r0 | ||
706 | stw r6,icache_44x_need_flush@l(r4) | ||
707 | 1: | ||
708 | #endif /* CONFIG_44x */ | ||
686 | lwz r0,GPR0(r1) | 709 | lwz r0,GPR0(r1) |
687 | lwz r2,GPR2(r1) | 710 | lwz r2,GPR2(r1) |
688 | REST_4GPRS(3, r1) | 711 | REST_4GPRS(3, r1) |
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S index 97c5857faf00..c34986835a4e 100644 --- a/arch/powerpc/kernel/head_64.S +++ b/arch/powerpc/kernel/head_64.S | |||
@@ -904,7 +904,7 @@ handle_page_fault: | |||
904 | */ | 904 | */ |
905 | 12: bl .save_nvgprs | 905 | 12: bl .save_nvgprs |
906 | addi r3,r1,STACK_FRAME_OVERHEAD | 906 | addi r3,r1,STACK_FRAME_OVERHEAD |
907 | lwz r4,_DAR(r1) | 907 | ld r4,_DAR(r1) |
908 | bl .low_hash_fault | 908 | bl .low_hash_fault |
909 | b .ret_from_except | 909 | b .ret_from_except |
910 | 910 | ||
diff --git a/arch/powerpc/kernel/idle.c b/arch/powerpc/kernel/idle.c index abd2957fe537..c3cf0e8f3ac1 100644 --- a/arch/powerpc/kernel/idle.c +++ b/arch/powerpc/kernel/idle.c | |||
@@ -122,7 +122,7 @@ static ctl_table powersave_nap_sysctl_root[] = { | |||
122 | { | 122 | { |
123 | .ctl_name = CTL_KERN, | 123 | .ctl_name = CTL_KERN, |
124 | .procname = "kernel", | 124 | .procname = "kernel", |
125 | .mode = 0755, | 125 | .mode = 0555, |
126 | .child = powersave_nap_ctl_table, | 126 | .child = powersave_nap_ctl_table, |
127 | }, | 127 | }, |
128 | {} | 128 | {} |
diff --git a/arch/powerpc/kernel/misc_32.S b/arch/powerpc/kernel/misc_32.S index 8533de50347d..8b642ab26d37 100644 --- a/arch/powerpc/kernel/misc_32.S +++ b/arch/powerpc/kernel/misc_32.S | |||
@@ -288,7 +288,16 @@ _GLOBAL(_tlbia) | |||
288 | */ | 288 | */ |
289 | _GLOBAL(_tlbie) | 289 | _GLOBAL(_tlbie) |
290 | #if defined(CONFIG_40x) | 290 | #if defined(CONFIG_40x) |
291 | /* We run the search with interrupts disabled because we have to change | ||
292 | * the PID and I don't want to preempt when that happens. | ||
293 | */ | ||
294 | mfmsr r5 | ||
295 | mfspr r6,SPRN_PID | ||
296 | wrteei 0 | ||
297 | mtspr SPRN_PID,r4 | ||
291 | tlbsx. r3, 0, r3 | 298 | tlbsx. r3, 0, r3 |
299 | mtspr SPRN_PID,r6 | ||
300 | wrtee r5 | ||
292 | bne 10f | 301 | bne 10f |
293 | sync | 302 | sync |
294 | /* There are only 64 TLB entries, so r3 < 64, which means bit 25 is clear. | 303 | /* There are only 64 TLB entries, so r3 < 64, which means bit 25 is clear. |
@@ -297,23 +306,23 @@ _GLOBAL(_tlbie) | |||
297 | tlbwe r3, r3, TLB_TAG | 306 | tlbwe r3, r3, TLB_TAG |
298 | isync | 307 | isync |
299 | 10: | 308 | 10: |
309 | |||
300 | #elif defined(CONFIG_44x) | 310 | #elif defined(CONFIG_44x) |
301 | mfspr r4,SPRN_MMUCR | 311 | mfspr r5,SPRN_MMUCR |
302 | mfspr r5,SPRN_PID /* Get PID */ | 312 | rlwimi r5,r4,0,24,31 /* Set TID */ |
303 | rlwimi r4,r5,0,24,31 /* Set TID */ | ||
304 | 313 | ||
305 | /* We have to run the search with interrupts disabled, even critical | 314 | /* We have to run the search with interrupts disabled, even critical |
306 | * and debug interrupts (in fact the only critical exceptions we have | 315 | * and debug interrupts (in fact the only critical exceptions we have |
307 | * are debug and machine check). Otherwise an interrupt which causes | 316 | * are debug and machine check). Otherwise an interrupt which causes |
308 | * a TLB miss can clobber the MMUCR between the mtspr and the tlbsx. */ | 317 | * a TLB miss can clobber the MMUCR between the mtspr and the tlbsx. */ |
309 | mfmsr r5 | 318 | mfmsr r4 |
310 | lis r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@ha | 319 | lis r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@ha |
311 | addi r6,r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@l | 320 | addi r6,r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@l |
312 | andc r6,r5,r6 | 321 | andc r6,r4,r6 |
313 | mtmsr r6 | 322 | mtmsr r6 |
314 | mtspr SPRN_MMUCR,r4 | 323 | mtspr SPRN_MMUCR,r5 |
315 | tlbsx. r3, 0, r3 | 324 | tlbsx. r3, 0, r3 |
316 | mtmsr r5 | 325 | mtmsr r4 |
317 | bne 10f | 326 | bne 10f |
318 | sync | 327 | sync |
319 | /* There are only 64 TLB entries, so r3 < 64, | 328 | /* There are only 64 TLB entries, so r3 < 64, |
@@ -534,12 +543,21 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) | |||
534 | addi r3,r3,L1_CACHE_BYTES | 543 | addi r3,r3,L1_CACHE_BYTES |
535 | bdnz 0b | 544 | bdnz 0b |
536 | sync | 545 | sync |
546 | #ifndef CONFIG_44x | ||
547 | /* We don't flush the icache on 44x. Those have a virtual icache | ||
548 | * and we don't have access to the virtual address here (it's | ||
549 | * not the page vaddr but where it's mapped in user space). The | ||
550 | * flushing of the icache on these is handled elsewhere, when | ||
551 | * a change in the address space occurs, before returning to | ||
552 | * user space | ||
553 | */ | ||
537 | mtctr r4 | 554 | mtctr r4 |
538 | 1: icbi 0,r6 | 555 | 1: icbi 0,r6 |
539 | addi r6,r6,L1_CACHE_BYTES | 556 | addi r6,r6,L1_CACHE_BYTES |
540 | bdnz 1b | 557 | bdnz 1b |
541 | sync | 558 | sync |
542 | isync | 559 | isync |
560 | #endif /* CONFIG_44x */ | ||
543 | blr | 561 | blr |
544 | 562 | ||
545 | /* | 563 | /* |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index b9d88374f14f..41e13f4cc6e3 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -350,7 +350,7 @@ struct task_struct *__switch_to(struct task_struct *prev, | |||
350 | local_irq_save(flags); | 350 | local_irq_save(flags); |
351 | 351 | ||
352 | account_system_vtime(current); | 352 | account_system_vtime(current); |
353 | account_process_vtime(current); | 353 | account_process_tick(current, 0); |
354 | calculate_steal_time(); | 354 | calculate_steal_time(); |
355 | 355 | ||
356 | last = _switch(old_thread, new_thread); | 356 | last = _switch(old_thread, new_thread); |
diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 9f329a8928ea..acc0d247d3c3 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c | |||
@@ -697,6 +697,18 @@ static int __init early_init_dt_scan_cpus(unsigned long node, | |||
697 | prop = of_get_flat_dt_prop(node, "cpu-version", NULL); | 697 | prop = of_get_flat_dt_prop(node, "cpu-version", NULL); |
698 | if (prop && (*prop & 0xff000000) == 0x0f000000) | 698 | if (prop && (*prop & 0xff000000) == 0x0f000000) |
699 | identify_cpu(0, *prop); | 699 | identify_cpu(0, *prop); |
700 | #if defined(CONFIG_44x) && defined(CONFIG_PPC_FPU) | ||
701 | /* | ||
702 | * Since 440GR(x)/440EP(x) processors have the same pvr, | ||
703 | * we check the node path and set bit 28 in the cur_cpu_spec | ||
704 | * pvr for EP(x) processor version. This bit is always 0 in | ||
705 | * the "real" pvr. Then we call identify_cpu again with | ||
706 | * the new logical pvr to enable FPU support. | ||
707 | */ | ||
708 | if (strstr(uname, "440EP")) { | ||
709 | identify_cpu(0, cur_cpu_spec->pvr_value | 0x8); | ||
710 | } | ||
711 | #endif | ||
700 | } | 712 | } |
701 | 713 | ||
702 | check_cpu_feature_properties(node); | 714 | check_cpu_feature_properties(node); |
diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c index 1db10f70ae69..1add6efdb315 100644 --- a/arch/powerpc/kernel/prom_init.c +++ b/arch/powerpc/kernel/prom_init.c | |||
@@ -1244,7 +1244,7 @@ static void __init prom_initialize_tce_table(void) | |||
1244 | local_alloc_bottom = base; | 1244 | local_alloc_bottom = base; |
1245 | 1245 | ||
1246 | /* It seems OF doesn't null-terminate the path :-( */ | 1246 | /* It seems OF doesn't null-terminate the path :-( */ |
1247 | memset(path, 0, sizeof(path)); | 1247 | memset(path, 0, PROM_SCRATCH_SIZE); |
1248 | /* Call OF to setup the TCE hardware */ | 1248 | /* Call OF to setup the TCE hardware */ |
1249 | if (call_prom("package-to-path", 3, 1, node, | 1249 | if (call_prom("package-to-path", 3, 1, node, |
1250 | path, PROM_SCRATCH_SIZE-1) == PROM_ERROR) { | 1250 | path, PROM_SCRATCH_SIZE-1) == PROM_ERROR) { |
diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c index ede77dbbd4df..3b1529c103ef 100644 --- a/arch/powerpc/kernel/setup_64.c +++ b/arch/powerpc/kernel/setup_64.c | |||
@@ -291,23 +291,16 @@ static void __init initialize_cache_info(void) | |||
291 | if ( num_cpus == 1 ) { | 291 | if ( num_cpus == 1 ) { |
292 | const u32 *sizep, *lsizep; | 292 | const u32 *sizep, *lsizep; |
293 | u32 size, lsize; | 293 | u32 size, lsize; |
294 | const char *dc, *ic; | ||
295 | |||
296 | /* Then read cache informations */ | ||
297 | if (machine_is(powermac)) { | ||
298 | dc = "d-cache-block-size"; | ||
299 | ic = "i-cache-block-size"; | ||
300 | } else { | ||
301 | dc = "d-cache-line-size"; | ||
302 | ic = "i-cache-line-size"; | ||
303 | } | ||
304 | 294 | ||
305 | size = 0; | 295 | size = 0; |
306 | lsize = cur_cpu_spec->dcache_bsize; | 296 | lsize = cur_cpu_spec->dcache_bsize; |
307 | sizep = of_get_property(np, "d-cache-size", NULL); | 297 | sizep = of_get_property(np, "d-cache-size", NULL); |
308 | if (sizep != NULL) | 298 | if (sizep != NULL) |
309 | size = *sizep; | 299 | size = *sizep; |
310 | lsizep = of_get_property(np, dc, NULL); | 300 | lsizep = of_get_property(np, "d-cache-block-size", NULL); |
301 | /* fallback if block size missing */ | ||
302 | if (lsizep == NULL) | ||
303 | lsizep = of_get_property(np, "d-cache-line-size", NULL); | ||
311 | if (lsizep != NULL) | 304 | if (lsizep != NULL) |
312 | lsize = *lsizep; | 305 | lsize = *lsizep; |
313 | if (sizep == 0 || lsizep == 0) | 306 | if (sizep == 0 || lsizep == 0) |
@@ -324,7 +317,9 @@ static void __init initialize_cache_info(void) | |||
324 | sizep = of_get_property(np, "i-cache-size", NULL); | 317 | sizep = of_get_property(np, "i-cache-size", NULL); |
325 | if (sizep != NULL) | 318 | if (sizep != NULL) |
326 | size = *sizep; | 319 | size = *sizep; |
327 | lsizep = of_get_property(np, ic, NULL); | 320 | lsizep = of_get_property(np, "i-cache-block-size", NULL); |
321 | if (lsizep == NULL) | ||
322 | lsizep = of_get_property(np, "i-cache-line-size", NULL); | ||
328 | if (lsizep != NULL) | 323 | if (lsizep != NULL) |
329 | lsize = *lsizep; | 324 | lsize = *lsizep; |
330 | if (sizep == 0 || lsizep == 0) | 325 | if (sizep == 0 || lsizep == 0) |
diff --git a/arch/powerpc/kernel/swsusp_32.S b/arch/powerpc/kernel/swsusp_32.S index 69e8f86aa4f8..77fc76607ab2 100644 --- a/arch/powerpc/kernel/swsusp_32.S +++ b/arch/powerpc/kernel/swsusp_32.S | |||
@@ -133,10 +133,12 @@ _GLOBAL(swsusp_arch_suspend) | |||
133 | /* Resume code */ | 133 | /* Resume code */ |
134 | _GLOBAL(swsusp_arch_resume) | 134 | _GLOBAL(swsusp_arch_resume) |
135 | 135 | ||
136 | #ifdef CONFIG_ALTIVEC | ||
136 | /* Stop pending alitvec streams and memory accesses */ | 137 | /* Stop pending alitvec streams and memory accesses */ |
137 | BEGIN_FTR_SECTION | 138 | BEGIN_FTR_SECTION |
138 | DSSALL | 139 | DSSALL |
139 | END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) | 140 | END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) |
141 | #endif | ||
140 | sync | 142 | sync |
141 | 143 | ||
142 | /* Disable MSR:DR to make sure we don't take a TLB or | 144 | /* Disable MSR:DR to make sure we don't take a TLB or |
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c index 9eb3284deac4..4beb6329dfb7 100644 --- a/arch/powerpc/kernel/time.c +++ b/arch/powerpc/kernel/time.c | |||
@@ -259,7 +259,7 @@ void account_system_vtime(struct task_struct *tsk) | |||
259 | * user and system time records. | 259 | * user and system time records. |
260 | * Must be called with interrupts disabled. | 260 | * Must be called with interrupts disabled. |
261 | */ | 261 | */ |
262 | void account_process_vtime(struct task_struct *tsk) | 262 | void account_process_tick(struct task_struct *tsk, int user_tick) |
263 | { | 263 | { |
264 | cputime_t utime, utimescaled; | 264 | cputime_t utime, utimescaled; |
265 | 265 | ||
@@ -274,18 +274,6 @@ void account_process_vtime(struct task_struct *tsk) | |||
274 | account_user_time_scaled(tsk, utimescaled); | 274 | account_user_time_scaled(tsk, utimescaled); |
275 | } | 275 | } |
276 | 276 | ||
277 | static void account_process_time(struct pt_regs *regs) | ||
278 | { | ||
279 | int cpu = smp_processor_id(); | ||
280 | |||
281 | account_process_vtime(current); | ||
282 | run_local_timers(); | ||
283 | if (rcu_pending(cpu)) | ||
284 | rcu_check_callbacks(cpu, user_mode(regs)); | ||
285 | scheduler_tick(); | ||
286 | run_posix_cpu_timers(current); | ||
287 | } | ||
288 | |||
289 | /* | 277 | /* |
290 | * Stuff for accounting stolen time. | 278 | * Stuff for accounting stolen time. |
291 | */ | 279 | */ |
@@ -375,7 +363,6 @@ static void snapshot_purr(void) | |||
375 | 363 | ||
376 | #else /* ! CONFIG_VIRT_CPU_ACCOUNTING */ | 364 | #else /* ! CONFIG_VIRT_CPU_ACCOUNTING */ |
377 | #define calc_cputime_factors() | 365 | #define calc_cputime_factors() |
378 | #define account_process_time(regs) update_process_times(user_mode(regs)) | ||
379 | #define calculate_steal_time() do { } while (0) | 366 | #define calculate_steal_time() do { } while (0) |
380 | #endif | 367 | #endif |
381 | 368 | ||
@@ -586,7 +573,7 @@ void timer_interrupt(struct pt_regs * regs) | |||
586 | /* not time for this event yet */ | 573 | /* not time for this event yet */ |
587 | now = per_cpu(decrementer_next_tb, cpu) - now; | 574 | now = per_cpu(decrementer_next_tb, cpu) - now; |
588 | if (now <= DECREMENTER_MAX) | 575 | if (now <= DECREMENTER_MAX) |
589 | set_dec((unsigned int)now - 1); | 576 | set_dec((int)now); |
590 | return; | 577 | return; |
591 | } | 578 | } |
592 | old_regs = set_irq_regs(regs); | 579 | old_regs = set_irq_regs(regs); |
@@ -599,20 +586,8 @@ void timer_interrupt(struct pt_regs * regs) | |||
599 | get_lppaca()->int_dword.fields.decr_int = 0; | 586 | get_lppaca()->int_dword.fields.decr_int = 0; |
600 | #endif | 587 | #endif |
601 | 588 | ||
602 | /* | ||
603 | * We cannot disable the decrementer, so in the period | ||
604 | * between this cpu's being marked offline in cpu_online_map | ||
605 | * and calling stop-self, it is taking timer interrupts. | ||
606 | * Avoid calling into the scheduler rebalancing code if this | ||
607 | * is the case. | ||
608 | */ | ||
609 | if (!cpu_is_offline(cpu)) | ||
610 | account_process_time(regs); | ||
611 | |||
612 | if (evt->event_handler) | 589 | if (evt->event_handler) |
613 | evt->event_handler(evt); | 590 | evt->event_handler(evt); |
614 | else | ||
615 | evt->set_next_event(DECREMENTER_MAX, evt); | ||
616 | 591 | ||
617 | #ifdef CONFIG_PPC_ISERIES | 592 | #ifdef CONFIG_PPC_ISERIES |
618 | if (firmware_has_feature(FW_FEATURE_ISERIES) && hvlpevent_is_pending()) | 593 | if (firmware_has_feature(FW_FEATURE_ISERIES) && hvlpevent_is_pending()) |
@@ -836,9 +811,6 @@ static int decrementer_set_next_event(unsigned long evt, | |||
836 | struct clock_event_device *dev) | 811 | struct clock_event_device *dev) |
837 | { | 812 | { |
838 | __get_cpu_var(decrementer_next_tb) = get_tb_or_rtc() + evt; | 813 | __get_cpu_var(decrementer_next_tb) = get_tb_or_rtc() + evt; |
839 | /* The decrementer interrupts on the 0 -> -1 transition */ | ||
840 | if (evt) | ||
841 | --evt; | ||
842 | set_dec(evt); | 814 | set_dec(evt); |
843 | return 0; | 815 | return 0; |
844 | } | 816 | } |
@@ -871,7 +843,8 @@ void init_decrementer_clockevent(void) | |||
871 | decrementer_clockevent.shift); | 843 | decrementer_clockevent.shift); |
872 | decrementer_clockevent.max_delta_ns = | 844 | decrementer_clockevent.max_delta_ns = |
873 | clockevent_delta2ns(DECREMENTER_MAX, &decrementer_clockevent); | 845 | clockevent_delta2ns(DECREMENTER_MAX, &decrementer_clockevent); |
874 | decrementer_clockevent.min_delta_ns = 1000; | 846 | decrementer_clockevent.min_delta_ns = |
847 | clockevent_delta2ns(2, &decrementer_clockevent); | ||
875 | 848 | ||
876 | register_decrementer_clockevent(cpu); | 849 | register_decrementer_clockevent(cpu); |
877 | } | 850 | } |
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S index 823a8cbd60b5..f66fa5d966b0 100644 --- a/arch/powerpc/kernel/vmlinux.lds.S +++ b/arch/powerpc/kernel/vmlinux.lds.S | |||
@@ -37,11 +37,10 @@ SECTIONS | |||
37 | ALIGN_FUNCTION(); | 37 | ALIGN_FUNCTION(); |
38 | *(.text.head) | 38 | *(.text.head) |
39 | _text = .; | 39 | _text = .; |
40 | TEXT_TEXT | 40 | *(.text .fixup .text.init.refok .exit.text.refok) |
41 | SCHED_TEXT | 41 | SCHED_TEXT |
42 | LOCK_TEXT | 42 | LOCK_TEXT |
43 | KPROBES_TEXT | 43 | KPROBES_TEXT |
44 | *(.fixup) | ||
45 | 44 | ||
46 | #ifdef CONFIG_PPC32 | 45 | #ifdef CONFIG_PPC32 |
47 | *(.got1) | 46 | *(.got1) |
diff --git a/arch/powerpc/mm/40x_mmu.c b/arch/powerpc/mm/40x_mmu.c index e067df836be2..3899ea97fbdf 100644 --- a/arch/powerpc/mm/40x_mmu.c +++ b/arch/powerpc/mm/40x_mmu.c | |||
@@ -98,13 +98,12 @@ unsigned long __init mmu_mapin_ram(void) | |||
98 | 98 | ||
99 | v = KERNELBASE; | 99 | v = KERNELBASE; |
100 | p = PPC_MEMSTART; | 100 | p = PPC_MEMSTART; |
101 | s = 0; | 101 | s = total_lowmem; |
102 | 102 | ||
103 | if (__map_without_ltlbs) { | 103 | if (__map_without_ltlbs) |
104 | return s; | 104 | return 0; |
105 | } | ||
106 | 105 | ||
107 | while (s <= (total_lowmem - LARGE_PAGE_SIZE_16M)) { | 106 | while (s >= LARGE_PAGE_SIZE_16M) { |
108 | pmd_t *pmdp; | 107 | pmd_t *pmdp; |
109 | unsigned long val = p | _PMD_SIZE_16M | _PAGE_HWEXEC | _PAGE_HWWRITE; | 108 | unsigned long val = p | _PMD_SIZE_16M | _PAGE_HWEXEC | _PAGE_HWWRITE; |
110 | 109 | ||
@@ -116,10 +115,10 @@ unsigned long __init mmu_mapin_ram(void) | |||
116 | 115 | ||
117 | v += LARGE_PAGE_SIZE_16M; | 116 | v += LARGE_PAGE_SIZE_16M; |
118 | p += LARGE_PAGE_SIZE_16M; | 117 | p += LARGE_PAGE_SIZE_16M; |
119 | s += LARGE_PAGE_SIZE_16M; | 118 | s -= LARGE_PAGE_SIZE_16M; |
120 | } | 119 | } |
121 | 120 | ||
122 | while (s <= (total_lowmem - LARGE_PAGE_SIZE_4M)) { | 121 | while (s >= LARGE_PAGE_SIZE_4M) { |
123 | pmd_t *pmdp; | 122 | pmd_t *pmdp; |
124 | unsigned long val = p | _PMD_SIZE_4M | _PAGE_HWEXEC | _PAGE_HWWRITE; | 123 | unsigned long val = p | _PMD_SIZE_4M | _PAGE_HWEXEC | _PAGE_HWWRITE; |
125 | 124 | ||
@@ -128,8 +127,8 @@ unsigned long __init mmu_mapin_ram(void) | |||
128 | 127 | ||
129 | v += LARGE_PAGE_SIZE_4M; | 128 | v += LARGE_PAGE_SIZE_4M; |
130 | p += LARGE_PAGE_SIZE_4M; | 129 | p += LARGE_PAGE_SIZE_4M; |
131 | s += LARGE_PAGE_SIZE_4M; | 130 | s -= LARGE_PAGE_SIZE_4M; |
132 | } | 131 | } |
133 | 132 | ||
134 | return s; | 133 | return total_lowmem - s; |
135 | } | 134 | } |
diff --git a/arch/powerpc/mm/44x_mmu.c b/arch/powerpc/mm/44x_mmu.c index c3df50476539..04dc08798d3d 100644 --- a/arch/powerpc/mm/44x_mmu.c +++ b/arch/powerpc/mm/44x_mmu.c | |||
@@ -35,6 +35,7 @@ | |||
35 | */ | 35 | */ |
36 | unsigned int tlb_44x_index; /* = 0 */ | 36 | unsigned int tlb_44x_index; /* = 0 */ |
37 | unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS; | 37 | unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS; |
38 | int icache_44x_need_flush; | ||
38 | 39 | ||
39 | /* | 40 | /* |
40 | * "Pins" a 256MB TLB entry in AS0 for kernel lowmem | 41 | * "Pins" a 256MB TLB entry in AS0 for kernel lowmem |
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c index a18fda361cc0..8135da06e0a4 100644 --- a/arch/powerpc/mm/fault.c +++ b/arch/powerpc/mm/fault.c | |||
@@ -309,7 +309,7 @@ good_area: | |||
309 | set_bit(PG_arch_1, &page->flags); | 309 | set_bit(PG_arch_1, &page->flags); |
310 | } | 310 | } |
311 | pte_update(ptep, 0, _PAGE_HWEXEC); | 311 | pte_update(ptep, 0, _PAGE_HWEXEC); |
312 | _tlbie(address); | 312 | _tlbie(address, mm->context.id); |
313 | pte_unmap_unlock(ptep, ptl); | 313 | pte_unmap_unlock(ptep, ptl); |
314 | up_read(&mm->mmap_sem); | 314 | up_read(&mm->mmap_sem); |
315 | return 0; | 315 | return 0; |
diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S index ad253b959030..e935edd6b72b 100644 --- a/arch/powerpc/mm/hash_low_64.S +++ b/arch/powerpc/mm/hash_low_64.S | |||
@@ -331,7 +331,7 @@ htab_pte_insert_failure: | |||
331 | *****************************************************************************/ | 331 | *****************************************************************************/ |
332 | 332 | ||
333 | /* _hash_page_4K(unsigned long ea, unsigned long access, unsigned long vsid, | 333 | /* _hash_page_4K(unsigned long ea, unsigned long access, unsigned long vsid, |
334 | * pte_t *ptep, unsigned long trap, int local) | 334 | * pte_t *ptep, unsigned long trap, int local, int ssize) |
335 | */ | 335 | */ |
336 | 336 | ||
337 | /* | 337 | /* |
@@ -557,7 +557,8 @@ htab_inval_old_hpte: | |||
557 | mr r4,r31 /* PTE.pte */ | 557 | mr r4,r31 /* PTE.pte */ |
558 | li r5,0 /* PTE.hidx */ | 558 | li r5,0 /* PTE.hidx */ |
559 | li r6,MMU_PAGE_64K /* psize */ | 559 | li r6,MMU_PAGE_64K /* psize */ |
560 | ld r7,STK_PARM(r8)(r1) /* local */ | 560 | ld r7,STK_PARM(r9)(r1) /* ssize */ |
561 | ld r8,STK_PARM(r8)(r1) /* local */ | ||
561 | bl .flush_hash_page | 562 | bl .flush_hash_page |
562 | b htab_insert_pte | 563 | b htab_insert_pte |
563 | 564 | ||
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c index c78dc912411f..f09730bf3a33 100644 --- a/arch/powerpc/mm/hash_utils_64.c +++ b/arch/powerpc/mm/hash_utils_64.c | |||
@@ -51,6 +51,7 @@ | |||
51 | #include <asm/cputable.h> | 51 | #include <asm/cputable.h> |
52 | #include <asm/sections.h> | 52 | #include <asm/sections.h> |
53 | #include <asm/spu.h> | 53 | #include <asm/spu.h> |
54 | #include <asm/udbg.h> | ||
54 | 55 | ||
55 | #ifdef DEBUG | 56 | #ifdef DEBUG |
56 | #define DBG(fmt...) udbg_printf(fmt) | 57 | #define DBG(fmt...) udbg_printf(fmt) |
@@ -791,8 +792,7 @@ int hash_page(unsigned long ea, unsigned long access, unsigned long trap) | |||
791 | } | 792 | } |
792 | if (user_region) { | 793 | if (user_region) { |
793 | if (psize != get_paca()->context.user_psize) { | 794 | if (psize != get_paca()->context.user_psize) { |
794 | get_paca()->context.user_psize = | 795 | get_paca()->context = mm->context; |
795 | mm->context.user_psize; | ||
796 | slb_flush_and_rebolt(); | 796 | slb_flush_and_rebolt(); |
797 | } | 797 | } |
798 | } else if (get_paca()->vmalloc_sllp != | 798 | } else if (get_paca()->vmalloc_sllp != |
@@ -885,6 +885,9 @@ void hash_preload(struct mm_struct *mm, unsigned long ea, | |||
885 | local_irq_restore(flags); | 885 | local_irq_restore(flags); |
886 | } | 886 | } |
887 | 887 | ||
888 | /* WARNING: This is called from hash_low_64.S, if you change this prototype, | ||
889 | * do not forget to update the assembly call site ! | ||
890 | */ | ||
888 | void flush_hash_page(unsigned long va, real_pte_t pte, int psize, int ssize, | 891 | void flush_hash_page(unsigned long va, real_pte_t pte, int psize, int ssize, |
889 | int local) | 892 | int local) |
890 | { | 893 | { |
diff --git a/arch/powerpc/mm/mmu_decl.h b/arch/powerpc/mm/mmu_decl.h index c94a64fd3c01..eb3a732e91db 100644 --- a/arch/powerpc/mm/mmu_decl.h +++ b/arch/powerpc/mm/mmu_decl.h | |||
@@ -61,12 +61,12 @@ extern unsigned long total_lowmem; | |||
61 | #define mmu_mapin_ram() (0UL) | 61 | #define mmu_mapin_ram() (0UL) |
62 | 62 | ||
63 | #elif defined(CONFIG_4xx) | 63 | #elif defined(CONFIG_4xx) |
64 | #define flush_HPTE(X, va, pg) _tlbie(va) | 64 | #define flush_HPTE(pid, va, pg) _tlbie(va, pid) |
65 | extern void MMU_init_hw(void); | 65 | extern void MMU_init_hw(void); |
66 | extern unsigned long mmu_mapin_ram(void); | 66 | extern unsigned long mmu_mapin_ram(void); |
67 | 67 | ||
68 | #elif defined(CONFIG_FSL_BOOKE) | 68 | #elif defined(CONFIG_FSL_BOOKE) |
69 | #define flush_HPTE(X, va, pg) _tlbie(va) | 69 | #define flush_HPTE(pid, va, pg) _tlbie(va, pid) |
70 | extern void MMU_init_hw(void); | 70 | extern void MMU_init_hw(void); |
71 | extern unsigned long mmu_mapin_ram(void); | 71 | extern unsigned long mmu_mapin_ram(void); |
72 | extern void adjust_total_lowmem(void); | 72 | extern void adjust_total_lowmem(void); |
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index bbd2c512ee05..27922dff8b94 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/smp.h> | 25 | #include <asm/smp.h> |
26 | #include <asm/firmware.h> | 26 | #include <asm/firmware.h> |
27 | #include <linux/compiler.h> | 27 | #include <linux/compiler.h> |
28 | #include <asm/udbg.h> | ||
28 | 29 | ||
29 | #ifdef DEBUG | 30 | #ifdef DEBUG |
30 | #define DBG(fmt...) udbg_printf(fmt) | 31 | #define DBG(fmt...) udbg_printf(fmt) |
@@ -148,6 +149,35 @@ void slb_vmalloc_update(void) | |||
148 | slb_flush_and_rebolt(); | 149 | slb_flush_and_rebolt(); |
149 | } | 150 | } |
150 | 151 | ||
152 | /* Helper function to compare esids. There are four cases to handle. | ||
153 | * 1. The system is not 1T segment size capable. Use the GET_ESID compare. | ||
154 | * 2. The system is 1T capable, both addresses are < 1T, use the GET_ESID compare. | ||
155 | * 3. The system is 1T capable, only one of the two addresses is > 1T. This is not a match. | ||
156 | * 4. The system is 1T capable, both addresses are > 1T, use the GET_ESID_1T macro to compare. | ||
157 | */ | ||
158 | static inline int esids_match(unsigned long addr1, unsigned long addr2) | ||
159 | { | ||
160 | int esid_1t_count; | ||
161 | |||
162 | /* System is not 1T segment size capable. */ | ||
163 | if (!cpu_has_feature(CPU_FTR_1T_SEGMENT)) | ||
164 | return (GET_ESID(addr1) == GET_ESID(addr2)); | ||
165 | |||
166 | esid_1t_count = (((addr1 >> SID_SHIFT_1T) != 0) + | ||
167 | ((addr2 >> SID_SHIFT_1T) != 0)); | ||
168 | |||
169 | /* both addresses are < 1T */ | ||
170 | if (esid_1t_count == 0) | ||
171 | return (GET_ESID(addr1) == GET_ESID(addr2)); | ||
172 | |||
173 | /* One address < 1T, the other > 1T. Not a match */ | ||
174 | if (esid_1t_count == 1) | ||
175 | return 0; | ||
176 | |||
177 | /* Both addresses are > 1T. */ | ||
178 | return (GET_ESID_1T(addr1) == GET_ESID_1T(addr2)); | ||
179 | } | ||
180 | |||
151 | /* Flush all user entries from the segment table of the current processor. */ | 181 | /* Flush all user entries from the segment table of the current processor. */ |
152 | void switch_slb(struct task_struct *tsk, struct mm_struct *mm) | 182 | void switch_slb(struct task_struct *tsk, struct mm_struct *mm) |
153 | { | 183 | { |
@@ -193,15 +223,14 @@ void switch_slb(struct task_struct *tsk, struct mm_struct *mm) | |||
193 | return; | 223 | return; |
194 | slb_allocate(pc); | 224 | slb_allocate(pc); |
195 | 225 | ||
196 | if (GET_ESID(pc) == GET_ESID(stack)) | 226 | if (esids_match(pc,stack)) |
197 | return; | 227 | return; |
198 | 228 | ||
199 | if (is_kernel_addr(stack)) | 229 | if (is_kernel_addr(stack)) |
200 | return; | 230 | return; |
201 | slb_allocate(stack); | 231 | slb_allocate(stack); |
202 | 232 | ||
203 | if ((GET_ESID(pc) == GET_ESID(unmapped_base)) | 233 | if (esids_match(pc,unmapped_base) || esids_match(stack,unmapped_base)) |
204 | || (GET_ESID(stack) == GET_ESID(unmapped_base))) | ||
205 | return; | 234 | return; |
206 | 235 | ||
207 | if (is_kernel_addr(unmapped_base)) | 236 | if (is_kernel_addr(unmapped_base)) |
diff --git a/arch/powerpc/platforms/cell/interrupt.c b/arch/powerpc/platforms/cell/interrupt.c index 151fd8b82d63..04f74f9f9ab6 100644 --- a/arch/powerpc/platforms/cell/interrupt.c +++ b/arch/powerpc/platforms/cell/interrupt.c | |||
@@ -158,6 +158,18 @@ static unsigned int iic_get_irq(void) | |||
158 | return virq; | 158 | return virq; |
159 | } | 159 | } |
160 | 160 | ||
161 | void iic_setup_cpu(void) | ||
162 | { | ||
163 | out_be64(&__get_cpu_var(iic).regs->prio, 0xff); | ||
164 | } | ||
165 | |||
166 | u8 iic_get_target_id(int cpu) | ||
167 | { | ||
168 | return per_cpu(iic, cpu).target_id; | ||
169 | } | ||
170 | |||
171 | EXPORT_SYMBOL_GPL(iic_get_target_id); | ||
172 | |||
161 | #ifdef CONFIG_SMP | 173 | #ifdef CONFIG_SMP |
162 | 174 | ||
163 | /* Use the highest interrupt priorities for IPI */ | 175 | /* Use the highest interrupt priorities for IPI */ |
@@ -166,29 +178,17 @@ static inline int iic_ipi_to_irq(int ipi) | |||
166 | return IIC_IRQ_TYPE_IPI + 0xf - ipi; | 178 | return IIC_IRQ_TYPE_IPI + 0xf - ipi; |
167 | } | 179 | } |
168 | 180 | ||
169 | void iic_setup_cpu(void) | ||
170 | { | ||
171 | out_be64(&__get_cpu_var(iic).regs->prio, 0xff); | ||
172 | } | ||
173 | |||
174 | void iic_cause_IPI(int cpu, int mesg) | 181 | void iic_cause_IPI(int cpu, int mesg) |
175 | { | 182 | { |
176 | out_be64(&per_cpu(iic, cpu).regs->generate, (0xf - mesg) << 4); | 183 | out_be64(&per_cpu(iic, cpu).regs->generate, (0xf - mesg) << 4); |
177 | } | 184 | } |
178 | 185 | ||
179 | u8 iic_get_target_id(int cpu) | ||
180 | { | ||
181 | return per_cpu(iic, cpu).target_id; | ||
182 | } | ||
183 | EXPORT_SYMBOL_GPL(iic_get_target_id); | ||
184 | |||
185 | struct irq_host *iic_get_irq_host(int node) | 186 | struct irq_host *iic_get_irq_host(int node) |
186 | { | 187 | { |
187 | return iic_host; | 188 | return iic_host; |
188 | } | 189 | } |
189 | EXPORT_SYMBOL_GPL(iic_get_irq_host); | 190 | EXPORT_SYMBOL_GPL(iic_get_irq_host); |
190 | 191 | ||
191 | |||
192 | static irqreturn_t iic_ipi_action(int irq, void *dev_id) | 192 | static irqreturn_t iic_ipi_action(int irq, void *dev_id) |
193 | { | 193 | { |
194 | int ipi = (int)(long)dev_id; | 194 | int ipi = (int)(long)dev_id; |
diff --git a/arch/powerpc/platforms/cell/smp.c b/arch/powerpc/platforms/cell/smp.c index 1c0acbad7425..e4438456c867 100644 --- a/arch/powerpc/platforms/cell/smp.c +++ b/arch/powerpc/platforms/cell/smp.c | |||
@@ -44,6 +44,7 @@ | |||
44 | #include <asm/rtas.h> | 44 | #include <asm/rtas.h> |
45 | 45 | ||
46 | #include "interrupt.h" | 46 | #include "interrupt.h" |
47 | #include <asm/udbg.h> | ||
47 | 48 | ||
48 | #ifdef DEBUG | 49 | #ifdef DEBUG |
49 | #define DBG(fmt...) udbg_printf(fmt) | 50 | #define DBG(fmt...) udbg_printf(fmt) |
diff --git a/arch/powerpc/platforms/celleb/setup.c b/arch/powerpc/platforms/celleb/setup.c index 1769d755eff3..ddfb35ae741f 100644 --- a/arch/powerpc/platforms/celleb/setup.c +++ b/arch/powerpc/platforms/celleb/setup.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <asm/machdep.h> | 49 | #include <asm/machdep.h> |
50 | #include <asm/cputable.h> | 50 | #include <asm/cputable.h> |
51 | #include <asm/irq.h> | 51 | #include <asm/irq.h> |
52 | #include <asm/time.h> | ||
52 | #include <asm/spu_priv1.h> | 53 | #include <asm/spu_priv1.h> |
53 | #include <asm/firmware.h> | 54 | #include <asm/firmware.h> |
54 | #include <asm/of_platform.h> | 55 | #include <asm/of_platform.h> |
diff --git a/arch/powerpc/platforms/iseries/irq.h b/arch/powerpc/platforms/iseries/irq.h index 69f1b437fc7b..a1c236074034 100644 --- a/arch/powerpc/platforms/iseries/irq.h +++ b/arch/powerpc/platforms/iseries/irq.h | |||
@@ -1,9 +1,13 @@ | |||
1 | #ifndef _ISERIES_IRQ_H | 1 | #ifndef _ISERIES_IRQ_H |
2 | #define _ISERIES_IRQ_H | 2 | #define _ISERIES_IRQ_H |
3 | 3 | ||
4 | #ifdef CONFIG_PCI | ||
4 | extern void iSeries_init_IRQ(void); | 5 | extern void iSeries_init_IRQ(void); |
5 | extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); | 6 | extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); |
6 | extern void iSeries_activate_IRQs(void); | 7 | extern void iSeries_activate_IRQs(void); |
8 | #else | ||
9 | #define iSeries_init_IRQ NULL | ||
10 | #endif | ||
7 | extern unsigned int iSeries_get_irq(void); | 11 | extern unsigned int iSeries_get_irq(void); |
8 | 12 | ||
9 | #endif /* _ISERIES_IRQ_H */ | 13 | #endif /* _ISERIES_IRQ_H */ |
diff --git a/arch/powerpc/platforms/iseries/setup.c b/arch/powerpc/platforms/iseries/setup.c index 37ae07ee54a9..0877a8834110 100644 --- a/arch/powerpc/platforms/iseries/setup.c +++ b/arch/powerpc/platforms/iseries/setup.c | |||
@@ -617,10 +617,6 @@ static void iseries_dedicated_idle(void) | |||
617 | } | 617 | } |
618 | } | 618 | } |
619 | 619 | ||
620 | #ifndef CONFIG_PCI | ||
621 | void __init iSeries_init_IRQ(void) { } | ||
622 | #endif | ||
623 | |||
624 | static void __iomem *iseries_ioremap(phys_addr_t address, unsigned long size, | 620 | static void __iomem *iseries_ioremap(phys_addr_t address, unsigned long size, |
625 | unsigned long flags) | 621 | unsigned long flags) |
626 | { | 622 | { |
diff --git a/arch/powerpc/platforms/iseries/vio.c b/arch/powerpc/platforms/iseries/vio.c index d6435b03971f..be06cfd9fa3d 100644 --- a/arch/powerpc/platforms/iseries/vio.c +++ b/arch/powerpc/platforms/iseries/vio.c | |||
@@ -523,15 +523,16 @@ static void __init get_viotape_info(struct device_node *vio_root) | |||
523 | static int __init iseries_vio_init(void) | 523 | static int __init iseries_vio_init(void) |
524 | { | 524 | { |
525 | struct device_node *vio_root; | 525 | struct device_node *vio_root; |
526 | int ret = -ENODEV; | ||
526 | 527 | ||
527 | if (!firmware_has_feature(FW_FEATURE_ISERIES)) | 528 | if (!firmware_has_feature(FW_FEATURE_ISERIES)) |
528 | return -ENODEV; | 529 | goto out; |
529 | 530 | ||
530 | iommu_vio_init(); | 531 | iommu_vio_init(); |
531 | 532 | ||
532 | vio_root = of_find_node_by_path("/vdevice"); | 533 | vio_root = of_find_node_by_path("/vdevice"); |
533 | if (!vio_root) | 534 | if (!vio_root) |
534 | return -ENODEV; | 535 | goto out; |
535 | 536 | ||
536 | if (viopath_hostLp == HvLpIndexInvalid) { | 537 | if (viopath_hostLp == HvLpIndexInvalid) { |
537 | vio_set_hostlp(); | 538 | vio_set_hostlp(); |
@@ -544,10 +545,11 @@ static int __init iseries_vio_init(void) | |||
544 | get_viocd_info(vio_root); | 545 | get_viocd_info(vio_root); |
545 | get_viotape_info(vio_root); | 546 | get_viotape_info(vio_root); |
546 | 547 | ||
547 | return 0; | 548 | ret = 0; |
548 | 549 | ||
549 | put_node: | 550 | put_node: |
550 | of_node_put(vio_root); | 551 | of_node_put(vio_root); |
551 | return -ENODEV; | 552 | out: |
553 | return ret; | ||
552 | } | 554 | } |
553 | arch_initcall(iseries_vio_init); | 555 | arch_initcall(iseries_vio_init); |
diff --git a/arch/powerpc/platforms/pseries/eeh.c b/arch/powerpc/platforms/pseries/eeh.c index 22322b35a0ff..fb3d636e088b 100644 --- a/arch/powerpc/platforms/pseries/eeh.c +++ b/arch/powerpc/platforms/pseries/eeh.c | |||
@@ -186,6 +186,11 @@ static size_t gather_pci_data(struct pci_dn *pdn, char * buf, size_t len) | |||
186 | n += scnprintf(buf+n, len-n, "cmd/stat:%x\n", cfg); | 186 | n += scnprintf(buf+n, len-n, "cmd/stat:%x\n", cfg); |
187 | printk(KERN_WARNING "EEH: PCI cmd/status register: %08x\n", cfg); | 187 | printk(KERN_WARNING "EEH: PCI cmd/status register: %08x\n", cfg); |
188 | 188 | ||
189 | if (!dev) { | ||
190 | printk(KERN_WARNING "EEH: no PCI device for this of node\n"); | ||
191 | return n; | ||
192 | } | ||
193 | |||
189 | /* Gather bridge-specific registers */ | 194 | /* Gather bridge-specific registers */ |
190 | if (dev->class >> 16 == PCI_BASE_CLASS_BRIDGE) { | 195 | if (dev->class >> 16 == PCI_BASE_CLASS_BRIDGE) { |
191 | rtas_read_config(pdn, PCI_SEC_STATUS, 2, &cfg); | 196 | rtas_read_config(pdn, PCI_SEC_STATUS, 2, &cfg); |
@@ -198,7 +203,7 @@ static size_t gather_pci_data(struct pci_dn *pdn, char * buf, size_t len) | |||
198 | } | 203 | } |
199 | 204 | ||
200 | /* Dump out the PCI-X command and status regs */ | 205 | /* Dump out the PCI-X command and status regs */ |
201 | cap = pci_find_capability(pdn->pcidev, PCI_CAP_ID_PCIX); | 206 | cap = pci_find_capability(dev, PCI_CAP_ID_PCIX); |
202 | if (cap) { | 207 | if (cap) { |
203 | rtas_read_config(pdn, cap, 4, &cfg); | 208 | rtas_read_config(pdn, cap, 4, &cfg); |
204 | n += scnprintf(buf+n, len-n, "pcix-cmd:%x\n", cfg); | 209 | n += scnprintf(buf+n, len-n, "pcix-cmd:%x\n", cfg); |
@@ -210,7 +215,7 @@ static size_t gather_pci_data(struct pci_dn *pdn, char * buf, size_t len) | |||
210 | } | 215 | } |
211 | 216 | ||
212 | /* If PCI-E capable, dump PCI-E cap 10, and the AER */ | 217 | /* If PCI-E capable, dump PCI-E cap 10, and the AER */ |
213 | cap = pci_find_capability(pdn->pcidev, PCI_CAP_ID_EXP); | 218 | cap = pci_find_capability(dev, PCI_CAP_ID_EXP); |
214 | if (cap) { | 219 | if (cap) { |
215 | n += scnprintf(buf+n, len-n, "pci-e cap10:\n"); | 220 | n += scnprintf(buf+n, len-n, "pci-e cap10:\n"); |
216 | printk(KERN_WARNING | 221 | printk(KERN_WARNING |
@@ -222,7 +227,7 @@ static size_t gather_pci_data(struct pci_dn *pdn, char * buf, size_t len) | |||
222 | printk(KERN_WARNING "EEH: PCI-E %02x: %08x\n", i, cfg); | 227 | printk(KERN_WARNING "EEH: PCI-E %02x: %08x\n", i, cfg); |
223 | } | 228 | } |
224 | 229 | ||
225 | cap = pci_find_ext_capability(pdn->pcidev, PCI_EXT_CAP_ID_ERR); | 230 | cap = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ERR); |
226 | if (cap) { | 231 | if (cap) { |
227 | n += scnprintf(buf+n, len-n, "pci-e AER:\n"); | 232 | n += scnprintf(buf+n, len-n, "pci-e AER:\n"); |
228 | printk(KERN_WARNING | 233 | printk(KERN_WARNING |
@@ -318,7 +323,7 @@ eeh_wait_for_slot_status(struct pci_dn *pdn, int max_wait_msecs) | |||
318 | 323 | ||
319 | if (rets[2] == 0) return -1; /* permanently unavailable */ | 324 | if (rets[2] == 0) return -1; /* permanently unavailable */ |
320 | 325 | ||
321 | if (max_wait_msecs <= 0) return -1; | 326 | if (max_wait_msecs <= 0) break; |
322 | 327 | ||
323 | mwait = rets[2]; | 328 | mwait = rets[2]; |
324 | if (mwait <= 0) { | 329 | if (mwait <= 0) { |
diff --git a/arch/powerpc/platforms/pseries/eeh_driver.c b/arch/powerpc/platforms/pseries/eeh_driver.c index 15e015ef6865..57e025e84ab4 100644 --- a/arch/powerpc/platforms/pseries/eeh_driver.c +++ b/arch/powerpc/platforms/pseries/eeh_driver.c | |||
@@ -105,17 +105,18 @@ static void eeh_report_error(struct pci_dev *dev, void *userdata) | |||
105 | return; | 105 | return; |
106 | 106 | ||
107 | rc = driver->err_handler->error_detected (dev, pci_channel_io_frozen); | 107 | rc = driver->err_handler->error_detected (dev, pci_channel_io_frozen); |
108 | |||
109 | /* A driver that needs a reset trumps all others */ | ||
110 | if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc; | ||
108 | if (*res == PCI_ERS_RESULT_NONE) *res = rc; | 111 | if (*res == PCI_ERS_RESULT_NONE) *res = rc; |
109 | if (*res == PCI_ERS_RESULT_DISCONNECT && | ||
110 | rc == PCI_ERS_RESULT_NEED_RESET) *res = rc; | ||
111 | } | 112 | } |
112 | 113 | ||
113 | /** | 114 | /** |
114 | * eeh_report_mmio_enabled - tell drivers that MMIO has been enabled | 115 | * eeh_report_mmio_enabled - tell drivers that MMIO has been enabled |
115 | * | 116 | * |
116 | * Report an EEH error to each device driver, collect up and | 117 | * Tells each device driver that IO ports, MMIO and config space I/O |
117 | * merge the device driver responses. Cumulative response | 118 | * are now enabled. Collects up and merges the device driver responses. |
118 | * passed back in "userdata". | 119 | * Cumulative response passed back in "userdata". |
119 | */ | 120 | */ |
120 | 121 | ||
121 | static void eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata) | 122 | static void eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata) |
@@ -123,17 +124,16 @@ static void eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata) | |||
123 | enum pci_ers_result rc, *res = userdata; | 124 | enum pci_ers_result rc, *res = userdata; |
124 | struct pci_driver *driver = dev->driver; | 125 | struct pci_driver *driver = dev->driver; |
125 | 126 | ||
126 | // dev->error_state = pci_channel_mmio_enabled; | ||
127 | |||
128 | if (!driver || | 127 | if (!driver || |
129 | !driver->err_handler || | 128 | !driver->err_handler || |
130 | !driver->err_handler->mmio_enabled) | 129 | !driver->err_handler->mmio_enabled) |
131 | return; | 130 | return; |
132 | 131 | ||
133 | rc = driver->err_handler->mmio_enabled (dev); | 132 | rc = driver->err_handler->mmio_enabled (dev); |
133 | |||
134 | /* A driver that needs a reset trumps all others */ | ||
135 | if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc; | ||
134 | if (*res == PCI_ERS_RESULT_NONE) *res = rc; | 136 | if (*res == PCI_ERS_RESULT_NONE) *res = rc; |
135 | if (*res == PCI_ERS_RESULT_DISCONNECT && | ||
136 | rc == PCI_ERS_RESULT_NEED_RESET) *res = rc; | ||
137 | } | 137 | } |
138 | 138 | ||
139 | /** | 139 | /** |
diff --git a/arch/powerpc/platforms/pseries/firmware.c b/arch/powerpc/platforms/pseries/firmware.c index 8b18a1c40092..b765b7c77b65 100644 --- a/arch/powerpc/platforms/pseries/firmware.c +++ b/arch/powerpc/platforms/pseries/firmware.c | |||
@@ -25,6 +25,7 @@ | |||
25 | 25 | ||
26 | #include <asm/firmware.h> | 26 | #include <asm/firmware.h> |
27 | #include <asm/prom.h> | 27 | #include <asm/prom.h> |
28 | #include <asm/udbg.h> | ||
28 | 29 | ||
29 | #ifdef DEBUG | 30 | #ifdef DEBUG |
30 | #define DBG(fmt...) udbg_printf(fmt) | 31 | #define DBG(fmt...) udbg_printf(fmt) |
diff --git a/arch/powerpc/platforms/pseries/msi.c b/arch/powerpc/platforms/pseries/msi.c index 2793a1b100e6..f15222bbe136 100644 --- a/arch/powerpc/platforms/pseries/msi.c +++ b/arch/powerpc/platforms/pseries/msi.c | |||
@@ -171,6 +171,7 @@ static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) | |||
171 | struct pci_dn *pdn; | 171 | struct pci_dn *pdn; |
172 | int hwirq, virq, i, rc; | 172 | int hwirq, virq, i, rc; |
173 | struct msi_desc *entry; | 173 | struct msi_desc *entry; |
174 | struct msi_msg msg; | ||
174 | 175 | ||
175 | pdn = get_pdn(pdev); | 176 | pdn = get_pdn(pdev); |
176 | if (!pdn) | 177 | if (!pdn) |
@@ -213,6 +214,11 @@ static int rtas_setup_msi_irqs(struct pci_dev *pdev, int nvec, int type) | |||
213 | 214 | ||
214 | dev_dbg(&pdev->dev, "rtas_msi: allocated virq %d\n", virq); | 215 | dev_dbg(&pdev->dev, "rtas_msi: allocated virq %d\n", virq); |
215 | set_irq_msi(virq, entry); | 216 | set_irq_msi(virq, entry); |
217 | |||
218 | /* Read config space back so we can restore after reset */ | ||
219 | read_msi_msg(virq, &msg); | ||
220 | entry->msg = msg; | ||
221 | |||
216 | unmask_msi_irq(virq); | 222 | unmask_msi_irq(virq); |
217 | } | 223 | } |
218 | 224 | ||
diff --git a/arch/powerpc/sysdev/i8259.c b/arch/powerpc/sysdev/i8259.c index 7c1b27ac7d3c..216c0f5680d2 100644 --- a/arch/powerpc/sysdev/i8259.c +++ b/arch/powerpc/sysdev/i8259.c | |||
@@ -137,6 +137,7 @@ static void i8259_unmask_irq(unsigned int irq_nr) | |||
137 | static struct irq_chip i8259_pic = { | 137 | static struct irq_chip i8259_pic = { |
138 | .typename = " i8259 ", | 138 | .typename = " i8259 ", |
139 | .mask = i8259_mask_irq, | 139 | .mask = i8259_mask_irq, |
140 | .disable = i8259_mask_irq, | ||
140 | .unmask = i8259_unmask_irq, | 141 | .unmask = i8259_unmask_irq, |
141 | .mask_ack = i8259_mask_and_ack_irq, | 142 | .mask_ack = i8259_mask_and_ack_irq, |
142 | }; | 143 | }; |
diff --git a/arch/powerpc/sysdev/mv64x60_pci.c b/arch/powerpc/sysdev/mv64x60_pci.c index 9b3baa7317d7..6933f9c73b43 100644 --- a/arch/powerpc/sysdev/mv64x60_pci.c +++ b/arch/powerpc/sysdev/mv64x60_pci.c | |||
@@ -24,8 +24,9 @@ | |||
24 | #define MV64X60_VAL_LEN_MAX 11 | 24 | #define MV64X60_VAL_LEN_MAX 11 |
25 | #define MV64X60_PCICFG_CPCI_HOTSWAP 0x68 | 25 | #define MV64X60_PCICFG_CPCI_HOTSWAP 0x68 |
26 | 26 | ||
27 | static ssize_t mv64x60_hs_reg_read(struct kobject *kobj, char *buf, loff_t off, | 27 | static ssize_t mv64x60_hs_reg_read(struct kobject *kobj, |
28 | size_t count) | 28 | struct bin_attribute *attr, char *buf, |
29 | loff_t off, size_t count) | ||
29 | { | 30 | { |
30 | struct pci_dev *phb; | 31 | struct pci_dev *phb; |
31 | u32 v; | 32 | u32 v; |
@@ -44,8 +45,9 @@ static ssize_t mv64x60_hs_reg_read(struct kobject *kobj, char *buf, loff_t off, | |||
44 | return sprintf(buf, "0x%08x\n", v); | 45 | return sprintf(buf, "0x%08x\n", v); |
45 | } | 46 | } |
46 | 47 | ||
47 | static ssize_t mv64x60_hs_reg_write(struct kobject *kobj, char *buf, loff_t off, | 48 | static ssize_t mv64x60_hs_reg_write(struct kobject *kobj, |
48 | size_t count) | 49 | struct bin_attribute *attr, char *buf, |
50 | loff_t off, size_t count) | ||
49 | { | 51 | { |
50 | struct pci_dev *phb; | 52 | struct pci_dev *phb; |
51 | u32 v; | 53 | u32 v; |
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S index fba7ca17a67e..b19bfef2034d 100644 --- a/arch/ppc/kernel/entry.S +++ b/arch/ppc/kernel/entry.S | |||
@@ -244,6 +244,13 @@ syscall_exit_cont: | |||
244 | andis. r10,r0,DBCR0_IC@h | 244 | andis. r10,r0,DBCR0_IC@h |
245 | bnel- load_dbcr0 | 245 | bnel- load_dbcr0 |
246 | #endif | 246 | #endif |
247 | #ifdef CONFIG_44x | ||
248 | lis r4,icache_44x_need_flush@ha | ||
249 | lwz r5,icache_44x_need_flush@l(r4) | ||
250 | cmplwi cr0,r5,0 | ||
251 | bne- 2f | ||
252 | 1: | ||
253 | #endif /* CONFIG_44x */ | ||
247 | stwcx. r0,0,r1 /* to clear the reservation */ | 254 | stwcx. r0,0,r1 /* to clear the reservation */ |
248 | lwz r4,_LINK(r1) | 255 | lwz r4,_LINK(r1) |
249 | lwz r5,_CCR(r1) | 256 | lwz r5,_CCR(r1) |
@@ -258,6 +265,12 @@ syscall_exit_cont: | |||
258 | mtspr SPRN_SRR1,r8 | 265 | mtspr SPRN_SRR1,r8 |
259 | SYNC | 266 | SYNC |
260 | RFI | 267 | RFI |
268 | #ifdef CONFIG_44x | ||
269 | 2: li r7,0 | ||
270 | iccci r0,r0 | ||
271 | stw r7,icache_44x_need_flush@l(r4) | ||
272 | b 1b | ||
273 | #endif /* CONFIG_44x */ | ||
261 | 274 | ||
262 | 66: li r3,-ENOSYS | 275 | 66: li r3,-ENOSYS |
263 | b ret_from_syscall | 276 | b ret_from_syscall |
@@ -679,6 +692,16 @@ resume_kernel: | |||
679 | 692 | ||
680 | /* interrupts are hard-disabled at this point */ | 693 | /* interrupts are hard-disabled at this point */ |
681 | restore: | 694 | restore: |
695 | #ifdef CONFIG_44x | ||
696 | lis r4,icache_44x_need_flush@ha | ||
697 | lwz r5,icache_44x_need_flush@l(r4) | ||
698 | cmplwi cr0,r5,0 | ||
699 | beq+ 1f | ||
700 | li r6,0 | ||
701 | iccci r0,r0 | ||
702 | stw r6,icache_44x_need_flush@l(r4) | ||
703 | 1: | ||
704 | #endif /* CONFIG_44x */ | ||
682 | lwz r0,GPR0(r1) | 705 | lwz r0,GPR0(r1) |
683 | lwz r2,GPR2(r1) | 706 | lwz r2,GPR2(r1) |
684 | REST_4GPRS(3, r1) | 707 | REST_4GPRS(3, r1) |
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S index a22e1f4d94c8..e0c850d85c53 100644 --- a/arch/ppc/kernel/misc.S +++ b/arch/ppc/kernel/misc.S | |||
@@ -224,7 +224,16 @@ _GLOBAL(_tlbia) | |||
224 | */ | 224 | */ |
225 | _GLOBAL(_tlbie) | 225 | _GLOBAL(_tlbie) |
226 | #if defined(CONFIG_40x) | 226 | #if defined(CONFIG_40x) |
227 | /* We run the search with interrupts disabled because we have to change | ||
228 | * the PID and I don't want to preempt when that happens. | ||
229 | */ | ||
230 | mfmsr r5 | ||
231 | mfspr r6,SPRN_PID | ||
232 | wrteei 0 | ||
233 | mtspr SPRN_PID,r4 | ||
227 | tlbsx. r3, 0, r3 | 234 | tlbsx. r3, 0, r3 |
235 | mtspr SPRN_PID,r6 | ||
236 | wrtee r5 | ||
228 | bne 10f | 237 | bne 10f |
229 | sync | 238 | sync |
230 | /* There are only 64 TLB entries, so r3 < 64, which means bit 25 is clear. | 239 | /* There are only 64 TLB entries, so r3 < 64, which means bit 25 is clear. |
@@ -234,22 +243,21 @@ _GLOBAL(_tlbie) | |||
234 | isync | 243 | isync |
235 | 10: | 244 | 10: |
236 | #elif defined(CONFIG_44x) | 245 | #elif defined(CONFIG_44x) |
237 | mfspr r4,SPRN_MMUCR | 246 | mfspr r5,SPRN_MMUCR |
238 | mfspr r5,SPRN_PID /* Get PID */ | 247 | rlwimi r5,r4,0,24,31 /* Set TID */ |
239 | rlwimi r4,r5,0,24,31 /* Set TID */ | ||
240 | 248 | ||
241 | /* We have to run the search with interrupts disabled, even critical | 249 | /* We have to run the search with interrupts disabled, even critical |
242 | * and debug interrupts (in fact the only critical exceptions we have | 250 | * and debug interrupts (in fact the only critical exceptions we have |
243 | * are debug and machine check). Otherwise an interrupt which causes | 251 | * are debug and machine check). Otherwise an interrupt which causes |
244 | * a TLB miss can clobber the MMUCR between the mtspr and the tlbsx. */ | 252 | * a TLB miss can clobber the MMUCR between the mtspr and the tlbsx. */ |
245 | mfmsr r5 | 253 | mfmsr r4 |
246 | lis r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@ha | 254 | lis r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@ha |
247 | addi r6,r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@l | 255 | addi r6,r6,(MSR_EE|MSR_CE|MSR_ME|MSR_DE)@l |
248 | andc r6,r5,r6 | 256 | andc r6,r4,r6 |
249 | mtmsr r6 | 257 | mtmsr r6 |
250 | mtspr SPRN_MMUCR,r4 | 258 | mtspr SPRN_MMUCR,r5 |
251 | tlbsx. r3, 0, r3 | 259 | tlbsx. r3, 0, r3 |
252 | mtmsr r5 | 260 | mtmsr r4 |
253 | bne 10f | 261 | bne 10f |
254 | sync | 262 | sync |
255 | /* There are only 64 TLB entries, so r3 < 64, | 263 | /* There are only 64 TLB entries, so r3 < 64, |
@@ -491,12 +499,21 @@ END_FTR_SECTION_IFSET(CPU_FTR_COHERENT_ICACHE) | |||
491 | addi r3,r3,L1_CACHE_BYTES | 499 | addi r3,r3,L1_CACHE_BYTES |
492 | bdnz 0b | 500 | bdnz 0b |
493 | sync | 501 | sync |
502 | #ifndef CONFIG_44x | ||
503 | /* We don't flush the icache on 44x. Those have a virtual icache | ||
504 | * and we don't have access to the virtual address here (it's | ||
505 | * not the page vaddr but where it's mapped in user space). The | ||
506 | * flushing of the icache on these is handled elsewhere, when | ||
507 | * a change in the address space occurs, before returning to | ||
508 | * user space | ||
509 | */ | ||
494 | mtctr r4 | 510 | mtctr r4 |
495 | 1: icbi 0,r6 | 511 | 1: icbi 0,r6 |
496 | addi r6,r6,L1_CACHE_BYTES | 512 | addi r6,r6,L1_CACHE_BYTES |
497 | bdnz 1b | 513 | bdnz 1b |
498 | sync | 514 | sync |
499 | isync | 515 | isync |
516 | #endif /* CONFIG_44x */ | ||
500 | blr | 517 | blr |
501 | 518 | ||
502 | /* | 519 | /* |
diff --git a/arch/ppc/mm/44x_mmu.c b/arch/ppc/mm/44x_mmu.c index 0a0a0487b334..6536a25cfcb8 100644 --- a/arch/ppc/mm/44x_mmu.c +++ b/arch/ppc/mm/44x_mmu.c | |||
@@ -61,6 +61,7 @@ extern char etext[], _stext[]; | |||
61 | */ | 61 | */ |
62 | unsigned int tlb_44x_index = 0; | 62 | unsigned int tlb_44x_index = 0; |
63 | unsigned int tlb_44x_hwater = 62; | 63 | unsigned int tlb_44x_hwater = 62; |
64 | int icache_44x_need_flush; | ||
64 | 65 | ||
65 | /* | 66 | /* |
66 | * "Pins" a 256MB TLB entry in AS0 for kernel lowmem | 67 | * "Pins" a 256MB TLB entry in AS0 for kernel lowmem |
diff --git a/arch/ppc/mm/4xx_mmu.c b/arch/ppc/mm/4xx_mmu.c index 838e09db71d9..ea785dbaac7c 100644 --- a/arch/ppc/mm/4xx_mmu.c +++ b/arch/ppc/mm/4xx_mmu.c | |||
@@ -99,13 +99,12 @@ unsigned long __init mmu_mapin_ram(void) | |||
99 | 99 | ||
100 | v = KERNELBASE; | 100 | v = KERNELBASE; |
101 | p = PPC_MEMSTART; | 101 | p = PPC_MEMSTART; |
102 | s = 0; | 102 | s = total_lowmem; |
103 | 103 | ||
104 | if (__map_without_ltlbs) { | 104 | if (__map_without_ltlbs) |
105 | return s; | 105 | return 0; |
106 | } | ||
107 | 106 | ||
108 | while (s <= (total_lowmem - LARGE_PAGE_SIZE_16M)) { | 107 | while (s >= LARGE_PAGE_SIZE_16M) { |
109 | pmd_t *pmdp; | 108 | pmd_t *pmdp; |
110 | unsigned long val = p | _PMD_SIZE_16M | _PAGE_HWEXEC | _PAGE_HWWRITE; | 109 | unsigned long val = p | _PMD_SIZE_16M | _PAGE_HWEXEC | _PAGE_HWWRITE; |
111 | 110 | ||
@@ -117,10 +116,10 @@ unsigned long __init mmu_mapin_ram(void) | |||
117 | 116 | ||
118 | v += LARGE_PAGE_SIZE_16M; | 117 | v += LARGE_PAGE_SIZE_16M; |
119 | p += LARGE_PAGE_SIZE_16M; | 118 | p += LARGE_PAGE_SIZE_16M; |
120 | s += LARGE_PAGE_SIZE_16M; | 119 | s -= LARGE_PAGE_SIZE_16M; |
121 | } | 120 | } |
122 | 121 | ||
123 | while (s <= (total_lowmem - LARGE_PAGE_SIZE_4M)) { | 122 | while (s >= LARGE_PAGE_SIZE_4M) { |
124 | pmd_t *pmdp; | 123 | pmd_t *pmdp; |
125 | unsigned long val = p | _PMD_SIZE_4M | _PAGE_HWEXEC | _PAGE_HWWRITE; | 124 | unsigned long val = p | _PMD_SIZE_4M | _PAGE_HWEXEC | _PAGE_HWWRITE; |
126 | 125 | ||
@@ -129,8 +128,8 @@ unsigned long __init mmu_mapin_ram(void) | |||
129 | 128 | ||
130 | v += LARGE_PAGE_SIZE_4M; | 129 | v += LARGE_PAGE_SIZE_4M; |
131 | p += LARGE_PAGE_SIZE_4M; | 130 | p += LARGE_PAGE_SIZE_4M; |
132 | s += LARGE_PAGE_SIZE_4M; | 131 | s -= LARGE_PAGE_SIZE_4M; |
133 | } | 132 | } |
134 | 133 | ||
135 | return s; | 134 | return total_lowmem - s; |
136 | } | 135 | } |
diff --git a/arch/ppc/mm/fault.c b/arch/ppc/mm/fault.c index 254c23b755e6..36c0e7529edb 100644 --- a/arch/ppc/mm/fault.c +++ b/arch/ppc/mm/fault.c | |||
@@ -227,7 +227,7 @@ good_area: | |||
227 | set_bit(PG_arch_1, &page->flags); | 227 | set_bit(PG_arch_1, &page->flags); |
228 | } | 228 | } |
229 | pte_update(ptep, 0, _PAGE_HWEXEC); | 229 | pte_update(ptep, 0, _PAGE_HWEXEC); |
230 | _tlbie(address); | 230 | _tlbie(address, mm->context.id); |
231 | pte_unmap_unlock(ptep, ptl); | 231 | pte_unmap_unlock(ptep, ptl); |
232 | up_read(&mm->mmap_sem); | 232 | up_read(&mm->mmap_sem); |
233 | return 0; | 233 | return 0; |
diff --git a/arch/ppc/mm/mmu_decl.h b/arch/ppc/mm/mmu_decl.h index 540f3292b229..f1d4f2109a99 100644 --- a/arch/ppc/mm/mmu_decl.h +++ b/arch/ppc/mm/mmu_decl.h | |||
@@ -54,12 +54,12 @@ extern unsigned int num_tlbcam_entries; | |||
54 | #define mmu_mapin_ram() (0UL) | 54 | #define mmu_mapin_ram() (0UL) |
55 | 55 | ||
56 | #elif defined(CONFIG_4xx) | 56 | #elif defined(CONFIG_4xx) |
57 | #define flush_HPTE(X, va, pg) _tlbie(va) | 57 | #define flush_HPTE(pid, va, pg) _tlbie(va, pid) |
58 | extern void MMU_init_hw(void); | 58 | extern void MMU_init_hw(void); |
59 | extern unsigned long mmu_mapin_ram(void); | 59 | extern unsigned long mmu_mapin_ram(void); |
60 | 60 | ||
61 | #elif defined(CONFIG_FSL_BOOKE) | 61 | #elif defined(CONFIG_FSL_BOOKE) |
62 | #define flush_HPTE(X, va, pg) _tlbie(va) | 62 | #define flush_HPTE(pid, va, pg) _tlbie(va, pid) |
63 | extern void MMU_init_hw(void); | 63 | extern void MMU_init_hw(void); |
64 | extern unsigned long mmu_mapin_ram(void); | 64 | extern unsigned long mmu_mapin_ram(void); |
65 | extern void adjust_total_lowmem(void); | 65 | extern void adjust_total_lowmem(void); |
diff --git a/arch/ppc/platforms/4xx/ebony.c b/arch/ppc/platforms/4xx/ebony.c index 05d7184d7e14..453643a0eeea 100644 --- a/arch/ppc/platforms/4xx/ebony.c +++ b/arch/ppc/platforms/4xx/ebony.c | |||
@@ -236,7 +236,7 @@ ebony_early_serial_map(void) | |||
236 | gen550_init(0, &port); | 236 | gen550_init(0, &port); |
237 | 237 | ||
238 | /* Purge TLB entry added in head_44x.S for early serial access */ | 238 | /* Purge TLB entry added in head_44x.S for early serial access */ |
239 | _tlbie(UART0_IO_BASE); | 239 | _tlbie(UART0_IO_BASE, 0); |
240 | #endif | 240 | #endif |
241 | 241 | ||
242 | port.membase = ioremap64(PPC440GP_UART1_ADDR, 8); | 242 | port.membase = ioremap64(PPC440GP_UART1_ADDR, 8); |
diff --git a/arch/ppc/platforms/4xx/luan.c b/arch/ppc/platforms/4xx/luan.c index 4b169610f154..b79ebb8a3e6c 100644 --- a/arch/ppc/platforms/4xx/luan.c +++ b/arch/ppc/platforms/4xx/luan.c | |||
@@ -230,9 +230,14 @@ luan_setup_hoses(void) | |||
230 | 230 | ||
231 | /* Allocate hoses for PCIX1 and PCIX2 */ | 231 | /* Allocate hoses for PCIX1 and PCIX2 */ |
232 | hose1 = pcibios_alloc_controller(); | 232 | hose1 = pcibios_alloc_controller(); |
233 | if (!hose1) | ||
234 | return; | ||
235 | |||
233 | hose2 = pcibios_alloc_controller(); | 236 | hose2 = pcibios_alloc_controller(); |
234 | if (!hose1 || !hose2) | 237 | if (!hose2) { |
238 | pcibios_free_controller(hose1); | ||
235 | return; | 239 | return; |
240 | } | ||
236 | 241 | ||
237 | /* Setup PCIX1 */ | 242 | /* Setup PCIX1 */ |
238 | hose1->first_busno = 0; | 243 | hose1->first_busno = 0; |
diff --git a/arch/ppc/platforms/4xx/ocotea.c b/arch/ppc/platforms/4xx/ocotea.c index fd0f971881d6..28a712cd4800 100644 --- a/arch/ppc/platforms/4xx/ocotea.c +++ b/arch/ppc/platforms/4xx/ocotea.c | |||
@@ -259,7 +259,7 @@ ocotea_early_serial_map(void) | |||
259 | gen550_init(0, &port); | 259 | gen550_init(0, &port); |
260 | 260 | ||
261 | /* Purge TLB entry added in head_44x.S for early serial access */ | 261 | /* Purge TLB entry added in head_44x.S for early serial access */ |
262 | _tlbie(UART0_IO_BASE); | 262 | _tlbie(UART0_IO_BASE, 0); |
263 | #endif | 263 | #endif |
264 | 264 | ||
265 | port.membase = ioremap64(PPC440GX_UART1_ADDR, 8); | 265 | port.membase = ioremap64(PPC440GX_UART1_ADDR, 8); |
diff --git a/arch/ppc/platforms/4xx/taishan.c b/arch/ppc/platforms/4xx/taishan.c index 888c492b4a45..f6a0c6650f33 100644 --- a/arch/ppc/platforms/4xx/taishan.c +++ b/arch/ppc/platforms/4xx/taishan.c | |||
@@ -316,7 +316,7 @@ taishan_early_serial_map(void) | |||
316 | gen550_init(0, &port); | 316 | gen550_init(0, &port); |
317 | 317 | ||
318 | /* Purge TLB entry added in head_44x.S for early serial access */ | 318 | /* Purge TLB entry added in head_44x.S for early serial access */ |
319 | _tlbie(UART0_IO_BASE); | 319 | _tlbie(UART0_IO_BASE, 0); |
320 | #endif | 320 | #endif |
321 | 321 | ||
322 | port.membase = ioremap64(PPC440GX_UART1_ADDR, 8); | 322 | port.membase = ioremap64(PPC440GX_UART1_ADDR, 8); |
diff --git a/arch/ppc/syslib/i8259.c b/arch/ppc/syslib/i8259.c index 1e5a00a4b5f5..559f27c6aefe 100644 --- a/arch/ppc/syslib/i8259.c +++ b/arch/ppc/syslib/i8259.c | |||
@@ -127,6 +127,7 @@ static void i8259_unmask_irq(unsigned int irq_nr) | |||
127 | static struct irq_chip i8259_pic = { | 127 | static struct irq_chip i8259_pic = { |
128 | .typename = " i8259 ", | 128 | .typename = " i8259 ", |
129 | .mask = i8259_mask_irq, | 129 | .mask = i8259_mask_irq, |
130 | .disable = i8259_mask_irq, | ||
130 | .unmask = i8259_unmask_irq, | 131 | .unmask = i8259_unmask_irq, |
131 | .mask_ack = i8259_mask_and_ack_irq, | 132 | .mask_ack = i8259_mask_and_ack_irq, |
132 | }; | 133 | }; |
diff --git a/arch/ppc/syslib/m8260_setup.c b/arch/ppc/syslib/m8260_setup.c index 15f0d7323535..46588fa94381 100644 --- a/arch/ppc/syslib/m8260_setup.c +++ b/arch/ppc/syslib/m8260_setup.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <asm/machdep.h> | 25 | #include <asm/machdep.h> |
26 | #include <asm/bootinfo.h> | 26 | #include <asm/bootinfo.h> |
27 | #include <asm/time.h> | 27 | #include <asm/time.h> |
28 | #include <asm/ppc_sys.h> | ||
28 | 29 | ||
29 | #include "cpm2_pic.h" | 30 | #include "cpm2_pic.h" |
30 | 31 | ||
@@ -61,7 +62,7 @@ m8260_setup_arch(void) | |||
61 | #endif | 62 | #endif |
62 | 63 | ||
63 | identify_ppc_sys_by_name_and_id(BOARD_CHIP_NAME, | 64 | identify_ppc_sys_by_name_and_id(BOARD_CHIP_NAME, |
64 | in_be32(CPM_MAP_ADDR + CPM_IMMR_OFFSET)); | 65 | in_be32((void *)CPM_MAP_ADDR + CPM_IMMR_OFFSET)); |
65 | 66 | ||
66 | m82xx_board_setup(); | 67 | m82xx_board_setup(); |
67 | } | 68 | } |
@@ -147,12 +148,12 @@ m8260_show_cpuinfo(struct seq_file *m) | |||
147 | seq_printf(m, "vendor\t\t: %s\n" | 148 | seq_printf(m, "vendor\t\t: %s\n" |
148 | "machine\t\t: %s\n" | 149 | "machine\t\t: %s\n" |
149 | "\n" | 150 | "\n" |
150 | "mem size\t\t: 0x%08x\n" | 151 | "mem size\t\t: 0x%08lx\n" |
151 | "console baud\t\t: %d\n" | 152 | "console baud\t\t: %ld\n" |
152 | "\n" | 153 | "\n" |
153 | "core clock\t: %u MHz\n" | 154 | "core clock\t: %lu MHz\n" |
154 | "CPM clock\t: %u MHz\n" | 155 | "CPM clock\t: %lu MHz\n" |
155 | "bus clock\t: %u MHz\n", | 156 | "bus clock\t: %lu MHz\n", |
156 | CPUINFO_VENDOR, CPUINFO_MACHINE, bp->bi_memsize, | 157 | CPUINFO_VENDOR, CPUINFO_MACHINE, bp->bi_memsize, |
157 | bp->bi_baudrate, bp->bi_intfreq / 1000000, | 158 | bp->bi_baudrate, bp->bi_intfreq / 1000000, |
158 | bp->bi_cpmfreq / 1000000, bp->bi_busfreq / 1000000); | 159 | bp->bi_cpmfreq / 1000000, bp->bi_busfreq / 1000000); |
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index a963fe81359e..22b800ce2126 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -145,12 +145,8 @@ void account_ticks(u64 time) | |||
145 | do_timer(ticks); | 145 | do_timer(ticks); |
146 | #endif | 146 | #endif |
147 | 147 | ||
148 | #ifdef CONFIG_VIRT_CPU_ACCOUNTING | ||
149 | account_tick_vtime(current); | ||
150 | #else | ||
151 | while (ticks--) | 148 | while (ticks--) |
152 | update_process_times(user_mode(get_irq_regs())); | 149 | update_process_times(user_mode(get_irq_regs())); |
153 | #endif | ||
154 | 150 | ||
155 | s390_do_profile(); | 151 | s390_do_profile(); |
156 | } | 152 | } |
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c index 84ff78de6bac..c5f05b3fb2c3 100644 --- a/arch/s390/kernel/vtime.c +++ b/arch/s390/kernel/vtime.c | |||
@@ -32,7 +32,7 @@ static DEFINE_PER_CPU(struct vtimer_queue, virt_cpu_timer); | |||
32 | * Update process times based on virtual cpu times stored by entry.S | 32 | * Update process times based on virtual cpu times stored by entry.S |
33 | * to the lowcore fields user_timer, system_timer & steal_clock. | 33 | * to the lowcore fields user_timer, system_timer & steal_clock. |
34 | */ | 34 | */ |
35 | void account_tick_vtime(struct task_struct *tsk) | 35 | void account_process_tick(struct task_struct *tsk, int user_tick) |
36 | { | 36 | { |
37 | cputime_t cputime; | 37 | cputime_t cputime; |
38 | __u64 timer, clock; | 38 | __u64 timer, clock; |
@@ -64,12 +64,6 @@ void account_tick_vtime(struct task_struct *tsk) | |||
64 | S390_lowcore.steal_clock -= cputime << 12; | 64 | S390_lowcore.steal_clock -= cputime << 12; |
65 | account_steal_time(tsk, cputime); | 65 | account_steal_time(tsk, cputime); |
66 | } | 66 | } |
67 | |||
68 | run_local_timers(); | ||
69 | if (rcu_pending(smp_processor_id())) | ||
70 | rcu_check_callbacks(smp_processor_id(), rcu_user_flag); | ||
71 | scheduler_tick(); | ||
72 | run_posix_cpu_timers(tsk); | ||
73 | } | 67 | } |
74 | 68 | ||
75 | /* | 69 | /* |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 22a3eb38438b..496d635f89b2 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -211,10 +211,12 @@ config SH_SOLUTION_ENGINE | |||
211 | bool "SolutionEngine" | 211 | bool "SolutionEngine" |
212 | select SOLUTION_ENGINE | 212 | select SOLUTION_ENGINE |
213 | select CPU_HAS_IPR_IRQ | 213 | select CPU_HAS_IPR_IRQ |
214 | depends on CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7750 | 214 | depends on CPU_SUBTYPE_SH7705 || CPU_SUBTYPE_SH7709 || CPU_SUBTYPE_SH7710 || \ |
215 | CPU_SUBTYPE_SH7712 || CPU_SUBTYPE_SH7750 || CPU_SUBTYPE_SH7750S || \ | ||
216 | CPU_SUBTYPE_SH7750R | ||
215 | help | 217 | help |
216 | Select SolutionEngine if configuring for a Hitachi SH7709 | 218 | Select SolutionEngine if configuring for a Hitachi SH7705, SH7709, |
217 | or SH7750 evaluation board. | 219 | SH7710, SH7712, SH7750, SH7750S or SH7750R evaluation board. |
218 | 220 | ||
219 | config SH_7206_SOLUTION_ENGINE | 221 | config SH_7206_SOLUTION_ENGINE |
220 | bool "SolutionEngine7206" | 222 | bool "SolutionEngine7206" |
@@ -603,7 +605,7 @@ config BOOT_LINK_OFFSET | |||
603 | 605 | ||
604 | config UBC_WAKEUP | 606 | config UBC_WAKEUP |
605 | bool "Wakeup UBC on startup" | 607 | bool "Wakeup UBC on startup" |
606 | depends on CPU_SH4 | 608 | depends on CPU_SH4 && !CPU_SH4A |
607 | help | 609 | help |
608 | Selecting this option will wakeup the User Break Controller (UBC) on | 610 | Selecting this option will wakeup the User Break Controller (UBC) on |
609 | startup. Although the UBC is left in an awake state when the processor | 611 | startup. Although the UBC is left in an awake state when the processor |
diff --git a/arch/sh/Kconfig.debug b/arch/sh/Kconfig.debug index ab2f9f3c354c..722da6851f56 100644 --- a/arch/sh/Kconfig.debug +++ b/arch/sh/Kconfig.debug | |||
@@ -124,12 +124,13 @@ config KGDB_NMI | |||
124 | 124 | ||
125 | config SH_KGDB_CONSOLE | 125 | config SH_KGDB_CONSOLE |
126 | bool "Console messages through GDB" | 126 | bool "Console messages through GDB" |
127 | depends on !SERIAL_SH_SCI_CONSOLE | 127 | depends on !SERIAL_SH_SCI_CONSOLE && SERIAL_SH_SCI=y |
128 | select SERIAL_CORE_CONSOLE | 128 | select SERIAL_CORE_CONSOLE |
129 | default n | 129 | default n |
130 | 130 | ||
131 | config KGDB_SYSRQ | 131 | config KGDB_SYSRQ |
132 | bool "Allow SysRq 'G' to enter KGDB" | 132 | bool "Allow SysRq 'G' to enter KGDB" |
133 | depends on MAGIC_SYSRQ | ||
133 | default y | 134 | default y |
134 | 135 | ||
135 | comment "Serial port setup" | 136 | comment "Serial port setup" |
diff --git a/arch/sh/boards/renesas/hs7751rvoip/irq.c b/arch/sh/boards/renesas/hs7751rvoip/irq.c index 943f93aa6052..e55c6686b21f 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/irq.c +++ b/arch/sh/boards/renesas/hs7751rvoip/irq.c | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/irq.h> | 14 | #include <linux/irq.h> |
15 | #include <linux/interrupt.h> | ||
15 | #include <asm/io.h> | 16 | #include <asm/io.h> |
16 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
17 | #include <asm/hs7751rvoip.h> | 18 | #include <asm/hs7751rvoip.h> |
diff --git a/arch/sh/boards/renesas/hs7751rvoip/setup.c b/arch/sh/boards/renesas/hs7751rvoip/setup.c index fa5fa3920222..c05625975f2c 100644 --- a/arch/sh/boards/renesas/hs7751rvoip/setup.c +++ b/arch/sh/boards/renesas/hs7751rvoip/setup.c | |||
@@ -15,20 +15,6 @@ | |||
15 | #include <asm/io.h> | 15 | #include <asm/io.h> |
16 | #include <asm/machvec.h> | 16 | #include <asm/machvec.h> |
17 | 17 | ||
18 | static struct ipr_data hs77501rvoip_ipr_map[] = { | ||
19 | #if defined(CONFIG_HS7751RVOIP_CODEC) | ||
20 | { DMTE0_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
21 | { DMTE1_IRQ, DMA_IPR_ADDR, DMA_IPR_POS, DMA_PRIORITY }, | ||
22 | #endif | ||
23 | }; | ||
24 | |||
25 | static void __init hs7751rvoip_init_irq(void) | ||
26 | { | ||
27 | make_ipr_irq(hs77501rvoip_ipr_map, ARRAY_SIZE(hs77501rvoip_ipr_map)); | ||
28 | |||
29 | init_hs7751rvoip_IRQ(); | ||
30 | } | ||
31 | |||
32 | static void hs7751rvoip_power_off(void) | 18 | static void hs7751rvoip_power_off(void) |
33 | { | 19 | { |
34 | ctrl_outw(ctrl_inw(PA_OUTPORTR) & 0xffdf, PA_OUTPORTR); | 20 | ctrl_outw(ctrl_inw(PA_OUTPORTR) & 0xffdf, PA_OUTPORTR); |
@@ -75,14 +61,13 @@ static int __init hs7751rvoip_cf_init(void) | |||
75 | 61 | ||
76 | return 0; | 62 | return 0; |
77 | } | 63 | } |
64 | device_initcall(hs7751rvoip_cf_init); | ||
78 | 65 | ||
79 | /* | 66 | /* |
80 | * Initialize the board | 67 | * Initialize the board |
81 | */ | 68 | */ |
82 | static void __init hs7751rvoip_setup(char **cmdline_p) | 69 | static void __init hs7751rvoip_setup(char **cmdline_p) |
83 | { | 70 | { |
84 | device_initcall(hs7751rvoip_cf_init); | ||
85 | |||
86 | ctrl_outb(0xf0, PA_OUTPORTR); | 71 | ctrl_outb(0xf0, PA_OUTPORTR); |
87 | pm_power_off = hs7751rvoip_power_off; | 72 | pm_power_off = hs7751rvoip_power_off; |
88 | 73 | ||
@@ -115,6 +100,6 @@ static struct sh_machine_vector mv_hs7751rvoip __initmv = { | |||
115 | .mv_outsw = hs7751rvoip_outsw, | 100 | .mv_outsw = hs7751rvoip_outsw, |
116 | .mv_outsl = hs7751rvoip_outsl, | 101 | .mv_outsl = hs7751rvoip_outsl, |
117 | 102 | ||
118 | .mv_init_irq = hs7751rvoip_init_irq, | 103 | .mv_init_irq = init_hs7751rvoip_IRQ, |
119 | .mv_ioport_map = hs7751rvoip_ioport_map, | 104 | .mv_ioport_map = hs7751rvoip_ioport_map, |
120 | }; | 105 | }; |
diff --git a/arch/sh/boards/renesas/sh7710voipgw/setup.c b/arch/sh/boards/renesas/sh7710voipgw/setup.c index 2dce8bd97f90..0d56fd83bcba 100644 --- a/arch/sh/boards/renesas/sh7710voipgw/setup.c +++ b/arch/sh/boards/renesas/sh7710voipgw/setup.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <asm/machvec.h> | 11 | #include <asm/machvec.h> |
12 | #include <asm/irq.h> | 12 | #include <asm/irq.h> |
13 | #include <asm/io.h> | 13 | #include <asm/io.h> |
14 | #include <asm/irq.h> | ||
15 | 14 | ||
16 | static struct ipr_data sh7710voipgw_ipr_map[] = { | 15 | static struct ipr_data sh7710voipgw_ipr_map[] = { |
17 | { TIMER2_IRQ, TIMER2_IPR_ADDR, TIMER2_IPR_POS, TIMER2_PRIORITY }, | 16 | { TIMER2_IRQ, TIMER2_IPR_ADDR, TIMER2_IPR_POS, TIMER2_PRIORITY }, |
diff --git a/arch/sh/boards/se/7206/irq.c b/arch/sh/boards/se/7206/irq.c index 27da88486f73..9d5bfc77d0de 100644 --- a/arch/sh/boards/se/7206/irq.c +++ b/arch/sh/boards/se/7206/irq.c | |||
@@ -9,7 +9,6 @@ | |||
9 | #include <linux/init.h> | 9 | #include <linux/init.h> |
10 | #include <linux/irq.h> | 10 | #include <linux/irq.h> |
11 | #include <linux/io.h> | 11 | #include <linux/io.h> |
12 | #include <linux/irq.h> | ||
13 | #include <linux/interrupt.h> | 12 | #include <linux/interrupt.h> |
14 | #include <asm/se7206.h> | 13 | #include <asm/se7206.h> |
15 | 14 | ||
diff --git a/arch/sh/boards/se/770x/setup.c b/arch/sh/boards/se/770x/setup.c index d07a3368f546..318bc8a3969c 100644 --- a/arch/sh/boards/se/770x/setup.c +++ b/arch/sh/boards/se/770x/setup.c | |||
@@ -94,6 +94,7 @@ static unsigned char heartbeat_bit_pos[] = { 8, 9, 10, 11, 12, 13, 14, 15 }; | |||
94 | static struct heartbeat_data heartbeat_data = { | 94 | static struct heartbeat_data heartbeat_data = { |
95 | .bit_pos = heartbeat_bit_pos, | 95 | .bit_pos = heartbeat_bit_pos, |
96 | .nr_bits = ARRAY_SIZE(heartbeat_bit_pos), | 96 | .nr_bits = ARRAY_SIZE(heartbeat_bit_pos), |
97 | .regsize = 16, | ||
97 | }; | 98 | }; |
98 | 99 | ||
99 | static struct resource heartbeat_resources[] = { | 100 | static struct resource heartbeat_resources[] = { |
diff --git a/arch/sh/boards/se/7722/setup.c b/arch/sh/boards/se/7722/setup.c index 20f064083cc2..eb97dca5b736 100644 --- a/arch/sh/boards/se/7722/setup.c +++ b/arch/sh/boards/se/7722/setup.c | |||
@@ -16,8 +16,13 @@ | |||
16 | #include <asm/machvec.h> | 16 | #include <asm/machvec.h> |
17 | #include <asm/se7722.h> | 17 | #include <asm/se7722.h> |
18 | #include <asm/io.h> | 18 | #include <asm/io.h> |
19 | #include <asm/heartbeat.h> | ||
19 | 20 | ||
20 | /* Heartbeat */ | 21 | /* Heartbeat */ |
22 | static struct heartbeat_data heartbeat_data = { | ||
23 | .regsize = 16, | ||
24 | }; | ||
25 | |||
21 | static struct resource heartbeat_resources[] = { | 26 | static struct resource heartbeat_resources[] = { |
22 | [0] = { | 27 | [0] = { |
23 | .start = PA_LED, | 28 | .start = PA_LED, |
@@ -29,6 +34,9 @@ static struct resource heartbeat_resources[] = { | |||
29 | static struct platform_device heartbeat_device = { | 34 | static struct platform_device heartbeat_device = { |
30 | .name = "heartbeat", | 35 | .name = "heartbeat", |
31 | .id = -1, | 36 | .id = -1, |
37 | .dev = { | ||
38 | .platform_data = &heartbeat_data, | ||
39 | }, | ||
32 | .num_resources = ARRAY_SIZE(heartbeat_resources), | 40 | .num_resources = ARRAY_SIZE(heartbeat_resources), |
33 | .resource = heartbeat_resources, | 41 | .resource = heartbeat_resources, |
34 | }; | 42 | }; |
diff --git a/arch/sh/boards/se/7780/setup.c b/arch/sh/boards/se/7780/setup.c index 76e53b26a808..0f08ab3b2bec 100644 --- a/arch/sh/boards/se/7780/setup.c +++ b/arch/sh/boards/se/7780/setup.c | |||
@@ -14,8 +14,13 @@ | |||
14 | #include <asm/machvec.h> | 14 | #include <asm/machvec.h> |
15 | #include <asm/se7780.h> | 15 | #include <asm/se7780.h> |
16 | #include <asm/io.h> | 16 | #include <asm/io.h> |
17 | #include <asm/heartbeat.h> | ||
17 | 18 | ||
18 | /* Heartbeat */ | 19 | /* Heartbeat */ |
20 | static struct heartbeat_data heartbeat_data = { | ||
21 | .regsize = 16, | ||
22 | }; | ||
23 | |||
19 | static struct resource heartbeat_resources[] = { | 24 | static struct resource heartbeat_resources[] = { |
20 | [0] = { | 25 | [0] = { |
21 | .start = PA_LED, | 26 | .start = PA_LED, |
@@ -27,6 +32,9 @@ static struct resource heartbeat_resources[] = { | |||
27 | static struct platform_device heartbeat_device = { | 32 | static struct platform_device heartbeat_device = { |
28 | .name = "heartbeat", | 33 | .name = "heartbeat", |
29 | .id = -1, | 34 | .id = -1, |
35 | .dev = { | ||
36 | .platform_data = &heartbeat_data, | ||
37 | }, | ||
30 | .num_resources = ARRAY_SIZE(heartbeat_resources), | 38 | .num_resources = ARRAY_SIZE(heartbeat_resources), |
31 | .resource = heartbeat_resources, | 39 | .resource = heartbeat_resources, |
32 | }; | 40 | }; |
diff --git a/arch/sh/boards/snapgear/Makefile b/arch/sh/boards/snapgear/Makefile index 59fc976bfc2f..d2d2f4b6a502 100644 --- a/arch/sh/boards/snapgear/Makefile +++ b/arch/sh/boards/snapgear/Makefile | |||
@@ -2,5 +2,4 @@ | |||
2 | # Makefile for the SnapGear specific parts of the kernel | 2 | # Makefile for the SnapGear specific parts of the kernel |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := setup.o io.o rtc.o | 5 | obj-y := setup.o io.o |
6 | |||
diff --git a/arch/sh/boards/snapgear/rtc.c b/arch/sh/boards/snapgear/rtc.c deleted file mode 100644 index edb3dd936cbb..000000000000 --- a/arch/sh/boards/snapgear/rtc.c +++ /dev/null | |||
@@ -1,309 +0,0 @@ | |||
1 | /****************************************************************************/ | ||
2 | /* | ||
3 | * linux/arch/sh/boards/snapgear/rtc.c -- Secureedge5410 RTC code | ||
4 | * | ||
5 | * Copyright (C) 2002 David McCullough <davidm@snapgear.com> | ||
6 | * Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org> | ||
7 | * | ||
8 | * The SecureEdge5410 can have one of 2 real time clocks, the SH | ||
9 | * built in version or the preferred external DS1302. Here we work out | ||
10 | * each to see what we have and then run with it. | ||
11 | */ | ||
12 | /****************************************************************************/ | ||
13 | |||
14 | #include <linux/init.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/sched.h> | ||
17 | #include <linux/time.h> | ||
18 | #include <linux/rtc.h> | ||
19 | #include <linux/mc146818rtc.h> | ||
20 | #include <asm/io.h> | ||
21 | |||
22 | static int use_ds1302; | ||
23 | |||
24 | /****************************************************************************/ | ||
25 | /* | ||
26 | * we need to implement a DS1302 driver here that can operate in | ||
27 | * conjunction with the builtin rtc driver which is already quite friendly | ||
28 | */ | ||
29 | /*****************************************************************************/ | ||
30 | |||
31 | #define RTC_CMD_READ 0x81 /* Read command */ | ||
32 | #define RTC_CMD_WRITE 0x80 /* Write command */ | ||
33 | |||
34 | #define RTC_ADDR_YEAR 0x06 /* Address of year register */ | ||
35 | #define RTC_ADDR_DAY 0x05 /* Address of day of week register */ | ||
36 | #define RTC_ADDR_MON 0x04 /* Address of month register */ | ||
37 | #define RTC_ADDR_DATE 0x03 /* Address of day of month register */ | ||
38 | #define RTC_ADDR_HOUR 0x02 /* Address of hour register */ | ||
39 | #define RTC_ADDR_MIN 0x01 /* Address of minute register */ | ||
40 | #define RTC_ADDR_SEC 0x00 /* Address of second register */ | ||
41 | |||
42 | #define RTC_RESET 0x1000 | ||
43 | #define RTC_IODATA 0x0800 | ||
44 | #define RTC_SCLK 0x0400 | ||
45 | |||
46 | #define set_dirp(x) | ||
47 | #define get_dirp(x) 0 | ||
48 | #define set_dp(x) SECUREEDGE_WRITE_IOPORT(x, 0x1c00) | ||
49 | #define get_dp(x) SECUREEDGE_READ_IOPORT() | ||
50 | |||
51 | static void ds1302_sendbits(unsigned int val) | ||
52 | { | ||
53 | int i; | ||
54 | |||
55 | for (i = 8; (i); i--, val >>= 1) { | ||
56 | set_dp((get_dp() & ~RTC_IODATA) | ((val & 0x1) ? RTC_IODATA : 0)); | ||
57 | set_dp(get_dp() | RTC_SCLK); // clock high | ||
58 | set_dp(get_dp() & ~RTC_SCLK); // clock low | ||
59 | } | ||
60 | } | ||
61 | |||
62 | static unsigned int ds1302_recvbits(void) | ||
63 | { | ||
64 | unsigned int val; | ||
65 | int i; | ||
66 | |||
67 | for (i = 0, val = 0; (i < 8); i++) { | ||
68 | val |= (((get_dp() & RTC_IODATA) ? 1 : 0) << i); | ||
69 | set_dp(get_dp() | RTC_SCLK); // clock high | ||
70 | set_dp(get_dp() & ~RTC_SCLK); // clock low | ||
71 | } | ||
72 | return(val); | ||
73 | } | ||
74 | |||
75 | static unsigned int ds1302_readbyte(unsigned int addr) | ||
76 | { | ||
77 | unsigned int val; | ||
78 | unsigned long flags; | ||
79 | |||
80 | local_irq_save(flags); | ||
81 | set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK); | ||
82 | set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK)); | ||
83 | |||
84 | set_dp(get_dp() | RTC_RESET); | ||
85 | ds1302_sendbits(((addr & 0x3f) << 1) | RTC_CMD_READ); | ||
86 | set_dirp(get_dirp() & ~RTC_IODATA); | ||
87 | val = ds1302_recvbits(); | ||
88 | set_dp(get_dp() & ~RTC_RESET); | ||
89 | local_irq_restore(flags); | ||
90 | |||
91 | return(val); | ||
92 | } | ||
93 | |||
94 | static void ds1302_writebyte(unsigned int addr, unsigned int val) | ||
95 | { | ||
96 | unsigned long flags; | ||
97 | |||
98 | local_irq_save(flags); | ||
99 | set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK); | ||
100 | set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK)); | ||
101 | set_dp(get_dp() | RTC_RESET); | ||
102 | ds1302_sendbits(((addr & 0x3f) << 1) | RTC_CMD_WRITE); | ||
103 | ds1302_sendbits(val); | ||
104 | set_dp(get_dp() & ~RTC_RESET); | ||
105 | local_irq_restore(flags); | ||
106 | } | ||
107 | |||
108 | static void ds1302_reset(void) | ||
109 | { | ||
110 | unsigned long flags; | ||
111 | /* Hardware dependent reset/init */ | ||
112 | local_irq_save(flags); | ||
113 | set_dirp(get_dirp() | RTC_RESET | RTC_IODATA | RTC_SCLK); | ||
114 | set_dp(get_dp() & ~(RTC_RESET | RTC_IODATA | RTC_SCLK)); | ||
115 | local_irq_restore(flags); | ||
116 | } | ||
117 | |||
118 | /*****************************************************************************/ | ||
119 | |||
120 | static inline int bcd2int(int val) | ||
121 | { | ||
122 | return((((val & 0xf0) >> 4) * 10) + (val & 0xf)); | ||
123 | } | ||
124 | |||
125 | static inline int int2bcd(int val) | ||
126 | { | ||
127 | return(((val / 10) << 4) + (val % 10)); | ||
128 | } | ||
129 | |||
130 | /*****************************************************************************/ | ||
131 | /* | ||
132 | * Write and Read some RAM in the DS1302, if it works assume it's there | ||
133 | * Otherwise use the SH4 internal RTC | ||
134 | */ | ||
135 | |||
136 | void snapgear_rtc_gettimeofday(struct timespec *); | ||
137 | int snapgear_rtc_settimeofday(const time_t); | ||
138 | |||
139 | void __init secureedge5410_rtc_init(void) | ||
140 | { | ||
141 | unsigned char *test = "snapgear"; | ||
142 | int i; | ||
143 | |||
144 | ds1302_reset(); | ||
145 | |||
146 | use_ds1302 = 1; | ||
147 | |||
148 | for (i = 0; test[i]; i++) | ||
149 | ds1302_writebyte(32 + i, test[i]); | ||
150 | |||
151 | for (i = 0; test[i]; i++) | ||
152 | if (ds1302_readbyte(32 + i) != test[i]) { | ||
153 | use_ds1302 = 0; | ||
154 | break; | ||
155 | } | ||
156 | |||
157 | if (use_ds1302) { | ||
158 | rtc_sh_get_time = snapgear_rtc_gettimeofday; | ||
159 | rtc_sh_set_time = snapgear_rtc_settimeofday; | ||
160 | } | ||
161 | |||
162 | printk("SnapGear RTC: using %s rtc.\n", use_ds1302 ? "ds1302" : "internal"); | ||
163 | } | ||
164 | |||
165 | /****************************************************************************/ | ||
166 | /* | ||
167 | * our generic interface that chooses the correct code to use | ||
168 | */ | ||
169 | |||
170 | void snapgear_rtc_gettimeofday(struct timespec *ts) | ||
171 | { | ||
172 | unsigned int sec, min, hr, day, mon, yr; | ||
173 | |||
174 | if (!use_ds1302) | ||
175 | return; | ||
176 | |||
177 | sec = bcd2int(ds1302_readbyte(RTC_ADDR_SEC)); | ||
178 | min = bcd2int(ds1302_readbyte(RTC_ADDR_MIN)); | ||
179 | hr = bcd2int(ds1302_readbyte(RTC_ADDR_HOUR)); | ||
180 | day = bcd2int(ds1302_readbyte(RTC_ADDR_DATE)); | ||
181 | mon = bcd2int(ds1302_readbyte(RTC_ADDR_MON)); | ||
182 | yr = bcd2int(ds1302_readbyte(RTC_ADDR_YEAR)); | ||
183 | |||
184 | bad_time: | ||
185 | if (yr > 99 || mon < 1 || mon > 12 || day > 31 || day < 1 || | ||
186 | hr > 23 || min > 59 || sec > 59) { | ||
187 | printk(KERN_ERR | ||
188 | "SnapGear RTC: invalid value, resetting to 1 Jan 2000\n"); | ||
189 | ds1302_writebyte(RTC_ADDR_MIN, min = 0); | ||
190 | ds1302_writebyte(RTC_ADDR_HOUR, hr = 0); | ||
191 | ds1302_writebyte(RTC_ADDR_DAY, 7); | ||
192 | ds1302_writebyte(RTC_ADDR_DATE, day = 1); | ||
193 | ds1302_writebyte(RTC_ADDR_MON, mon = 1); | ||
194 | ds1302_writebyte(RTC_ADDR_YEAR, yr = 0); | ||
195 | ds1302_writebyte(RTC_ADDR_SEC, sec = 0); | ||
196 | } | ||
197 | |||
198 | ts->tv_sec = mktime(2000 + yr, mon, day, hr, min, sec); | ||
199 | if (ts->tv_sec < 0) { | ||
200 | #if 0 | ||
201 | printk("BAD TIME %d %d %d %d %d %d\n", yr, mon, day, hr, min, sec); | ||
202 | #endif | ||
203 | yr = 100; | ||
204 | goto bad_time; | ||
205 | } | ||
206 | ts->tv_nsec = 0; | ||
207 | } | ||
208 | |||
209 | int snapgear_rtc_settimeofday(const time_t secs) | ||
210 | { | ||
211 | int retval = 0; | ||
212 | int real_seconds, real_minutes, cmos_minutes; | ||
213 | unsigned long nowtime; | ||
214 | |||
215 | if (!use_ds1302) | ||
216 | return 0; | ||
217 | |||
218 | /* | ||
219 | * This is called direct from the kernel timer handling code. | ||
220 | * It is supposed to synchronize the kernel clock to the RTC. | ||
221 | */ | ||
222 | |||
223 | nowtime = secs; | ||
224 | |||
225 | /* STOP RTC */ | ||
226 | ds1302_writebyte(RTC_ADDR_SEC, ds1302_readbyte(RTC_ADDR_SEC) | 0x80); | ||
227 | |||
228 | cmos_minutes = bcd2int(ds1302_readbyte(RTC_ADDR_MIN)); | ||
229 | |||
230 | /* | ||
231 | * since we're only adjusting minutes and seconds, | ||
232 | * don't interfere with hour overflow. This avoids | ||
233 | * messing with unknown time zones but requires your | ||
234 | * RTC not to be off by more than 15 minutes | ||
235 | */ | ||
236 | real_seconds = nowtime % 60; | ||
237 | real_minutes = nowtime / 60; | ||
238 | if (((abs(real_minutes - cmos_minutes) + 15)/30) & 1) | ||
239 | real_minutes += 30; /* correct for half hour time zone */ | ||
240 | real_minutes %= 60; | ||
241 | |||
242 | if (abs(real_minutes - cmos_minutes) < 30) { | ||
243 | ds1302_writebyte(RTC_ADDR_MIN, int2bcd(real_minutes)); | ||
244 | ds1302_writebyte(RTC_ADDR_SEC, int2bcd(real_seconds)); | ||
245 | } else { | ||
246 | printk(KERN_WARNING | ||
247 | "SnapGear RTC: can't update from %d to %d\n", | ||
248 | cmos_minutes, real_minutes); | ||
249 | retval = -1; | ||
250 | } | ||
251 | |||
252 | /* START RTC */ | ||
253 | ds1302_writebyte(RTC_ADDR_SEC, ds1302_readbyte(RTC_ADDR_SEC) & ~0x80); | ||
254 | return(0); | ||
255 | } | ||
256 | |||
257 | unsigned char secureedge5410_cmos_read(int addr) | ||
258 | { | ||
259 | unsigned char val = 0; | ||
260 | |||
261 | if (!use_ds1302) | ||
262 | return(__CMOS_READ(addr, w)); | ||
263 | |||
264 | switch(addr) { | ||
265 | case RTC_SECONDS: val = ds1302_readbyte(RTC_ADDR_SEC); break; | ||
266 | case RTC_SECONDS_ALARM: break; | ||
267 | case RTC_MINUTES: val = ds1302_readbyte(RTC_ADDR_MIN); break; | ||
268 | case RTC_MINUTES_ALARM: break; | ||
269 | case RTC_HOURS: val = ds1302_readbyte(RTC_ADDR_HOUR); break; | ||
270 | case RTC_HOURS_ALARM: break; | ||
271 | case RTC_DAY_OF_WEEK: val = ds1302_readbyte(RTC_ADDR_DAY); break; | ||
272 | case RTC_DAY_OF_MONTH: val = ds1302_readbyte(RTC_ADDR_DATE); break; | ||
273 | case RTC_MONTH: val = ds1302_readbyte(RTC_ADDR_MON); break; | ||
274 | case RTC_YEAR: val = ds1302_readbyte(RTC_ADDR_YEAR); break; | ||
275 | case RTC_REG_A: /* RTC_FREQ_SELECT */ break; | ||
276 | case RTC_REG_B: /* RTC_CONTROL */ break; | ||
277 | case RTC_REG_C: /* RTC_INTR_FLAGS */ break; | ||
278 | case RTC_REG_D: val = RTC_VRT /* RTC_VALID */; break; | ||
279 | default: break; | ||
280 | } | ||
281 | |||
282 | return(val); | ||
283 | } | ||
284 | |||
285 | void secureedge5410_cmos_write(unsigned char val, int addr) | ||
286 | { | ||
287 | if (!use_ds1302) { | ||
288 | __CMOS_WRITE(val, addr, w); | ||
289 | return; | ||
290 | } | ||
291 | |||
292 | switch(addr) { | ||
293 | case RTC_SECONDS: ds1302_writebyte(RTC_ADDR_SEC, val); break; | ||
294 | case RTC_SECONDS_ALARM: break; | ||
295 | case RTC_MINUTES: ds1302_writebyte(RTC_ADDR_MIN, val); break; | ||
296 | case RTC_MINUTES_ALARM: break; | ||
297 | case RTC_HOURS: ds1302_writebyte(RTC_ADDR_HOUR, val); break; | ||
298 | case RTC_HOURS_ALARM: break; | ||
299 | case RTC_DAY_OF_WEEK: ds1302_writebyte(RTC_ADDR_DAY, val); break; | ||
300 | case RTC_DAY_OF_MONTH: ds1302_writebyte(RTC_ADDR_DATE, val); break; | ||
301 | case RTC_MONTH: ds1302_writebyte(RTC_ADDR_MON, val); break; | ||
302 | case RTC_YEAR: ds1302_writebyte(RTC_ADDR_YEAR, val); break; | ||
303 | case RTC_REG_A: /* RTC_FREQ_SELECT */ break; | ||
304 | case RTC_REG_B: /* RTC_CONTROL */ break; | ||
305 | case RTC_REG_C: /* RTC_INTR_FLAGS */ break; | ||
306 | case RTC_REG_D: /* RTC_VALID */ break; | ||
307 | default: break; | ||
308 | } | ||
309 | } | ||
diff --git a/arch/sh/boards/snapgear/setup.c b/arch/sh/boards/snapgear/setup.c index 2b594f600002..7022483f98e8 100644 --- a/arch/sh/boards/snapgear/setup.c +++ b/arch/sh/boards/snapgear/setup.c | |||
@@ -22,20 +22,15 @@ | |||
22 | #include <asm/snapgear.h> | 22 | #include <asm/snapgear.h> |
23 | #include <asm/irq.h> | 23 | #include <asm/irq.h> |
24 | #include <asm/io.h> | 24 | #include <asm/io.h> |
25 | #include <asm/rtc.h> | ||
26 | #include <asm/cpu/timer.h> | 25 | #include <asm/cpu/timer.h> |
27 | 26 | ||
28 | extern void secureedge5410_rtc_init(void); | ||
29 | extern void pcibios_init(void); | ||
30 | |||
31 | /****************************************************************************/ | ||
32 | /* | 27 | /* |
33 | * EraseConfig handling functions | 28 | * EraseConfig handling functions |
34 | */ | 29 | */ |
35 | 30 | ||
36 | static irqreturn_t eraseconfig_interrupt(int irq, void *dev_id) | 31 | static irqreturn_t eraseconfig_interrupt(int irq, void *dev_id) |
37 | { | 32 | { |
38 | volatile char dummy __attribute__((unused)) = * (volatile char *) 0xb8000000; | 33 | (void)ctrl_inb(0xb8000000); /* dummy read */ |
39 | 34 | ||
40 | printk("SnapGear: erase switch interrupt!\n"); | 35 | printk("SnapGear: erase switch interrupt!\n"); |
41 | 36 | ||
@@ -76,19 +71,10 @@ static void __init init_snapgear_IRQ(void) | |||
76 | } | 71 | } |
77 | 72 | ||
78 | /* | 73 | /* |
79 | * Initialize the board | ||
80 | */ | ||
81 | static void __init snapgear_setup(char **cmdline_p) | ||
82 | { | ||
83 | board_time_init = secureedge5410_rtc_init; | ||
84 | } | ||
85 | |||
86 | /* | ||
87 | * The Machine Vector | 74 | * The Machine Vector |
88 | */ | 75 | */ |
89 | static struct sh_machine_vector mv_snapgear __initmv = { | 76 | static struct sh_machine_vector mv_snapgear __initmv = { |
90 | .mv_name = "SnapGear SecureEdge5410", | 77 | .mv_name = "SnapGear SecureEdge5410", |
91 | .mv_setup = snapgear_setup, | ||
92 | .mv_nr_irqs = 72, | 78 | .mv_nr_irqs = 72, |
93 | 79 | ||
94 | .mv_inb = snapgear_inb, | 80 | .mv_inb = snapgear_inb, |
diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile index 4c5ffdcd55b6..1b0f5be01d10 100644 --- a/arch/sh/boot/Makefile +++ b/arch/sh/boot/Makefile | |||
@@ -39,7 +39,7 @@ KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%8x" \ | |||
39 | 39 | ||
40 | quiet_cmd_uimage = UIMAGE $@ | 40 | quiet_cmd_uimage = UIMAGE $@ |
41 | cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sh -O linux -T kernel \ | 41 | cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A sh -O linux -T kernel \ |
42 | -C gzip -a $(KERNEL_LOAD) -e $(KERNEL_LOAD) \ | 42 | -C none -a $(KERNEL_LOAD) -e $(KERNEL_LOAD) \ |
43 | -n 'Linux-$(KERNELRELEASE)' -d $< $@ | 43 | -n 'Linux-$(KERNELRELEASE)' -d $< $@ |
44 | 44 | ||
45 | $(obj)/uImage: $(obj)/zImage FORCE | 45 | $(obj)/uImage: $(obj)/zImage FORCE |
diff --git a/arch/sh/cchips/hd6446x/Makefile b/arch/sh/cchips/hd6446x/Makefile index a106dd9db986..f7de4076e242 100644 --- a/arch/sh/cchips/hd6446x/Makefile +++ b/arch/sh/cchips/hd6446x/Makefile | |||
@@ -1,2 +1,4 @@ | |||
1 | obj-$(CONFIG_HD64461) += hd64461.o | 1 | obj-$(CONFIG_HD64461) += hd64461.o |
2 | obj-$(CONFIG_HD64465) += hd64465/ | 2 | obj-$(CONFIG_HD64465) += hd64465/ |
3 | |||
4 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/sh/cchips/voyagergx/Makefile b/arch/sh/cchips/voyagergx/Makefile index 085de72fd327..f73963cb3744 100644 --- a/arch/sh/cchips/voyagergx/Makefile +++ b/arch/sh/cchips/voyagergx/Makefile | |||
@@ -6,3 +6,4 @@ obj-y := irq.o setup.o | |||
6 | 6 | ||
7 | obj-$(CONFIG_USB_OHCI_HCD) += consistent.o | 7 | obj-$(CONFIG_USB_OHCI_HCD) += consistent.o |
8 | 8 | ||
9 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/sh/drivers/pci/Makefile b/arch/sh/drivers/pci/Makefile index 2f65ac72f48a..fba6b5ba0b3a 100644 --- a/arch/sh/drivers/pci/Makefile +++ b/arch/sh/drivers/pci/Makefile | |||
@@ -5,7 +5,6 @@ | |||
5 | obj-y += pci.o | 5 | obj-y += pci.o |
6 | obj-$(CONFIG_PCI_AUTO) += pci-auto.o | 6 | obj-$(CONFIG_PCI_AUTO) += pci-auto.o |
7 | 7 | ||
8 | obj-$(CONFIG_CPU_SUBTYPE_ST40STB1) += pci-st40.o | ||
9 | obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o | 8 | obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o |
10 | obj-$(CONFIG_CPU_SUBTYPE_SH7751R) += pci-sh7751.o ops-sh4.o | 9 | obj-$(CONFIG_CPU_SUBTYPE_SH7751R) += pci-sh7751.o ops-sh4.o |
11 | obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o | 10 | obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o |
diff --git a/arch/sh/drivers/pci/pci-st40.c b/arch/sh/drivers/pci/pci-st40.c deleted file mode 100644 index 0814a5afe9b7..000000000000 --- a/arch/sh/drivers/pci/pci-st40.c +++ /dev/null | |||
@@ -1,488 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2001 David J. Mckay (david.mckay@st.com) | ||
3 | * | ||
4 | * May be copied or modified under the terms of the GNU General Public | ||
5 | * License. See linux/COPYING for more information. | ||
6 | * | ||
7 | * Support functions for the ST40 PCI hardware. | ||
8 | */ | ||
9 | |||
10 | #include <linux/kernel.h> | ||
11 | #include <linux/smp.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/errno.h> | ||
14 | #include <linux/pci.h> | ||
15 | #include <linux/delay.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <asm/pci.h> | ||
18 | #include <linux/irq.h> | ||
19 | #include <linux/interrupt.h> /* irqreturn_t */ | ||
20 | |||
21 | #include "pci-st40.h" | ||
22 | |||
23 | /* This is in P2 of course */ | ||
24 | #define ST40PCI_BASE_ADDRESS (0xb0000000) | ||
25 | #define ST40PCI_MEM_ADDRESS (ST40PCI_BASE_ADDRESS+0x0) | ||
26 | #define ST40PCI_IO_ADDRESS (ST40PCI_BASE_ADDRESS+0x06000000) | ||
27 | #define ST40PCI_REG_ADDRESS (ST40PCI_BASE_ADDRESS+0x07000000) | ||
28 | |||
29 | #define ST40PCI_REG(x) (ST40PCI_REG_ADDRESS+(ST40PCI_##x)) | ||
30 | #define ST40PCI_REG_INDEXED(reg, index) \ | ||
31 | (ST40PCI_REG(reg##0) + \ | ||
32 | ((ST40PCI_REG(reg##1) - ST40PCI_REG(reg##0))*index)) | ||
33 | |||
34 | #define ST40PCI_WRITE(reg,val) writel((val),ST40PCI_REG(reg)) | ||
35 | #define ST40PCI_WRITE_SHORT(reg,val) writew((val),ST40PCI_REG(reg)) | ||
36 | #define ST40PCI_WRITE_BYTE(reg,val) writeb((val),ST40PCI_REG(reg)) | ||
37 | #define ST40PCI_WRITE_INDEXED(reg, index, val) \ | ||
38 | writel((val), ST40PCI_REG_INDEXED(reg, index)); | ||
39 | |||
40 | #define ST40PCI_READ(reg) readl(ST40PCI_REG(reg)) | ||
41 | #define ST40PCI_READ_SHORT(reg) readw(ST40PCI_REG(reg)) | ||
42 | #define ST40PCI_READ_BYTE(reg) readb(ST40PCI_REG(reg)) | ||
43 | |||
44 | #define ST40PCI_SERR_IRQ 64 | ||
45 | #define ST40PCI_ERR_IRQ 65 | ||
46 | |||
47 | |||
48 | /* Macros to extract PLL params */ | ||
49 | #define PLL_MDIV(reg) ( ((unsigned)reg) & 0xff ) | ||
50 | #define PLL_NDIV(reg) ( (((unsigned)reg)>>8) & 0xff ) | ||
51 | #define PLL_PDIV(reg) ( (((unsigned)reg)>>16) & 0x3 ) | ||
52 | #define PLL_SETUP(reg) ( (((unsigned)reg)>>19) & 0x1ff ) | ||
53 | |||
54 | /* Build up the appropriate settings */ | ||
55 | #define PLL_SET(mdiv,ndiv,pdiv,setup) \ | ||
56 | ( ((mdiv)&0xff) | (((ndiv)&0xff)<<8) | (((pdiv)&3)<<16)| (((setup)&0x1ff)<<19)) | ||
57 | |||
58 | #define PLLPCICR (0xbb040000+0x10) | ||
59 | |||
60 | #define PLLPCICR_POWERON (1<<28) | ||
61 | #define PLLPCICR_OUT_EN (1<<29) | ||
62 | #define PLLPCICR_LOCKSELECT (1<<30) | ||
63 | #define PLLPCICR_LOCK (1<<31) | ||
64 | |||
65 | |||
66 | #define PLL_25MHZ 0x793c8512 | ||
67 | #define PLL_33MHZ PLL_SET(18,88,3,295) | ||
68 | |||
69 | static void pci_set_rbar_region(unsigned int region, unsigned long localAddr, | ||
70 | unsigned long pciOffset, unsigned long regionSize); | ||
71 | |||
72 | static __init void SetPCIPLL(void) | ||
73 | { | ||
74 | { | ||
75 | /* Lets play with the PLL values */ | ||
76 | unsigned long pll1cr1; | ||
77 | unsigned long mdiv, ndiv, pdiv; | ||
78 | unsigned long muxcr; | ||
79 | unsigned int muxcr_ratios[4] = { 8, 16, 21, 1 }; | ||
80 | unsigned int freq; | ||
81 | |||
82 | #define CLKGENA 0xbb040000 | ||
83 | #define CLKGENA_PLL2_MUXCR CLKGENA + 0x48 | ||
84 | pll1cr1 = ctrl_inl(PLLPCICR); | ||
85 | printk("PLL1CR1 %08lx\n", pll1cr1); | ||
86 | mdiv = PLL_MDIV(pll1cr1); | ||
87 | ndiv = PLL_NDIV(pll1cr1); | ||
88 | pdiv = PLL_PDIV(pll1cr1); | ||
89 | printk("mdiv %02lx ndiv %02lx pdiv %02lx\n", mdiv, ndiv, pdiv); | ||
90 | freq = ((2*27*ndiv)/mdiv) / (1 << pdiv); | ||
91 | printk("PLL freq %dMHz\n", freq); | ||
92 | muxcr = ctrl_inl(CLKGENA_PLL2_MUXCR); | ||
93 | printk("PCI freq %dMhz\n", freq / muxcr_ratios[muxcr & 3]); | ||
94 | } | ||
95 | } | ||
96 | |||
97 | |||
98 | struct pci_err { | ||
99 | unsigned mask; | ||
100 | const char *error_string; | ||
101 | }; | ||
102 | |||
103 | static struct pci_err int_error[]={ | ||
104 | { INT_MNLTDIM,"MNLTDIM: Master non-lock transfer"}, | ||
105 | { INT_TTADI, "TTADI: Illegal byte enable in I/O transfer"}, | ||
106 | { INT_TMTO, "TMTO: Target memory read/write timeout"}, | ||
107 | { INT_MDEI, "MDEI: Master function disable error"}, | ||
108 | { INT_APEDI, "APEDI: Address parity error"}, | ||
109 | { INT_SDI, "SDI: SERR detected"}, | ||
110 | { INT_DPEITW, "DPEITW: Data parity error target write"}, | ||
111 | { INT_PEDITR, "PEDITR: PERR detected"}, | ||
112 | { INT_TADIM, "TADIM: Target abort detected"}, | ||
113 | { INT_MADIM, "MADIM: Master abort detected"}, | ||
114 | { INT_MWPDI, "MWPDI: PERR from target at data write"}, | ||
115 | { INT_MRDPEI, "MRDPEI: Master read data parity error"} | ||
116 | }; | ||
117 | #define NUM_PCI_INT_ERRS ARRAY_SIZE(int_error) | ||
118 | |||
119 | static struct pci_err aint_error[]={ | ||
120 | { AINT_MBI, "MBI: Master broken"}, | ||
121 | { AINT_TBTOI, "TBTOI: Target bus timeout"}, | ||
122 | { AINT_MBTOI, "MBTOI: Master bus timeout"}, | ||
123 | { AINT_TAI, "TAI: Target abort"}, | ||
124 | { AINT_MAI, "MAI: Master abort"}, | ||
125 | { AINT_RDPEI, "RDPEI: Read data parity"}, | ||
126 | { AINT_WDPE, "WDPE: Write data parity"} | ||
127 | }; | ||
128 | |||
129 | #define NUM_PCI_AINT_ERRS ARRAY_SIZE(aint_error) | ||
130 | |||
131 | static void print_pci_errors(unsigned reg,struct pci_err *error,int num_errors) | ||
132 | { | ||
133 | int i; | ||
134 | |||
135 | for(i=0;i<num_errors;i++) { | ||
136 | if(reg & error[i].mask) { | ||
137 | printk("%s\n",error[i].error_string); | ||
138 | } | ||
139 | } | ||
140 | |||
141 | } | ||
142 | |||
143 | |||
144 | static char * pci_commands[16]={ | ||
145 | "Int Ack", | ||
146 | "Special Cycle", | ||
147 | "I/O Read", | ||
148 | "I/O Write", | ||
149 | "Reserved", | ||
150 | "Reserved", | ||
151 | "Memory Read", | ||
152 | "Memory Write", | ||
153 | "Reserved", | ||
154 | "Reserved", | ||
155 | "Configuration Read", | ||
156 | "Configuration Write", | ||
157 | "Memory Read Multiple", | ||
158 | "Dual Address Cycle", | ||
159 | "Memory Read Line", | ||
160 | "Memory Write-and-Invalidate" | ||
161 | }; | ||
162 | |||
163 | static irqreturn_t st40_pci_irq(int irq, void *dev_instance) | ||
164 | { | ||
165 | unsigned pci_int, pci_air, pci_cir, pci_aint; | ||
166 | static int count=0; | ||
167 | |||
168 | |||
169 | pci_int = ST40PCI_READ(INT);pci_aint = ST40PCI_READ(AINT); | ||
170 | pci_cir = ST40PCI_READ(CIR);pci_air = ST40PCI_READ(AIR); | ||
171 | |||
172 | /* Reset state to stop multiple interrupts */ | ||
173 | ST40PCI_WRITE(INT, ~0); ST40PCI_WRITE(AINT, ~0); | ||
174 | |||
175 | |||
176 | if(++count>1) return IRQ_HANDLED; | ||
177 | |||
178 | printk("** PCI ERROR **\n"); | ||
179 | |||
180 | if(pci_int) { | ||
181 | printk("** INT register status\n"); | ||
182 | print_pci_errors(pci_int,int_error,NUM_PCI_INT_ERRS); | ||
183 | } | ||
184 | |||
185 | if(pci_aint) { | ||
186 | printk("** AINT register status\n"); | ||
187 | print_pci_errors(pci_aint,aint_error,NUM_PCI_AINT_ERRS); | ||
188 | } | ||
189 | |||
190 | printk("** Address and command info\n"); | ||
191 | |||
192 | printk("** Command %s : Address 0x%x\n", | ||
193 | pci_commands[pci_cir&0xf],pci_air); | ||
194 | |||
195 | if(pci_cir&CIR_PIOTEM) { | ||
196 | printk("CIR_PIOTEM:PIO transfer error for master\n"); | ||
197 | } | ||
198 | if(pci_cir&CIR_RWTET) { | ||
199 | printk("CIR_RWTET:Read/Write transfer error for target\n"); | ||
200 | } | ||
201 | |||
202 | return IRQ_HANDLED; | ||
203 | } | ||
204 | |||
205 | |||
206 | /* Rounds a number UP to the nearest power of two. Used for | ||
207 | * sizing the PCI window. | ||
208 | */ | ||
209 | static u32 r2p2(u32 num) | ||
210 | { | ||
211 | int i = 31; | ||
212 | u32 tmp = num; | ||
213 | |||
214 | if (num == 0) | ||
215 | return 0; | ||
216 | |||
217 | do { | ||
218 | if (tmp & (1 << 31)) | ||
219 | break; | ||
220 | i--; | ||
221 | tmp <<= 1; | ||
222 | } while (i >= 0); | ||
223 | |||
224 | tmp = 1 << i; | ||
225 | /* If the original number isn't a power of 2, round it up */ | ||
226 | if (tmp != num) | ||
227 | tmp <<= 1; | ||
228 | |||
229 | return tmp; | ||
230 | } | ||
231 | |||
232 | static void __init pci_fixup_ide_bases(struct pci_dev *d) | ||
233 | { | ||
234 | int i; | ||
235 | |||
236 | /* | ||
237 | * PCI IDE controllers use non-standard I/O port decoding, respect it. | ||
238 | */ | ||
239 | if ((d->class >> 8) != PCI_CLASS_STORAGE_IDE) | ||
240 | return; | ||
241 | printk("PCI: IDE base address fixup for %s\n", pci_name(d)); | ||
242 | for(i=0; i<4; i++) { | ||
243 | struct resource *r = &d->resource[i]; | ||
244 | if ((r->start & ~0x80) == 0x374) { | ||
245 | r->start |= 2; | ||
246 | r->end = r->start; | ||
247 | } | ||
248 | } | ||
249 | } | ||
250 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases); | ||
251 | |||
252 | int __init st40pci_init(unsigned memStart, unsigned memSize) | ||
253 | { | ||
254 | u32 lsr0; | ||
255 | |||
256 | SetPCIPLL(); | ||
257 | |||
258 | /* Initialises the ST40 pci subsystem, performing a reset, then programming | ||
259 | * up the address space decoders appropriately | ||
260 | */ | ||
261 | |||
262 | /* Should reset core here as well methink */ | ||
263 | |||
264 | ST40PCI_WRITE(CR, CR_LOCK_MASK | CR_SOFT_RESET); | ||
265 | |||
266 | /* Loop while core resets */ | ||
267 | while (ST40PCI_READ(CR) & CR_SOFT_RESET); | ||
268 | |||
269 | /* Switch off interrupts */ | ||
270 | ST40PCI_WRITE(INTM, 0); | ||
271 | ST40PCI_WRITE(AINT, 0); | ||
272 | |||
273 | /* Now, lets reset all the cards on the bus with extreme prejudice */ | ||
274 | ST40PCI_WRITE(CR, CR_LOCK_MASK | CR_RSTCTL); | ||
275 | udelay(250); | ||
276 | |||
277 | /* Set bus active, take it out of reset */ | ||
278 | ST40PCI_WRITE(CR, CR_LOCK_MASK | CR_BMAM | CR_CFINT | CR_PFCS | CR_PFE); | ||
279 | |||
280 | /* The PCI spec says that no access must be made to the bus until 1 second | ||
281 | * after reset. This seem ludicrously long, but some delay is needed here | ||
282 | */ | ||
283 | mdelay(1000); | ||
284 | |||
285 | /* Switch off interrupts */ | ||
286 | ST40PCI_WRITE(INTM, 0); | ||
287 | ST40PCI_WRITE(AINT, 0); | ||
288 | |||
289 | /* Allow it to be a master */ | ||
290 | |||
291 | ST40PCI_WRITE_SHORT(CSR_CMD, | ||
292 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER | | ||
293 | PCI_COMMAND_IO); | ||
294 | |||
295 | /* Access to the 0xb0000000 -> 0xb6000000 area will go through to 0x10000000 -> 0x16000000 | ||
296 | * on the PCI bus. This allows a nice 1-1 bus to phys mapping. | ||
297 | */ | ||
298 | |||
299 | |||
300 | ST40PCI_WRITE(MBR, 0x10000000); | ||
301 | /* Always set the max size 128M (actually, it is only 96MB wide) */ | ||
302 | ST40PCI_WRITE(MBMR, 0x07ff0000); | ||
303 | |||
304 | /* I/O addresses are mapped at 0xb6000000 -> 0xb7000000. These are changed to 0, to | ||
305 | * allow cards that have legacy io such as vga to function correctly. This gives a | ||
306 | * maximum of 64K of io/space as only the bottom 16 bits of the address are copied | ||
307 | * over to the bus when the transaction is made. 64K of io space is more than enough | ||
308 | */ | ||
309 | ST40PCI_WRITE(IOBR, 0x0); | ||
310 | /* Set up the 64K window */ | ||
311 | ST40PCI_WRITE(IOBMR, 0x0); | ||
312 | |||
313 | /* Now we set up the mbars so the PCI bus can see the local memory */ | ||
314 | /* Expose a 256M window starting at PCI address 0... */ | ||
315 | ST40PCI_WRITE(CSR_MBAR0, 0); | ||
316 | ST40PCI_WRITE(LSR0, 0x0fff0001); | ||
317 | |||
318 | /* ... and set up the initial incoming window to expose all of RAM */ | ||
319 | pci_set_rbar_region(7, memStart, memStart, memSize); | ||
320 | |||
321 | /* Maximise timeout values */ | ||
322 | ST40PCI_WRITE_BYTE(CSR_TRDY, 0xff); | ||
323 | ST40PCI_WRITE_BYTE(CSR_RETRY, 0xff); | ||
324 | ST40PCI_WRITE_BYTE(CSR_MIT, 0xff); | ||
325 | |||
326 | ST40PCI_WRITE_BYTE(PERF,PERF_MASTER_WRITE_POSTING); | ||
327 | |||
328 | return 1; | ||
329 | } | ||
330 | |||
331 | char * __devinit pcibios_setup(char *str) | ||
332 | { | ||
333 | return str; | ||
334 | } | ||
335 | |||
336 | |||
337 | #define SET_CONFIG_BITS(bus,devfn,where)\ | ||
338 | (((bus) << 16) | ((devfn) << 8) | ((where) & ~3) | (bus!=0)) | ||
339 | |||
340 | #define CONFIG_CMD(bus, devfn, where) SET_CONFIG_BITS(bus->number,devfn,where) | ||
341 | |||
342 | |||
343 | static int CheckForMasterAbort(void) | ||
344 | { | ||
345 | if (ST40PCI_READ(INT) & INT_MADIM) { | ||
346 | /* Should we clear config space version as well ??? */ | ||
347 | ST40PCI_WRITE(INT, INT_MADIM); | ||
348 | ST40PCI_WRITE_SHORT(CSR_STATUS, 0); | ||
349 | return 1; | ||
350 | } | ||
351 | |||
352 | return 0; | ||
353 | } | ||
354 | |||
355 | /* Write to config register */ | ||
356 | static int st40pci_read(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 * val) | ||
357 | { | ||
358 | ST40PCI_WRITE(PAR, CONFIG_CMD(bus, devfn, where)); | ||
359 | switch (size) { | ||
360 | case 1: | ||
361 | *val = (u8)ST40PCI_READ_BYTE(PDR + (where & 3)); | ||
362 | break; | ||
363 | case 2: | ||
364 | *val = (u16)ST40PCI_READ_SHORT(PDR + (where & 2)); | ||
365 | break; | ||
366 | case 4: | ||
367 | *val = ST40PCI_READ(PDR); | ||
368 | break; | ||
369 | } | ||
370 | |||
371 | if (CheckForMasterAbort()){ | ||
372 | switch (size) { | ||
373 | case 1: | ||
374 | *val = (u8)0xff; | ||
375 | break; | ||
376 | case 2: | ||
377 | *val = (u16)0xffff; | ||
378 | break; | ||
379 | case 4: | ||
380 | *val = 0xffffffff; | ||
381 | break; | ||
382 | } | ||
383 | } | ||
384 | |||
385 | return PCIBIOS_SUCCESSFUL; | ||
386 | } | ||
387 | |||
388 | static int st40pci_write(struct pci_bus *bus, unsigned int devfn, int where, int size, u32 val) | ||
389 | { | ||
390 | ST40PCI_WRITE(PAR, CONFIG_CMD(bus, devfn, where)); | ||
391 | |||
392 | switch (size) { | ||
393 | case 1: | ||
394 | ST40PCI_WRITE_BYTE(PDR + (where & 3), (u8)val); | ||
395 | break; | ||
396 | case 2: | ||
397 | ST40PCI_WRITE_SHORT(PDR + (where & 2), (u16)val); | ||
398 | break; | ||
399 | case 4: | ||
400 | ST40PCI_WRITE(PDR, val); | ||
401 | break; | ||
402 | } | ||
403 | |||
404 | CheckForMasterAbort(); | ||
405 | |||
406 | return PCIBIOS_SUCCESSFUL; | ||
407 | } | ||
408 | |||
409 | struct pci_ops st40pci_config_ops = { | ||
410 | .read = st40pci_read, | ||
411 | .write = st40pci_write, | ||
412 | }; | ||
413 | |||
414 | |||
415 | /* Everything hangs off this */ | ||
416 | static struct pci_bus *pci_root_bus; | ||
417 | |||
418 | static int __init pcibios_init(void) | ||
419 | { | ||
420 | extern unsigned long memory_start, memory_end; | ||
421 | |||
422 | printk(KERN_ALERT "pci-st40.c: pcibios_init\n"); | ||
423 | |||
424 | if (sh_mv.mv_init_pci != NULL) { | ||
425 | sh_mv.mv_init_pci(); | ||
426 | } | ||
427 | |||
428 | /* The pci subsytem needs to know where memory is and how much | ||
429 | * of it there is. I've simply made these globals. A better mechanism | ||
430 | * is probably needed. | ||
431 | */ | ||
432 | st40pci_init(PHYSADDR(memory_start), | ||
433 | PHYSADDR(memory_end) - PHYSADDR(memory_start)); | ||
434 | |||
435 | if (request_irq(ST40PCI_ERR_IRQ, st40_pci_irq, | ||
436 | IRQF_DISABLED, "st40pci", NULL)) { | ||
437 | printk(KERN_ERR "st40pci: Cannot hook interrupt\n"); | ||
438 | return -EIO; | ||
439 | } | ||
440 | |||
441 | /* Enable the PCI interrupts on the device */ | ||
442 | ST40PCI_WRITE(INTM, ~0); | ||
443 | ST40PCI_WRITE(AINT, ~0); | ||
444 | |||
445 | /* Map the io address apprioately */ | ||
446 | #ifdef CONFIG_HD64465 | ||
447 | hd64465_port_map(PCIBIOS_MIN_IO, (64 * 1024) - PCIBIOS_MIN_IO + 1, | ||
448 | ST40_IO_ADDR + PCIBIOS_MIN_IO, 0); | ||
449 | #endif | ||
450 | |||
451 | /* ok, do the scan man */ | ||
452 | pci_root_bus = pci_scan_bus(0, &st40pci_config_ops, NULL); | ||
453 | pci_assign_unassigned_resources(); | ||
454 | |||
455 | return 0; | ||
456 | } | ||
457 | subsys_initcall(pcibios_init); | ||
458 | |||
459 | /* | ||
460 | * Publish a region of local address space over the PCI bus | ||
461 | * to other devices. | ||
462 | */ | ||
463 | static void pci_set_rbar_region(unsigned int region, unsigned long localAddr, | ||
464 | unsigned long pciOffset, unsigned long regionSize) | ||
465 | { | ||
466 | unsigned long mask; | ||
467 | |||
468 | if (region > 7) | ||
469 | return; | ||
470 | |||
471 | if (regionSize > (512 * 1024 * 1024)) | ||
472 | return; | ||
473 | |||
474 | mask = r2p2(regionSize) - 0x10000; | ||
475 | |||
476 | /* Disable the region (in case currently in use, should never happen) */ | ||
477 | ST40PCI_WRITE_INDEXED(RSR, region, 0); | ||
478 | |||
479 | /* Start of local address space to publish */ | ||
480 | ST40PCI_WRITE_INDEXED(RLAR, region, PHYSADDR(localAddr) ); | ||
481 | |||
482 | /* Start of region in PCI address space as an offset from MBAR0 */ | ||
483 | ST40PCI_WRITE_INDEXED(RBAR, region, pciOffset); | ||
484 | |||
485 | /* Size of region */ | ||
486 | ST40PCI_WRITE_INDEXED(RSR, region, mask | 1); | ||
487 | } | ||
488 | |||
diff --git a/arch/sh/drivers/pci/pci-st40.h b/arch/sh/drivers/pci/pci-st40.h deleted file mode 100644 index cf0d35bd135c..000000000000 --- a/arch/sh/drivers/pci/pci-st40.h +++ /dev/null | |||
@@ -1,136 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2001 David J. Mckay (david.mckay@st.com) | ||
3 | * | ||
4 | * May be copied or modified under the terms of the GNU General Public | ||
5 | * License. See linux/COPYING for more information. | ||
6 | * | ||
7 | * Definitions for the ST40 PCI hardware. | ||
8 | */ | ||
9 | |||
10 | #ifndef __PCI_ST40_H__ | ||
11 | #define __PCI_ST40_H__ | ||
12 | |||
13 | #define ST40PCI_VCR_STATUS 0x00 | ||
14 | |||
15 | #define ST40PCI_VCR_VERSION 0x08 | ||
16 | |||
17 | #define ST40PCI_CR 0x10 | ||
18 | |||
19 | #define CR_SOFT_RESET (1<<12) | ||
20 | #define CR_PFCS (1<<11) | ||
21 | #define CR_PFE (1<<9) | ||
22 | #define CR_BMAM (1<<6) | ||
23 | #define CR_HOST (1<<5) | ||
24 | #define CR_CLKEN (1<<4) | ||
25 | #define CR_SOCS (1<<3) | ||
26 | #define CR_IOCS (1<<2) | ||
27 | #define CR_RSTCTL (1<<1) | ||
28 | #define CR_CFINT (1<<0) | ||
29 | #define CR_LOCK_MASK 0x5a000000 | ||
30 | |||
31 | |||
32 | #define ST40PCI_LSR0 0X14 | ||
33 | #define ST40PCI_LAR0 0x1c | ||
34 | |||
35 | #define ST40PCI_INT 0x24 | ||
36 | #define INT_MNLTDIM (1<<15) | ||
37 | #define INT_TTADI (1<<14) | ||
38 | #define INT_TMTO (1<<9) | ||
39 | #define INT_MDEI (1<<8) | ||
40 | #define INT_APEDI (1<<7) | ||
41 | #define INT_SDI (1<<6) | ||
42 | #define INT_DPEITW (1<<5) | ||
43 | #define INT_PEDITR (1<<4) | ||
44 | #define INT_TADIM (1<<3) | ||
45 | #define INT_MADIM (1<<2) | ||
46 | #define INT_MWPDI (1<<1) | ||
47 | #define INT_MRDPEI (1<<0) | ||
48 | |||
49 | |||
50 | #define ST40PCI_INTM 0x28 | ||
51 | #define ST40PCI_AIR 0x2c | ||
52 | |||
53 | #define ST40PCI_CIR 0x30 | ||
54 | #define CIR_PIOTEM (1<<31) | ||
55 | #define CIR_RWTET (1<<26) | ||
56 | |||
57 | #define ST40PCI_AINT 0x40 | ||
58 | #define AINT_MBI (1<<13) | ||
59 | #define AINT_TBTOI (1<<12) | ||
60 | #define AINT_MBTOI (1<<11) | ||
61 | #define AINT_TAI (1<<3) | ||
62 | #define AINT_MAI (1<<2) | ||
63 | #define AINT_RDPEI (1<<1) | ||
64 | #define AINT_WDPE (1<<0) | ||
65 | |||
66 | #define ST40PCI_AINTM 0x44 | ||
67 | #define ST40PCI_BMIR 0x48 | ||
68 | #define ST40PCI_PAR 0x4c | ||
69 | #define ST40PCI_MBR 0x50 | ||
70 | #define ST40PCI_IOBR 0x54 | ||
71 | #define ST40PCI_PINT 0x58 | ||
72 | #define ST40PCI_PINTM 0x5c | ||
73 | #define ST40PCI_MBMR 0x70 | ||
74 | #define ST40PCI_IOBMR 0x74 | ||
75 | #define ST40PCI_PDR 0x78 | ||
76 | |||
77 | /* H8 specific registers start here */ | ||
78 | #define ST40PCI_WCBAR 0x7c | ||
79 | #define ST40PCI_LOCCFG_UNLOCK 0x34 | ||
80 | |||
81 | #define ST40PCI_RBAR0 0x100 | ||
82 | #define ST40PCI_RSR0 0x104 | ||
83 | #define ST40PCI_RLAR0 0x108 | ||
84 | |||
85 | #define ST40PCI_RBAR1 0x110 | ||
86 | #define ST40PCI_RSR1 0x114 | ||
87 | #define ST40PCI_RLAR1 0x118 | ||
88 | |||
89 | |||
90 | #define ST40PCI_RBAR2 0x120 | ||
91 | #define ST40PCI_RSR2 0x124 | ||
92 | #define ST40PCI_RLAR2 0x128 | ||
93 | |||
94 | #define ST40PCI_RBAR3 0x130 | ||
95 | #define ST40PCI_RSR3 0x134 | ||
96 | #define ST40PCI_RLAR3 0x138 | ||
97 | |||
98 | #define ST40PCI_RBAR4 0x140 | ||
99 | #define ST40PCI_RSR4 0x144 | ||
100 | #define ST40PCI_RLAR4 0x148 | ||
101 | |||
102 | #define ST40PCI_RBAR5 0x150 | ||
103 | #define ST40PCI_RSR5 0x154 | ||
104 | #define ST40PCI_RLAR5 0x158 | ||
105 | |||
106 | #define ST40PCI_RBAR6 0x160 | ||
107 | #define ST40PCI_RSR6 0x164 | ||
108 | #define ST40PCI_RLAR6 0x168 | ||
109 | |||
110 | #define ST40PCI_RBAR7 0x170 | ||
111 | #define ST40PCI_RSR7 0x174 | ||
112 | #define ST40PCI_RLAR7 0x178 | ||
113 | |||
114 | |||
115 | #define ST40PCI_RBAR(n) (0x100+(0x10*(n))) | ||
116 | #define ST40PCI_RSR(n) (0x104+(0x10*(n))) | ||
117 | #define ST40PCI_RLAR(n) (0x108+(0x10*(n))) | ||
118 | |||
119 | #define ST40PCI_PERF 0x80 | ||
120 | #define PERF_MASTER_WRITE_POSTING (1<<4) | ||
121 | /* H8 specific registers end here */ | ||
122 | |||
123 | |||
124 | /* These are configs space registers */ | ||
125 | #define ST40PCI_CSR_VID 0x10000 | ||
126 | #define ST40PCI_CSR_DID 0x10002 | ||
127 | #define ST40PCI_CSR_CMD 0x10004 | ||
128 | #define ST40PCI_CSR_STATUS 0x10006 | ||
129 | #define ST40PCI_CSR_MBAR0 0x10010 | ||
130 | #define ST40PCI_CSR_TRDY 0x10040 | ||
131 | #define ST40PCI_CSR_RETRY 0x10041 | ||
132 | #define ST40PCI_CSR_MIT 0x1000d | ||
133 | |||
134 | #define ST40_IO_ADDR 0xb6000000 | ||
135 | |||
136 | #endif /* __PCI_ST40_H__ */ | ||
diff --git a/arch/sh/kernel/Makefile b/arch/sh/kernel/Makefile index 1f141a8ba17c..4b81d9c47b00 100644 --- a/arch/sh/kernel/Makefile +++ b/arch/sh/kernel/Makefile | |||
@@ -10,7 +10,6 @@ obj-y := debugtraps.o io.o io_generic.o irq.o machvec.o process.o ptrace.o \ | |||
10 | 10 | ||
11 | obj-y += cpu/ timers/ | 11 | obj-y += cpu/ timers/ |
12 | obj-$(CONFIG_VSYSCALL) += vsyscall/ | 12 | obj-$(CONFIG_VSYSCALL) += vsyscall/ |
13 | |||
14 | obj-$(CONFIG_SMP) += smp.o | 13 | obj-$(CONFIG_SMP) += smp.o |
15 | obj-$(CONFIG_CF_ENABLER) += cf-enabler.o | 14 | obj-$(CONFIG_CF_ENABLER) += cf-enabler.o |
16 | obj-$(CONFIG_SH_STANDARD_BIOS) += sh_bios.o | 15 | obj-$(CONFIG_SH_STANDARD_BIOS) += sh_bios.o |
@@ -22,3 +21,5 @@ obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o | |||
22 | obj-$(CONFIG_CRASH_DUMP) += crash_dump.o | 21 | obj-$(CONFIG_CRASH_DUMP) += crash_dump.o |
23 | obj-$(CONFIG_PM) += pm.o | 22 | obj-$(CONFIG_PM) += pm.o |
24 | obj-$(CONFIG_STACKTRACE) += stacktrace.o | 23 | obj-$(CONFIG_STACKTRACE) += stacktrace.o |
24 | |||
25 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/sh/kernel/cpu/sh3/ex.S b/arch/sh/kernel/cpu/sh3/ex.S index 2b2a9e02fb75..b6abf38d3a8d 100644 --- a/arch/sh/kernel/cpu/sh3/ex.S +++ b/arch/sh/kernel/cpu/sh3/ex.S | |||
@@ -46,7 +46,7 @@ ENTRY(exception_handling_table) | |||
46 | .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/ | 46 | .long exception_error ! illegal_slot_instruction (filled by trap_init) /*1A0*/ |
47 | ENTRY(nmi_slot) | 47 | ENTRY(nmi_slot) |
48 | #if defined (CONFIG_KGDB_NMI) | 48 | #if defined (CONFIG_KGDB_NMI) |
49 | .long debug_enter /* 1C0 */ ! Allow trap to debugger | 49 | .long kgdb_handle_exception /* 1C0 */ ! Allow trap to debugger |
50 | #else | 50 | #else |
51 | .long exception_none /* 1C0 */ ! Not implemented yet | 51 | .long exception_none /* 1C0 */ ! Not implemented yet |
52 | #endif | 52 | #endif |
diff --git a/arch/sh/kernel/cpu/sh4/probe.c b/arch/sh/kernel/cpu/sh4/probe.c index 21375d777e99..bc9c28a69bf1 100644 --- a/arch/sh/kernel/cpu/sh4/probe.c +++ b/arch/sh/kernel/cpu/sh4/probe.c | |||
@@ -139,14 +139,6 @@ int __init detect_cpu_and_cache_system(void) | |||
139 | boot_cpu_data.flags |= CPU_HAS_FPU | CPU_HAS_PERF_COUNTER | | 139 | boot_cpu_data.flags |= CPU_HAS_FPU | CPU_HAS_PERF_COUNTER | |
140 | CPU_HAS_LLSC; | 140 | CPU_HAS_LLSC; |
141 | break; | 141 | break; |
142 | case 0x8000: | ||
143 | boot_cpu_data.type = CPU_ST40RA; | ||
144 | boot_cpu_data.flags |= CPU_HAS_FPU; | ||
145 | break; | ||
146 | case 0x8100: | ||
147 | boot_cpu_data.type = CPU_ST40GX1; | ||
148 | boot_cpu_data.flags |= CPU_HAS_FPU; | ||
149 | break; | ||
150 | case 0x700: | 142 | case 0x700: |
151 | boot_cpu_data.type = CPU_SH4_501; | 143 | boot_cpu_data.type = CPU_SH4_501; |
152 | boot_cpu_data.icache.ways = 2; | 144 | boot_cpu_data.icache.ways = 2; |
diff --git a/arch/sh/kernel/irq.c b/arch/sh/kernel/irq.c index 348da194ec99..0586bc62ad96 100644 --- a/arch/sh/kernel/irq.c +++ b/arch/sh/kernel/irq.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/kernel_stat.h> | 12 | #include <linux/kernel_stat.h> |
13 | #include <linux/seq_file.h> | 13 | #include <linux/seq_file.h> |
14 | #include <linux/irq.h> | ||
15 | #include <asm/processor.h> | 14 | #include <asm/processor.h> |
16 | #include <asm/machvec.h> | 15 | #include <asm/machvec.h> |
17 | #include <asm/uaccess.h> | 16 | #include <asm/uaccess.h> |
diff --git a/arch/sh/kernel/kgdb_stub.c b/arch/sh/kernel/kgdb_stub.c index 2fdc700dfd6e..d453c3a1c79f 100644 --- a/arch/sh/kernel/kgdb_stub.c +++ b/arch/sh/kernel/kgdb_stub.c | |||
@@ -102,6 +102,7 @@ | |||
102 | #include <linux/init.h> | 102 | #include <linux/init.h> |
103 | #include <linux/console.h> | 103 | #include <linux/console.h> |
104 | #include <linux/sysrq.h> | 104 | #include <linux/sysrq.h> |
105 | #include <linux/module.h> | ||
105 | #include <asm/system.h> | 106 | #include <asm/system.h> |
106 | #include <asm/cacheflush.h> | 107 | #include <asm/cacheflush.h> |
107 | #include <asm/current.h> | 108 | #include <asm/current.h> |
@@ -116,7 +117,9 @@ kgdb_debug_hook_t *kgdb_debug_hook; | |||
116 | kgdb_bus_error_hook_t *kgdb_bus_err_hook; | 117 | kgdb_bus_error_hook_t *kgdb_bus_err_hook; |
117 | 118 | ||
118 | int (*kgdb_getchar)(void); | 119 | int (*kgdb_getchar)(void); |
120 | EXPORT_SYMBOL_GPL(kgdb_getchar); | ||
119 | void (*kgdb_putchar)(int); | 121 | void (*kgdb_putchar)(int); |
122 | EXPORT_SYMBOL_GPL(kgdb_putchar); | ||
120 | 123 | ||
121 | static void put_debug_char(int c) | 124 | static void put_debug_char(int c) |
122 | { | 125 | { |
@@ -136,7 +139,7 @@ static int get_debug_char(void) | |||
136 | #define NUMREGBYTES (MAXREG*4) | 139 | #define NUMREGBYTES (MAXREG*4) |
137 | #define OUTBUFMAX (NUMREGBYTES*2+512) | 140 | #define OUTBUFMAX (NUMREGBYTES*2+512) |
138 | 141 | ||
139 | enum regs { | 142 | enum { |
140 | R0 = 0, R1, R2, R3, R4, R5, R6, R7, | 143 | R0 = 0, R1, R2, R3, R4, R5, R6, R7, |
141 | R8, R9, R10, R11, R12, R13, R14, R15, | 144 | R8, R9, R10, R11, R12, R13, R14, R15, |
142 | PC, PR, GBR, VBR, MACH, MACL, SR, | 145 | PC, PR, GBR, VBR, MACH, MACL, SR, |
@@ -176,9 +179,13 @@ int kgdb_nofault; /* Boolean to ignore bus errs (i.e. in GDB) */ | |||
176 | 179 | ||
177 | /* SCI/UART settings, used in kgdb_console_setup() */ | 180 | /* SCI/UART settings, used in kgdb_console_setup() */ |
178 | int kgdb_portnum = CONFIG_KGDB_DEFPORT; | 181 | int kgdb_portnum = CONFIG_KGDB_DEFPORT; |
182 | EXPORT_SYMBOL_GPL(kgdb_portnum); | ||
179 | int kgdb_baud = CONFIG_KGDB_DEFBAUD; | 183 | int kgdb_baud = CONFIG_KGDB_DEFBAUD; |
184 | EXPORT_SYMBOL_GPL(kgdb_baud); | ||
180 | char kgdb_parity = CONFIG_KGDB_DEFPARITY; | 185 | char kgdb_parity = CONFIG_KGDB_DEFPARITY; |
186 | EXPORT_SYMBOL_GPL(kgdb_parity); | ||
181 | char kgdb_bits = CONFIG_KGDB_DEFBITS; | 187 | char kgdb_bits = CONFIG_KGDB_DEFBITS; |
188 | EXPORT_SYMBOL_GPL(kgdb_bits); | ||
182 | 189 | ||
183 | /* Jump buffer for setjmp/longjmp */ | 190 | /* Jump buffer for setjmp/longjmp */ |
184 | static jmp_buf rem_com_env; | 191 | static jmp_buf rem_com_env; |
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c index 0b8c45d53a47..4156aac8c27d 100644 --- a/arch/sh/kernel/setup.c +++ b/arch/sh/kernel/setup.c | |||
@@ -303,7 +303,6 @@ static const char *cpu_name[] = { | |||
303 | [CPU_SH7750S] = "SH7750S", [CPU_SH7750R] = "SH7750R", | 303 | [CPU_SH7750S] = "SH7750S", [CPU_SH7750R] = "SH7750R", |
304 | [CPU_SH7751] = "SH7751", [CPU_SH7751R] = "SH7751R", | 304 | [CPU_SH7751] = "SH7751", [CPU_SH7751R] = "SH7751R", |
305 | [CPU_SH7760] = "SH7760", | 305 | [CPU_SH7760] = "SH7760", |
306 | [CPU_ST40RA] = "ST40RA", [CPU_ST40GX1] = "ST40GX1", | ||
307 | [CPU_SH4_202] = "SH4-202", [CPU_SH4_501] = "SH4-501", | 306 | [CPU_SH4_202] = "SH4-202", [CPU_SH4_501] = "SH4-501", |
308 | [CPU_SH7770] = "SH7770", [CPU_SH7780] = "SH7780", | 307 | [CPU_SH7770] = "SH7770", [CPU_SH7780] = "SH7780", |
309 | [CPU_SH7781] = "SH7781", [CPU_SH7343] = "SH7343", | 308 | [CPU_SH7781] = "SH7781", [CPU_SH7343] = "SH7343", |
diff --git a/arch/sh/kernel/sh_ksyms.c b/arch/sh/kernel/sh_ksyms.c index 548e4285b375..e1a6de9088b5 100644 --- a/arch/sh/kernel/sh_ksyms.c +++ b/arch/sh/kernel/sh_ksyms.c | |||
@@ -106,7 +106,6 @@ DECLARE_EXPORT(__movmem); | |||
106 | DECLARE_EXPORT(__movstr); | 106 | DECLARE_EXPORT(__movstr); |
107 | #endif | 107 | #endif |
108 | 108 | ||
109 | #ifdef CONFIG_CPU_SH4 | ||
110 | #if __GNUC__ == 4 | 109 | #if __GNUC__ == 4 |
111 | DECLARE_EXPORT(__movmem_i4_even); | 110 | DECLARE_EXPORT(__movmem_i4_even); |
112 | DECLARE_EXPORT(__movmem_i4_odd); | 111 | DECLARE_EXPORT(__movmem_i4_odd); |
@@ -126,7 +125,6 @@ DECLARE_EXPORT(__movstr_i4_even); | |||
126 | DECLARE_EXPORT(__movstr_i4_odd); | 125 | DECLARE_EXPORT(__movstr_i4_odd); |
127 | DECLARE_EXPORT(__movstrSI12_i4); | 126 | DECLARE_EXPORT(__movstrSI12_i4); |
128 | #endif /* __GNUC__ == 4 */ | 127 | #endif /* __GNUC__ == 4 */ |
129 | #endif | ||
130 | 128 | ||
131 | #if !defined(CONFIG_CACHE_OFF) && (defined(CONFIG_CPU_SH4) || \ | 129 | #if !defined(CONFIG_CACHE_OFF) && (defined(CONFIG_CPU_SH4) || \ |
132 | defined(CONFIG_SH7705_CACHE_32KB)) | 130 | defined(CONFIG_SH7705_CACHE_32KB)) |
diff --git a/arch/sh/lib/Makefile b/arch/sh/lib/Makefile index e23dd1a3fccd..9dc7b6985052 100644 --- a/arch/sh/lib/Makefile +++ b/arch/sh/lib/Makefile | |||
@@ -9,3 +9,5 @@ memcpy-y := memcpy.o | |||
9 | memcpy-$(CONFIG_CPU_SH4) := memcpy-sh4.o | 9 | memcpy-$(CONFIG_CPU_SH4) := memcpy-sh4.o |
10 | 10 | ||
11 | lib-y += $(memcpy-y) | 11 | lib-y += $(memcpy-y) |
12 | |||
13 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/sh/mm/Kconfig b/arch/sh/mm/Kconfig index cf446bbab5b0..1265f204f7d1 100644 --- a/arch/sh/mm/Kconfig +++ b/arch/sh/mm/Kconfig | |||
@@ -17,7 +17,7 @@ config CPU_SH4 | |||
17 | bool | 17 | bool |
18 | select CPU_HAS_INTEVT | 18 | select CPU_HAS_INTEVT |
19 | select CPU_HAS_SR_RB | 19 | select CPU_HAS_SR_RB |
20 | select CPU_HAS_PTEA if (!CPU_SUBTYPE_ST40 && !CPU_SH4A) || CPU_SHX2 | 20 | select CPU_HAS_PTEA if !CPU_SH4A || CPU_SHX2 |
21 | select CPU_HAS_FPU if !CPU_SH4AL_DSP | 21 | select CPU_HAS_FPU if !CPU_SH4AL_DSP |
22 | 22 | ||
23 | config CPU_SH4A | 23 | config CPU_SH4A |
@@ -29,10 +29,6 @@ config CPU_SH4AL_DSP | |||
29 | select CPU_SH4A | 29 | select CPU_SH4A |
30 | select CPU_HAS_DSP | 30 | select CPU_HAS_DSP |
31 | 31 | ||
32 | config CPU_SUBTYPE_ST40 | ||
33 | bool | ||
34 | select CPU_SH4 | ||
35 | |||
36 | config CPU_SHX2 | 32 | config CPU_SHX2 |
37 | bool | 33 | bool |
38 | 34 | ||
@@ -152,21 +148,6 @@ config CPU_SUBTYPE_SH4_202 | |||
152 | bool "Support SH4-202 processor" | 148 | bool "Support SH4-202 processor" |
153 | select CPU_SH4 | 149 | select CPU_SH4 |
154 | 150 | ||
155 | # ST40 Processor Support | ||
156 | |||
157 | config CPU_SUBTYPE_ST40STB1 | ||
158 | bool "Support ST40STB1/ST40RA processors" | ||
159 | select CPU_SUBTYPE_ST40 | ||
160 | help | ||
161 | Select ST40STB1 if you have a ST40RA CPU. | ||
162 | This was previously called the ST40STB1, hence the option name. | ||
163 | |||
164 | config CPU_SUBTYPE_ST40GX1 | ||
165 | bool "Support ST40GX1 processor" | ||
166 | select CPU_SUBTYPE_ST40 | ||
167 | help | ||
168 | Select ST40GX1 if you have a ST40GX1 CPU. | ||
169 | |||
170 | # SH-4A Processor Support | 151 | # SH-4A Processor Support |
171 | 152 | ||
172 | config CPU_SUBTYPE_SH7770 | 153 | config CPU_SUBTYPE_SH7770 |
diff --git a/arch/sh/mm/Makefile b/arch/sh/mm/Makefile index ee30fb44dfe1..aa44607f072d 100644 --- a/arch/sh/mm/Makefile +++ b/arch/sh/mm/Makefile | |||
@@ -33,3 +33,5 @@ endif | |||
33 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o | 33 | obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o |
34 | obj-$(CONFIG_32BIT) += pmb.o | 34 | obj-$(CONFIG_32BIT) += pmb.o |
35 | obj-$(CONFIG_NUMA) += numa.o | 35 | obj-$(CONFIG_NUMA) += numa.o |
36 | |||
37 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/sh/mm/clear_page.S b/arch/sh/mm/clear_page.S index 8a706131e521..7a7c81ee3f01 100644 --- a/arch/sh/mm/clear_page.S +++ b/arch/sh/mm/clear_page.S | |||
@@ -150,48 +150,3 @@ ENTRY(__clear_user) | |||
150 | .long 8b, .Lbad_clear_user | 150 | .long 8b, .Lbad_clear_user |
151 | .long 9b, .Lbad_clear_user | 151 | .long 9b, .Lbad_clear_user |
152 | .previous | 152 | .previous |
153 | |||
154 | #if defined(CONFIG_CPU_SH4) | ||
155 | /* | ||
156 | * __clear_user_page | ||
157 | * @to: P3 address (with same color) | ||
158 | * @orig_to: P1 address | ||
159 | * | ||
160 | * void __clear_user_page(void *to, void *orig_to) | ||
161 | */ | ||
162 | |||
163 | /* | ||
164 | * r0 --- scratch | ||
165 | * r4 --- to | ||
166 | * r5 --- orig_to | ||
167 | * r6 --- to + PAGE_SIZE | ||
168 | */ | ||
169 | ENTRY(__clear_user_page) | ||
170 | mov.l .Lpsz,r0 | ||
171 | mov r4,r6 | ||
172 | add r0,r6 | ||
173 | mov #0,r0 | ||
174 | ! | ||
175 | 1: ocbi @r5 | ||
176 | add #32,r5 | ||
177 | movca.l r0,@r4 | ||
178 | mov r4,r1 | ||
179 | add #32,r4 | ||
180 | mov.l r0,@-r4 | ||
181 | mov.l r0,@-r4 | ||
182 | mov.l r0,@-r4 | ||
183 | mov.l r0,@-r4 | ||
184 | mov.l r0,@-r4 | ||
185 | mov.l r0,@-r4 | ||
186 | mov.l r0,@-r4 | ||
187 | add #28,r4 | ||
188 | cmp/eq r6,r4 | ||
189 | bf/s 1b | ||
190 | ocbwb @r1 | ||
191 | ! | ||
192 | rts | ||
193 | nop | ||
194 | .Lpsz: .long PAGE_SIZE | ||
195 | |||
196 | #endif | ||
197 | |||
diff --git a/arch/sh/mm/copy_page.S b/arch/sh/mm/copy_page.S index 3d8409daa4be..40685018b952 100644 --- a/arch/sh/mm/copy_page.S +++ b/arch/sh/mm/copy_page.S | |||
@@ -68,67 +68,6 @@ ENTRY(copy_page_slow) | |||
68 | rts | 68 | rts |
69 | nop | 69 | nop |
70 | 70 | ||
71 | #if defined(CONFIG_CPU_SH4) | ||
72 | /* | ||
73 | * __copy_user_page | ||
74 | * @to: P1 address (with same color) | ||
75 | * @from: P1 address | ||
76 | * @orig_to: P1 address | ||
77 | * | ||
78 | * void __copy_user_page(void *to, void *from, void *orig_to) | ||
79 | */ | ||
80 | |||
81 | /* | ||
82 | * r0, r1, r2, r3, r4, r5, r6, r7 --- scratch | ||
83 | * r8 --- from + PAGE_SIZE | ||
84 | * r9 --- orig_to | ||
85 | * r10 --- to | ||
86 | * r11 --- from | ||
87 | */ | ||
88 | ENTRY(__copy_user_page) | ||
89 | mov.l r8,@-r15 | ||
90 | mov.l r9,@-r15 | ||
91 | mov.l r10,@-r15 | ||
92 | mov.l r11,@-r15 | ||
93 | mov r4,r10 | ||
94 | mov r5,r11 | ||
95 | mov r6,r9 | ||
96 | mov r5,r8 | ||
97 | mov.l .Lpsz,r0 | ||
98 | add r0,r8 | ||
99 | ! | ||
100 | 1: ocbi @r9 | ||
101 | add #32,r9 | ||
102 | mov.l @r11+,r0 | ||
103 | mov.l @r11+,r1 | ||
104 | mov.l @r11+,r2 | ||
105 | mov.l @r11+,r3 | ||
106 | mov.l @r11+,r4 | ||
107 | mov.l @r11+,r5 | ||
108 | mov.l @r11+,r6 | ||
109 | mov.l @r11+,r7 | ||
110 | movca.l r0,@r10 | ||
111 | mov r10,r0 | ||
112 | add #32,r10 | ||
113 | mov.l r7,@-r10 | ||
114 | mov.l r6,@-r10 | ||
115 | mov.l r5,@-r10 | ||
116 | mov.l r4,@-r10 | ||
117 | mov.l r3,@-r10 | ||
118 | mov.l r2,@-r10 | ||
119 | mov.l r1,@-r10 | ||
120 | ocbwb @r0 | ||
121 | cmp/eq r11,r8 | ||
122 | bf/s 1b | ||
123 | add #28,r10 | ||
124 | ! | ||
125 | mov.l @r15+,r11 | ||
126 | mov.l @r15+,r10 | ||
127 | mov.l @r15+,r9 | ||
128 | mov.l @r15+,r8 | ||
129 | rts | ||
130 | nop | ||
131 | #endif | ||
132 | .align 2 | 71 | .align 2 |
133 | .Lpsz: .long PAGE_SIZE | 72 | .Lpsz: .long PAGE_SIZE |
134 | /* | 73 | /* |
diff --git a/arch/sh/mm/pg-sh4.c b/arch/sh/mm/pg-sh4.c index 25f5c6f6821d..8c7a9ca79879 100644 --- a/arch/sh/mm/pg-sh4.c +++ b/arch/sh/mm/pg-sh4.c | |||
@@ -9,6 +9,8 @@ | |||
9 | #include <linux/mm.h> | 9 | #include <linux/mm.h> |
10 | #include <linux/mutex.h> | 10 | #include <linux/mutex.h> |
11 | #include <linux/fs.h> | 11 | #include <linux/fs.h> |
12 | #include <linux/highmem.h> | ||
13 | #include <linux/module.h> | ||
12 | #include <asm/mmu_context.h> | 14 | #include <asm/mmu_context.h> |
13 | #include <asm/cacheflush.h> | 15 | #include <asm/cacheflush.h> |
14 | 16 | ||
@@ -50,34 +52,61 @@ static inline void kunmap_coherent(struct page *page) | |||
50 | void clear_user_page(void *to, unsigned long address, struct page *page) | 52 | void clear_user_page(void *to, unsigned long address, struct page *page) |
51 | { | 53 | { |
52 | __set_bit(PG_mapped, &page->flags); | 54 | __set_bit(PG_mapped, &page->flags); |
53 | if (((address ^ (unsigned long)to) & CACHE_ALIAS) == 0) | 55 | |
54 | clear_page(to); | 56 | clear_page(to); |
55 | else { | 57 | if ((((address & PAGE_MASK) ^ (unsigned long)to) & CACHE_ALIAS)) |
56 | void *vto = kmap_coherent(page, address); | 58 | __flush_wback_region(to, PAGE_SIZE); |
57 | __clear_user_page(vto, to); | ||
58 | kunmap_coherent(vto); | ||
59 | } | ||
60 | } | 59 | } |
61 | 60 | ||
62 | /* | 61 | void copy_to_user_page(struct vm_area_struct *vma, struct page *page, |
63 | * copy_user_page | 62 | unsigned long vaddr, void *dst, const void *src, |
64 | * @to: P1 address | 63 | unsigned long len) |
65 | * @from: P1 address | ||
66 | * @address: U0 address to be mapped | ||
67 | * @page: page (virt_to_page(to)) | ||
68 | */ | ||
69 | void copy_user_page(void *to, void *from, unsigned long address, | ||
70 | struct page *page) | ||
71 | { | 64 | { |
65 | void *vto; | ||
66 | |||
72 | __set_bit(PG_mapped, &page->flags); | 67 | __set_bit(PG_mapped, &page->flags); |
73 | if (((address ^ (unsigned long)to) & CACHE_ALIAS) == 0) | 68 | |
74 | copy_page(to, from); | 69 | vto = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); |
75 | else { | 70 | memcpy(vto, src, len); |
76 | void *vfrom = kmap_coherent(page, address); | 71 | kunmap_coherent(vto); |
77 | __copy_user_page(vfrom, from, to); | 72 | |
78 | kunmap_coherent(vfrom); | 73 | if (vma->vm_flags & VM_EXEC) |
79 | } | 74 | flush_cache_page(vma, vaddr, page_to_pfn(page)); |
75 | } | ||
76 | |||
77 | void copy_from_user_page(struct vm_area_struct *vma, struct page *page, | ||
78 | unsigned long vaddr, void *dst, const void *src, | ||
79 | unsigned long len) | ||
80 | { | ||
81 | void *vfrom; | ||
82 | |||
83 | __set_bit(PG_mapped, &page->flags); | ||
84 | |||
85 | vfrom = kmap_coherent(page, vaddr) + (vaddr & ~PAGE_MASK); | ||
86 | memcpy(dst, vfrom, len); | ||
87 | kunmap_coherent(vfrom); | ||
88 | } | ||
89 | |||
90 | void copy_user_highpage(struct page *to, struct page *from, | ||
91 | unsigned long vaddr, struct vm_area_struct *vma) | ||
92 | { | ||
93 | void *vfrom, *vto; | ||
94 | |||
95 | __set_bit(PG_mapped, &to->flags); | ||
96 | |||
97 | vto = kmap_atomic(to, KM_USER1); | ||
98 | vfrom = kmap_coherent(from, vaddr); | ||
99 | copy_page(vto, vfrom); | ||
100 | kunmap_coherent(vfrom); | ||
101 | |||
102 | if (((vaddr ^ (unsigned long)vto) & CACHE_ALIAS)) | ||
103 | __flush_wback_region(vto, PAGE_SIZE); | ||
104 | |||
105 | kunmap_atomic(vto, KM_USER1); | ||
106 | /* Make sure this page is cleared on other CPU's too before using it */ | ||
107 | smp_wmb(); | ||
80 | } | 108 | } |
109 | EXPORT_SYMBOL(copy_user_highpage); | ||
81 | 110 | ||
82 | /* | 111 | /* |
83 | * For SH-4, we have our own implementation for ptep_get_and_clear | 112 | * For SH-4, we have our own implementation for ptep_get_and_clear |
diff --git a/arch/sh/oprofile/Makefile b/arch/sh/oprofile/Makefile index 1f25d9bb7538..2efc2e79fd29 100644 --- a/arch/sh/oprofile/Makefile +++ b/arch/sh/oprofile/Makefile | |||
@@ -15,3 +15,4 @@ profdrvr-$(CONFIG_CPU_SUBTYPE_SH7091) := op_model_sh7750.o | |||
15 | 15 | ||
16 | oprofile-y := $(DRIVER_OBJS) $(profdrvr-y) | 16 | oprofile-y := $(DRIVER_OBJS) $(profdrvr-y) |
17 | 17 | ||
18 | EXTRA_CFLAGS += -Werror | ||
diff --git a/arch/sh64/kernel/process.c b/arch/sh64/kernel/process.c index ceb9458abda4..0761af4d2a42 100644 --- a/arch/sh64/kernel/process.c +++ b/arch/sh64/kernel/process.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/reboot.h> | 26 | #include <linux/reboot.h> |
27 | #include <linux/init.h> | 27 | #include <linux/init.h> |
28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
29 | #include <linux/proc_fs.h> | ||
29 | #include <asm/uaccess.h> | 30 | #include <asm/uaccess.h> |
30 | #include <asm/pgtable.h> | 31 | #include <asm/pgtable.h> |
31 | 32 | ||
@@ -656,9 +657,6 @@ unsigned long get_wchan(struct task_struct *p) | |||
656 | */ | 657 | */ |
657 | 658 | ||
658 | #if defined(CONFIG_SH64_PROC_ASIDS) | 659 | #if defined(CONFIG_SH64_PROC_ASIDS) |
659 | #include <linux/init.h> | ||
660 | #include <linux/proc_fs.h> | ||
661 | |||
662 | static int | 660 | static int |
663 | asids_proc_info(char *buf, char **start, off_t fpos, int length, int *eof, void *data) | 661 | asids_proc_info(char *buf, char **start, off_t fpos, int length, int *eof, void *data) |
664 | { | 662 | { |
@@ -686,10 +684,8 @@ asids_proc_info(char *buf, char **start, off_t fpos, int length, int *eof, void | |||
686 | 684 | ||
687 | static int __init register_proc_asids(void) | 685 | static int __init register_proc_asids(void) |
688 | { | 686 | { |
689 | create_proc_read_entry("asids", 0, NULL, asids_proc_info, NULL); | 687 | create_proc_read_entry("asids", 0, NULL, asids_proc_info, NULL); |
690 | return 0; | 688 | return 0; |
691 | } | 689 | } |
692 | |||
693 | __initcall(register_proc_asids); | 690 | __initcall(register_proc_asids); |
694 | #endif | 691 | #endif |
695 | |||
diff --git a/arch/sh64/kernel/traps.c b/arch/sh64/kernel/traps.c index c03101fab467..f32df3831f45 100644 --- a/arch/sh64/kernel/traps.c +++ b/arch/sh64/kernel/traps.c | |||
@@ -30,7 +30,6 @@ | |||
30 | #include <linux/interrupt.h> | 30 | #include <linux/interrupt.h> |
31 | #include <linux/sysctl.h> | 31 | #include <linux/sysctl.h> |
32 | #include <linux/module.h> | 32 | #include <linux/module.h> |
33 | |||
34 | #include <asm/system.h> | 33 | #include <asm/system.h> |
35 | #include <asm/uaccess.h> | 34 | #include <asm/uaccess.h> |
36 | #include <asm/io.h> | 35 | #include <asm/io.h> |
@@ -242,9 +241,6 @@ DO_ERROR(12, SIGILL, "reserved instruction", reserved_inst, current) | |||
242 | 241 | ||
243 | #endif /* CONFIG_SH64_ID2815_WORKAROUND */ | 242 | #endif /* CONFIG_SH64_ID2815_WORKAROUND */ |
244 | 243 | ||
245 | |||
246 | #include <asm/system.h> | ||
247 | |||
248 | /* Called with interrupts disabled */ | 244 | /* Called with interrupts disabled */ |
249 | asmlinkage void do_exception_error(unsigned long ex, struct pt_regs *regs) | 245 | asmlinkage void do_exception_error(unsigned long ex, struct pt_regs *regs) |
250 | { | 246 | { |
@@ -984,4 +980,3 @@ asmlinkage void do_debug_interrupt(unsigned long code, struct pt_regs *regs) | |||
984 | /* Clear all DEBUGINT causes */ | 980 | /* Clear all DEBUGINT causes */ |
985 | poke_real_address_q(DM_EXP_CAUSE_PHY, 0x0); | 981 | poke_real_address_q(DM_EXP_CAUSE_PHY, 0x0); |
986 | } | 982 | } |
987 | |||
diff --git a/arch/sparc/kernel/irq.c b/arch/sparc/kernel/irq.c index e1e24f31aa54..01a6756ba371 100644 --- a/arch/sparc/kernel/irq.c +++ b/arch/sparc/kernel/irq.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/linkage.h> | 18 | #include <linux/linkage.h> |
19 | #include <linux/kernel_stat.h> | 19 | #include <linux/kernel_stat.h> |
20 | #include <linux/signal.h> | 20 | #include <linux/signal.h> |
21 | #include <linux/sched.h> | ||
22 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
23 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
24 | #include <linux/random.h> | 23 | #include <linux/random.h> |
diff --git a/arch/sparc64/kernel/ds.c b/arch/sparc64/kernel/ds.c index 9f472a79d37e..eeb5a2fc788d 100644 --- a/arch/sparc64/kernel/ds.c +++ b/arch/sparc64/kernel/ds.c | |||
@@ -6,7 +6,6 @@ | |||
6 | #include <linux/kernel.h> | 6 | #include <linux/kernel.h> |
7 | #include <linux/module.h> | 7 | #include <linux/module.h> |
8 | #include <linux/types.h> | 8 | #include <linux/types.h> |
9 | #include <linux/module.h> | ||
10 | #include <linux/string.h> | 9 | #include <linux/string.h> |
11 | #include <linux/slab.h> | 10 | #include <linux/slab.h> |
12 | #include <linux/sched.h> | 11 | #include <linux/sched.h> |
diff --git a/arch/sparc64/kernel/module.c b/arch/sparc64/kernel/module.c index 579871527699..158484bf5999 100644 --- a/arch/sparc64/kernel/module.c +++ b/arch/sparc64/kernel/module.c | |||
@@ -11,7 +11,6 @@ | |||
11 | #include <linux/fs.h> | 11 | #include <linux/fs.h> |
12 | #include <linux/string.h> | 12 | #include <linux/string.h> |
13 | #include <linux/slab.h> | 13 | #include <linux/slab.h> |
14 | #include <linux/vmalloc.h> | ||
15 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
16 | 15 | ||
17 | #include <asm/processor.h> | 16 | #include <asm/processor.h> |
diff --git a/arch/sparc64/kernel/sys_sparc32.c b/arch/sparc64/kernel/sys_sparc32.c index 78caff926737..98c468803ce3 100644 --- a/arch/sparc64/kernel/sys_sparc32.c +++ b/arch/sparc64/kernel/sys_sparc32.c | |||
@@ -51,7 +51,6 @@ | |||
51 | #include <linux/vfs.h> | 51 | #include <linux/vfs.h> |
52 | #include <linux/netfilter_ipv4/ip_tables.h> | 52 | #include <linux/netfilter_ipv4/ip_tables.h> |
53 | #include <linux/ptrace.h> | 53 | #include <linux/ptrace.h> |
54 | #include <linux/highuid.h> | ||
55 | 54 | ||
56 | #include <asm/types.h> | 55 | #include <asm/types.h> |
57 | #include <asm/uaccess.h> | 56 | #include <asm/uaccess.h> |
diff --git a/arch/sparc64/kernel/sys_sunos32.c b/arch/sparc64/kernel/sys_sunos32.c index 170d6ca8de6f..cfc22d3fe54c 100644 --- a/arch/sparc64/kernel/sys_sunos32.c +++ b/arch/sparc64/kernel/sys_sunos32.c | |||
@@ -57,7 +57,6 @@ | |||
57 | #include <linux/personality.h> | 57 | #include <linux/personality.h> |
58 | 58 | ||
59 | /* For SOCKET_I */ | 59 | /* For SOCKET_I */ |
60 | #include <linux/socket.h> | ||
61 | #include <net/sock.h> | 60 | #include <net/sock.h> |
62 | #include <net/compat.h> | 61 | #include <net/compat.h> |
63 | 62 | ||
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c index a2cf955294c1..4352ee4d8dac 100644 --- a/arch/sparc64/kernel/time.c +++ b/arch/sparc64/kernel/time.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/jiffies.h> | 28 | #include <linux/jiffies.h> |
29 | #include <linux/cpufreq.h> | 29 | #include <linux/cpufreq.h> |
30 | #include <linux/percpu.h> | 30 | #include <linux/percpu.h> |
31 | #include <linux/profile.h> | ||
32 | #include <linux/miscdevice.h> | 31 | #include <linux/miscdevice.h> |
33 | #include <linux/rtc.h> | 32 | #include <linux/rtc.h> |
34 | #include <linux/kernel_stat.h> | 33 | #include <linux/kernel_stat.h> |
@@ -47,7 +46,6 @@ | |||
47 | #include <asm/sections.h> | 46 | #include <asm/sections.h> |
48 | #include <asm/cpudata.h> | 47 | #include <asm/cpudata.h> |
49 | #include <asm/uaccess.h> | 48 | #include <asm/uaccess.h> |
50 | #include <asm/prom.h> | ||
51 | #include <asm/irq_regs.h> | 49 | #include <asm/irq_regs.h> |
52 | 50 | ||
53 | DEFINE_SPINLOCK(mostek_lock); | 51 | DEFINE_SPINLOCK(mostek_lock); |
diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386 index b01dfb00e5f8..67290117d909 100644 --- a/arch/um/Makefile-i386 +++ b/arch/um/Makefile-i386 | |||
@@ -22,8 +22,8 @@ export LDFLAGS HOSTCFLAGS HOSTLDFLAGS UML_OBJCOPYFLAGS | |||
22 | endif | 22 | endif |
23 | endif | 23 | endif |
24 | 24 | ||
25 | CFLAGS += -DCONFIG_X86_32 | 25 | KBUILD_CFLAGS += -DCONFIG_X86_32 |
26 | AFLAGS += -DCONFIG_X86_32 | 26 | KBUILD_AFLAGS += -DCONFIG_X86_32 |
27 | CONFIG_X86_32 := y | 27 | CONFIG_X86_32 := y |
28 | export CONFIG_X86_32 | 28 | export CONFIG_X86_32 |
29 | 29 | ||
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c index 9abbdf7562c5..3b20613325dc 100644 --- a/arch/x86/kernel/cpu/mtrr/main.c +++ b/arch/x86/kernel/cpu/mtrr/main.c | |||
@@ -139,13 +139,12 @@ struct set_mtrr_data { | |||
139 | mtrr_type smp_type; | 139 | mtrr_type smp_type; |
140 | }; | 140 | }; |
141 | 141 | ||
142 | #ifdef CONFIG_SMP | ||
143 | |||
144 | static void ipi_handler(void *info) | 142 | static void ipi_handler(void *info) |
145 | /* [SUMMARY] Synchronisation handler. Executed by "other" CPUs. | 143 | /* [SUMMARY] Synchronisation handler. Executed by "other" CPUs. |
146 | [RETURNS] Nothing. | 144 | [RETURNS] Nothing. |
147 | */ | 145 | */ |
148 | { | 146 | { |
147 | #ifdef CONFIG_SMP | ||
149 | struct set_mtrr_data *data = info; | 148 | struct set_mtrr_data *data = info; |
150 | unsigned long flags; | 149 | unsigned long flags; |
151 | 150 | ||
@@ -168,9 +167,8 @@ static void ipi_handler(void *info) | |||
168 | 167 | ||
169 | atomic_dec(&data->count); | 168 | atomic_dec(&data->count); |
170 | local_irq_restore(flags); | 169 | local_irq_restore(flags); |
171 | } | ||
172 | |||
173 | #endif | 170 | #endif |
171 | } | ||
174 | 172 | ||
175 | static inline int types_compatible(mtrr_type type1, mtrr_type type2) { | 173 | static inline int types_compatible(mtrr_type type1, mtrr_type type2) { |
176 | return type1 == MTRR_TYPE_UNCACHABLE || | 174 | return type1 == MTRR_TYPE_UNCACHABLE || |
diff --git a/arch/x86/kernel/nmi_32.c b/arch/x86/kernel/nmi_32.c index f803ed0ed1c4..600fd404e440 100644 --- a/arch/x86/kernel/nmi_32.c +++ b/arch/x86/kernel/nmi_32.c | |||
@@ -51,13 +51,13 @@ static int unknown_nmi_panic_callback(struct pt_regs *regs, int cpu); | |||
51 | 51 | ||
52 | static int endflag __initdata = 0; | 52 | static int endflag __initdata = 0; |
53 | 53 | ||
54 | #ifdef CONFIG_SMP | ||
55 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when | 54 | /* The performance counters used by NMI_LOCAL_APIC don't trigger when |
56 | * the CPU is idle. To make sure the NMI watchdog really ticks on all | 55 | * the CPU is idle. To make sure the NMI watchdog really ticks on all |
57 | * CPUs during the test make them busy. | 56 | * CPUs during the test make them busy. |
58 | */ | 57 | */ |
59 | static __init void nmi_cpu_busy(void *data) | 58 | static __init void nmi_cpu_busy(void *data) |
60 | { | 59 | { |
60 | #ifdef CONFIG_SMP | ||
61 | local_irq_enable_in_hardirq(); | 61 | local_irq_enable_in_hardirq(); |
62 | /* Intentionally don't use cpu_relax here. This is | 62 | /* Intentionally don't use cpu_relax here. This is |
63 | to make sure that the performance counter really ticks, | 63 | to make sure that the performance counter really ticks, |
@@ -67,8 +67,8 @@ static __init void nmi_cpu_busy(void *data) | |||
67 | care if they get somewhat less cycles. */ | 67 | care if they get somewhat less cycles. */ |
68 | while (endflag == 0) | 68 | while (endflag == 0) |
69 | mb(); | 69 | mb(); |
70 | } | ||
71 | #endif | 70 | #endif |
71 | } | ||
72 | 72 | ||
73 | static int __init check_nmi_watchdog(void) | 73 | static int __init check_nmi_watchdog(void) |
74 | { | 74 | { |