aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/mach-netx/xc.c6
-rw-r--r--arch/arm/mach-pxa/time.c23
-rw-r--r--arch/arm/plat-omap/fb.c2
-rw-r--r--arch/frv/mm/init.c2
-rw-r--r--arch/powerpc/boot/dts/walnut.dts4
-rwxr-xr-xarch/powerpc/boot/wrapper43
-rw-r--r--arch/powerpc/configs/pasemi_defconfig308
-rw-r--r--arch/powerpc/configs/ppc64_defconfig247
-rw-r--r--arch/powerpc/kernel/cputable.c36
-rw-r--r--arch/powerpc/kernel/entry_32.S23
-rw-r--r--arch/powerpc/kernel/head_64.S2
-rw-r--r--arch/powerpc/kernel/idle.c2
-rw-r--r--arch/powerpc/kernel/misc_32.S32
-rw-r--r--arch/powerpc/kernel/process.c2
-rw-r--r--arch/powerpc/kernel/prom.c12
-rw-r--r--arch/powerpc/kernel/prom_init.c2
-rw-r--r--arch/powerpc/kernel/setup_64.c19
-rw-r--r--arch/powerpc/kernel/swsusp_32.S2
-rw-r--r--arch/powerpc/kernel/time.c35
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S3
-rw-r--r--arch/powerpc/mm/40x_mmu.c17
-rw-r--r--arch/powerpc/mm/44x_mmu.c1
-rw-r--r--arch/powerpc/mm/fault.c2
-rw-r--r--arch/powerpc/mm/hash_low_64.S5
-rw-r--r--arch/powerpc/mm/hash_utils_64.c7
-rw-r--r--arch/powerpc/mm/mmu_decl.h4
-rw-r--r--arch/powerpc/mm/slb.c35
-rw-r--r--arch/powerpc/platforms/cell/interrupt.c24
-rw-r--r--arch/powerpc/platforms/cell/smp.c1
-rw-r--r--arch/powerpc/platforms/celleb/setup.c1
-rw-r--r--arch/powerpc/platforms/iseries/irq.h4
-rw-r--r--arch/powerpc/platforms/iseries/setup.c4
-rw-r--r--arch/powerpc/platforms/iseries/vio.c10
-rw-r--r--arch/powerpc/platforms/pseries/eeh.c13
-rw-r--r--arch/powerpc/platforms/pseries/eeh_driver.c18
-rw-r--r--arch/powerpc/platforms/pseries/firmware.c1
-rw-r--r--arch/powerpc/platforms/pseries/msi.c6
-rw-r--r--arch/powerpc/sysdev/i8259.c1
-rw-r--r--arch/powerpc/sysdev/mv64x60_pci.c10
-rw-r--r--arch/ppc/kernel/entry.S23
-rw-r--r--arch/ppc/kernel/misc.S31
-rw-r--r--arch/ppc/mm/44x_mmu.c1
-rw-r--r--arch/ppc/mm/4xx_mmu.c17
-rw-r--r--arch/ppc/mm/fault.c2
-rw-r--r--arch/ppc/mm/mmu_decl.h4
-rw-r--r--arch/ppc/platforms/4xx/ebony.c2
-rw-r--r--arch/ppc/platforms/4xx/luan.c7
-rw-r--r--arch/ppc/platforms/4xx/ocotea.c2
-rw-r--r--arch/ppc/platforms/4xx/taishan.c2
-rw-r--r--arch/ppc/syslib/i8259.c1
-rw-r--r--arch/ppc/syslib/m8260_setup.c13
-rw-r--r--arch/s390/kernel/time.c4
-rw-r--r--arch/s390/kernel/vtime.c8
-rw-r--r--arch/sh/Kconfig10
-rw-r--r--arch/sh/Kconfig.debug3
-rw-r--r--arch/sh/boards/renesas/hs7751rvoip/irq.c1
-rw-r--r--arch/sh/boards/renesas/hs7751rvoip/setup.c19
-rw-r--r--arch/sh/boards/renesas/sh7710voipgw/setup.c1
-rw-r--r--arch/sh/boards/se/7206/irq.c1
-rw-r--r--arch/sh/boards/se/770x/setup.c1
-rw-r--r--arch/sh/boards/se/7722/setup.c8
-rw-r--r--arch/sh/boards/se/7780/setup.c8
-rw-r--r--arch/sh/boards/snapgear/Makefile3
-rw-r--r--arch/sh/boards/snapgear/rtc.c309
-rw-r--r--arch/sh/boards/snapgear/setup.c16
-rw-r--r--arch/sh/boot/Makefile2
-rw-r--r--arch/sh/cchips/hd6446x/Makefile2
-rw-r--r--arch/sh/cchips/voyagergx/Makefile1
-rw-r--r--arch/sh/drivers/pci/Makefile1
-rw-r--r--arch/sh/drivers/pci/pci-st40.c488
-rw-r--r--arch/sh/drivers/pci/pci-st40.h136
-rw-r--r--arch/sh/kernel/Makefile3
-rw-r--r--arch/sh/kernel/cpu/sh3/ex.S2
-rw-r--r--arch/sh/kernel/cpu/sh4/probe.c8
-rw-r--r--arch/sh/kernel/irq.c1
-rw-r--r--arch/sh/kernel/kgdb_stub.c9
-rw-r--r--arch/sh/kernel/setup.c1
-rw-r--r--arch/sh/kernel/sh_ksyms.c2
-rw-r--r--arch/sh/lib/Makefile2
-rw-r--r--arch/sh/mm/Kconfig21
-rw-r--r--arch/sh/mm/Makefile2
-rw-r--r--arch/sh/mm/clear_page.S45
-rw-r--r--arch/sh/mm/copy_page.S61
-rw-r--r--arch/sh/mm/pg-sh4.c75
-rw-r--r--arch/sh/oprofile/Makefile1
-rw-r--r--arch/sh64/kernel/process.c10
-rw-r--r--arch/sh64/kernel/traps.c5
-rw-r--r--arch/sparc/kernel/irq.c1
-rw-r--r--arch/sparc64/kernel/ds.c1
-rw-r--r--arch/sparc64/kernel/module.c1
-rw-r--r--arch/sparc64/kernel/sys_sparc32.c1
-rw-r--r--arch/sparc64/kernel/sys_sunos32.c1
-rw-r--r--arch/sparc64/kernel/time.c2
-rw-r--r--arch/um/Makefile-i3864
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c6
-rw-r--r--arch/x86/kernel/nmi_32.c4
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
1041source "drivers/hwmon/Kconfig" 1041source "drivers/hwmon/Kconfig"
1042 1042
1043source "drivers/watchdog/Kconfig"
1044
1043source "drivers/ssb/Kconfig" 1045source "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)
114static int 115static int
115pxa_osmr0_set_next_event(unsigned long delta, struct clock_event_device *dev) 116pxa_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
127static void 130static 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 */
174void omapfb_reserve_sdram(void) 174void __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 */
200void __init free_initmem(void) 200void 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
25set -e
26
27# Allow for verbose output
28if [ "$V" = 1 ]; then
29 set -x
30fi
31
24# defaults 32# defaults
25kernel= 33kernel=
26ofile=zImage 34ofile=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"
115fi 123fi
116 124
117if [ -z "$kernel" ]; then 125if [ -z "$kernel" ]; then
@@ -149,7 +157,6 @@ cuboot*)
149ps3) 157ps3)
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
234if [ -n "$binary" ]; then 241if [ -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"
237fi 244fi
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 ;;
248cuboot*) 255cuboot*)
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 ;;
253treeboot*) 260treeboot*)
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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -10,6 +10,7 @@ CONFIG_PPC64=y
10# 10#
11CONFIG_POWER4_ONLY=y 11CONFIG_POWER4_ONLY=y
12CONFIG_POWER4=y 12CONFIG_POWER4=y
13# CONFIG_TUNE_CELL is not set
13CONFIG_PPC_FPU=y 14CONFIG_PPC_FPU=y
14CONFIG_ALTIVEC=y 15CONFIG_ALTIVEC=y
15CONFIG_PPC_STD_MMU=y 16CONFIG_PPC_STD_MMU=y
@@ -18,8 +19,13 @@ CONFIG_PPC_MM_SLICES=y
18CONFIG_SMP=y 19CONFIG_SMP=y
19CONFIG_NR_CPUS=2 20CONFIG_NR_CPUS=2
20CONFIG_64BIT=y 21CONFIG_64BIT=y
22CONFIG_WORD_SIZE=64
21CONFIG_PPC_MERGE=y 23CONFIG_PPC_MERGE=y
22CONFIG_MMU=y 24CONFIG_MMU=y
25CONFIG_GENERIC_CMOS_UPDATE=y
26CONFIG_GENERIC_TIME=y
27CONFIG_GENERIC_TIME_VSYSCALL=y
28CONFIG_GENERIC_CLOCKEVENTS=y
23CONFIG_GENERIC_HARDIRQS=y 29CONFIG_GENERIC_HARDIRQS=y
24CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
25CONFIG_RWSEM_XCHGADD_ALGORITHM=y 31CONFIG_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
67CONFIG_LOG_BUF_SHIFT=17 73CONFIG_LOG_BUF_SHIFT=17
68# CONFIG_CPUSETS is not set 74# CONFIG_CGROUPS is not set
75CONFIG_FAIR_GROUP_SCHED=y
76CONFIG_FAIR_USER_SCHED=y
77# CONFIG_FAIR_CGROUP_SCHED is not set
69CONFIG_SYSFS_DEPRECATED=y 78CONFIG_SYSFS_DEPRECATED=y
70# CONFIG_RELAY is not set 79# CONFIG_RELAY is not set
71CONFIG_BLK_DEV_INITRD=y 80CONFIG_BLK_DEV_INITRD=y
@@ -86,7 +95,6 @@ CONFIG_FUTEX=y
86CONFIG_ANON_INODES=y 95CONFIG_ANON_INODES=y
87CONFIG_EPOLL=y 96CONFIG_EPOLL=y
88CONFIG_SIGNALFD=y 97CONFIG_SIGNALFD=y
89CONFIG_TIMERFD=y
90CONFIG_EVENTFD=y 98CONFIG_EVENTFD=y
91CONFIG_SHMEM=y 99CONFIG_SHMEM=y
92CONFIG_VM_EVENT_COUNTERS=y 100CONFIG_VM_EVENT_COUNTERS=y
@@ -107,14 +115,15 @@ CONFIG_STOP_MACHINE=y
107CONFIG_BLOCK=y 115CONFIG_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
118CONFIG_BLOCK_COMPAT=y
110 119
111# 120#
112# IO Schedulers 121# IO Schedulers
113# 122#
114CONFIG_IOSCHED_NOOP=y 123CONFIG_IOSCHED_NOOP=y
115CONFIG_IOSCHED_AS=y 124CONFIG_IOSCHED_AS=y
116# CONFIG_IOSCHED_DEADLINE is not set 125CONFIG_IOSCHED_DEADLINE=y
117# CONFIG_IOSCHED_CFQ is not set 126CONFIG_IOSCHED_CFQ=y
118CONFIG_DEFAULT_AS=y 127CONFIG_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#
127CONFIG_PPC_MULTIPLATFORM=y 136CONFIG_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#
143CONFIG_PPC_PASEMI_IOMMU=y 151CONFIG_PPC_PASEMI_IOMMU=y
152# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
144CONFIG_PPC_PASEMI_MDIO=y 153CONFIG_PPC_PASEMI_MDIO=y
145CONFIG_ELECTRA_IDE=y 154CONFIG_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
168CONFIG_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 173CONFIG_CPU_FREQ=y
174CONFIG_CPU_FREQ_TABLE=y
175CONFIG_CPU_FREQ_DEBUG=y
176CONFIG_CPU_FREQ_STAT=y
177# CONFIG_CPU_FREQ_STAT_DETAILS is not set
178CONFIG_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
182CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
183CONFIG_CPU_FREQ_GOV_POWERSAVE=y
184CONFIG_CPU_FREQ_GOV_USERSPACE=y
185CONFIG_CPU_FREQ_GOV_ONDEMAND=y
186# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
187
188#
189# CPU Frequency drivers
190#
191CONFIG_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#
170CONFIG_HZ_100=y 198CONFIG_TICK_ONESHOT=y
199CONFIG_NO_HZ=y
200CONFIG_HIGH_RES_TIMERS=y
201CONFIG_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 205CONFIG_HZ_1000=y
174CONFIG_HZ=100 206CONFIG_HZ=1000
175CONFIG_PREEMPT_NONE=y 207CONFIG_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
178CONFIG_PREEMPT_BKL=y 210# CONFIG_PREEMPT_BKL is not set
179CONFIG_BINFMT_ELF=y 211CONFIG_BINFMT_ELF=y
180# CONFIG_BINFMT_MISC is not set 212# CONFIG_BINFMT_MISC is not set
181CONFIG_FORCE_MAX_ZONEORDER=13 213CONFIG_FORCE_MAX_ZONEORDER=9
182CONFIG_IOMMU_VMERGE=y 214CONFIG_IOMMU_VMERGE=y
183CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 215CONFIG_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
196CONFIG_FLATMEM=y 228CONFIG_FLATMEM=y
197CONFIG_FLAT_NODE_MEM_MAP=y 229CONFIG_FLAT_NODE_MEM_MAP=y
198# CONFIG_SPARSEMEM_STATIC is not set 230# CONFIG_SPARSEMEM_STATIC is not set
231CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
200CONFIG_RESOURCES_64BIT=y 233CONFIG_RESOURCES_64BIT=y
201CONFIG_ZONE_DMA_FLAG=1 234CONFIG_ZONE_DMA_FLAG=1
202CONFIG_BOUNCE=y 235CONFIG_BOUNCE=y
203# CONFIG_PPC_HAS_HASH_64K is not set 236CONFIG_PPC_HAS_HASH_64K=y
204# CONFIG_PPC_64K_PAGES is not set 237CONFIG_PPC_64K_PAGES=y
205# CONFIG_SCHED_SMT is not set 238# CONFIG_SCHED_SMT is not set
206CONFIG_PROC_DEVICETREE=y 239CONFIG_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
223CONFIG_ARCH_SUPPORTS_MSI=y 256CONFIG_ARCH_SUPPORTS_MSI=y
224# CONFIG_PCI_MSI is not set 257# CONFIG_PCI_MSI is not set
258CONFIG_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#
230CONFIG_PCCARD=y 260CONFIG_PCCARD=y
231CONFIG_PCMCIA_DEBUG=y 261CONFIG_PCMCIA_DEBUG=y
232CONFIG_PCMCIA=y 262CONFIG_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
244CONFIG_KERNEL_START=0xc000000000000000 275CONFIG_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
256CONFIG_UNIX=y 287CONFIG_UNIX=y
257CONFIG_XFRM=y 288CONFIG_XFRM=y
258# CONFIG_XFRM_USER is not set 289CONFIG_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
261CONFIG_NET_KEY=y 292CONFIG_NET_KEY=y
@@ -281,6 +312,7 @@ CONFIG_INET_TUNNEL=y
281CONFIG_INET_XFRM_MODE_TRANSPORT=y 312CONFIG_INET_XFRM_MODE_TRANSPORT=y
282CONFIG_INET_XFRM_MODE_TUNNEL=y 313CONFIG_INET_XFRM_MODE_TUNNEL=y
283CONFIG_INET_XFRM_MODE_BEET=y 314CONFIG_INET_XFRM_MODE_BEET=y
315CONFIG_INET_LRO=y
284CONFIG_INET_DIAG=y 316CONFIG_INET_DIAG=y
285CONFIG_INET_TCP_DIAG=y 317CONFIG_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#
369CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
341CONFIG_STANDALONE=y 370CONFIG_STANDALONE=y
342CONFIG_PREVENT_FIRMWARE_BUILD=y 371CONFIG_PREVENT_FIRMWARE_BUILD=y
343CONFIG_FW_LOADER=y 372CONFIG_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 436CONFIG_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
440CONFIG_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
532CONFIG_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
501CONFIG_SCSI_LOWLEVEL=y 573CONFIG_SCSI_LOWLEVEL=y
502# CONFIG_ISCSI_TCP is not set 574# CONFIG_ISCSI_TCP is not set
503CONFIG_BLK_DEV_3W_XXXX_RAID=y 575# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
504CONFIG_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 652CONFIG_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
590CONFIG_PATA_PLATFORM=y 663CONFIG_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
605CONFIG_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#
615CONFIG_IEEE1394_PCILYNX=y
616CONFIG_IEEE1394_OHCI1394=y
617
618#
619# Protocols
620#
621# CONFIG_IEEE1394_VIDEO1394 is not set
622CONFIG_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
626CONFIG_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
629CONFIG_NETDEVICES=y 674CONFIG_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
637CONFIG_PHYLIB=y 684CONFIG_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
652CONFIG_NET_ETHERNET=y 700CONFIG_NET_ETHERNET=y
653CONFIG_MII=y 701CONFIG_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
660CONFIG_NET_PCI=y 712CONFIG_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
682CONFIG_E1000=y 733CONFIG_E1000=y
683CONFIG_E1000_NAPI=y 734CONFIG_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
693CONFIG_TIGON3=y 746CONFIG_TIGON3=y
694# CONFIG_BNX2 is not set 747# CONFIG_BNX2 is not set
@@ -697,12 +750,15 @@ CONFIG_TIGON3=y
697CONFIG_NETDEV_10000=y 750CONFIG_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
704CONFIG_PASEMI_MAC=y 759CONFIG_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
749CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 805CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
750CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 806CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
751CONFIG_INPUT_JOYDEV=y 807CONFIG_INPUT_JOYDEV=y
752# CONFIG_INPUT_TSDEV is not set
753CONFIG_INPUT_EVDEV=y 808CONFIG_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
810CONFIG_LEGACY_PTYS=y 865CONFIG_LEGACY_PTYS=y
811CONFIG_LEGACY_PTY_COUNT=4 866CONFIG_LEGACY_PTY_COUNT=4
812# CONFIG_IPMI_HANDLER is not set 867# CONFIG_IPMI_HANDLER is not set
813# CONFIG_WATCHDOG is not set
814CONFIG_HW_RANDOM=y 868CONFIG_HW_RANDOM=y
815CONFIG_HW_RANDOM_PASEMI=y 869CONFIG_HW_RANDOM_PASEMI=y
816CONFIG_GEN_RTC=y 870CONFIG_GEN_RTC=y
817CONFIG_GEN_RTC_X=y 871CONFIG_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
897CONFIG_HWMON=y 949CONFIG_HWMON=y
898CONFIG_HWMON_VID=y 950CONFIG_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#
1004CONFIG_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#
966CONFIG_BACKLIGHT_LCD_SUPPORT=y 1023# CONFIG_AGP is not set
967CONFIG_LCD_CLASS_DEVICE=m 1024CONFIG_DRM=y
968CONFIG_BACKLIGHT_CLASS_DEVICE=y 1025# CONFIG_DRM_TDFX is not set
969 1026# CONFIG_DRM_R128 is not set
970# 1027CONFIG_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
974CONFIG_VGASTATE=y 1031CONFIG_VGASTATE=y
975# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1032# CONFIG_VIDEO_OUTPUT_CONTROL is not set
976CONFIG_FB=y 1033CONFIG_FB=y
@@ -979,6 +1036,7 @@ CONFIG_FB_DDC=y
979CONFIG_FB_CFB_FILLRECT=y 1036CONFIG_FB_CFB_FILLRECT=y
980CONFIG_FB_CFB_COPYAREA=y 1037CONFIG_FB_CFB_COPYAREA=y
981CONFIG_FB_CFB_IMAGEBLIT=y 1038CONFIG_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
1087CONFIG_BACKLIGHT_LCD_SUPPORT=y
1088# CONFIG_LCD_CLASS_DEVICE is not set
1089CONFIG_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
1178CONFIG_HID_SUPPORT=y 1245CONFIG_HID_SUPPORT=y
1179CONFIG_HID=y 1246CONFIG_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#
1330CONFIG_RTC_DRV_DS1307=y 1398CONFIG_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
1390CONFIG_JBD=y 1446CONFIG_JBD=y
1391# CONFIG_JBD_DEBUG is not set
1392CONFIG_FS_MBCACHE=y 1447CONFIG_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
1437CONFIG_HUGETLBFS=y 1492CONFIG_HUGETLBFS=y
1438CONFIG_HUGETLB_PAGE=y 1493CONFIG_HUGETLB_PAGE=y
1439CONFIG_RAMFS=y
1440CONFIG_CONFIGFS_FS=y 1494CONFIG_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 1506CONFIG_JFFS2_FS=y
1507CONFIG_JFFS2_FS_DEBUG=0
1508CONFIG_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
1513CONFIG_JFFS2_ZLIB=y
1514# CONFIG_JFFS2_LZO is not set
1515CONFIG_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 1523CONFIG_NETWORK_FILESYSTEMS=y
1460#
1461# Network File Systems
1462#
1463CONFIG_NFS_FS=y 1524CONFIG_NFS_FS=y
1464CONFIG_NFS_V3=y 1525CONFIG_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 1529CONFIG_NFSD=y
1530CONFIG_NFSD_V3=y
1531# CONFIG_NFSD_V3_ACL is not set
1532CONFIG_NFSD_V4=y
1533CONFIG_NFSD_TCP=y
1469CONFIG_ROOT_NFS=y 1534CONFIG_ROOT_NFS=y
1470CONFIG_LOCKD=y 1535CONFIG_LOCKD=y
1471CONFIG_LOCKD_V4=y 1536CONFIG_LOCKD_V4=y
1537CONFIG_EXPORTFS=y
1472CONFIG_NFS_COMMON=y 1538CONFIG_NFS_COMMON=y
1473CONFIG_SUNRPC=y 1539CONFIG_SUNRPC=y
1540CONFIG_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 1542CONFIG_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#
1508CONFIG_NLS=y 1571CONFIG_NLS=y
1509CONFIG_NLS_DEFAULT="iso8859-1" 1572CONFIG_NLS_DEFAULT="iso8859-1"
1510CONFIG_NLS_CODEPAGE_437=y 1573CONFIG_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
1562CONFIG_CRC32=y 1621CONFIG_CRC32=y
1563# CONFIG_CRC7 is not set 1622# CONFIG_CRC7 is not set
1564# CONFIG_LIBCRC32C is not set 1623CONFIG_LIBCRC32C=m
1624CONFIG_ZLIB_INFLATE=y
1625CONFIG_ZLIB_DEFLATE=y
1565CONFIG_PLIST=y 1626CONFIG_PLIST=y
1566CONFIG_HAS_IOMEM=y 1627CONFIG_HAS_IOMEM=y
1567CONFIG_HAS_IOPORT=y 1628CONFIG_HAS_IOPORT=y
1568CONFIG_HAS_DMA=y 1629CONFIG_HAS_DMA=y
1569 1630CONFIG_INSTRUMENTATION=y
1570#
1571# Instrumentation Support
1572#
1573CONFIG_PROFILING=y 1631CONFIG_PROFILING=y
1574CONFIG_OPROFILE=y 1632CONFIG_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
1640CONFIG_ENABLE_WARN_DEPRECATED=y
1581CONFIG_ENABLE_MUST_CHECK=y 1641CONFIG_ENABLE_MUST_CHECK=y
1582CONFIG_MAGIC_SYSRQ=y 1642CONFIG_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
1586CONFIG_DEBUG_KERNEL=y 1646CONFIG_DEBUG_KERNEL=y
1587# CONFIG_DEBUG_SHIRQ is not set 1647# CONFIG_DEBUG_SHIRQ is not set
1588CONFIG_DETECT_SOFTLOCKUP=y 1648CONFIG_DETECT_SOFTLOCKUP=y
1589CONFIG_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
1623CONFIG_CRYPTO=y 1687CONFIG_CRYPTO=y
1624CONFIG_CRYPTO_ALGAPI=y 1688CONFIG_CRYPTO_ALGAPI=y
1625CONFIG_CRYPTO_BLKCIPHER=y 1689CONFIG_CRYPTO_BLKCIPHER=y
@@ -1628,34 +1692,38 @@ CONFIG_CRYPTO_MANAGER=y
1628CONFIG_CRYPTO_HMAC=y 1692CONFIG_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 1695CONFIG_CRYPTO_MD4=y
1632CONFIG_CRYPTO_MD5=y 1696CONFIG_CRYPTO_MD5=y
1633CONFIG_CRYPTO_SHA1=y 1697CONFIG_CRYPTO_SHA1=y
1634# CONFIG_CRYPTO_SHA256 is not set 1698CONFIG_CRYPTO_SHA256=y
1635# CONFIG_CRYPTO_SHA512 is not set 1699CONFIG_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
1639CONFIG_CRYPTO_ECB=m 1703# CONFIG_CRYPTO_ECB is not set
1640CONFIG_CRYPTO_CBC=y 1704CONFIG_CRYPTO_CBC=y
1641CONFIG_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
1644CONFIG_CRYPTO_DES=y 1709CONFIG_CRYPTO_DES=y
1645# CONFIG_CRYPTO_FCRYPT is not set 1710# CONFIG_CRYPTO_FCRYPT is not set
1646# CONFIG_CRYPTO_BLOWFISH is not set 1711CONFIG_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 1714CONFIG_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
1728CONFIG_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#
6CONFIG_PPC64=y 6CONFIG_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
12CONFIG_POWER3=y 12CONFIG_POWER3=y
13CONFIG_POWER4=y 13CONFIG_POWER4=y
14# CONFIG_TUNE_CELL is not set
14CONFIG_PPC_FPU=y 15CONFIG_PPC_FPU=y
15CONFIG_ALTIVEC=y 16CONFIG_ALTIVEC=y
16CONFIG_PPC_STD_MMU=y 17CONFIG_PPC_STD_MMU=y
@@ -19,8 +20,13 @@ CONFIG_VIRT_CPU_ACCOUNTING=y
19CONFIG_SMP=y 20CONFIG_SMP=y
20CONFIG_NR_CPUS=32 21CONFIG_NR_CPUS=32
21CONFIG_64BIT=y 22CONFIG_64BIT=y
23CONFIG_WORD_SIZE=64
22CONFIG_PPC_MERGE=y 24CONFIG_PPC_MERGE=y
23CONFIG_MMU=y 25CONFIG_MMU=y
26CONFIG_GENERIC_CMOS_UPDATE=y
27CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y
24CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
25CONFIG_IRQ_PER_CPU=y 31CONFIG_IRQ_PER_CPU=y
26CONFIG_RWSEM_XCHGADD_ALGORITHM=y 32CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -72,8 +78,15 @@ CONFIG_IKCONFIG=y
72CONFIG_IKCONFIG_PROC=y 78CONFIG_IKCONFIG_PROC=y
73CONFIG_LOG_BUF_SHIFT=17 79CONFIG_LOG_BUF_SHIFT=17
74CONFIG_CGROUPS=y 80CONFIG_CGROUPS=y
81# CONFIG_CGROUP_DEBUG is not set
82# CONFIG_CGROUP_NS is not set
83# CONFIG_CGROUP_CPUACCT is not set
75CONFIG_CPUSETS=y 84CONFIG_CPUSETS=y
85CONFIG_FAIR_GROUP_SCHED=y
86CONFIG_FAIR_USER_SCHED=y
87# CONFIG_FAIR_CGROUP_SCHED is not set
76CONFIG_SYSFS_DEPRECATED=y 88CONFIG_SYSFS_DEPRECATED=y
89CONFIG_PROC_PID_CPUSET=y
77CONFIG_RELAY=y 90CONFIG_RELAY=y
78CONFIG_BLK_DEV_INITRD=y 91CONFIG_BLK_DEV_INITRD=y
79CONFIG_INITRAMFS_SOURCE="" 92CONFIG_INITRAMFS_SOURCE=""
@@ -93,7 +106,6 @@ CONFIG_FUTEX=y
93CONFIG_ANON_INODES=y 106CONFIG_ANON_INODES=y
94CONFIG_EPOLL=y 107CONFIG_EPOLL=y
95CONFIG_SIGNALFD=y 108CONFIG_SIGNALFD=y
96CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 109CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 110CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
@@ -114,6 +126,7 @@ CONFIG_STOP_MACHINE=y
114CONFIG_BLOCK=y 126CONFIG_BLOCK=y
115CONFIG_BLK_DEV_IO_TRACE=y 127CONFIG_BLK_DEV_IO_TRACE=y
116CONFIG_BLK_DEV_BSG=y 128CONFIG_BLK_DEV_BSG=y
129CONFIG_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#
134CONFIG_PPC_MULTIPLATFORM=y 147CONFIG_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
155CONFIG_PPC_PMAC=y 167CONFIG_PPC_PMAC=y
156CONFIG_PPC_PMAC64=y 168CONFIG_PPC_PMAC64=y
157CONFIG_PPC_MAPLE=y 169CONFIG_PPC_MAPLE=y
158# CONFIG_PPC_PASEMI is not set 170CONFIG_PPC_PASEMI=y
171
172#
173# PA Semi PWRficient options
174#
175CONFIG_PPC_PASEMI_IOMMU=y
176# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
177CONFIG_PPC_PASEMI_MDIO=y
178CONFIG_ELECTRA_IDE=y
159CONFIG_PPC_CELLEB=y 179CONFIG_PPC_CELLEB=y
160# CONFIG_PPC_PS3 is not set 180# CONFIG_PPC_PS3 is not set
161CONFIG_PPC_CELL=y 181CONFIG_PPC_CELL=y
@@ -188,6 +208,7 @@ CONFIG_RTAS_FLASH=m
188CONFIG_PPC_PMI=m 208CONFIG_PPC_PMI=m
189CONFIG_MMIO_NVRAM=y 209CONFIG_MMIO_NVRAM=y
190CONFIG_MPIC_U3_HT_IRQS=y 210CONFIG_MPIC_U3_HT_IRQS=y
211CONFIG_MPIC_BROKEN_REGREAD=y
191CONFIG_IBMVIO=y 212CONFIG_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
202CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y 223CONFIG_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
204CONFIG_CPU_FREQ_GOV_PERFORMANCE=y 227CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
205CONFIG_CPU_FREQ_GOV_POWERSAVE=y 228CONFIG_CPU_FREQ_GOV_POWERSAVE=y
206CONFIG_CPU_FREQ_GOV_USERSPACE=y 229CONFIG_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#
213CONFIG_CPU_FREQ_PMAC64=y 236CONFIG_CPU_FREQ_PMAC64=y
237CONFIG_PPC_PASEMI_CPUFREQ=y
214# CONFIG_CPM2 is not set 238# CONFIG_CPM2 is not set
215CONFIG_AXON_RAM=m 239CONFIG_AXON_RAM=m
216# CONFIG_FSL_ULI1575 is not set 240# CONFIG_FSL_ULI1575 is not set
@@ -254,6 +278,8 @@ CONFIG_SPARSEMEM=y
254CONFIG_HAVE_MEMORY_PRESENT=y 278CONFIG_HAVE_MEMORY_PRESENT=y
255# CONFIG_SPARSEMEM_STATIC is not set 279# CONFIG_SPARSEMEM_STATIC is not set
256CONFIG_SPARSEMEM_EXTREME=y 280CONFIG_SPARSEMEM_EXTREME=y
281CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
282CONFIG_SPARSEMEM_VMEMMAP=y
257CONFIG_MEMORY_HOTPLUG=y 283CONFIG_MEMORY_HOTPLUG=y
258CONFIG_MEMORY_HOTPLUG_SPARSE=y 284CONFIG_MEMORY_HOTPLUG_SPARSE=y
259CONFIG_SPLIT_PTLOCK_CPUS=4 285CONFIG_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
270CONFIG_SUSPEND_SMP_POSSIBLE=y 296CONFIG_SUSPEND_SMP_POSSIBLE=y
297CONFIG_HIBERNATION_SMP_POSSIBLE=y
271CONFIG_SECCOMP=y 298CONFIG_SECCOMP=y
272# CONFIG_WANT_DEVICE_TREE is not set 299# CONFIG_WANT_DEVICE_TREE is not set
273CONFIG_ISA_DMA_API=y 300CONFIG_ISA_DMA_API=y
@@ -284,12 +311,22 @@ CONFIG_PCI_SYSCALL=y
284# CONFIG_PCIEPORTBUS is not set 311# CONFIG_PCIEPORTBUS is not set
285CONFIG_ARCH_SUPPORTS_MSI=y 312CONFIG_ARCH_SUPPORTS_MSI=y
286CONFIG_PCI_MSI=y 313CONFIG_PCI_MSI=y
314CONFIG_PCI_LEGACY=y
287# CONFIG_PCI_DEBUG is not set 315# CONFIG_PCI_DEBUG is not set
316CONFIG_PCCARD=y
317# CONFIG_PCMCIA_DEBUG is not set
318CONFIG_PCMCIA=y
319CONFIG_PCMCIA_LOAD_CIS=y
320CONFIG_PCMCIA_IOCTL=y
321CONFIG_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
329CONFIG_ELECTRA_CF=y
293CONFIG_HOTPLUG_PCI=m 330CONFIG_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
319CONFIG_IP_MULTICAST=y 356CONFIG_IP_MULTICAST=y
320# CONFIG_IP_ADVANCED_ROUTER is not set 357# CONFIG_IP_ADVANCED_ROUTER is not set
321CONFIG_IP_FIB_HASH=y 358CONFIG_IP_FIB_HASH=y
322# CONFIG_IP_PNP is not set 359CONFIG_IP_PNP=y
360CONFIG_IP_PNP_DHCP=y
361CONFIG_IP_PNP_BOOTP=y
362# CONFIG_IP_PNP_RARP is not set
323CONFIG_NET_IPIP=y 363CONFIG_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
333CONFIG_INET_XFRM_MODE_TRANSPORT=y 373CONFIG_INET_XFRM_MODE_TRANSPORT=y
334CONFIG_INET_XFRM_MODE_TUNNEL=y 374CONFIG_INET_XFRM_MODE_TUNNEL=y
335CONFIG_INET_XFRM_MODE_BEET=y 375CONFIG_INET_XFRM_MODE_BEET=y
376# CONFIG_INET_LRO is not set
336CONFIG_INET_DIAG=y 377CONFIG_INET_DIAG=y
337CONFIG_INET_TCP_DIAG=y 378CONFIG_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
404CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 445CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
405CONFIG_NETFILTER_XT_MATCH_STRING=m 446CONFIG_NETFILTER_XT_MATCH_STRING=m
406CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 447CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
448# CONFIG_NETFILTER_XT_MATCH_TIME is not set
407CONFIG_NETFILTER_XT_MATCH_U32=m 449CONFIG_NETFILTER_XT_MATCH_U32=m
408CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m 450CONFIG_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
473CONFIG_NET_CLS_ROUTE=y 511CONFIG_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#
539CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
501CONFIG_STANDALONE=y 540CONFIG_STANDALONE=y
502CONFIG_PREVENT_FIRMWARE_BUILD=y 541CONFIG_PREVENT_FIRMWARE_BUILD=y
503CONFIG_FW_LOADER=y 542CONFIG_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
540CONFIG_BLK_DEV_IDEDISK=y 579CONFIG_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
542CONFIG_BLK_DEV_IDECD=y 583CONFIG_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#
552CONFIG_IDE_GENERIC=y 593CONFIG_IDE_GENERIC=y
594# CONFIG_BLK_DEV_PLATFORM is not set
595
596#
597# PCI IDE chipsets support
598#
553CONFIG_BLK_DEV_IDEPCI=y 599CONFIG_BLK_DEV_IDEPCI=y
554CONFIG_IDEPCI_SHARE_IRQ=y 600CONFIG_IDEPCI_SHARE_IRQ=y
555CONFIG_IDEPCI_PCIBUS_ORDER=y 601CONFIG_IDEPCI_PCIBUS_ORDER=y
@@ -557,8 +603,6 @@ CONFIG_IDEPCI_PCIBUS_ORDER=y
557CONFIG_BLK_DEV_GENERIC=y 603CONFIG_BLK_DEV_GENERIC=y
558# CONFIG_BLK_DEV_OPTI621 is not set 604# CONFIG_BLK_DEV_OPTI621 is not set
559CONFIG_BLK_DEV_IDEDMA_PCI=y 605CONFIG_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
564CONFIG_BLK_DEV_AMD74XX=y 608CONFIG_BLK_DEV_AMD74XX=y
@@ -590,7 +634,7 @@ CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
590CONFIG_BLK_DEV_IDEDMA_PMAC=y 634CONFIG_BLK_DEV_IDEDMA_PMAC=y
591# CONFIG_IDE_ARM is not set 635# CONFIG_IDE_ARM is not set
592CONFIG_BLK_DEV_IDEDMA=y 636CONFIG_BLK_DEV_IDEDMA=y
593# CONFIG_IDEDMA_IVB is not set 637CONFIG_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
631CONFIG_SCSI_ISCSI_ATTRS=m 675CONFIG_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
678CONFIG_SCSI_SRP_ATTRS=y
634CONFIG_SCSI_LOWLEVEL=y 679CONFIG_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
672CONFIG_SCSI_DEBUG=m 717CONFIG_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
674CONFIG_ATA=y 720CONFIG_ATA=y
675CONFIG_ATA_NONSTANDARD=y 721CONFIG_ATA_NONSTANDARD=y
676# CONFIG_SATA_AHCI is not set 722# CONFIG_SATA_AHCI is not set
677CONFIG_SATA_SVW=y 723CONFIG_SATA_SVW=y
678# CONFIG_ATA_PIIX is not set 724# CONFIG_ATA_PIIX is not set
679# CONFIG_SATA_MV is not set 725CONFIG_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 732CONFIG_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
765CONFIG_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
727CONFIG_PATA_WINBOND=y 775CONFIG_PATA_WINBOND=y
776CONFIG_PATA_PLATFORM=y
728CONFIG_PATA_SCC=y 777CONFIG_PATA_SCC=y
729CONFIG_MD=y 778CONFIG_MD=y
730CONFIG_BLK_DEV_MD=y 779CONFIG_BLK_DEV_MD=y
@@ -745,15 +794,10 @@ CONFIG_DM_ZERO=m
745CONFIG_DM_MULTIPATH=m 794CONFIG_DM_MULTIPATH=m
746CONFIG_DM_MULTIPATH_EMC=m 795CONFIG_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
802CONFIG_TUN=m 846CONFIG_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
804CONFIG_PHYLIB=m 850CONFIG_PHYLIB=y
805 851
806# 852#
807# MII PHY device drivers 853# MII PHY device drivers
808# 854#
809CONFIG_MARVELL_PHY=m 855CONFIG_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
818CONFIG_FIXED_PHY=m 864CONFIG_FIXED_PHY=m
819CONFIG_FIXED_MII_10_FDX=y 865CONFIG_FIXED_MII_10_FDX=y
820CONFIG_FIXED_MII_100_FDX=y 866CONFIG_FIXED_MII_100_FDX=y
867# CONFIG_FIXED_MII_1000_FDX is not set
868CONFIG_FIXED_MII_AMNT=1
869# CONFIG_MDIO_BITBANG is not set
821CONFIG_NET_ETHERNET=y 870CONFIG_NET_ETHERNET=y
822CONFIG_MII=y 871CONFIG_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
831CONFIG_IBMVETH=m 880CONFIG_IBMVETH=m
881# CONFIG_IBM_NEW_EMAC is not set
882CONFIG_IBM_NEW_EMAC_ZMII=y
883CONFIG_IBM_NEW_EMAC_RGMII=y
884CONFIG_IBM_NEW_EMAC_TAH=y
885CONFIG_IBM_NEW_EMAC_EMAC4=y
832CONFIG_NET_PCI=y 886CONFIG_NET_PCI=y
833CONFIG_PCNET32=y 887CONFIG_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
841CONFIG_E100=y 894CONFIG_E100=y
842# CONFIG_FEALNX is not set 895# CONFIG_FEALNX is not set
@@ -856,6 +909,7 @@ CONFIG_ACENIC_OMIT_TIGON_I=y
856CONFIG_E1000=y 909CONFIG_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
867CONFIG_TIGON3=y 922CONFIG_TIGON3=y
868# CONFIG_BNX2 is not set 923# CONFIG_BNX2 is not set
@@ -872,13 +927,16 @@ CONFIG_SPIDER_NET=m
872CONFIG_NETDEV_10000=y 927CONFIG_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
875CONFIG_IXGB=m 931CONFIG_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
880CONFIG_PASEMI_MAC=m 936# CONFIG_NIU is not set
937CONFIG_PASEMI_MAC=y
881# CONFIG_MLX4_CORE is not set 938# CONFIG_MLX4_CORE is not set
939# CONFIG_TEHUTI is not set
882CONFIG_TR=y 940CONFIG_TR=y
883CONFIG_IBMOL=y 941CONFIG_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
903CONFIG_ISERIES_VETH=m 962CONFIG_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
920CONFIG_NETCONSOLE=y 979CONFIG_NETCONSOLE=y
980# CONFIG_NETCONSOLE_DYNAMIC is not set
921CONFIG_NETPOLL=y 981CONFIG_NETPOLL=y
922CONFIG_NETPOLL_TRAP=y 982CONFIG_NETPOLL_TRAP=y
923CONFIG_NET_POLL_CONTROLLER=y 983CONFIG_NET_POLL_CONTROLLER=y
@@ -939,7 +999,6 @@ CONFIG_INPUT_MOUSEDEV=y
939CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 999CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
940CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 1000CONFIG_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
943CONFIG_INPUT_EVDEV=m 1002CONFIG_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
1002CONFIG_SERIAL_8250=y 1061CONFIG_SERIAL_8250=y
1003CONFIG_SERIAL_8250_CONSOLE=y 1062CONFIG_SERIAL_8250_CONSOLE=y
1004CONFIG_SERIAL_8250_PCI=y 1063CONFIG_SERIAL_8250_PCI=y
1064# CONFIG_SERIAL_8250_CS is not set
1005CONFIG_SERIAL_8250_NR_UARTS=4 1065CONFIG_SERIAL_8250_NR_UARTS=4
1006CONFIG_SERIAL_8250_RUNTIME_UARTS=4 1066CONFIG_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
1029CONFIG_HVC_BEAT=y 1089CONFIG_HVC_BEAT=y
1030CONFIG_HVCS=m 1090CONFIG_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
1034CONFIG_GEN_RTC=y 1093CONFIG_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
1040CONFIG_RAW_DRIVER=y 1104CONFIG_RAW_DRIVER=y
1041CONFIG_MAX_RAW_DEVS=256 1105CONFIG_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
1135CONFIG_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#
1179CONFIG_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#
1125CONFIG_BACKLIGHT_LCD_SUPPORT=y 1197# CONFIG_AGP is not set
1126CONFIG_LCD_CLASS_DEVICE=y 1198# CONFIG_DRM is not set
1127CONFIG_BACKLIGHT_CLASS_DEVICE=y
1128
1129#
1130# Display device support
1131#
1132CONFIG_DISPLAY_SUPPORT=y
1133
1134#
1135# Display hardware drivers
1136#
1137# CONFIG_VGASTATE is not set 1199# CONFIG_VGASTATE is not set
1138CONFIG_VIDEO_OUTPUT_CONTROL=m 1200CONFIG_VIDEO_OUTPUT_CONTROL=m
1139CONFIG_FB=y 1201CONFIG_FB=y
@@ -1142,6 +1204,7 @@ CONFIG_FB_DDC=y
1142CONFIG_FB_CFB_FILLRECT=y 1204CONFIG_FB_CFB_FILLRECT=y
1143CONFIG_FB_CFB_COPYAREA=y 1205CONFIG_FB_CFB_COPYAREA=y
1144CONFIG_FB_CFB_IMAGEBLIT=y 1206CONFIG_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
1193CONFIG_FB_IBM_GXT4500=y 1256CONFIG_FB_IBM_GXT4500=y
1194# CONFIG_FB_VIRTUAL is not set 1257# CONFIG_FB_VIRTUAL is not set
1258CONFIG_BACKLIGHT_LCD_SUPPORT=y
1259CONFIG_LCD_CLASS_DEVICE=y
1260CONFIG_BACKLIGHT_CLASS_DEVICE=y
1261# CONFIG_BACKLIGHT_CORGI is not set
1262
1263#
1264# Display device support
1265#
1266CONFIG_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
1348CONFIG_HID_SUPPORT=y 1430CONFIG_HID_SUPPORT=y
1349CONFIG_HID=y 1431CONFIG_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
1491CONFIG_EDAC_MM_EDAC=y 1574CONFIG_EDAC_MM_EDAC=y
1492# CONFIG_RTC_CLASS is not set 1575CONFIG_EDAC_PASEMI=y
1576CONFIG_RTC_LIB=y
1577CONFIG_RTC_CLASS=y
1578CONFIG_RTC_HCTOSYS=y
1579CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1580# CONFIG_RTC_DEBUG is not set
1581
1582#
1583# RTC interfaces
1584#
1585CONFIG_RTC_INTF_SYSFS=y
1586CONFIG_RTC_INTF_PROC=y
1587CONFIG_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#
1594CONFIG_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
1586CONFIG_HUGETLBFS=y 1703CONFIG_HUGETLBFS=y
1587CONFIG_HUGETLB_PAGE=y 1704CONFIG_HUGETLB_PAGE=y
1588CONFIG_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 1723CONFIG_NETWORK_FILESYSTEMS=y
1608#
1609# Network File Systems
1610#
1611CONFIG_NFS_FS=y 1724CONFIG_NFS_FS=y
1612CONFIG_NFS_V3=y 1725CONFIG_NFS_V3=y
1613CONFIG_NFS_V3_ACL=y 1726CONFIG_NFS_V3_ACL=y
@@ -1619,6 +1732,7 @@ CONFIG_NFSD_V3=y
1619CONFIG_NFSD_V3_ACL=y 1732CONFIG_NFSD_V3_ACL=y
1620CONFIG_NFSD_V4=y 1733CONFIG_NFSD_V4=y
1621CONFIG_NFSD_TCP=y 1734CONFIG_NFSD_TCP=y
1735CONFIG_ROOT_NFS=y
1622CONFIG_LOCKD=y 1736CONFIG_LOCKD=y
1623CONFIG_LOCKD_V4=y 1737CONFIG_LOCKD_V4=y
1624CONFIG_EXPORTFS=m 1738CONFIG_EXPORTFS=m
@@ -1626,6 +1740,7 @@ CONFIG_NFS_ACL_SUPPORT=y
1626CONFIG_NFS_COMMON=y 1740CONFIG_NFS_COMMON=y
1627CONFIG_SUNRPC=y 1741CONFIG_SUNRPC=y
1628CONFIG_SUNRPC_GSS=y 1742CONFIG_SUNRPC_GSS=y
1743CONFIG_SUNRPC_XPRT_RDMA=m
1629# CONFIG_SUNRPC_BIND34 is not set 1744# CONFIG_SUNRPC_BIND34 is not set
1630CONFIG_RPCSEC_GSS_KRB5=y 1745CONFIG_RPCSEC_GSS_KRB5=y
1631CONFIG_RPCSEC_GSS_SPKM3=m 1746CONFIG_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#
1669CONFIG_NLS=y 1780CONFIG_NLS=y
1670CONFIG_NLS_DEFAULT="iso8859-1" 1781CONFIG_NLS_DEFAULT="iso8859-1"
1671CONFIG_NLS_CODEPAGE_437=y 1782CONFIG_NLS_CODEPAGE_437=y
@@ -1706,10 +1817,6 @@ CONFIG_NLS_ISO8859_15=m
1706CONFIG_NLS_KOI8_R=m 1817CONFIG_NLS_KOI8_R=m
1707CONFIG_NLS_KOI8_U=m 1818CONFIG_NLS_KOI8_U=m
1708CONFIG_NLS_UTF8=m 1819CONFIG_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
1733CONFIG_HAS_IOMEM=y 1840CONFIG_HAS_IOMEM=y
1734CONFIG_HAS_IOPORT=y 1841CONFIG_HAS_IOPORT=y
1735CONFIG_HAS_DMA=y 1842CONFIG_HAS_DMA=y
1736 1843CONFIG_INSTRUMENTATION=y
1737#
1738# Instrumentation Support
1739#
1740CONFIG_PROFILING=y 1844CONFIG_PROFILING=y
1741CONFIG_OPROFILE=y 1845CONFIG_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
1853CONFIG_ENABLE_WARN_DEPRECATED=y
1748CONFIG_ENABLE_MUST_CHECK=y 1854CONFIG_ENABLE_MUST_CHECK=y
1749CONFIG_MAGIC_SYSRQ=y 1855CONFIG_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
1771CONFIG_FORCED_INLINING=y 1878CONFIG_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
1774CONFIG_DEBUG_STACKOVERFLOW=y 1883CONFIG_DEBUG_STACKOVERFLOW=y
1775CONFIG_DEBUG_STACK_USAGE=y 1884CONFIG_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
1781CONFIG_XMON_DISASSEMBLY=y 1890CONFIG_XMON_DISASSEMBLY=y
1782CONFIG_IRQSTACKS=y 1891CONFIG_IRQSTACKS=y
1892# CONFIG_VIRQ_DEBUG is not set
1783CONFIG_BOOTX_TEXT=y 1893CONFIG_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
1791CONFIG_XOR_BLOCKS=y 1902CONFIG_XOR_BLOCKS=y
1792CONFIG_ASYNC_CORE=y 1903CONFIG_ASYNC_CORE=y
1793CONFIG_ASYNC_MEMCPY=y 1904CONFIG_ASYNC_MEMCPY=y
@@ -1812,6 +1923,7 @@ CONFIG_CRYPTO_ECB=m
1812CONFIG_CRYPTO_CBC=y 1923CONFIG_CRYPTO_CBC=y
1813CONFIG_CRYPTO_PCBC=m 1924CONFIG_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
1816CONFIG_CRYPTO_DES=y 1928CONFIG_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
1826CONFIG_CRYPTO_ARC4=m 1938CONFIG_CRYPTO_ARC4=m
1827CONFIG_CRYPTO_KHAZAD=m 1939CONFIG_CRYPTO_KHAZAD=m
1828CONFIG_CRYPTO_ANUBIS=m 1940CONFIG_CRYPTO_ANUBIS=m
1941# CONFIG_CRYPTO_SEED is not set
1829CONFIG_CRYPTO_DEFLATE=m 1942CONFIG_CRYPTO_DEFLATE=m
1830CONFIG_CRYPTO_MICHAEL_MIC=m 1943CONFIG_CRYPTO_MICHAEL_MIC=m
1831CONFIG_CRYPTO_CRC32C=m 1944CONFIG_CRYPTO_CRC32C=m
1832# CONFIG_CRYPTO_CAMELLIA is not set 1945# CONFIG_CRYPTO_CAMELLIA is not set
1833CONFIG_CRYPTO_TEST=m 1946CONFIG_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
2521:
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
2692: 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
26266: li r3,-ENOSYS 27566: 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 */
685restore: 698restore:
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)
7071:
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 */
90512: bl .save_nvgprs 90512: 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
29910: 30810:
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
5381: icbi 0,r6 5551: 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 */
137BEGIN_FTR_SECTION 138BEGIN_FTR_SECTION
138 DSSALL 139 DSSALL
139END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) 140END_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 */
262void account_process_vtime(struct task_struct *tsk) 262void 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
277static 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 */
36unsigned int tlb_44x_index; /* = 0 */ 36unsigned int tlb_44x_index; /* = 0 */
37unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS; 37unsigned int tlb_44x_hwater = PPC44x_TLB_SIZE - 1 - PPC44x_EARLY_TLBS;
38int 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 */
888void flush_hash_page(unsigned long va, real_pte_t pte, int psize, int ssize, 891void 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)
65extern void MMU_init_hw(void); 65extern void MMU_init_hw(void);
66extern unsigned long mmu_mapin_ram(void); 66extern 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)
70extern void MMU_init_hw(void); 70extern void MMU_init_hw(void);
71extern unsigned long mmu_mapin_ram(void); 71extern unsigned long mmu_mapin_ram(void);
72extern void adjust_total_lowmem(void); 72extern 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 */
158static 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. */
152void switch_slb(struct task_struct *tsk, struct mm_struct *mm) 182void 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
161void iic_setup_cpu(void)
162{
163 out_be64(&__get_cpu_var(iic).regs->prio, 0xff);
164}
165
166u8 iic_get_target_id(int cpu)
167{
168 return per_cpu(iic, cpu).target_id;
169}
170
171EXPORT_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
169void iic_setup_cpu(void)
170{
171 out_be64(&__get_cpu_var(iic).regs->prio, 0xff);
172}
173
174void iic_cause_IPI(int cpu, int mesg) 181void 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
179u8 iic_get_target_id(int cpu)
180{
181 return per_cpu(iic, cpu).target_id;
182}
183EXPORT_SYMBOL_GPL(iic_get_target_id);
184
185struct irq_host *iic_get_irq_host(int node) 186struct irq_host *iic_get_irq_host(int node)
186{ 187{
187 return iic_host; 188 return iic_host;
188} 189}
189EXPORT_SYMBOL_GPL(iic_get_irq_host); 190EXPORT_SYMBOL_GPL(iic_get_irq_host);
190 191
191
192static irqreturn_t iic_ipi_action(int irq, void *dev_id) 192static 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
4extern void iSeries_init_IRQ(void); 5extern void iSeries_init_IRQ(void);
5extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32); 6extern int iSeries_allocate_IRQ(HvBusNumber, HvSubBusNumber, u32);
6extern void iSeries_activate_IRQs(void); 7extern void iSeries_activate_IRQs(void);
8#else
9#define iSeries_init_IRQ NULL
10#endif
7extern unsigned int iSeries_get_irq(void); 11extern 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
621void __init iSeries_init_IRQ(void) { }
622#endif
623
624static void __iomem *iseries_ioremap(phys_addr_t address, unsigned long size, 620static 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)
523static int __init iseries_vio_init(void) 523static 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}
553arch_initcall(iseries_vio_init); 555arch_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
121static void eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata) 122static 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)
137static struct irq_chip i8259_pic = { 137static 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
27static ssize_t mv64x60_hs_reg_read(struct kobject *kobj, char *buf, loff_t off, 27static 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
47static ssize_t mv64x60_hs_reg_write(struct kobject *kobj, char *buf, loff_t off, 48static 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
2521:
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
2692: 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
26266: li r3,-ENOSYS 27566: 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 */
681restore: 694restore:
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)
7031:
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
23510: 24410:
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
4951: icbi 0,r6 5111: 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 */
62unsigned int tlb_44x_index = 0; 62unsigned int tlb_44x_index = 0;
63unsigned int tlb_44x_hwater = 62; 63unsigned int tlb_44x_hwater = 62;
64int 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)
58extern void MMU_init_hw(void); 58extern void MMU_init_hw(void);
59extern unsigned long mmu_mapin_ram(void); 59extern 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)
63extern void MMU_init_hw(void); 63extern void MMU_init_hw(void);
64extern unsigned long mmu_mapin_ram(void); 64extern unsigned long mmu_mapin_ram(void);
65extern void adjust_total_lowmem(void); 65extern 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)
127static struct irq_chip i8259_pic = { 127static 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 */
35void account_tick_vtime(struct task_struct *tsk) 35void 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
219config SH_7206_SOLUTION_ENGINE 221config SH_7206_SOLUTION_ENGINE
220 bool "SolutionEngine7206" 222 bool "SolutionEngine7206"
@@ -603,7 +605,7 @@ config BOOT_LINK_OFFSET
603 605
604config UBC_WAKEUP 606config 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
125config SH_KGDB_CONSOLE 125config 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
131config KGDB_SYSRQ 131config 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
135comment "Serial port setup" 136comment "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
18static 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
25static 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
32static void hs7751rvoip_power_off(void) 18static 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}
64device_initcall(hs7751rvoip_cf_init);
78 65
79/* 66/*
80 * Initialize the board 67 * Initialize the board
81 */ 68 */
82static void __init hs7751rvoip_setup(char **cmdline_p) 69static 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
16static struct ipr_data sh7710voipgw_ipr_map[] = { 15static 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 };
94static struct heartbeat_data heartbeat_data = { 94static 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
99static struct resource heartbeat_resources[] = { 100static 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 */
22static struct heartbeat_data heartbeat_data = {
23 .regsize = 16,
24};
25
21static struct resource heartbeat_resources[] = { 26static 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[] = {
29static struct platform_device heartbeat_device = { 34static 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 */
20static struct heartbeat_data heartbeat_data = {
21 .regsize = 16,
22};
23
19static struct resource heartbeat_resources[] = { 24static 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[] = {
27static struct platform_device heartbeat_device = { 32static 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
5obj-y := setup.o io.o rtc.o 5obj-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
22static 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
51static 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
62static 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
75static 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
94static 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
108static 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
120static inline int bcd2int(int val)
121{
122 return((((val & 0xf0) >> 4) * 10) + (val & 0xf));
123}
124
125static 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
136void snapgear_rtc_gettimeofday(struct timespec *);
137int snapgear_rtc_settimeofday(const time_t);
138
139void __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
170void 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
184bad_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
209int 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
257unsigned 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
285void 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
28extern void secureedge5410_rtc_init(void);
29extern void pcibios_init(void);
30
31/****************************************************************************/
32/* 27/*
33 * EraseConfig handling functions 28 * EraseConfig handling functions
34 */ 29 */
35 30
36static irqreturn_t eraseconfig_interrupt(int irq, void *dev_id) 31static 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 */
81static 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 */
89static struct sh_machine_vector mv_snapgear __initmv = { 76static 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
40quiet_cmd_uimage = UIMAGE $@ 40quiet_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 @@
1obj-$(CONFIG_HD64461) += hd64461.o 1obj-$(CONFIG_HD64461) += hd64461.o
2obj-$(CONFIG_HD64465) += hd64465/ 2obj-$(CONFIG_HD64465) += hd64465/
3
4EXTRA_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
7obj-$(CONFIG_USB_OHCI_HCD) += consistent.o 7obj-$(CONFIG_USB_OHCI_HCD) += consistent.o
8 8
9EXTRA_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 @@
5obj-y += pci.o 5obj-y += pci.o
6obj-$(CONFIG_PCI_AUTO) += pci-auto.o 6obj-$(CONFIG_PCI_AUTO) += pci-auto.o
7 7
8obj-$(CONFIG_CPU_SUBTYPE_ST40STB1) += pci-st40.o
9obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o 8obj-$(CONFIG_CPU_SUBTYPE_SH7751) += pci-sh7751.o ops-sh4.o
10obj-$(CONFIG_CPU_SUBTYPE_SH7751R) += pci-sh7751.o ops-sh4.o 9obj-$(CONFIG_CPU_SUBTYPE_SH7751R) += pci-sh7751.o ops-sh4.o
11obj-$(CONFIG_CPU_SUBTYPE_SH7780) += pci-sh7780.o ops-sh4.o 10obj-$(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
69static void pci_set_rbar_region(unsigned int region, unsigned long localAddr,
70 unsigned long pciOffset, unsigned long regionSize);
71
72static __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
98struct pci_err {
99 unsigned mask;
100 const char *error_string;
101};
102
103static 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
119static 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
131static 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
144static 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
163static 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 */
209static 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
232static 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}
250DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, pci_fixup_ide_bases);
251
252int __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
331char * __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
343static 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 */
356static 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
388static 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
409struct pci_ops st40pci_config_ops = {
410 .read = st40pci_read,
411 .write = st40pci_write,
412};
413
414
415/* Everything hangs off this */
416static struct pci_bus *pci_root_bus;
417
418static 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}
457subsys_initcall(pcibios_init);
458
459/*
460 * Publish a region of local address space over the PCI bus
461 * to other devices.
462 */
463static 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
11obj-y += cpu/ timers/ 11obj-y += cpu/ timers/
12obj-$(CONFIG_VSYSCALL) += vsyscall/ 12obj-$(CONFIG_VSYSCALL) += vsyscall/
13
14obj-$(CONFIG_SMP) += smp.o 13obj-$(CONFIG_SMP) += smp.o
15obj-$(CONFIG_CF_ENABLER) += cf-enabler.o 14obj-$(CONFIG_CF_ENABLER) += cf-enabler.o
16obj-$(CONFIG_SH_STANDARD_BIOS) += sh_bios.o 15obj-$(CONFIG_SH_STANDARD_BIOS) += sh_bios.o
@@ -22,3 +21,5 @@ obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
22obj-$(CONFIG_CRASH_DUMP) += crash_dump.o 21obj-$(CONFIG_CRASH_DUMP) += crash_dump.o
23obj-$(CONFIG_PM) += pm.o 22obj-$(CONFIG_PM) += pm.o
24obj-$(CONFIG_STACKTRACE) += stacktrace.o 23obj-$(CONFIG_STACKTRACE) += stacktrace.o
24
25EXTRA_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*/
47ENTRY(nmi_slot) 47ENTRY(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;
116kgdb_bus_error_hook_t *kgdb_bus_err_hook; 117kgdb_bus_error_hook_t *kgdb_bus_err_hook;
117 118
118int (*kgdb_getchar)(void); 119int (*kgdb_getchar)(void);
120EXPORT_SYMBOL_GPL(kgdb_getchar);
119void (*kgdb_putchar)(int); 121void (*kgdb_putchar)(int);
122EXPORT_SYMBOL_GPL(kgdb_putchar);
120 123
121static void put_debug_char(int c) 124static 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
139enum regs { 142enum {
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() */
178int kgdb_portnum = CONFIG_KGDB_DEFPORT; 181int kgdb_portnum = CONFIG_KGDB_DEFPORT;
182EXPORT_SYMBOL_GPL(kgdb_portnum);
179int kgdb_baud = CONFIG_KGDB_DEFBAUD; 183int kgdb_baud = CONFIG_KGDB_DEFBAUD;
184EXPORT_SYMBOL_GPL(kgdb_baud);
180char kgdb_parity = CONFIG_KGDB_DEFPARITY; 185char kgdb_parity = CONFIG_KGDB_DEFPARITY;
186EXPORT_SYMBOL_GPL(kgdb_parity);
181char kgdb_bits = CONFIG_KGDB_DEFBITS; 187char kgdb_bits = CONFIG_KGDB_DEFBITS;
188EXPORT_SYMBOL_GPL(kgdb_bits);
182 189
183/* Jump buffer for setjmp/longjmp */ 190/* Jump buffer for setjmp/longjmp */
184static jmp_buf rem_com_env; 191static 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);
106DECLARE_EXPORT(__movstr); 106DECLARE_EXPORT(__movstr);
107#endif 107#endif
108 108
109#ifdef CONFIG_CPU_SH4
110#if __GNUC__ == 4 109#if __GNUC__ == 4
111DECLARE_EXPORT(__movmem_i4_even); 110DECLARE_EXPORT(__movmem_i4_even);
112DECLARE_EXPORT(__movmem_i4_odd); 111DECLARE_EXPORT(__movmem_i4_odd);
@@ -126,7 +125,6 @@ DECLARE_EXPORT(__movstr_i4_even);
126DECLARE_EXPORT(__movstr_i4_odd); 125DECLARE_EXPORT(__movstr_i4_odd);
127DECLARE_EXPORT(__movstrSI12_i4); 126DECLARE_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
9memcpy-$(CONFIG_CPU_SH4) := memcpy-sh4.o 9memcpy-$(CONFIG_CPU_SH4) := memcpy-sh4.o
10 10
11lib-y += $(memcpy-y) 11lib-y += $(memcpy-y)
12
13EXTRA_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
23config CPU_SH4A 23config 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
32config CPU_SUBTYPE_ST40
33 bool
34 select CPU_SH4
35
36config CPU_SHX2 32config 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
157config 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
164config 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
172config CPU_SUBTYPE_SH7770 153config 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
33obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o 33obj-$(CONFIG_HUGETLB_PAGE) += hugetlbpage.o
34obj-$(CONFIG_32BIT) += pmb.o 34obj-$(CONFIG_32BIT) += pmb.o
35obj-$(CONFIG_NUMA) += numa.o 35obj-$(CONFIG_NUMA) += numa.o
36
37EXTRA_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 */
169ENTRY(__clear_user_page)
170 mov.l .Lpsz,r0
171 mov r4,r6
172 add r0,r6
173 mov #0,r0
174 !
1751: 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 */
88ENTRY(__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 !
1001: 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)
50void clear_user_page(void *to, unsigned long address, struct page *page) 52void 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/* 61void 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 */
69void 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
77void 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
90void 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}
109EXPORT_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
16oprofile-y := $(DRIVER_OBJS) $(profdrvr-y) 16oprofile-y := $(DRIVER_OBJS) $(profdrvr-y)
17 17
18EXTRA_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
662static int 660static int
663asids_proc_info(char *buf, char **start, off_t fpos, int length, int *eof, void *data) 661asids_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
687static int __init register_proc_asids(void) 685static 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 */
249asmlinkage void do_exception_error(unsigned long ex, struct pt_regs *regs) 245asmlinkage 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
53DEFINE_SPINLOCK(mostek_lock); 51DEFINE_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
22endif 22endif
23endif 23endif
24 24
25CFLAGS += -DCONFIG_X86_32 25KBUILD_CFLAGS += -DCONFIG_X86_32
26AFLAGS += -DCONFIG_X86_32 26KBUILD_AFLAGS += -DCONFIG_X86_32
27CONFIG_X86_32 := y 27CONFIG_X86_32 := y
28export CONFIG_X86_32 28export 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
144static void ipi_handler(void *info) 142static 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
175static inline int types_compatible(mtrr_type type1, mtrr_type type2) { 173static 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
52static int endflag __initdata = 0; 52static 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 */
59static __init void nmi_cpu_busy(void *data) 58static __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
73static int __init check_nmi_watchdog(void) 73static int __init check_nmi_watchdog(void)
74{ 74{