aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/entry-common.S4
-rw-r--r--arch/arm/kernel/fiq.c4
-rw-r--r--arch/arm/mach-ep93xx/include/mach/platform.h2
-rw-r--r--arch/arm/mach-mx1/devices.c2
-rw-r--r--arch/arm/mach-mx1/mx1ads.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c4
-rw-r--r--arch/arm/mach-orion5x/common.c7
-rw-r--r--arch/arm/mach-s3c6410/mach-smdk6410.c4
-rw-r--r--arch/arm/mm/copypage-feroceon.c2
-rw-r--r--arch/arm/mm/copypage-v3.c2
-rw-r--r--arch/arm/mm/copypage-v4mc.c2
-rw-r--r--arch/arm/mm/copypage-v4wb.c2
-rw-r--r--arch/arm/mm/copypage-v4wt.c2
-rw-r--r--arch/arm/mm/copypage-xsc3.c2
-rw-r--r--arch/arm/mm/copypage-xscale.c2
-rw-r--r--arch/arm/mm/dma-mapping.c20
-rw-r--r--arch/arm/mm/init.c2
-rw-r--r--arch/arm/mm/mmap.c2
-rw-r--r--arch/arm/plat-omap/Makefile3
-rw-r--r--arch/arm/plat-omap/common.c14
-rw-r--r--arch/arm/plat-omap/include/mach/common.h2
-rw-r--r--arch/arm/plat-omap/include/mach/pm.h2
-rw-r--r--arch/arm/plat-s3c64xx/clock.c2
-rw-r--r--arch/arm/plat-s3c64xx/gpiolib.c2
-rw-r--r--arch/arm/plat-s3c64xx/include/plat/irqs.h2
-rw-r--r--arch/arm/plat-s3c64xx/irq-eint.c15
-rw-r--r--arch/arm/plat-s3c64xx/irq.c2
-rw-r--r--arch/arm/plat-s3c64xx/s3c6400-clock.c24
-rw-r--r--arch/arm/tools/mach-types136
-rw-r--r--arch/mips/Kconfig26
-rw-r--r--arch/mips/Makefile2
-rw-r--r--arch/mips/configs/markeins_defconfig (renamed from arch/mips/configs/emma2rh_defconfig)10
-rw-r--r--arch/mips/emma/Kconfig29
-rw-r--r--arch/mips/emma/markeins/platform.c39
-rw-r--r--arch/mips/include/asm/seccomp.h4
-rw-r--r--arch/mips/include/asm/thread_info.h6
-rw-r--r--arch/parisc/configs/712_defconfig429
-rw-r--r--arch/parisc/configs/a500_defconfig490
-rw-r--r--arch/parisc/configs/b180_defconfig433
-rw-r--r--arch/parisc/configs/c3000_defconfig575
-rw-r--r--arch/parisc/configs/default_defconfig585
-rw-r--r--arch/parisc/hpux/fs.c1
-rw-r--r--arch/parisc/include/asm/assembly.h11
-rw-r--r--arch/parisc/include/asm/io.h51
-rw-r--r--arch/parisc/include/asm/irq.h2
-rw-r--r--arch/parisc/include/asm/uaccess.h1
-rw-r--r--arch/parisc/kernel/cache.c5
-rw-r--r--arch/parisc/kernel/entry.S6
-rw-r--r--arch/parisc/kernel/firmware.c12
-rw-r--r--arch/parisc/kernel/irq.c18
-rw-r--r--arch/parisc/kernel/pci-dma.c22
-rw-r--r--arch/parisc/mm/init.c6
-rw-r--r--arch/powerpc/configs/ps3_defconfig250
-rw-r--r--arch/powerpc/include/asm/cputable.h4
-rw-r--r--arch/powerpc/kernel/head_32.S6
-rw-r--r--arch/powerpc/platforms/ps3/Kconfig7
-rw-r--r--arch/s390/include/asm/mman.h5
-rw-r--r--arch/s390/include/asm/processor.h5
-rw-r--r--arch/s390/include/asm/topology.h2
-rw-r--r--arch/s390/kernel/mcount.S6
-rw-r--r--arch/s390/lib/div64.c2
-rw-r--r--arch/s390/lib/uaccess_pt.c18
-rw-r--r--arch/s390/mm/mmap.c48
-rw-r--r--arch/s390/mm/pgtable.c2
-rw-r--r--arch/x86/Kconfig.cpu17
-rw-r--r--arch/x86/include/asm/apic.h13
-rwxr-xr-xarch/x86/include/asm/cpu_debug.h33
-rw-r--r--arch/x86/include/asm/dmi.h14
-rw-r--r--arch/x86/include/asm/io_apic.h5
-rw-r--r--arch/x86/include/asm/irq_remapping.h2
-rw-r--r--arch/x86/include/asm/msidef.h1
-rw-r--r--arch/x86/include/asm/page_32_types.h5
-rw-r--r--arch/x86/include/asm/paravirt.h19
-rw-r--r--arch/x86/include/asm/pgtable-2level.h7
-rw-r--r--arch/x86/include/asm/pgtable-3level.h17
-rw-r--r--arch/x86/include/asm/pgtable.h2
-rw-r--r--arch/x86/include/asm/pgtable_32.h3
-rw-r--r--arch/x86/include/asm/sections.h7
-rw-r--r--arch/x86/include/asm/setup.h37
-rw-r--r--arch/x86/kernel/apic/apic.c20
-rw-r--r--arch/x86/kernel/apic/io_apic.c268
-rw-r--r--arch/x86/kernel/apic/probe_64.c7
-rw-r--r--arch/x86/kernel/apic/x2apic_cluster.c6
-rw-r--r--arch/x86/kernel/apic/x2apic_phys.c6
-rw-r--r--arch/x86/kernel/check.c6
-rw-r--r--arch/x86/kernel/cpu/Makefile3
-rw-r--r--arch/x86/kernel/cpu/centaur.c34
-rw-r--r--arch/x86/kernel/cpu/centaur_64.c37
-rwxr-xr-xarch/x86/kernel/cpu/cpu_debug.c150
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_amd_64.c40
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce_intel_64.c2
-rw-r--r--arch/x86/kernel/cpu/mtrr/Makefile2
-rw-r--r--arch/x86/kernel/cpu/mtrr/cleanup.c1101
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c202
-rw-r--r--arch/x86/kernel/cpu/mtrr/main.c1069
-rw-r--r--arch/x86/kernel/cpu/mtrr/mtrr.h4
-rw-r--r--arch/x86/kernel/e820.c79
-rw-r--r--arch/x86/kernel/head32.c5
-rw-r--r--arch/x86/kernel/head64.c2
-rw-r--r--arch/x86/kernel/head_32.S76
-rw-r--r--arch/x86/kernel/kprobes.c3
-rw-r--r--arch/x86/kernel/kvm.c7
-rw-r--r--arch/x86/kernel/mpparse.c261
-rw-r--r--arch/x86/kernel/paravirt.c1
-rw-r--r--arch/x86/kernel/process.c5
-rw-r--r--arch/x86/kernel/setup.c54
-rw-r--r--arch/x86/kernel/tlb_uv.c3
-rw-r--r--arch/x86/kernel/tsc.c110
-rw-r--r--arch/x86/kernel/vmi_32.c6
-rw-r--r--arch/x86/kernel/vmlinux_32.lds.S21
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S94
-rw-r--r--arch/x86/lguest/boot.c8
-rw-r--r--arch/x86/mm/iomap_32.c1
-rw-r--r--arch/x86/mm/pageattr.c5
-rw-r--r--arch/x86/mm/pgtable_32.c2
-rw-r--r--arch/x86/mm/tlb.c5
-rw-r--r--arch/x86/xen/mmu.c7
117 files changed, 4350 insertions, 2932 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 49a6ba926c2b..159d0416f270 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -111,6 +111,7 @@ ENTRY(mcount)
111 .globl mcount_call 111 .globl mcount_call
112mcount_call: 112mcount_call:
113 bl ftrace_stub 113 bl ftrace_stub
114 ldr lr, [fp, #-4] @ restore lr
114 ldmia sp!, {r0-r3, pc} 115 ldmia sp!, {r0-r3, pc}
115 116
116ENTRY(ftrace_caller) 117ENTRY(ftrace_caller)
@@ -122,6 +123,7 @@ ENTRY(ftrace_caller)
122 .globl ftrace_call 123 .globl ftrace_call
123ftrace_call: 124ftrace_call:
124 bl ftrace_stub 125 bl ftrace_stub
126 ldr lr, [fp, #-4] @ restore lr
125 ldmia sp!, {r0-r3, pc} 127 ldmia sp!, {r0-r3, pc}
126 128
127#else 129#else
@@ -133,6 +135,7 @@ ENTRY(mcount)
133 adr r0, ftrace_stub 135 adr r0, ftrace_stub
134 cmp r0, r2 136 cmp r0, r2
135 bne trace 137 bne trace
138 ldr lr, [fp, #-4] @ restore lr
136 ldmia sp!, {r0-r3, pc} 139 ldmia sp!, {r0-r3, pc}
137 140
138trace: 141trace:
@@ -141,6 +144,7 @@ trace:
141 sub r0, r0, #MCOUNT_INSN_SIZE 144 sub r0, r0, #MCOUNT_INSN_SIZE
142 mov lr, pc 145 mov lr, pc
143 mov pc, r2 146 mov pc, r2
147 mov lr, r1 @ restore lr
144 ldmia sp!, {r0-r3, pc} 148 ldmia sp!, {r0-r3, pc}
145 149
146#endif /* CONFIG_DYNAMIC_FTRACE */ 150#endif /* CONFIG_DYNAMIC_FTRACE */
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
index 36f81d967979..6ff7919613d7 100644
--- a/arch/arm/kernel/fiq.c
+++ b/arch/arm/kernel/fiq.c
@@ -88,7 +88,7 @@ void set_fiq_handler(void *start, unsigned int length)
88 * disable irqs for the duration. Note - these functions are almost 88 * disable irqs for the duration. Note - these functions are almost
89 * entirely coded in assembly. 89 * entirely coded in assembly.
90 */ 90 */
91void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs) 91void __naked set_fiq_regs(struct pt_regs *regs)
92{ 92{
93 register unsigned long tmp; 93 register unsigned long tmp;
94 asm volatile ( 94 asm volatile (
@@ -106,7 +106,7 @@ void __attribute__((naked)) set_fiq_regs(struct pt_regs *regs)
106 : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE)); 106 : "r" (&regs->ARM_r8), "I" (PSR_I_BIT | PSR_F_BIT | FIQ_MODE));
107} 107}
108 108
109void __attribute__((naked)) get_fiq_regs(struct pt_regs *regs) 109void __naked get_fiq_regs(struct pt_regs *regs)
110{ 110{
111 register unsigned long tmp; 111 register unsigned long tmp;
112 asm volatile ( 112 asm volatile (
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h
index 88f7e88f152f..05f0f4f2f3ce 100644
--- a/arch/arm/mach-ep93xx/include/mach/platform.h
+++ b/arch/arm/mach-ep93xx/include/mach/platform.h
@@ -4,6 +4,8 @@
4 4
5#ifndef __ASSEMBLY__ 5#ifndef __ASSEMBLY__
6 6
7struct i2c_board_info;
8
7struct ep93xx_eth_data 9struct ep93xx_eth_data
8{ 10{
9 unsigned char dev_addr[6]; 11 unsigned char dev_addr[6];
diff --git a/arch/arm/mach-mx1/devices.c b/arch/arm/mach-mx1/devices.c
index 686d8d2dbb24..a95644193f3f 100644
--- a/arch/arm/mach-mx1/devices.c
+++ b/arch/arm/mach-mx1/devices.c
@@ -23,6 +23,8 @@
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/gpio.h> 25#include <linux/gpio.h>
26
27#include <mach/irqs.h>
26#include <mach/hardware.h> 28#include <mach/hardware.h>
27 29
28static struct resource imx_csi_resources[] = { 30static struct resource imx_csi_resources[] = {
diff --git a/arch/arm/mach-mx1/mx1ads.c b/arch/arm/mach-mx1/mx1ads.c
index 2e4b185fe4a9..3200cf60e384 100644
--- a/arch/arm/mach-mx1/mx1ads.c
+++ b/arch/arm/mach-mx1/mx1ads.c
@@ -21,6 +21,7 @@
21#include <asm/mach/arch.h> 21#include <asm/mach/arch.h>
22#include <asm/mach/time.h> 22#include <asm/mach/time.h>
23 23
24#include <mach/irqs.h>
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <mach/common.h> 26#include <mach/common.h>
26#include <mach/imx-uart.h> 27#include <mach/imx-uart.h>
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 38c88fbe658d..e39cd2c46cfa 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -178,7 +178,9 @@ static int __init omap3_beagle_i2c_init(void)
178#ifdef CONFIG_I2C2_OMAP_BEAGLE 178#ifdef CONFIG_I2C2_OMAP_BEAGLE
179 omap_register_i2c_bus(2, 400, NULL, 0); 179 omap_register_i2c_bus(2, 400, NULL, 0);
180#endif 180#endif
181 omap_register_i2c_bus(3, 400, NULL, 0); 181 /* Bus 3 is attached to the DVI port where devices like the pico DLP
182 * projector don't work reliably with 400kHz */
183 omap_register_i2c_bus(3, 100, NULL, 0);
182 return 0; 184 return 0;
183} 185}
184 186
diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
index 0a623379789f..8a0e49d84256 100644
--- a/arch/arm/mach-orion5x/common.c
+++ b/arch/arm/mach-orion5x/common.c
@@ -431,6 +431,10 @@ void __init orion5x_uart1_init(void)
431/***************************************************************************** 431/*****************************************************************************
432 * XOR engine 432 * XOR engine
433 ****************************************************************************/ 433 ****************************************************************************/
434struct mv_xor_platform_shared_data orion5x_xor_shared_data = {
435 .dram = &orion5x_mbus_dram_info,
436};
437
434static struct resource orion5x_xor_shared_resources[] = { 438static struct resource orion5x_xor_shared_resources[] = {
435 { 439 {
436 .name = "xor low", 440 .name = "xor low",
@@ -448,6 +452,9 @@ static struct resource orion5x_xor_shared_resources[] = {
448static struct platform_device orion5x_xor_shared = { 452static struct platform_device orion5x_xor_shared = {
449 .name = MV_XOR_SHARED_NAME, 453 .name = MV_XOR_SHARED_NAME,
450 .id = 0, 454 .id = 0,
455 .dev = {
456 .platform_data = &orion5x_xor_shared_data,
457 },
451 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources), 458 .num_resources = ARRAY_SIZE(orion5x_xor_shared_resources),
452 .resource = orion5x_xor_shared_resources, 459 .resource = orion5x_xor_shared_resources,
453}; 460};
diff --git a/arch/arm/mach-s3c6410/mach-smdk6410.c b/arch/arm/mach-s3c6410/mach-smdk6410.c
index 3c4d47145c83..25f7935576f8 100644
--- a/arch/arm/mach-s3c6410/mach-smdk6410.c
+++ b/arch/arm/mach-s3c6410/mach-smdk6410.c
@@ -129,7 +129,7 @@ static struct s3c_fb_platdata smdk6410_lcd_pdata __initdata = {
129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, 129 .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
130}; 130};
131 131
132struct map_desc smdk6410_iodesc[] = {}; 132static struct map_desc smdk6410_iodesc[] = {};
133 133
134static struct platform_device *smdk6410_devices[] __initdata = { 134static struct platform_device *smdk6410_devices[] __initdata = {
135#ifdef CONFIG_SMDK6410_SD_CH0 135#ifdef CONFIG_SMDK6410_SD_CH0
@@ -146,7 +146,7 @@ static struct platform_device *smdk6410_devices[] __initdata = {
146 146
147static struct i2c_board_info i2c_devs0[] __initdata = { 147static struct i2c_board_info i2c_devs0[] __initdata = {
148 { I2C_BOARD_INFO("24c08", 0x50), }, 148 { I2C_BOARD_INFO("24c08", 0x50), },
149 { I2C_BOARD_INFO("WM8580", 0X1b), }, 149 { I2C_BOARD_INFO("wm8580", 0x1b), },
150}; 150};
151 151
152static struct i2c_board_info i2c_devs1[] __initdata = { 152static struct i2c_board_info i2c_devs1[] __initdata = {
diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c
index c3ba6a94da0c..70997d5bee2d 100644
--- a/arch/arm/mm/copypage-feroceon.c
+++ b/arch/arm/mm/copypage-feroceon.c
@@ -13,7 +13,7 @@
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/highmem.h> 14#include <linux/highmem.h>
15 15
16static void __attribute__((naked)) 16static void __naked
17feroceon_copy_user_page(void *kto, const void *kfrom) 17feroceon_copy_user_page(void *kto, const void *kfrom)
18{ 18{
19 asm("\ 19 asm("\
diff --git a/arch/arm/mm/copypage-v3.c b/arch/arm/mm/copypage-v3.c
index 70ed96c8af8e..de9c06854ad7 100644
--- a/arch/arm/mm/copypage-v3.c
+++ b/arch/arm/mm/copypage-v3.c
@@ -15,7 +15,7 @@
15 * 15 *
16 * FIXME: do we need to handle cache stuff... 16 * FIXME: do we need to handle cache stuff...
17 */ 17 */
18static void __attribute__((naked)) 18static void __naked
19v3_copy_user_page(void *kto, const void *kfrom) 19v3_copy_user_page(void *kto, const void *kfrom)
20{ 20{
21 asm("\n\ 21 asm("\n\
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index 1601698b9800..7370a7142b04 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -44,7 +44,7 @@ static DEFINE_SPINLOCK(minicache_lock);
44 * instruction. If your processor does not supply this, you have to write your 44 * instruction. If your processor does not supply this, you have to write your
45 * own copy_user_highpage that does the right thing. 45 * own copy_user_highpage that does the right thing.
46 */ 46 */
47static void __attribute__((naked)) 47static void __naked
48mc_copy_user_page(void *from, void *to) 48mc_copy_user_page(void *from, void *to)
49{ 49{
50 asm volatile( 50 asm volatile(
diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c
index 3ec93dab7656..9ab098414227 100644
--- a/arch/arm/mm/copypage-v4wb.c
+++ b/arch/arm/mm/copypage-v4wb.c
@@ -22,7 +22,7 @@
22 * instruction. If your processor does not supply this, you have to write your 22 * instruction. If your processor does not supply this, you have to write your
23 * own copy_user_highpage that does the right thing. 23 * own copy_user_highpage that does the right thing.
24 */ 24 */
25static void __attribute__((naked)) 25static void __naked
26v4wb_copy_user_page(void *kto, const void *kfrom) 26v4wb_copy_user_page(void *kto, const void *kfrom)
27{ 27{
28 asm("\ 28 asm("\
diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c
index 0f1188efae45..300efafd6643 100644
--- a/arch/arm/mm/copypage-v4wt.c
+++ b/arch/arm/mm/copypage-v4wt.c
@@ -20,7 +20,7 @@
20 * dirty data in the cache. However, we do have to ensure that 20 * dirty data in the cache. However, we do have to ensure that
21 * subsequent reads are up to date. 21 * subsequent reads are up to date.
22 */ 22 */
23static void __attribute__((naked)) 23static void __naked
24v4wt_copy_user_page(void *kto, const void *kfrom) 24v4wt_copy_user_page(void *kto, const void *kfrom)
25{ 25{
26 asm("\ 26 asm("\
diff --git a/arch/arm/mm/copypage-xsc3.c b/arch/arm/mm/copypage-xsc3.c
index 39a994542cad..bc4525f5ab23 100644
--- a/arch/arm/mm/copypage-xsc3.c
+++ b/arch/arm/mm/copypage-xsc3.c
@@ -29,7 +29,7 @@
29 * if we eventually end up using our copied page. 29 * if we eventually end up using our copied page.
30 * 30 *
31 */ 31 */
32static void __attribute__((naked)) 32static void __naked
33xsc3_mc_copy_user_page(void *kto, const void *kfrom) 33xsc3_mc_copy_user_page(void *kto, const void *kfrom)
34{ 34{
35 asm("\ 35 asm("\
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c
index d18f2397ee2d..76824d3e966a 100644
--- a/arch/arm/mm/copypage-xscale.c
+++ b/arch/arm/mm/copypage-xscale.c
@@ -42,7 +42,7 @@ static DEFINE_SPINLOCK(minicache_lock);
42 * Dcache aliasing issue. The writes will be forwarded to the write buffer, 42 * Dcache aliasing issue. The writes will be forwarded to the write buffer,
43 * and merged as appropriate. 43 * and merged as appropriate.
44 */ 44 */
45static void __attribute__((naked)) 45static void __naked
46mc_copy_user_page(void *from, void *to) 46mc_copy_user_page(void *from, void *to)
47{ 47{
48 /* 48 /*
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index 310e479309ef..f1ef5613ccd4 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -490,26 +490,30 @@ core_initcall(consistent_init);
490 */ 490 */
491void dma_cache_maint(const void *start, size_t size, int direction) 491void dma_cache_maint(const void *start, size_t size, int direction)
492{ 492{
493 const void *end = start + size; 493 void (*inner_op)(const void *, const void *);
494 void (*outer_op)(unsigned long, unsigned long);
494 495
495 BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(end - 1)); 496 BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(start + size - 1));
496 497
497 switch (direction) { 498 switch (direction) {
498 case DMA_FROM_DEVICE: /* invalidate only */ 499 case DMA_FROM_DEVICE: /* invalidate only */
499 dmac_inv_range(start, end); 500 inner_op = dmac_inv_range;
500 outer_inv_range(__pa(start), __pa(end)); 501 outer_op = outer_inv_range;
501 break; 502 break;
502 case DMA_TO_DEVICE: /* writeback only */ 503 case DMA_TO_DEVICE: /* writeback only */
503 dmac_clean_range(start, end); 504 inner_op = dmac_clean_range;
504 outer_clean_range(__pa(start), __pa(end)); 505 outer_op = outer_clean_range;
505 break; 506 break;
506 case DMA_BIDIRECTIONAL: /* writeback and invalidate */ 507 case DMA_BIDIRECTIONAL: /* writeback and invalidate */
507 dmac_flush_range(start, end); 508 inner_op = dmac_flush_range;
508 outer_flush_range(__pa(start), __pa(end)); 509 outer_op = outer_flush_range;
509 break; 510 break;
510 default: 511 default:
511 BUG(); 512 BUG();
512 } 513 }
514
515 inner_op(start, start + size);
516 outer_op(__pa(start), __pa(start) + size);
513} 517}
514EXPORT_SYMBOL(dma_cache_maint); 518EXPORT_SYMBOL(dma_cache_maint);
515 519
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 34df4d9d03a6..80fd3b69ae1f 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -382,7 +382,7 @@ void __init bootmem_init(void)
382 for_each_node(node) 382 for_each_node(node)
383 bootmem_free_node(node, mi); 383 bootmem_free_node(node, mi);
384 384
385 high_memory = __va(memend_pfn << PAGE_SHIFT); 385 high_memory = __va((memend_pfn << PAGE_SHIFT) - 1) + 1;
386 386
387 /* 387 /*
388 * This doesn't seem to be used by the Linux memory manager any 388 * This doesn't seem to be used by the Linux memory manager any
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
index 5358fcc7f61e..f7457fea6de8 100644
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -124,7 +124,7 @@ int valid_phys_addr_range(unsigned long addr, size_t size)
124{ 124{
125 if (addr < PHYS_OFFSET) 125 if (addr < PHYS_OFFSET)
126 return 0; 126 return 0;
127 if (addr + size > __pa(high_memory)) 127 if (addr + size >= __pa(high_memory - 1))
128 return 0; 128 return 0;
129 129
130 return 1; 130 return 1;
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
index deaff58878a2..04a100cfb8e5 100644
--- a/arch/arm/plat-omap/Makefile
+++ b/arch/arm/plat-omap/Makefile
@@ -18,7 +18,8 @@ obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
18obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o 18obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
19obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o 19obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
20obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o 20obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
21obj-$(CONFIG_I2C_OMAP) += i2c.o 21i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o
22obj-y += $(i2c-omap-m) $(i2c-omap-y)
22 23
23# OMAP mailbox framework 24# OMAP mailbox framework
24obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o 25obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index 0843b8882f93..6825fbb5a056 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -200,20 +200,16 @@ static struct clocksource clocksource_32k = {
200}; 200};
201 201
202/* 202/*
203 * Rounds down to nearest nsec.
204 */
205unsigned long long omap_32k_ticks_to_nsecs(unsigned long ticks_32k)
206{
207 return cyc2ns(&clocksource_32k, ticks_32k);
208}
209
210/*
211 * Returns current time from boot in nsecs. It's OK for this to wrap 203 * Returns current time from boot in nsecs. It's OK for this to wrap
212 * around for now, as it's just a relative time stamp. 204 * around for now, as it's just a relative time stamp.
213 */ 205 */
214unsigned long long sched_clock(void) 206unsigned long long sched_clock(void)
215{ 207{
216 return omap_32k_ticks_to_nsecs(omap_32k_read()); 208 unsigned long long ret;
209
210 ret = (unsigned long long)omap_32k_read();
211 ret = (ret * clocksource_32k.mult_orig) >> clocksource_32k.shift;
212 return ret;
217} 213}
218 214
219static int __init omap_init_clocksource_32k(void) 215static int __init omap_init_clocksource_32k(void)
diff --git a/arch/arm/plat-omap/include/mach/common.h b/arch/arm/plat-omap/include/mach/common.h
index ef70e2b0f054..e746ec7e785e 100644
--- a/arch/arm/plat-omap/include/mach/common.h
+++ b/arch/arm/plat-omap/include/mach/common.h
@@ -35,7 +35,7 @@ extern void omap_map_common_io(void);
35extern struct sys_timer omap_timer; 35extern struct sys_timer omap_timer;
36extern void omap_serial_init(void); 36extern void omap_serial_init(void);
37extern void omap_serial_enable_clocks(int enable); 37extern void omap_serial_enable_clocks(int enable);
38#ifdef CONFIG_I2C_OMAP 38#if defined(CONFIG_I2C_OMAP) || defined(CONFIG_I2C_OMAP_MODULE)
39extern int omap_register_i2c_bus(int bus_id, u32 clkrate, 39extern int omap_register_i2c_bus(int bus_id, u32 clkrate,
40 struct i2c_board_info const *info, 40 struct i2c_board_info const *info,
41 unsigned len); 41 unsigned len);
diff --git a/arch/arm/plat-omap/include/mach/pm.h b/arch/arm/plat-omap/include/mach/pm.h
index 2a9c27ad4c37..37e2f0f38b46 100644
--- a/arch/arm/plat-omap/include/mach/pm.h
+++ b/arch/arm/plat-omap/include/mach/pm.h
@@ -108,7 +108,7 @@
108 !defined(CONFIG_ARCH_OMAP15XX) && \ 108 !defined(CONFIG_ARCH_OMAP15XX) && \
109 !defined(CONFIG_ARCH_OMAP16XX) && \ 109 !defined(CONFIG_ARCH_OMAP16XX) && \
110 !defined(CONFIG_ARCH_OMAP24XX) 110 !defined(CONFIG_ARCH_OMAP24XX)
111#error "Power management for this processor not implemented yet" 111#warning "Power management for this processor not implemented yet"
112#endif 112#endif
113 113
114#ifndef __ASSEMBLER__ 114#ifndef __ASSEMBLER__
diff --git a/arch/arm/plat-s3c64xx/clock.c b/arch/arm/plat-s3c64xx/clock.c
index 136c982c68e1..ad1b9682c9c3 100644
--- a/arch/arm/plat-s3c64xx/clock.c
+++ b/arch/arm/plat-s3c64xx/clock.c
@@ -248,7 +248,7 @@ static struct clk *clks[] __initdata = {
248 &clk_48m, 248 &clk_48m,
249}; 249};
250 250
251void s3c64xx_register_clocks(void) 251void __init s3c64xx_register_clocks(void)
252{ 252{
253 struct clk *clkp; 253 struct clk *clkp;
254 int ret; 254 int ret;
diff --git a/arch/arm/plat-s3c64xx/gpiolib.c b/arch/arm/plat-s3c64xx/gpiolib.c
index cc62941d7b5c..ee9188add8fb 100644
--- a/arch/arm/plat-s3c64xx/gpiolib.c
+++ b/arch/arm/plat-s3c64xx/gpiolib.c
@@ -417,4 +417,4 @@ static __init int s3c64xx_gpiolib_init(void)
417 return 0; 417 return 0;
418} 418}
419 419
420arch_initcall(s3c64xx_gpiolib_init); 420core_initcall(s3c64xx_gpiolib_init);
diff --git a/arch/arm/plat-s3c64xx/include/plat/irqs.h b/arch/arm/plat-s3c64xx/include/plat/irqs.h
index 2846f550b727..f865bf4d709e 100644
--- a/arch/arm/plat-s3c64xx/include/plat/irqs.h
+++ b/arch/arm/plat-s3c64xx/include/plat/irqs.h
@@ -117,7 +117,7 @@
117#define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12) 117#define IRQ_ONENAND1 S3C64XX_IRQ_VIC1(12)
118#define IRQ_NFC S3C64XX_IRQ_VIC1(13) 118#define IRQ_NFC S3C64XX_IRQ_VIC1(13)
119#define IRQ_CFCON S3C64XX_IRQ_VIC1(14) 119#define IRQ_CFCON S3C64XX_IRQ_VIC1(14)
120#define IRQ_UHOST S3C64XX_IRQ_VIC1(15) 120#define IRQ_USBH S3C64XX_IRQ_VIC1(15)
121#define IRQ_SPI0 S3C64XX_IRQ_VIC1(16) 121#define IRQ_SPI0 S3C64XX_IRQ_VIC1(16)
122#define IRQ_SPI1 S3C64XX_IRQ_VIC1(17) 122#define IRQ_SPI1 S3C64XX_IRQ_VIC1(17)
123#define IRQ_IIC S3C64XX_IRQ_VIC1(18) 123#define IRQ_IIC S3C64XX_IRQ_VIC1(18)
diff --git a/arch/arm/plat-s3c64xx/irq-eint.c b/arch/arm/plat-s3c64xx/irq-eint.c
index ebb305ce7689..cf524826c93a 100644
--- a/arch/arm/plat-s3c64xx/irq-eint.c
+++ b/arch/arm/plat-s3c64xx/irq-eint.c
@@ -14,12 +14,15 @@
14 14
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/interrupt.h> 16#include <linux/interrupt.h>
17#include <linux/gpio.h>
17#include <linux/irq.h> 18#include <linux/irq.h>
18#include <linux/io.h> 19#include <linux/io.h>
19 20
20#include <asm/hardware/vic.h> 21#include <asm/hardware/vic.h>
21 22
22#include <plat/regs-irqtype.h> 23#include <plat/regs-irqtype.h>
24#include <plat/regs-gpio.h>
25#include <plat/gpio-cfg.h>
23 26
24#include <mach/map.h> 27#include <mach/map.h>
25#include <plat/cpu.h> 28#include <plat/cpu.h>
@@ -74,6 +77,7 @@ static void s3c_irq_eint_maskack(unsigned int irq)
74static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type) 77static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
75{ 78{
76 int offs = eint_offset(irq); 79 int offs = eint_offset(irq);
80 int pin;
77 int shift; 81 int shift;
78 u32 ctrl, mask; 82 u32 ctrl, mask;
79 u32 newvalue = 0; 83 u32 newvalue = 0;
@@ -125,6 +129,15 @@ static int s3c_irq_eint_set_type(unsigned int irq, unsigned int type)
125 ctrl |= newvalue << shift; 129 ctrl |= newvalue << shift;
126 __raw_writel(ctrl, reg); 130 __raw_writel(ctrl, reg);
127 131
132 /* set the GPIO pin appropriately */
133
134 if (offs < 23)
135 pin = S3C64XX_GPN(offs);
136 else
137 pin = S3C64XX_GPM(offs - 23);
138
139 s3c_gpio_cfgpin(pin, S3C_GPIO_SFN(2));
140
128 return 0; 141 return 0;
129} 142}
130 143
@@ -181,7 +194,7 @@ static void s3c_irq_demux_eint20_27(unsigned int irq, struct irq_desc *desc)
181 s3c_irq_demux_eint(20, 27); 194 s3c_irq_demux_eint(20, 27);
182} 195}
183 196
184int __init s3c64xx_init_irq_eint(void) 197static int __init s3c64xx_init_irq_eint(void)
185{ 198{
186 int irq; 199 int irq;
187 200
diff --git a/arch/arm/plat-s3c64xx/irq.c b/arch/arm/plat-s3c64xx/irq.c
index a94f1d5e819d..f22edf7c2d2d 100644
--- a/arch/arm/plat-s3c64xx/irq.c
+++ b/arch/arm/plat-s3c64xx/irq.c
@@ -207,7 +207,7 @@ static struct irq_chip s3c_irq_uart = {
207 207
208static void __init s3c64xx_uart_irq(struct uart_irq *uirq) 208static void __init s3c64xx_uart_irq(struct uart_irq *uirq)
209{ 209{
210 void *reg_base = uirq->regs; 210 void __iomem *reg_base = uirq->regs;
211 unsigned int irq; 211 unsigned int irq;
212 int offs; 212 int offs;
213 213
diff --git a/arch/arm/plat-s3c64xx/s3c6400-clock.c b/arch/arm/plat-s3c64xx/s3c6400-clock.c
index 8d9a0cada668..05b17528041e 100644
--- a/arch/arm/plat-s3c64xx/s3c6400-clock.c
+++ b/arch/arm/plat-s3c64xx/s3c6400-clock.c
@@ -36,7 +36,7 @@
36 * ext_xtal_mux for want of an actual name from the manual. 36 * ext_xtal_mux for want of an actual name from the manual.
37*/ 37*/
38 38
39struct clk clk_ext_xtal_mux = { 39static struct clk clk_ext_xtal_mux = {
40 .name = "ext_xtal", 40 .name = "ext_xtal",
41 .id = -1, 41 .id = -1,
42}; 42};
@@ -63,7 +63,7 @@ struct clksrc_clk {
63 void __iomem *reg_divider; 63 void __iomem *reg_divider;
64}; 64};
65 65
66struct clk clk_fout_apll = { 66static struct clk clk_fout_apll = {
67 .name = "fout_apll", 67 .name = "fout_apll",
68 .id = -1, 68 .id = -1,
69}; 69};
@@ -78,7 +78,7 @@ static struct clk_sources clk_src_apll = {
78 .nr_sources = ARRAY_SIZE(clk_src_apll_list), 78 .nr_sources = ARRAY_SIZE(clk_src_apll_list),
79}; 79};
80 80
81struct clksrc_clk clk_mout_apll = { 81static struct clksrc_clk clk_mout_apll = {
82 .clk = { 82 .clk = {
83 .name = "mout_apll", 83 .name = "mout_apll",
84 .id = -1, 84 .id = -1,
@@ -88,7 +88,7 @@ struct clksrc_clk clk_mout_apll = {
88 .sources = &clk_src_apll, 88 .sources = &clk_src_apll,
89}; 89};
90 90
91struct clk clk_fout_epll = { 91static struct clk clk_fout_epll = {
92 .name = "fout_epll", 92 .name = "fout_epll",
93 .id = -1, 93 .id = -1,
94}; 94};
@@ -103,7 +103,7 @@ static struct clk_sources clk_src_epll = {
103 .nr_sources = ARRAY_SIZE(clk_src_epll_list), 103 .nr_sources = ARRAY_SIZE(clk_src_epll_list),
104}; 104};
105 105
106struct clksrc_clk clk_mout_epll = { 106static struct clksrc_clk clk_mout_epll = {
107 .clk = { 107 .clk = {
108 .name = "mout_epll", 108 .name = "mout_epll",
109 .id = -1, 109 .id = -1,
@@ -123,7 +123,7 @@ static struct clk_sources clk_src_mpll = {
123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list), 123 .nr_sources = ARRAY_SIZE(clk_src_mpll_list),
124}; 124};
125 125
126struct clksrc_clk clk_mout_mpll = { 126static struct clksrc_clk clk_mout_mpll = {
127 .clk = { 127 .clk = {
128 .name = "mout_mpll", 128 .name = "mout_mpll",
129 .id = -1, 129 .id = -1,
@@ -145,7 +145,7 @@ static unsigned long s3c64xx_clk_doutmpll_get_rate(struct clk *clk)
145 return rate; 145 return rate;
146} 146}
147 147
148struct clk clk_dout_mpll = { 148static struct clk clk_dout_mpll = {
149 .name = "dout_mpll", 149 .name = "dout_mpll",
150 .id = -1, 150 .id = -1,
151 .parent = &clk_mout_mpll.clk, 151 .parent = &clk_mout_mpll.clk,
@@ -189,10 +189,10 @@ static struct clk_sources clkset_uart = {
189}; 189};
190 190
191static struct clk *clkset_uhost_list[] = { 191static struct clk *clkset_uhost_list[] = {
192 &clk_48m,
192 &clk_mout_epll.clk, 193 &clk_mout_epll.clk,
193 &clk_dout_mpll, 194 &clk_dout_mpll,
194 &clk_fin_epll, 195 &clk_fin_epll,
195 &clk_48m,
196}; 196};
197 197
198static struct clk_sources clkset_uhost = { 198static struct clk_sources clkset_uhost = {
@@ -239,10 +239,12 @@ static int s3c64xx_setrate_clksrc(struct clk *clk, unsigned long rate)
239 239
240 rate = clk_round_rate(clk, rate); 240 rate = clk_round_rate(clk, rate);
241 div = clk_get_rate(clk->parent) / rate; 241 div = clk_get_rate(clk->parent) / rate;
242 if (div > 16)
243 return -EINVAL;
242 244
243 val = __raw_readl(reg); 245 val = __raw_readl(reg);
244 val &= ~sclk->mask; 246 val &= ~(0xf << sclk->shift);
245 val |= (rate - 1) << sclk->shift; 247 val |= (div - 1) << sclk->shift;
246 __raw_writel(val, reg); 248 __raw_writel(val, reg);
247 249
248 return 0; 250 return 0;
@@ -351,7 +353,7 @@ static struct clksrc_clk clk_mmc2 = {
351 353
352static struct clksrc_clk clk_usbhost = { 354static struct clksrc_clk clk_usbhost = {
353 .clk = { 355 .clk = {
354 .name = "usb-host-bus", 356 .name = "usb-bus-host",
355 .id = -1, 357 .id = -1,
356 .ctrlbit = S3C_CLKCON_SCLK_UHOST, 358 .ctrlbit = S3C_CLKCON_SCLK_UHOST,
357 .enable = s3c64xx_sclk_ctrl, 359 .enable = s3c64xx_sclk_ctrl,
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
index fd23c0e9e698..b4211d8b2ac7 100644
--- a/arch/arm/tools/mach-types
+++ b/arch/arm/tools/mach-types
@@ -12,7 +12,7 @@
12# 12#
13# http://www.arm.linux.org.uk/developer/machines/?action=new 13# http://www.arm.linux.org.uk/developer/machines/?action=new
14# 14#
15# Last update: Sun Nov 30 16:39:36 2008 15# Last update: Thu Mar 12 18:01:45 2009
16# 16#
17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number 17# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
18# 18#
@@ -1811,7 +1811,7 @@ pilz_pmi5 MACH_PILZ_PMI5 PILZ_PMI5 1820
1811jade MACH_JADE JADE 1821 1811jade MACH_JADE JADE 1821
1812ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822 1812ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822
1813gprisc3 MACH_GPRISC3 GPRISC3 1823 1813gprisc3 MACH_GPRISC3 GPRISC3 1823
1814stamp9260 MACH_STAMP9260 STAMP9260 1824 1814stamp9g20 MACH_STAMP9G20 STAMP9G20 1824
1815smdk6430 MACH_SMDK6430 SMDK6430 1825 1815smdk6430 MACH_SMDK6430 SMDK6430 1825
1816smdkc100 MACH_SMDKC100 SMDKC100 1826 1816smdkc100 MACH_SMDKC100 SMDKC100 1826
1817tavorevb MACH_TAVOREVB TAVOREVB 1827 1817tavorevb MACH_TAVOREVB TAVOREVB 1827
@@ -1993,4 +1993,134 @@ spark MACH_SPARK SPARK 2002
1993benzina MACH_BENZINA BENZINA 2003 1993benzina MACH_BENZINA BENZINA 2003
1994blaze MACH_BLAZE BLAZE 2004 1994blaze MACH_BLAZE BLAZE 2004
1995linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005 1995linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005
1996htcvenus MACH_HTCVENUS HTCVENUS 2006 1996htckovsky MACH_HTCVENUS HTCVENUS 2006
1997sony_prs505 MACH_SONY_PRS505 SONY_PRS505 2007
1998hanlin_v3 MACH_HANLIN_V3 HANLIN_V3 2008
1999sapphira MACH_SAPPHIRA SAPPHIRA 2009
2000dack_sda_01 MACH_DACK_SDA_01 DACK_SDA_01 2010
2001armbox MACH_ARMBOX ARMBOX 2011
2002harris_rvp MACH_HARRIS_RVP HARRIS_RVP 2012
2003ribaldo MACH_RIBALDO RIBALDO 2013
2004agora MACH_AGORA AGORA 2014
2005omap3_mini MACH_OMAP3_MINI OMAP3_MINI 2015
2006a9sam6432_b MACH_A9SAM6432_B A9SAM6432_B 2016
2007usg2410 MACH_USG2410 USG2410 2017
2008pc72052_i10_revb MACH_PC72052_I10_REVB PC72052_I10_REVB 2018
2009mx35_exm32 MACH_MX35_EXM32 MX35_EXM32 2019
2010topas910 MACH_TOPAS910 TOPAS910 2020
2011hyena MACH_HYENA HYENA 2021
2012pospax MACH_POSPAX POSPAX 2022
2013hdl_gx MACH_HDL_GX HDL_GX 2023
2014ctera_4bay MACH_CTERA_4BAY CTERA_4BAY 2024
2015ctera_plug_c MACH_CTERA_PLUG_C CTERA_PLUG_C 2025
2016crwea_plug_i MACH_CRWEA_PLUG_I CRWEA_PLUG_I 2026
2017egauge2 MACH_EGAUGE2 EGAUGE2 2027
2018didj MACH_DIDJ DIDJ 2028
2019m_s3c2443 MACH_MEISTER MEISTER 2029
2020htcblackstone MACH_HTCBLACKSTONE HTCBLACKSTONE 2030
2021cpuat9g20 MACH_CPUAT9G20 CPUAT9G20 2031
2022smdk6440 MACH_SMDK6440 SMDK6440 2032
2023omap_35xx_mvp MACH_OMAP_35XX_MVP OMAP_35XX_MVP 2033
2024ctera_plug_i MACH_CTERA_PLUG_I CTERA_PLUG_I 2034
2025pvg610_100 MACH_PVG610 PVG610 2035
2026hprw6815 MACH_HPRW6815 HPRW6815 2036
2027omap3_oswald MACH_OMAP3_OSWALD OMAP3_OSWALD 2037
2028nas4220b MACH_NAS4220B NAS4220B 2038
2029htcraphael_cdma MACH_HTCRAPHAEL_CDMA HTCRAPHAEL_CDMA 2039
2030htcdiamond_cdma MACH_HTCDIAMOND_CDMA HTCDIAMOND_CDMA 2040
2031scaler MACH_SCALER SCALER 2041
2032zylonite2 MACH_ZYLONITE2 ZYLONITE2 2042
2033aspenite MACH_ASPENITE ASPENITE 2043
2034teton MACH_TETON TETON 2044
2035ttc_dkb MACH_TTC_DKB TTC_DKB 2045
2036bishop2 MACH_BISHOP2 BISHOP2 2046
2037ippv5 MACH_IPPV5 IPPV5 2047
2038farm926 MACH_FARM926 FARM926 2048
2039mmccpu MACH_MMCCPU MMCCPU 2049
2040sgmsfl MACH_SGMSFL SGMSFL 2050
2041tt8000 MACH_TT8000 TT8000 2051
2042zrn4300lp MACH_ZRN4300LP ZRN4300LP 2052
2043mptc MACH_MPTC MPTC 2053
2044h6051 MACH_H6051 H6051 2054
2045pvg610_101 MACH_PVG610_101 PVG610_101 2055
2046stamp9261_pc_evb MACH_STAMP9261_PC_EVB STAMP9261_PC_EVB 2056
2047pelco_odysseus MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS 2057
2048tny_a9260 MACH_TNY_A9260 TNY_A9260 2058
2049tny_a9g20 MACH_TNY_A9G20 TNY_A9G20 2059
2050aesop_mp2530f MACH_AESOP_MP2530F AESOP_MP2530F 2060
2051dx900 MACH_DX900 DX900 2061
2052cpodc2 MACH_CPODC2 CPODC2 2062
2053tilt_8925 MACH_TILT_8925 TILT_8925 2063
2054davinci_dm357_evm MACH_DAVINCI_DM357_EVM DAVINCI_DM357_EVM 2064
2055swordfish MACH_SWORDFISH SWORDFISH 2065
2056corvus MACH_CORVUS CORVUS 2066
2057taurus MACH_TAURUS TAURUS 2067
2058axm MACH_AXM AXM 2068
2059axc MACH_AXC AXC 2069
2060baby MACH_BABY BABY 2070
2061mp200 MACH_MP200 MP200 2071
2062pcm043 MACH_PCM043 PCM043 2072
2063hanlin_v3c MACH_HANLIN_V3C HANLIN_V3C 2073
2064kbk9g20 MACH_KBK9G20 KBK9G20 2074
2065adsturbog5 MACH_ADSTURBOG5 ADSTURBOG5 2075
2066avenger_lite1 MACH_AVENGER_LITE1 AVENGER_LITE1 2076
2067suc82x MACH_SUC SUC 2077
2068at91sam7s256 MACH_AT91SAM7S256 AT91SAM7S256 2078
2069mendoza MACH_MENDOZA MENDOZA 2079
2070kira MACH_KIRA KIRA 2080
2071mx1hbm MACH_MX1HBM MX1HBM 2081
2072quatro43xx MACH_QUATRO43XX QUATRO43XX 2082
2073quatro4230 MACH_QUATRO4230 QUATRO4230 2083
2074nsb400 MACH_NSB400 NSB400 2084
2075drp255 MACH_DRP255 DRP255 2085
2076thoth MACH_THOTH THOTH 2086
2077firestone MACH_FIRESTONE FIRESTONE 2087
2078asusp750 MACH_ASUSP750 ASUSP750 2088
2079ctera_dl MACH_CTERA_DL CTERA_DL 2089
2080socr MACH_SOCR SOCR 2090
2081htcoxygen MACH_HTCOXYGEN HTCOXYGEN 2091
2082heroc MACH_HEROC HEROC 2092
2083zeno6800 MACH_ZENO6800 ZENO6800 2093
2084sc2mcs MACH_SC2MCS SC2MCS 2094
2085gene100 MACH_GENE100 GENE100 2095
2086as353x MACH_AS353X AS353X 2096
2087sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097
2088at91sam9g20 MACH_AT91SAM9G20 AT91SAM9G20 2098
2089mv88f6192gtw_fe MACH_MV88F6192GTW_FE MV88F6192GTW_FE 2099
2090cc9200 MACH_CC9200 CC9200 2100
2091sm9200 MACH_SM9200 SM9200 2101
2092tp9200 MACH_TP9200 TP9200 2102
2093snapperdv MACH_SNAPPERDV SNAPPERDV 2103
2094avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104
2095avengers_lite1 MACH_AVENGERS_LITE1 AVENGERS_LITE1 2105
2096omap3axon MACH_OMAP3AXON OMAP3AXON 2106
2097ma8xx MACH_MA8XX MA8XX 2107
2098mp201ek MACH_MP201EK MP201EK 2108
2099davinci_tux MACH_DAVINCI_TUX DAVINCI_TUX 2109
2100mpa1600 MACH_MPA1600 MPA1600 2110
2101pelco_troy MACH_PELCO_TROY PELCO_TROY 2111
2102nsb667 MACH_NSB667 NSB667 2112
2103rovers5_4mpix MACH_ROVERS5_4MPIX ROVERS5_4MPIX 2113
2104twocom MACH_TWOCOM TWOCOM 2114
2105ubisys_p9_rcu3r2 MACH_UBISYS_P9_RCU3R2 UBISYS_P9_RCU3R2 2115
2106hero_espresso MACH_HERO_ESPRESSO HERO_ESPRESSO 2116
2107afeusb MACH_AFEUSB AFEUSB 2117
2108t830 MACH_T830 T830 2118
2109spd8020_cc MACH_SPD8020_CC SPD8020_CC 2119
2110om_3d7k MACH_OM_3D7K OM_3D7K 2120
2111picocom2 MACH_PICOCOM2 PICOCOM2 2121
2112uwg4mx27 MACH_UWG4MX27 UWG4MX27 2122
2113uwg4mx31 MACH_UWG4MX31 UWG4MX31 2123
2114cherry MACH_CHERRY CHERRY 2124
2115mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125
2116s3c2440turkiye MACH_S3C2440TURKIYE S3C2440TURKIYE 2126
2117tx37 MACH_TX37 TX37 2127
2118sbc2800_9g20 MACH_SBC2800_9G20 SBC2800_9G20 2128
2119benzglb MACH_BENZGLB BENZGLB 2129
2120benztd MACH_BENZTD BENZTD 2130
2121cartesio_plus MACH_CARTESIO_PLUS CARTESIO_PLUS 2131
2122solrad_g20 MACH_SOLRAD_G20 SOLRAD_G20 2132
2123mx27wallace MACH_MX27WALLACE MX27WALLACE 2133
2124fmzwebmodul MACH_FMZWEBMODUL FMZWEBMODUL 2134
2125rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135
2126smallogger MACH_SMALLOGGER SMALLOGGER 2136
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index e61465a18c7e..206cb7953b0c 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -238,8 +238,12 @@ config MIPS_SIM
238 This option enables support for MIPS Technologies MIPSsim software 238 This option enables support for MIPS Technologies MIPSsim software
239 emulator. 239 emulator.
240 240
241config MACH_EMMA 241config NEC_MARKEINS
242 bool "NEC EMMA series based machines" 242 bool "NEC EMMA2RH Mark-eins board"
243 select SOC_EMMA2RH
244 select HW_HAS_PCI
245 help
246 This enables support for the NEC Electronics Mark-eins boards.
243 247
244config MACH_VR41XX 248config MACH_VR41XX
245 bool "NEC VR4100 series based machines" 249 bool "NEC VR4100 series based machines"
@@ -637,7 +641,6 @@ endchoice
637 641
638source "arch/mips/alchemy/Kconfig" 642source "arch/mips/alchemy/Kconfig"
639source "arch/mips/basler/excite/Kconfig" 643source "arch/mips/basler/excite/Kconfig"
640source "arch/mips/emma/Kconfig"
641source "arch/mips/jazz/Kconfig" 644source "arch/mips/jazz/Kconfig"
642source "arch/mips/lasat/Kconfig" 645source "arch/mips/lasat/Kconfig"
643source "arch/mips/pmc-sierra/Kconfig" 646source "arch/mips/pmc-sierra/Kconfig"
@@ -895,6 +898,18 @@ config MIPS_RM9122
895 bool 898 bool
896 select SERIAL_RM9000 899 select SERIAL_RM9000
897 900
901config SOC_EMMA2RH
902 bool
903 select CEVT_R4K
904 select CSRC_R4K
905 select DMA_NONCOHERENT
906 select IRQ_CPU
907 select SWAP_IO_SPACE
908 select SYS_HAS_CPU_R5500
909 select SYS_SUPPORTS_32BIT_KERNEL
910 select SYS_SUPPORTS_64BIT_KERNEL
911 select SYS_SUPPORTS_BIG_ENDIAN
912
898config SOC_PNX833X 913config SOC_PNX833X
899 bool 914 bool
900 select CEVT_R4K 915 select CEVT_R4K
@@ -930,11 +945,6 @@ config SOC_PNX8550
930config SWAP_IO_SPACE 945config SWAP_IO_SPACE
931 bool 946 bool
932 947
933config EMMA2RH
934 bool
935 depends on MARKEINS
936 default y
937
938config SERIAL_RM9000 948config SERIAL_RM9000
939 bool 949 bool
940 950
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 21b00e95daef..22dab2e14348 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -416,7 +416,7 @@ load-$(CONFIG_PNX8550_STB810) += 0xffffffff80060000
416# 416#
417# Common NEC EMMAXXX 417# Common NEC EMMAXXX
418# 418#
419core-$(CONFIG_SOC_EMMA) += arch/mips/emma/common/ 419core-$(CONFIG_SOC_EMMA2RH) += arch/mips/emma/common/
420cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh 420cflags-$(CONFIG_SOC_EMMA2RH) += -I$(srctree)/arch/mips/include/asm/mach-emma2rh
421 421
422# 422#
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/markeins_defconfig
index fea9bc9865a3..bad8901f8f3c 100644
--- a/arch/mips/configs/emma2rh_defconfig
+++ b/arch/mips/configs/markeins_defconfig
@@ -35,7 +35,7 @@ CONFIG_ZONE_DMA=y
35# CONFIG_PNX8550_STB810 is not set 35# CONFIG_PNX8550_STB810 is not set
36# CONFIG_MACH_VR41XX is not set 36# CONFIG_MACH_VR41XX is not set
37# CONFIG_PMC_YOSEMITE is not set 37# CONFIG_PMC_YOSEMITE is not set
38CONFIG_MARKEINS=y 38CONFIG_NEC_MARKEINS=y
39# CONFIG_SGI_IP22 is not set 39# CONFIG_SGI_IP22 is not set
40# CONFIG_SGI_IP27 is not set 40# CONFIG_SGI_IP27 is not set
41# CONFIG_SGI_IP32 is not set 41# CONFIG_SGI_IP32 is not set
@@ -68,7 +68,7 @@ CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 68CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
69CONFIG_IRQ_CPU=y 69CONFIG_IRQ_CPU=y
70CONFIG_SWAP_IO_SPACE=y 70CONFIG_SWAP_IO_SPACE=y
71CONFIG_EMMA2RH=y 71CONFIG_SOC_EMMA2RH=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 72CONFIG_MIPS_L1_CACHE_SHIFT=5
73 73
74# 74#
@@ -574,9 +574,9 @@ CONFIG_MTD_CFI_UTIL=y
574# 574#
575# CONFIG_MTD_COMPLEX_MAPPINGS is not set 575# CONFIG_MTD_COMPLEX_MAPPINGS is not set
576CONFIG_MTD_PHYSMAP=y 576CONFIG_MTD_PHYSMAP=y
577CONFIG_MTD_PHYSMAP_START=0x1e000000 577CONFIG_MTD_PHYSMAP_START=0x0
578CONFIG_MTD_PHYSMAP_LEN=0x02000000 578CONFIG_MTD_PHYSMAP_LEN=0x0
579CONFIG_MTD_PHYSMAP_BANKWIDTH=2 579CONFIG_MTD_PHYSMAP_BANKWIDTH=0
580# CONFIG_MTD_PLATRAM is not set 580# CONFIG_MTD_PLATRAM is not set
581 581
582# 582#
diff --git a/arch/mips/emma/Kconfig b/arch/mips/emma/Kconfig
deleted file mode 100644
index 9669c72123c9..000000000000
--- a/arch/mips/emma/Kconfig
+++ /dev/null
@@ -1,29 +0,0 @@
1choice
2 prompt "Machine type"
3 depends on MACH_EMMA
4 default NEC_MARKEINS
5
6config NEC_MARKEINS
7 bool "NEC EMMA2RH Mark-eins board"
8 select SOC_EMMA2RH
9 select HW_HAS_PCI
10 help
11 This enables support for the NEC Electronics Mark-eins boards.
12
13endchoice
14
15config SOC_EMMA2RH
16 bool
17 select SOC_EMMA
18 select SYS_HAS_CPU_R5500
19 select SYS_SUPPORTS_32BIT_KERNEL
20 select SYS_SUPPORTS_64BIT_KERNEL
21
22config SOC_EMMA
23 bool
24 select CEVT_R4K
25 select CSRC_R4K
26 select DMA_NONCOHERENT
27 select IRQ_CPU
28 select SWAP_IO_SPACE
29 select SYS_SUPPORTS_BIG_ENDIAN
diff --git a/arch/mips/emma/markeins/platform.c b/arch/mips/emma/markeins/platform.c
index 88e87f6b3442..d5f47e4f0d18 100644
--- a/arch/mips/emma/markeins/platform.c
+++ b/arch/mips/emma/markeins/platform.c
@@ -141,13 +141,6 @@ static struct platform_device serial_emma = {
141 }, 141 },
142}; 142};
143 143
144static struct platform_device *devices[] = {
145 &i2c_emma_devices[0],
146 &i2c_emma_devices[1],
147 &i2c_emma_devices[2],
148 &serial_emma,
149};
150
151static struct mtd_partition markeins_parts[] = { 144static struct mtd_partition markeins_parts[] = {
152 [0] = { 145 [0] = {
153 .name = "RootFS", 146 .name = "RootFS",
@@ -181,11 +174,39 @@ static struct mtd_partition markeins_parts[] = {
181 }, 174 },
182}; 175};
183 176
177static struct physmap_flash_data markeins_flash_data = {
178 .width = 2,
179 .nr_parts = ARRAY_SIZE(markeins_parts),
180 .parts = markeins_parts
181};
182
183static struct resource markeins_flash_resource = {
184 .start = 0x1e000000,
185 .end = 0x02000000,
186 .flags = IORESOURCE_MEM
187};
188
189static struct platform_device markeins_flash_device = {
190 .name = "physmap-flash",
191 .id = 0,
192 .dev = {
193 .platform_data = &markeins_flash_data,
194 },
195 .num_resources = 1,
196 .resource = &markeins_flash_resource,
197};
198
199static struct platform_device *devices[] = {
200 i2c_emma_devices,
201 i2c_emma_devices + 1,
202 i2c_emma_devices + 2,
203 &serial_emma,
204 &markeins_flash_device,
205};
206
184static int __init platform_devices_setup(void) 207static int __init platform_devices_setup(void)
185{ 208{
186 physmap_set_partitions(markeins_parts, ARRAY_SIZE(markeins_parts));
187 return platform_add_devices(devices, ARRAY_SIZE(devices)); 209 return platform_add_devices(devices, ARRAY_SIZE(devices));
188} 210}
189 211
190arch_initcall(platform_devices_setup); 212arch_initcall(platform_devices_setup);
191
diff --git a/arch/mips/include/asm/seccomp.h b/arch/mips/include/asm/seccomp.h
index a6772e9507f5..ae6306ebdcad 100644
--- a/arch/mips/include/asm/seccomp.h
+++ b/arch/mips/include/asm/seccomp.h
@@ -15,8 +15,6 @@
15 */ 15 */
16#ifdef CONFIG_MIPS32_O32 16#ifdef CONFIG_MIPS32_O32
17 17
18#define TIF_32BIT TIF_32BIT_REGS
19
20#define __NR_seccomp_read_32 4003 18#define __NR_seccomp_read_32 4003
21#define __NR_seccomp_write_32 4004 19#define __NR_seccomp_write_32 4004
22#define __NR_seccomp_exit_32 4001 20#define __NR_seccomp_exit_32 4001
@@ -24,8 +22,6 @@
24 22
25#elif defined(CONFIG_MIPS32_N32) 23#elif defined(CONFIG_MIPS32_N32)
26 24
27#define TIF_32BIT _TIF_32BIT_ADDR
28
29#define __NR_seccomp_read_32 6000 25#define __NR_seccomp_read_32 6000
30#define __NR_seccomp_write_32 6001 26#define __NR_seccomp_write_32 6001
31#define __NR_seccomp_exit_32 6058 27#define __NR_seccomp_exit_32 6058
diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
index 3f76de73c943..676aa2ae1913 100644
--- a/arch/mips/include/asm/thread_info.h
+++ b/arch/mips/include/asm/thread_info.h
@@ -127,6 +127,12 @@ register struct thread_info *__current_thread_info __asm__("$28");
127#define TIF_LOAD_WATCH 25 /* If set, load watch registers */ 127#define TIF_LOAD_WATCH 25 /* If set, load watch registers */
128#define TIF_SYSCALL_TRACE 31 /* syscall trace active */ 128#define TIF_SYSCALL_TRACE 31 /* syscall trace active */
129 129
130#ifdef CONFIG_MIPS32_O32
131#define TIF_32BIT TIF_32BIT_REGS
132#elif defined(CONFIG_MIPS32_N32)
133#define TIF_32BIT _TIF_32BIT_ADDR
134#endif /* CONFIG_MIPS32_O32 */
135
130#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) 136#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
131#define _TIF_SIGPENDING (1<<TIF_SIGPENDING) 137#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
132#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) 138#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
diff --git a/arch/parisc/configs/712_defconfig b/arch/parisc/configs/712_defconfig
index 9fc96e727165..bf34a28895fa 100644
--- a/arch/parisc/configs/712_defconfig
+++ b/arch/parisc/configs/712_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 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:00:07 2007 4# Fri Mar 13 01:32:55 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,17 +33,35 @@ CONFIG_SYSVIPC_SYSCTL=y
33CONFIG_POSIX_MQUEUE=y 33CONFIG_POSIX_MQUEUE=y
34# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
35# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
36# CONFIG_USER_NS is not set
37# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
38CONFIG_IKCONFIG=y 46CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 47CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=16 48CONFIG_LOG_BUF_SHIFT=16
49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
41CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
42# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59# CONFIG_NET_NS is not set
43CONFIG_BLK_DEV_INITRD=y 60CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y 63CONFIG_SYSCTL=y
64CONFIG_ANON_INODES=y
47# CONFIG_EMBEDDED is not set 65# CONFIG_EMBEDDED is not set
48CONFIG_SYSCTL_SYSCALL=y 66CONFIG_SYSCTL_SYSCALL=y
49CONFIG_KALLSYMS=y 67CONFIG_KALLSYMS=y
@@ -55,29 +73,38 @@ CONFIG_BUG=y
55CONFIG_ELF_CORE=y 73CONFIG_ELF_CORE=y
56CONFIG_BASE_FULL=y 74CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y 75CONFIG_FUTEX=y
58CONFIG_ANON_INODES=y
59CONFIG_EPOLL=y 76CONFIG_EPOLL=y
60CONFIG_SIGNALFD=y 77CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
61CONFIG_EVENTFD=y 79CONFIG_EVENTFD=y
62CONFIG_SHMEM=y 80CONFIG_SHMEM=y
81CONFIG_AIO=y
63CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_COMPAT_BRK=y
64CONFIG_SLAB=y 84CONFIG_SLAB=y
65# CONFIG_SLUB is not set 85# CONFIG_SLUB is not set
66# CONFIG_SLOB is not set 86# CONFIG_SLOB is not set
87CONFIG_PROFILING=y
88CONFIG_TRACEPOINTS=y
89# CONFIG_MARKERS is not set
90CONFIG_OPROFILE=m
91CONFIG_HAVE_OPROFILE=y
92# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
93CONFIG_SLABINFO=y
67CONFIG_RT_MUTEXES=y 94CONFIG_RT_MUTEXES=y
68# CONFIG_TINY_SHMEM is not set
69CONFIG_BASE_SMALL=0 95CONFIG_BASE_SMALL=0
70CONFIG_MODULES=y 96CONFIG_MODULES=y
97# CONFIG_MODULE_FORCE_LOAD is not set
71CONFIG_MODULE_UNLOAD=y 98CONFIG_MODULE_UNLOAD=y
72CONFIG_MODULE_FORCE_UNLOAD=y 99CONFIG_MODULE_FORCE_UNLOAD=y
73# CONFIG_MODVERSIONS is not set 100# CONFIG_MODVERSIONS is not set
74# CONFIG_MODULE_SRCVERSION_ALL is not set 101# CONFIG_MODULE_SRCVERSION_ALL is not set
75CONFIG_KMOD=y 102CONFIG_INIT_ALL_POSSIBLE=y
76CONFIG_BLOCK=y 103CONFIG_BLOCK=y
77# CONFIG_LBD is not set 104# CONFIG_LBD is not set
78# CONFIG_BLK_DEV_IO_TRACE is not set 105# CONFIG_BLK_DEV_IO_TRACE is not set
79# CONFIG_LSF is not set
80# CONFIG_BLK_DEV_BSG is not set 106# CONFIG_BLK_DEV_BSG is not set
107# CONFIG_BLK_DEV_INTEGRITY is not set
81 108
82# 109#
83# IO Schedulers 110# IO Schedulers
@@ -91,6 +118,7 @@ CONFIG_DEFAULT_AS=y
91# CONFIG_DEFAULT_CFQ is not set 118# CONFIG_DEFAULT_CFQ is not set
92# CONFIG_DEFAULT_NOOP is not set 119# CONFIG_DEFAULT_NOOP is not set
93CONFIG_DEFAULT_IOSCHED="anticipatory" 120CONFIG_DEFAULT_IOSCHED="anticipatory"
121# CONFIG_FREEZER is not set
94 122
95# 123#
96# Processor type and features 124# Processor type and features
@@ -114,17 +142,19 @@ CONFIG_HZ_250=y
114# CONFIG_HZ_300 is not set 142# CONFIG_HZ_300 is not set
115# CONFIG_HZ_1000 is not set 143# CONFIG_HZ_1000 is not set
116CONFIG_HZ=250 144CONFIG_HZ=250
145# CONFIG_SCHED_HRTICK is not set
117CONFIG_SELECT_MEMORY_MODEL=y 146CONFIG_SELECT_MEMORY_MODEL=y
118CONFIG_FLATMEM_MANUAL=y 147CONFIG_FLATMEM_MANUAL=y
119# CONFIG_DISCONTIGMEM_MANUAL is not set 148# CONFIG_DISCONTIGMEM_MANUAL is not set
120# CONFIG_SPARSEMEM_MANUAL is not set 149# CONFIG_SPARSEMEM_MANUAL is not set
121CONFIG_FLATMEM=y 150CONFIG_FLATMEM=y
122CONFIG_FLAT_NODE_MEM_MAP=y 151CONFIG_FLAT_NODE_MEM_MAP=y
123# CONFIG_SPARSEMEM_STATIC is not set 152CONFIG_PAGEFLAGS_EXTENDED=y
124CONFIG_SPLIT_PTLOCK_CPUS=4096 153CONFIG_SPLIT_PTLOCK_CPUS=4096
125# CONFIG_RESOURCES_64BIT is not set 154# CONFIG_PHYS_ADDR_T_64BIT is not set
126CONFIG_ZONE_DMA_FLAG=0 155CONFIG_ZONE_DMA_FLAG=0
127CONFIG_VIRT_TO_BUS=y 156CONFIG_VIRT_TO_BUS=y
157CONFIG_UNEVICTABLE_LRU=y
128# CONFIG_HPUX is not set 158# CONFIG_HPUX is not set
129 159
130# 160#
@@ -138,10 +168,6 @@ CONFIG_GSC_LASI=y
138# CONFIG_EISA is not set 168# CONFIG_EISA is not set
139# CONFIG_PCI is not set 169# CONFIG_PCI is not set
140# CONFIG_ARCH_SUPPORTS_MSI is not set 170# CONFIG_ARCH_SUPPORTS_MSI is not set
141
142#
143# PCCARD (PCMCIA/CardBus) support
144#
145# CONFIG_PCCARD is not set 171# CONFIG_PCCARD is not set
146 172
147# 173#
@@ -156,16 +182,15 @@ CONFIG_PDC_STABLE=y
156# Executable file formats 182# Executable file formats
157# 183#
158CONFIG_BINFMT_ELF=y 184CONFIG_BINFMT_ELF=y
185# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
186# CONFIG_HAVE_AOUT is not set
159CONFIG_BINFMT_MISC=m 187CONFIG_BINFMT_MISC=m
160
161#
162# Networking
163#
164CONFIG_NET=y 188CONFIG_NET=y
165 189
166# 190#
167# Networking options 191# Networking options
168# 192#
193CONFIG_COMPAT_NET_DEV_OPS=y
169CONFIG_PACKET=y 194CONFIG_PACKET=y
170CONFIG_PACKET_MMAP=y 195CONFIG_PACKET_MMAP=y
171CONFIG_UNIX=y 196CONFIG_UNIX=y
@@ -173,6 +198,7 @@ CONFIG_XFRM=y
173CONFIG_XFRM_USER=m 198CONFIG_XFRM_USER=m
174# CONFIG_XFRM_SUB_POLICY is not set 199# CONFIG_XFRM_SUB_POLICY is not set
175# CONFIG_XFRM_MIGRATE is not set 200# CONFIG_XFRM_MIGRATE is not set
201# CONFIG_XFRM_STATISTICS is not set
176CONFIG_NET_KEY=m 202CONFIG_NET_KEY=m
177# CONFIG_NET_KEY_MIGRATE is not set 203# CONFIG_NET_KEY_MIGRATE is not set
178CONFIG_INET=y 204CONFIG_INET=y
@@ -203,25 +229,25 @@ CONFIG_INET_TCP_DIAG=m
203CONFIG_TCP_CONG_CUBIC=y 229CONFIG_TCP_CONG_CUBIC=y
204CONFIG_DEFAULT_TCP_CONG="cubic" 230CONFIG_DEFAULT_TCP_CONG="cubic"
205# CONFIG_TCP_MD5SIG is not set 231# CONFIG_TCP_MD5SIG is not set
206# CONFIG_IP_VS is not set
207# CONFIG_IPV6 is not set 232# CONFIG_IPV6 is not set
208# CONFIG_INET6_XFRM_TUNNEL is not set
209# CONFIG_INET6_TUNNEL is not set
210# CONFIG_NETWORK_SECMARK is not set 233# CONFIG_NETWORK_SECMARK is not set
211CONFIG_NETFILTER=y 234CONFIG_NETFILTER=y
212# CONFIG_NETFILTER_DEBUG is not set 235# CONFIG_NETFILTER_DEBUG is not set
236CONFIG_NETFILTER_ADVANCED=y
213 237
214# 238#
215# Core Netfilter Configuration 239# Core Netfilter Configuration
216# 240#
217# CONFIG_NETFILTER_NETLINK is not set 241# CONFIG_NETFILTER_NETLINK_QUEUE is not set
218# CONFIG_NF_CONNTRACK_ENABLED is not set 242# CONFIG_NETFILTER_NETLINK_LOG is not set
219# CONFIG_NF_CONNTRACK is not set 243# CONFIG_NF_CONNTRACK is not set
220# CONFIG_NETFILTER_XTABLES is not set 244# CONFIG_NETFILTER_XTABLES is not set
245# CONFIG_IP_VS is not set
221 246
222# 247#
223# IP: Netfilter Configuration 248# IP: Netfilter Configuration
224# 249#
250# CONFIG_NF_DEFRAG_IPV4 is not set
225CONFIG_IP_NF_QUEUE=m 251CONFIG_IP_NF_QUEUE=m
226# CONFIG_IP_NF_IPTABLES is not set 252# CONFIG_IP_NF_IPTABLES is not set
227# CONFIG_IP_NF_ARPTABLES is not set 253# CONFIG_IP_NF_ARPTABLES is not set
@@ -230,6 +256,7 @@ CONFIG_IP_NF_QUEUE=m
230# CONFIG_TIPC is not set 256# CONFIG_TIPC is not set
231# CONFIG_ATM is not set 257# CONFIG_ATM is not set
232# CONFIG_BRIDGE is not set 258# CONFIG_BRIDGE is not set
259# CONFIG_NET_DSA is not set
233# CONFIG_VLAN_8021Q is not set 260# CONFIG_VLAN_8021Q is not set
234# CONFIG_DECNET is not set 261# CONFIG_DECNET is not set
235CONFIG_LLC=m 262CONFIG_LLC=m
@@ -240,28 +267,26 @@ CONFIG_LLC2=m
240# CONFIG_LAPB is not set 267# CONFIG_LAPB is not set
241# CONFIG_ECONET is not set 268# CONFIG_ECONET is not set
242# CONFIG_WAN_ROUTER is not set 269# CONFIG_WAN_ROUTER is not set
243
244#
245# QoS and/or fair queueing
246#
247# CONFIG_NET_SCHED is not set 270# CONFIG_NET_SCHED is not set
271# CONFIG_DCB is not set
248 272
249# 273#
250# Network testing 274# Network testing
251# 275#
252CONFIG_NET_PKTGEN=m 276CONFIG_NET_PKTGEN=m
253# CONFIG_HAMRADIO is not set 277# CONFIG_HAMRADIO is not set
278# CONFIG_CAN is not set
254# CONFIG_IRDA is not set 279# CONFIG_IRDA is not set
255# CONFIG_BT is not set 280# CONFIG_BT is not set
256# CONFIG_AF_RXRPC is not set 281# CONFIG_AF_RXRPC is not set
257 282# CONFIG_PHONET is not set
258# 283CONFIG_WIRELESS=y
259# Wireless
260#
261# CONFIG_CFG80211 is not set 284# CONFIG_CFG80211 is not set
285CONFIG_WIRELESS_OLD_REGULATORY=y
262# CONFIG_WIRELESS_EXT is not set 286# CONFIG_WIRELESS_EXT is not set
287# CONFIG_LIB80211 is not set
263# CONFIG_MAC80211 is not set 288# CONFIG_MAC80211 is not set
264# CONFIG_IEEE80211 is not set 289# CONFIG_WIMAX is not set
265# CONFIG_RFKILL is not set 290# CONFIG_RFKILL is not set
266# CONFIG_NET_9P is not set 291# CONFIG_NET_9P is not set
267 292
@@ -276,6 +301,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
276# CONFIG_STANDALONE is not set 301# CONFIG_STANDALONE is not set
277# CONFIG_PREVENT_FIRMWARE_BUILD is not set 302# CONFIG_PREVENT_FIRMWARE_BUILD is not set
278CONFIG_FW_LOADER=y 303CONFIG_FW_LOADER=y
304CONFIG_FIRMWARE_IN_KERNEL=y
305CONFIG_EXTRA_FIRMWARE=""
279# CONFIG_DEBUG_DRIVER is not set 306# CONFIG_DEBUG_DRIVER is not set
280# CONFIG_DEBUG_DEVRES is not set 307# CONFIG_DEBUG_DEVRES is not set
281# CONFIG_SYS_HYPERVISOR is not set 308# CONFIG_SYS_HYPERVISOR is not set
@@ -298,11 +325,19 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y
298CONFIG_BLK_DEV_RAM=y 325CONFIG_BLK_DEV_RAM=y
299CONFIG_BLK_DEV_RAM_COUNT=16 326CONFIG_BLK_DEV_RAM_COUNT=16
300CONFIG_BLK_DEV_RAM_SIZE=6144 327CONFIG_BLK_DEV_RAM_SIZE=6144
301CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 328# CONFIG_BLK_DEV_XIP is not set
302# CONFIG_CDROM_PKTCDVD is not set 329# CONFIG_CDROM_PKTCDVD is not set
303CONFIG_ATA_OVER_ETH=m 330CONFIG_ATA_OVER_ETH=m
331# CONFIG_BLK_DEV_HD is not set
304CONFIG_MISC_DEVICES=y 332CONFIG_MISC_DEVICES=y
333# CONFIG_ENCLOSURE_SERVICES is not set
334# CONFIG_C2PORT is not set
335
336#
337# EEPROM support
338#
305# CONFIG_EEPROM_93CX6 is not set 339# CONFIG_EEPROM_93CX6 is not set
340CONFIG_HAVE_IDE=y
306# CONFIG_IDE is not set 341# CONFIG_IDE is not set
307 342
308# 343#
@@ -342,14 +377,17 @@ CONFIG_SCSI_SPI_ATTRS=y
342# CONFIG_SCSI_FC_ATTRS is not set 377# CONFIG_SCSI_FC_ATTRS is not set
343CONFIG_SCSI_ISCSI_ATTRS=m 378CONFIG_SCSI_ISCSI_ATTRS=m
344# CONFIG_SCSI_SAS_LIBSAS is not set 379# CONFIG_SCSI_SAS_LIBSAS is not set
380# CONFIG_SCSI_SRP_ATTRS is not set
345CONFIG_SCSI_LOWLEVEL=y 381CONFIG_SCSI_LOWLEVEL=y
346# CONFIG_ISCSI_TCP is not set 382# CONFIG_ISCSI_TCP is not set
383# CONFIG_LIBFC is not set
347# CONFIG_SCSI_PPA is not set 384# CONFIG_SCSI_PPA is not set
348# CONFIG_SCSI_IMM is not set 385# CONFIG_SCSI_IMM is not set
349CONFIG_SCSI_LASI700=y 386CONFIG_SCSI_LASI700=y
350CONFIG_53C700_LE_ON_BE=y 387CONFIG_53C700_LE_ON_BE=y
351# CONFIG_SCSI_ZALON is not set 388# CONFIG_SCSI_ZALON is not set
352CONFIG_SCSI_DEBUG=m 389CONFIG_SCSI_DEBUG=m
390# CONFIG_SCSI_DH is not set
353# CONFIG_ATA is not set 391# CONFIG_ATA is not set
354CONFIG_MD=y 392CONFIG_MD=y
355CONFIG_BLK_DEV_MD=m 393CONFIG_BLK_DEV_MD=m
@@ -362,7 +400,6 @@ CONFIG_MD_RAID1=m
362# CONFIG_MD_FAULTY is not set 400# CONFIG_MD_FAULTY is not set
363# CONFIG_BLK_DEV_DM is not set 401# CONFIG_BLK_DEV_DM is not set
364CONFIG_NETDEVICES=y 402CONFIG_NETDEVICES=y
365# CONFIG_NETDEVICES_MULTIQUEUE is not set
366CONFIG_DUMMY=m 403CONFIG_DUMMY=m
367CONFIG_BONDING=m 404CONFIG_BONDING=m
368# CONFIG_MACVLAN is not set 405# CONFIG_MACVLAN is not set
@@ -377,6 +414,9 @@ CONFIG_LASI_82596=y
377# CONFIG_IBM_NEW_EMAC_RGMII is not set 414# CONFIG_IBM_NEW_EMAC_RGMII is not set
378# CONFIG_IBM_NEW_EMAC_TAH is not set 415# CONFIG_IBM_NEW_EMAC_TAH is not set
379# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 416# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
417# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
418# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
419# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
380# CONFIG_B44 is not set 420# CONFIG_B44 is not set
381# CONFIG_NET_POCKET is not set 421# CONFIG_NET_POCKET is not set
382CONFIG_NETDEV_1000=y 422CONFIG_NETDEV_1000=y
@@ -387,6 +427,11 @@ CONFIG_NETDEV_10000=y
387# 427#
388# CONFIG_WLAN_PRE80211 is not set 428# CONFIG_WLAN_PRE80211 is not set
389# CONFIG_WLAN_80211 is not set 429# CONFIG_WLAN_80211 is not set
430# CONFIG_IWLWIFI_LEDS is not set
431
432#
433# Enable WiMAX (Networking options) to see the WiMAX drivers
434#
390# CONFIG_WAN is not set 435# CONFIG_WAN is not set
391# CONFIG_PLIP is not set 436# CONFIG_PLIP is not set
392CONFIG_PPP=m 437CONFIG_PPP=m
@@ -401,7 +446,6 @@ CONFIG_PPPOE=m
401# CONFIG_PPPOL2TP is not set 446# CONFIG_PPPOL2TP is not set
402# CONFIG_SLIP is not set 447# CONFIG_SLIP is not set
403CONFIG_SLHC=m 448CONFIG_SLHC=m
404# CONFIG_SHAPER is not set
405# CONFIG_NETCONSOLE is not set 449# CONFIG_NETCONSOLE is not set
406# CONFIG_NETPOLL is not set 450# CONFIG_NETPOLL is not set
407# CONFIG_NET_POLL_CONTROLLER is not set 451# CONFIG_NET_POLL_CONTROLLER is not set
@@ -423,7 +467,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
423CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 467CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
424CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 468CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
425# CONFIG_INPUT_JOYDEV is not set 469# CONFIG_INPUT_JOYDEV is not set
426# CONFIG_INPUT_TSDEV is not set
427# CONFIG_INPUT_EVDEV is not set 470# CONFIG_INPUT_EVDEV is not set
428# CONFIG_INPUT_EVBUG is not set 471# CONFIG_INPUT_EVBUG is not set
429 472
@@ -446,8 +489,8 @@ CONFIG_MOUSE_PS2=y
446CONFIG_MOUSE_PS2_ALPS=y 489CONFIG_MOUSE_PS2_ALPS=y
447CONFIG_MOUSE_PS2_LOGIPS2PP=y 490CONFIG_MOUSE_PS2_LOGIPS2PP=y
448CONFIG_MOUSE_PS2_SYNAPTICS=y 491CONFIG_MOUSE_PS2_SYNAPTICS=y
449CONFIG_MOUSE_PS2_LIFEBOOK=y
450CONFIG_MOUSE_PS2_TRACKPOINT=y 492CONFIG_MOUSE_PS2_TRACKPOINT=y
493# CONFIG_MOUSE_PS2_ELANTECH is not set
451# CONFIG_MOUSE_PS2_TOUCHKIT is not set 494# CONFIG_MOUSE_PS2_TOUCHKIT is not set
452CONFIG_MOUSE_SERIAL=m 495CONFIG_MOUSE_SERIAL=m
453# CONFIG_MOUSE_VSXXXAA is not set 496# CONFIG_MOUSE_VSXXXAA is not set
@@ -474,9 +517,11 @@ CONFIG_SERIO_LIBPS2=y
474# Character devices 517# Character devices
475# 518#
476CONFIG_VT=y 519CONFIG_VT=y
520CONFIG_CONSOLE_TRANSLATIONS=y
477CONFIG_VT_CONSOLE=y 521CONFIG_VT_CONSOLE=y
478CONFIG_HW_CONSOLE=y 522CONFIG_HW_CONSOLE=y
479# CONFIG_VT_HW_CONSOLE_BINDING is not set 523# CONFIG_VT_HW_CONSOLE_BINDING is not set
524CONFIG_DEVKMEM=y
480# CONFIG_SERIAL_NONSTANDARD is not set 525# CONFIG_SERIAL_NONSTANDARD is not set
481 526
482# 527#
@@ -501,72 +546,76 @@ CONFIG_PDC_CONSOLE=y
501CONFIG_SERIAL_CORE=y 546CONFIG_SERIAL_CORE=y
502CONFIG_SERIAL_CORE_CONSOLE=y 547CONFIG_SERIAL_CORE_CONSOLE=y
503CONFIG_UNIX98_PTYS=y 548CONFIG_UNIX98_PTYS=y
549# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
504CONFIG_LEGACY_PTYS=y 550CONFIG_LEGACY_PTYS=y
505CONFIG_LEGACY_PTY_COUNT=64 551CONFIG_LEGACY_PTY_COUNT=64
506CONFIG_PRINTER=m 552CONFIG_PRINTER=m
507# CONFIG_LP_CONSOLE is not set 553# CONFIG_LP_CONSOLE is not set
508CONFIG_PPDEV=m 554CONFIG_PPDEV=m
509# CONFIG_TIPAR is not set
510# CONFIG_IPMI_HANDLER is not set 555# CONFIG_IPMI_HANDLER is not set
511# CONFIG_WATCHDOG is not set
512# CONFIG_HW_RANDOM is not set 556# CONFIG_HW_RANDOM is not set
513CONFIG_GEN_RTC=y
514CONFIG_GEN_RTC_X=y
515# CONFIG_R3964 is not set 557# CONFIG_R3964 is not set
516CONFIG_RAW_DRIVER=y 558CONFIG_RAW_DRIVER=y
517CONFIG_MAX_RAW_DEVS=256 559CONFIG_MAX_RAW_DEVS=256
518# CONFIG_TCG_TPM is not set 560# CONFIG_TCG_TPM is not set
519# CONFIG_I2C is not set 561# CONFIG_I2C is not set
520
521#
522# SPI support
523#
524# CONFIG_SPI is not set 562# CONFIG_SPI is not set
525# CONFIG_SPI_MASTER is not set
526# CONFIG_W1 is not set 563# CONFIG_W1 is not set
527# CONFIG_POWER_SUPPLY is not set 564# CONFIG_POWER_SUPPLY is not set
528# CONFIG_HWMON is not set 565# CONFIG_HWMON is not set
566# CONFIG_THERMAL is not set
567# CONFIG_THERMAL_HWMON is not set
568# CONFIG_WATCHDOG is not set
569CONFIG_SSB_POSSIBLE=y
529 570
530# 571#
531# Sonics Silicon Backplane 572# Sonics Silicon Backplane
532# 573#
533CONFIG_SSB_POSSIBLE=y
534# CONFIG_SSB is not set 574# CONFIG_SSB is not set
535 575
536# 576#
537# Multifunction device drivers 577# Multifunction device drivers
538# 578#
579# CONFIG_MFD_CORE is not set
539# CONFIG_MFD_SM501 is not set 580# CONFIG_MFD_SM501 is not set
581# CONFIG_HTC_PASIC3 is not set
582# CONFIG_MFD_TMIO is not set
583# CONFIG_REGULATOR is not set
540 584
541# 585#
542# Multimedia devices 586# Multimedia devices
543# 587#
588
589#
590# Multimedia core support
591#
544# CONFIG_VIDEO_DEV is not set 592# CONFIG_VIDEO_DEV is not set
545# CONFIG_DVB_CORE is not set 593# CONFIG_DVB_CORE is not set
546# CONFIG_DAB is not set 594# CONFIG_VIDEO_MEDIA is not set
547 595
548# 596#
549# Graphics support 597# Multimedia drivers
550# 598#
551# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 599# CONFIG_DAB is not set
552 600
553# 601#
554# Display device support 602# Graphics support
555# 603#
556# CONFIG_DISPLAY_SUPPORT is not set
557# CONFIG_VGASTATE is not set 604# CONFIG_VGASTATE is not set
558CONFIG_VIDEO_OUTPUT_CONTROL=m 605CONFIG_VIDEO_OUTPUT_CONTROL=m
559CONFIG_FB=y 606CONFIG_FB=y
560# CONFIG_FIRMWARE_EDID is not set 607# CONFIG_FIRMWARE_EDID is not set
561# CONFIG_FB_DDC is not set 608# CONFIG_FB_DDC is not set
609# CONFIG_FB_BOOT_VESA_SUPPORT is not set
562CONFIG_FB_CFB_FILLRECT=y 610CONFIG_FB_CFB_FILLRECT=y
563CONFIG_FB_CFB_COPYAREA=y 611CONFIG_FB_CFB_COPYAREA=y
564CONFIG_FB_CFB_IMAGEBLIT=y 612CONFIG_FB_CFB_IMAGEBLIT=y
613# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
565# CONFIG_FB_SYS_FILLRECT is not set 614# CONFIG_FB_SYS_FILLRECT is not set
566# CONFIG_FB_SYS_COPYAREA is not set 615# CONFIG_FB_SYS_COPYAREA is not set
567# CONFIG_FB_SYS_IMAGEBLIT is not set 616# CONFIG_FB_SYS_IMAGEBLIT is not set
617# CONFIG_FB_FOREIGN_ENDIAN is not set
568# CONFIG_FB_SYS_FOPS is not set 618# CONFIG_FB_SYS_FOPS is not set
569CONFIG_FB_DEFERRED_IO=y
570# CONFIG_FB_SVGALIB is not set 619# CONFIG_FB_SVGALIB is not set
571# CONFIG_FB_MACMODES is not set 620# CONFIG_FB_MACMODES is not set
572# CONFIG_FB_BACKLIGHT is not set 621# CONFIG_FB_BACKLIGHT is not set
@@ -579,6 +628,14 @@ CONFIG_FB_TILEBLITTING=y
579CONFIG_FB_STI=y 628CONFIG_FB_STI=y
580# CONFIG_FB_S1D13XXX is not set 629# CONFIG_FB_S1D13XXX is not set
581# CONFIG_FB_VIRTUAL is not set 630# CONFIG_FB_VIRTUAL is not set
631# CONFIG_FB_METRONOME is not set
632# CONFIG_FB_MB862XX is not set
633# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
634
635#
636# Display device support
637#
638# CONFIG_DISPLAY_SUPPORT is not set
582 639
583# 640#
584# Console display driver support 641# Console display driver support
@@ -606,15 +663,8 @@ CONFIG_LOGO=y
606# CONFIG_LOGO_LINUX_VGA16 is not set 663# CONFIG_LOGO_LINUX_VGA16 is not set
607# CONFIG_LOGO_LINUX_CLUT224 is not set 664# CONFIG_LOGO_LINUX_CLUT224 is not set
608CONFIG_LOGO_PARISC_CLUT224=y 665CONFIG_LOGO_PARISC_CLUT224=y
609
610#
611# Sound
612#
613CONFIG_SOUND=y 666CONFIG_SOUND=y
614 667CONFIG_SOUND_OSS_CORE=y
615#
616# Advanced Linux Sound Architecture
617#
618CONFIG_SND=y 668CONFIG_SND=y
619CONFIG_SND_TIMER=y 669CONFIG_SND_TIMER=y
620CONFIG_SND_PCM=y 670CONFIG_SND_PCM=y
@@ -630,10 +680,7 @@ CONFIG_SND_SUPPORT_OLD_API=y
630CONFIG_SND_VERBOSE_PROCFS=y 680CONFIG_SND_VERBOSE_PROCFS=y
631# CONFIG_SND_VERBOSE_PRINTK is not set 681# CONFIG_SND_VERBOSE_PRINTK is not set
632# CONFIG_SND_DEBUG is not set 682# CONFIG_SND_DEBUG is not set
633 683CONFIG_SND_DRIVERS=y
634#
635# Generic devices
636#
637# CONFIG_SND_DUMMY is not set 684# CONFIG_SND_DUMMY is not set
638# CONFIG_SND_VIRMIDI is not set 685# CONFIG_SND_VIRMIDI is not set
639# CONFIG_SND_MTPAV is not set 686# CONFIG_SND_MTPAV is not set
@@ -641,63 +688,82 @@ CONFIG_SND_VERBOSE_PROCFS=y
641# CONFIG_SND_SERIAL_U16550 is not set 688# CONFIG_SND_SERIAL_U16550 is not set
642# CONFIG_SND_MPU401 is not set 689# CONFIG_SND_MPU401 is not set
643# CONFIG_SND_PORTMAN2X4 is not set 690# CONFIG_SND_PORTMAN2X4 is not set
644 691CONFIG_SND_GSC=y
645#
646# GSC devices
647#
648CONFIG_SND_HARMONY=y 692CONFIG_SND_HARMONY=y
649
650#
651# System on Chip audio support
652#
653# CONFIG_SND_SOC is not set 693# CONFIG_SND_SOC is not set
654
655#
656# SoC Audio support for SuperH
657#
658
659#
660# Open Sound System
661#
662# CONFIG_SOUND_PRIME is not set 694# CONFIG_SOUND_PRIME is not set
663CONFIG_HID_SUPPORT=y 695CONFIG_HID_SUPPORT=y
664CONFIG_HID=y 696CONFIG_HID=y
665CONFIG_HID_DEBUG=y 697CONFIG_HID_DEBUG=y
698# CONFIG_HIDRAW is not set
699# CONFIG_HID_PID is not set
700
701#
702# Special HID drivers
703#
704CONFIG_HID_COMPAT=y
666CONFIG_USB_SUPPORT=y 705CONFIG_USB_SUPPORT=y
667# CONFIG_USB_ARCH_HAS_HCD is not set 706# CONFIG_USB_ARCH_HAS_HCD is not set
668# CONFIG_USB_ARCH_HAS_OHCI is not set 707# CONFIG_USB_ARCH_HAS_OHCI is not set
669# CONFIG_USB_ARCH_HAS_EHCI is not set 708# CONFIG_USB_ARCH_HAS_EHCI is not set
670 709
671# 710#
672# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 711# Enable Host or Gadget support to see Inventra options
673# 712#
674 713
675# 714#
676# USB Gadget Support 715# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
677# 716#
678# CONFIG_USB_GADGET is not set 717# CONFIG_USB_GADGET is not set
718
719#
720# OTG and related infrastructure
721#
679# CONFIG_MMC is not set 722# CONFIG_MMC is not set
723# CONFIG_MEMSTICK is not set
680# CONFIG_NEW_LEDS is not set 724# CONFIG_NEW_LEDS is not set
681# CONFIG_RTC_CLASS is not set 725# CONFIG_ACCESSIBILITY is not set
726CONFIG_RTC_LIB=y
727CONFIG_RTC_CLASS=y
728CONFIG_RTC_HCTOSYS=y
729CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
730# CONFIG_RTC_DEBUG is not set
682 731
683# 732#
684# DMA Engine support 733# RTC interfaces
685# 734#
686# CONFIG_DMA_ENGINE is not set 735CONFIG_RTC_INTF_SYSFS=y
736CONFIG_RTC_INTF_PROC=y
737CONFIG_RTC_INTF_DEV=y
738# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
739# CONFIG_RTC_DRV_TEST is not set
687 740
688# 741#
689# DMA Clients 742# SPI RTC drivers
690# 743#
691 744
692# 745#
693# DMA Devices 746# Platform RTC drivers
694# 747#
695# CONFIG_AUXDISPLAY is not set 748# CONFIG_RTC_DRV_DS1286 is not set
749# CONFIG_RTC_DRV_DS1511 is not set
750# CONFIG_RTC_DRV_DS1553 is not set
751# CONFIG_RTC_DRV_DS1742 is not set
752# CONFIG_RTC_DRV_STK17TA8 is not set
753# CONFIG_RTC_DRV_M48T86 is not set
754# CONFIG_RTC_DRV_M48T35 is not set
755# CONFIG_RTC_DRV_M48T59 is not set
756# CONFIG_RTC_DRV_BQ4802 is not set
757# CONFIG_RTC_DRV_V3020 is not set
696 758
697# 759#
698# Userspace I/O 760# on-CPU RTC drivers
699# 761#
762CONFIG_RTC_DRV_PARISC=y
763# CONFIG_DMADEVICES is not set
764# CONFIG_AUXDISPLAY is not set
700# CONFIG_UIO is not set 765# CONFIG_UIO is not set
766# CONFIG_STAGING is not set
701 767
702# 768#
703# File systems 769# File systems
@@ -707,7 +773,7 @@ CONFIG_EXT2_FS=y
707# CONFIG_EXT2_FS_XIP is not set 773# CONFIG_EXT2_FS_XIP is not set
708CONFIG_EXT3_FS=y 774CONFIG_EXT3_FS=y
709# CONFIG_EXT3_FS_XATTR is not set 775# CONFIG_EXT3_FS_XATTR is not set
710# CONFIG_EXT4DEV_FS is not set 776# CONFIG_EXT4_FS is not set
711CONFIG_JBD=y 777CONFIG_JBD=y
712# CONFIG_JBD_DEBUG is not set 778# CONFIG_JBD_DEBUG is not set
713# CONFIG_REISERFS_FS is not set 779# CONFIG_REISERFS_FS is not set
@@ -717,19 +783,18 @@ CONFIG_JFS_FS=m
717# CONFIG_JFS_DEBUG is not set 783# CONFIG_JFS_DEBUG is not set
718# CONFIG_JFS_STATISTICS is not set 784# CONFIG_JFS_STATISTICS is not set
719CONFIG_FS_POSIX_ACL=y 785CONFIG_FS_POSIX_ACL=y
786CONFIG_FILE_LOCKING=y
720CONFIG_XFS_FS=m 787CONFIG_XFS_FS=m
721# CONFIG_XFS_QUOTA is not set 788# CONFIG_XFS_QUOTA is not set
722# CONFIG_XFS_SECURITY is not set
723# CONFIG_XFS_POSIX_ACL is not set 789# CONFIG_XFS_POSIX_ACL is not set
724# CONFIG_XFS_RT is not set 790# CONFIG_XFS_RT is not set
725# CONFIG_GFS2_FS is not set 791# CONFIG_XFS_DEBUG is not set
726# CONFIG_OCFS2_FS is not set 792# CONFIG_OCFS2_FS is not set
727# CONFIG_MINIX_FS is not set 793# CONFIG_BTRFS_FS is not set
728# CONFIG_ROMFS_FS is not set 794CONFIG_DNOTIFY=y
729CONFIG_INOTIFY=y 795CONFIG_INOTIFY=y
730CONFIG_INOTIFY_USER=y 796CONFIG_INOTIFY_USER=y
731# CONFIG_QUOTA is not set 797# CONFIG_QUOTA is not set
732CONFIG_DNOTIFY=y
733# CONFIG_AUTOFS_FS is not set 798# CONFIG_AUTOFS_FS is not set
734CONFIG_AUTOFS4_FS=y 799CONFIG_AUTOFS4_FS=y
735# CONFIG_FUSE_FS is not set 800# CONFIG_FUSE_FS is not set
@@ -759,16 +824,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
759CONFIG_PROC_FS=y 824CONFIG_PROC_FS=y
760CONFIG_PROC_KCORE=y 825CONFIG_PROC_KCORE=y
761CONFIG_PROC_SYSCTL=y 826CONFIG_PROC_SYSCTL=y
827CONFIG_PROC_PAGE_MONITOR=y
762CONFIG_SYSFS=y 828CONFIG_SYSFS=y
763CONFIG_TMPFS=y 829CONFIG_TMPFS=y
764# CONFIG_TMPFS_POSIX_ACL is not set 830# CONFIG_TMPFS_POSIX_ACL is not set
765# CONFIG_HUGETLB_PAGE is not set 831# CONFIG_HUGETLB_PAGE is not set
766CONFIG_RAMFS=y
767# CONFIG_CONFIGFS_FS is not set 832# CONFIG_CONFIGFS_FS is not set
768 833CONFIG_MISC_FILESYSTEMS=y
769#
770# Miscellaneous filesystems
771#
772# CONFIG_ADFS_FS is not set 834# CONFIG_ADFS_FS is not set
773# CONFIG_AFFS_FS is not set 835# CONFIG_AFFS_FS is not set
774# CONFIG_ECRYPT_FS is not set 836# CONFIG_ECRYPT_FS is not set
@@ -778,35 +840,34 @@ CONFIG_RAMFS=y
778# CONFIG_BFS_FS is not set 840# CONFIG_BFS_FS is not set
779# CONFIG_EFS_FS is not set 841# CONFIG_EFS_FS is not set
780# CONFIG_CRAMFS is not set 842# CONFIG_CRAMFS is not set
843# CONFIG_SQUASHFS is not set
781# CONFIG_VXFS_FS is not set 844# CONFIG_VXFS_FS is not set
845# CONFIG_MINIX_FS is not set
846# CONFIG_OMFS_FS is not set
782# CONFIG_HPFS_FS is not set 847# CONFIG_HPFS_FS is not set
783# CONFIG_QNX4FS_FS is not set 848# CONFIG_QNX4FS_FS is not set
849# CONFIG_ROMFS_FS is not set
784# CONFIG_SYSV_FS is not set 850# CONFIG_SYSV_FS is not set
785CONFIG_UFS_FS=m 851CONFIG_UFS_FS=m
786# CONFIG_UFS_FS_WRITE is not set 852# CONFIG_UFS_FS_WRITE is not set
787# CONFIG_UFS_DEBUG is not set 853# CONFIG_UFS_DEBUG is not set
788 854CONFIG_NETWORK_FILESYSTEMS=y
789#
790# Network File Systems
791#
792CONFIG_NFS_FS=y 855CONFIG_NFS_FS=y
793CONFIG_NFS_V3=y 856CONFIG_NFS_V3=y
794# CONFIG_NFS_V3_ACL is not set 857# CONFIG_NFS_V3_ACL is not set
795CONFIG_NFS_V4=y 858CONFIG_NFS_V4=y
796CONFIG_NFS_DIRECTIO=y 859CONFIG_ROOT_NFS=y
797CONFIG_NFSD=m 860CONFIG_NFSD=m
798CONFIG_NFSD_V3=y 861CONFIG_NFSD_V3=y
799# CONFIG_NFSD_V3_ACL is not set 862# CONFIG_NFSD_V3_ACL is not set
800CONFIG_NFSD_V4=y 863CONFIG_NFSD_V4=y
801CONFIG_NFSD_TCP=y
802CONFIG_ROOT_NFS=y
803CONFIG_LOCKD=y 864CONFIG_LOCKD=y
804CONFIG_LOCKD_V4=y 865CONFIG_LOCKD_V4=y
805CONFIG_EXPORTFS=m 866CONFIG_EXPORTFS=m
806CONFIG_NFS_COMMON=y 867CONFIG_NFS_COMMON=y
807CONFIG_SUNRPC=y 868CONFIG_SUNRPC=y
808CONFIG_SUNRPC_GSS=y 869CONFIG_SUNRPC_GSS=y
809# CONFIG_SUNRPC_BIND34 is not set 870# CONFIG_SUNRPC_REGISTER_V4 is not set
810CONFIG_RPCSEC_GSS_KRB5=y 871CONFIG_RPCSEC_GSS_KRB5=y
811CONFIG_RPCSEC_GSS_SPKM3=m 872CONFIG_RPCSEC_GSS_SPKM3=m
812CONFIG_SMB_FS=m 873CONFIG_SMB_FS=m
@@ -815,6 +876,7 @@ CONFIG_SMB_NLS_REMOTE="cp437"
815CONFIG_CIFS=m 876CONFIG_CIFS=m
816# CONFIG_CIFS_STATS is not set 877# CONFIG_CIFS_STATS is not set
817# CONFIG_CIFS_WEAK_PW_HASH is not set 878# CONFIG_CIFS_WEAK_PW_HASH is not set
879# CONFIG_CIFS_UPCALL is not set
818# CONFIG_CIFS_XATTR is not set 880# CONFIG_CIFS_XATTR is not set
819# CONFIG_CIFS_DEBUG2 is not set 881# CONFIG_CIFS_DEBUG2 is not set
820# CONFIG_CIFS_EXPERIMENTAL is not set 882# CONFIG_CIFS_EXPERIMENTAL is not set
@@ -827,10 +889,6 @@ CONFIG_CIFS=m
827# 889#
828# CONFIG_PARTITION_ADVANCED is not set 890# CONFIG_PARTITION_ADVANCED is not set
829CONFIG_MSDOS_PARTITION=y 891CONFIG_MSDOS_PARTITION=y
830
831#
832# Native Language Support
833#
834CONFIG_NLS=y 892CONFIG_NLS=y
835CONFIG_NLS_DEFAULT="iso8859-1" 893CONFIG_NLS_DEFAULT="iso8859-1"
836CONFIG_NLS_CODEPAGE_437=m 894CONFIG_NLS_CODEPAGE_437=m
@@ -871,33 +929,28 @@ CONFIG_NLS_ISO8859_15=m
871CONFIG_NLS_KOI8_R=m 929CONFIG_NLS_KOI8_R=m
872CONFIG_NLS_KOI8_U=m 930CONFIG_NLS_KOI8_U=m
873CONFIG_NLS_UTF8=m 931CONFIG_NLS_UTF8=m
874
875#
876# Distributed Lock Manager
877#
878# CONFIG_DLM is not set 932# CONFIG_DLM is not set
879 933
880# 934#
881# Profiling support
882#
883CONFIG_PROFILING=y
884CONFIG_OPROFILE=m
885
886#
887# Kernel hacking 935# Kernel hacking
888# 936#
889# CONFIG_PRINTK_TIME is not set 937# CONFIG_PRINTK_TIME is not set
938CONFIG_ENABLE_WARN_DEPRECATED=y
890CONFIG_ENABLE_MUST_CHECK=y 939CONFIG_ENABLE_MUST_CHECK=y
940CONFIG_FRAME_WARN=1024
891CONFIG_MAGIC_SYSRQ=y 941CONFIG_MAGIC_SYSRQ=y
892# CONFIG_UNUSED_SYMBOLS is not set 942# CONFIG_UNUSED_SYMBOLS is not set
893# CONFIG_DEBUG_FS is not set 943CONFIG_DEBUG_FS=y
894# CONFIG_HEADERS_CHECK is not set 944# CONFIG_HEADERS_CHECK is not set
895CONFIG_DEBUG_KERNEL=y 945CONFIG_DEBUG_KERNEL=y
896# CONFIG_DEBUG_SHIRQ is not set 946# CONFIG_DEBUG_SHIRQ is not set
897CONFIG_DETECT_SOFTLOCKUP=y 947CONFIG_DETECT_SOFTLOCKUP=y
948# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
949CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
898CONFIG_SCHED_DEBUG=y 950CONFIG_SCHED_DEBUG=y
899# CONFIG_SCHEDSTATS is not set 951# CONFIG_SCHEDSTATS is not set
900# CONFIG_TIMER_STATS is not set 952# CONFIG_TIMER_STATS is not set
953# CONFIG_DEBUG_OBJECTS is not set
901# CONFIG_DEBUG_SLAB is not set 954# CONFIG_DEBUG_SLAB is not set
902# CONFIG_DEBUG_RT_MUTEXES is not set 955# CONFIG_DEBUG_RT_MUTEXES is not set
903# CONFIG_RT_MUTEX_TESTER is not set 956# CONFIG_RT_MUTEX_TESTER is not set
@@ -909,10 +962,32 @@ CONFIG_DEBUG_MUTEXES=y
909CONFIG_DEBUG_BUGVERBOSE=y 962CONFIG_DEBUG_BUGVERBOSE=y
910# CONFIG_DEBUG_INFO is not set 963# CONFIG_DEBUG_INFO is not set
911# CONFIG_DEBUG_VM is not set 964# CONFIG_DEBUG_VM is not set
965# CONFIG_DEBUG_WRITECOUNT is not set
966CONFIG_DEBUG_MEMORY_INIT=y
912# CONFIG_DEBUG_LIST is not set 967# CONFIG_DEBUG_LIST is not set
913CONFIG_FORCED_INLINING=y 968# CONFIG_DEBUG_SG is not set
969# CONFIG_DEBUG_NOTIFIERS is not set
970# CONFIG_BOOT_PRINTK_DELAY is not set
914# CONFIG_RCU_TORTURE_TEST is not set 971# CONFIG_RCU_TORTURE_TEST is not set
972# CONFIG_RCU_CPU_STALL_DETECTOR is not set
973# CONFIG_BACKTRACE_SELF_TEST is not set
974# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
915# CONFIG_FAULT_INJECTION is not set 975# CONFIG_FAULT_INJECTION is not set
976# CONFIG_SYSCTL_SYSCALL_CHECK is not set
977CONFIG_NOP_TRACER=y
978CONFIG_RING_BUFFER=y
979CONFIG_TRACING=y
980
981#
982# Tracers
983#
984# CONFIG_SCHED_TRACER is not set
985# CONFIG_CONTEXT_SWITCH_TRACER is not set
986# CONFIG_BOOT_TRACER is not set
987# CONFIG_TRACE_BRANCH_PROFILING is not set
988# CONFIG_FTRACE_STARTUP_TEST is not set
989# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
990# CONFIG_SAMPLES is not set
916CONFIG_DEBUG_RODATA=y 991CONFIG_DEBUG_RODATA=y
917 992
918# 993#
@@ -921,57 +996,113 @@ CONFIG_DEBUG_RODATA=y
921CONFIG_KEYS=y 996CONFIG_KEYS=y
922CONFIG_KEYS_DEBUG_PROC_KEYS=y 997CONFIG_KEYS_DEBUG_PROC_KEYS=y
923# CONFIG_SECURITY is not set 998# CONFIG_SECURITY is not set
999# CONFIG_SECURITYFS is not set
1000# CONFIG_SECURITY_FILE_CAPABILITIES is not set
924CONFIG_CRYPTO=y 1001CONFIG_CRYPTO=y
1002
1003#
1004# Crypto core or helper
1005#
1006# CONFIG_CRYPTO_FIPS is not set
925CONFIG_CRYPTO_ALGAPI=y 1007CONFIG_CRYPTO_ALGAPI=y
1008CONFIG_CRYPTO_ALGAPI2=y
1009CONFIG_CRYPTO_AEAD=m
1010CONFIG_CRYPTO_AEAD2=y
926CONFIG_CRYPTO_BLKCIPHER=y 1011CONFIG_CRYPTO_BLKCIPHER=y
1012CONFIG_CRYPTO_BLKCIPHER2=y
927CONFIG_CRYPTO_HASH=y 1013CONFIG_CRYPTO_HASH=y
1014CONFIG_CRYPTO_HASH2=y
1015CONFIG_CRYPTO_RNG2=y
928CONFIG_CRYPTO_MANAGER=y 1016CONFIG_CRYPTO_MANAGER=y
1017CONFIG_CRYPTO_MANAGER2=y
1018# CONFIG_CRYPTO_GF128MUL is not set
1019CONFIG_CRYPTO_NULL=m
1020# CONFIG_CRYPTO_CRYPTD is not set
1021CONFIG_CRYPTO_AUTHENC=m
1022CONFIG_CRYPTO_TEST=m
1023
1024#
1025# Authenticated Encryption with Associated Data
1026#
1027# CONFIG_CRYPTO_CCM is not set
1028# CONFIG_CRYPTO_GCM is not set
1029# CONFIG_CRYPTO_SEQIV is not set
1030
1031#
1032# Block modes
1033#
1034CONFIG_CRYPTO_CBC=y
1035# CONFIG_CRYPTO_CTR is not set
1036# CONFIG_CRYPTO_CTS is not set
1037CONFIG_CRYPTO_ECB=m
1038# CONFIG_CRYPTO_LRW is not set
1039# CONFIG_CRYPTO_PCBC is not set
1040# CONFIG_CRYPTO_XTS is not set
1041
1042#
1043# Hash modes
1044#
929CONFIG_CRYPTO_HMAC=y 1045CONFIG_CRYPTO_HMAC=y
930# CONFIG_CRYPTO_XCBC is not set 1046# CONFIG_CRYPTO_XCBC is not set
931CONFIG_CRYPTO_NULL=m 1047
1048#
1049# Digest
1050#
1051CONFIG_CRYPTO_CRC32C=m
932CONFIG_CRYPTO_MD4=m 1052CONFIG_CRYPTO_MD4=m
933CONFIG_CRYPTO_MD5=y 1053CONFIG_CRYPTO_MD5=y
1054CONFIG_CRYPTO_MICHAEL_MIC=m
1055# CONFIG_CRYPTO_RMD128 is not set
1056# CONFIG_CRYPTO_RMD160 is not set
1057# CONFIG_CRYPTO_RMD256 is not set
1058# CONFIG_CRYPTO_RMD320 is not set
934CONFIG_CRYPTO_SHA1=m 1059CONFIG_CRYPTO_SHA1=m
935CONFIG_CRYPTO_SHA256=m 1060CONFIG_CRYPTO_SHA256=m
936CONFIG_CRYPTO_SHA512=m 1061CONFIG_CRYPTO_SHA512=m
937CONFIG_CRYPTO_WP512=m
938CONFIG_CRYPTO_TGR192=m 1062CONFIG_CRYPTO_TGR192=m
939# CONFIG_CRYPTO_GF128MUL is not set 1063CONFIG_CRYPTO_WP512=m
940CONFIG_CRYPTO_ECB=m 1064
941CONFIG_CRYPTO_CBC=y 1065#
942# CONFIG_CRYPTO_PCBC is not set 1066# Ciphers
943# CONFIG_CRYPTO_LRW is not set 1067#
944# CONFIG_CRYPTO_XTS is not set
945# CONFIG_CRYPTO_CRYPTD is not set
946CONFIG_CRYPTO_DES=y
947# CONFIG_CRYPTO_FCRYPT is not set
948CONFIG_CRYPTO_BLOWFISH=m
949CONFIG_CRYPTO_TWOFISH=m
950CONFIG_CRYPTO_TWOFISH_COMMON=m
951CONFIG_CRYPTO_SERPENT=m
952CONFIG_CRYPTO_AES=m 1068CONFIG_CRYPTO_AES=m
1069CONFIG_CRYPTO_ANUBIS=m
1070CONFIG_CRYPTO_ARC4=m
1071CONFIG_CRYPTO_BLOWFISH=m
1072# CONFIG_CRYPTO_CAMELLIA is not set
953CONFIG_CRYPTO_CAST5=m 1073CONFIG_CRYPTO_CAST5=m
954CONFIG_CRYPTO_CAST6=m 1074CONFIG_CRYPTO_CAST6=m
955CONFIG_CRYPTO_TEA=m 1075CONFIG_CRYPTO_DES=y
956CONFIG_CRYPTO_ARC4=m 1076# CONFIG_CRYPTO_FCRYPT is not set
957CONFIG_CRYPTO_KHAZAD=m 1077CONFIG_CRYPTO_KHAZAD=m
958CONFIG_CRYPTO_ANUBIS=m 1078# CONFIG_CRYPTO_SALSA20 is not set
959# CONFIG_CRYPTO_SEED is not set 1079# CONFIG_CRYPTO_SEED is not set
1080CONFIG_CRYPTO_SERPENT=m
1081CONFIG_CRYPTO_TEA=m
1082CONFIG_CRYPTO_TWOFISH=m
1083CONFIG_CRYPTO_TWOFISH_COMMON=m
1084
1085#
1086# Compression
1087#
960CONFIG_CRYPTO_DEFLATE=m 1088CONFIG_CRYPTO_DEFLATE=m
961CONFIG_CRYPTO_MICHAEL_MIC=m 1089# CONFIG_CRYPTO_LZO is not set
962CONFIG_CRYPTO_CRC32C=m 1090
963# CONFIG_CRYPTO_CAMELLIA is not set 1091#
964CONFIG_CRYPTO_TEST=m 1092# Random Number Generation
965# CONFIG_CRYPTO_AUTHENC is not set 1093#
1094# CONFIG_CRYPTO_ANSI_CPRNG is not set
966# CONFIG_CRYPTO_HW is not set 1095# CONFIG_CRYPTO_HW is not set
967 1096
968# 1097#
969# Library routines 1098# Library routines
970# 1099#
971CONFIG_BITREVERSE=y 1100CONFIG_BITREVERSE=y
1101CONFIG_GENERIC_FIND_LAST_BIT=y
972CONFIG_CRC_CCITT=m 1102CONFIG_CRC_CCITT=m
973# CONFIG_CRC16 is not set 1103# CONFIG_CRC16 is not set
974# CONFIG_CRC_ITU_T is not set 1104# CONFIG_CRC_T10DIF is not set
1105CONFIG_CRC_ITU_T=m
975CONFIG_CRC32=y 1106CONFIG_CRC32=y
976# CONFIG_CRC7 is not set 1107# CONFIG_CRC7 is not set
977CONFIG_LIBCRC32C=m 1108CONFIG_LIBCRC32C=m
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig
index ddacc72e38fb..f12e4b8349d9 100644
--- a/arch/parisc/configs/a500_defconfig
+++ b/arch/parisc/configs/a500_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 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:12:44 2007 4# Fri Mar 13 01:32:56 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -34,18 +34,30 @@ CONFIG_SYSVIPC_SYSCTL=y
34CONFIG_POSIX_MQUEUE=y 34CONFIG_POSIX_MQUEUE=y
35# CONFIG_BSD_PROCESS_ACCT is not set 35# CONFIG_BSD_PROCESS_ACCT is not set
36# CONFIG_TASKSTATS is not set 36# CONFIG_TASKSTATS is not set
37# CONFIG_USER_NS is not set
38# CONFIG_AUDIT is not set 37# CONFIG_AUDIT is not set
38
39#
40# RCU Subsystem
41#
42CONFIG_CLASSIC_RCU=y
43# CONFIG_TREE_RCU is not set
44# CONFIG_PREEMPT_RCU is not set
45# CONFIG_TREE_RCU_TRACE is not set
46# CONFIG_PREEMPT_RCU_TRACE is not set
39CONFIG_IKCONFIG=y 47CONFIG_IKCONFIG=y
40CONFIG_IKCONFIG_PROC=y 48CONFIG_IKCONFIG_PROC=y
41CONFIG_LOG_BUF_SHIFT=16 49CONFIG_LOG_BUF_SHIFT=16
42# CONFIG_CPUSETS is not set 50# CONFIG_GROUP_SCHED is not set
51# CONFIG_CGROUPS is not set
43CONFIG_SYSFS_DEPRECATED=y 52CONFIG_SYSFS_DEPRECATED=y
53CONFIG_SYSFS_DEPRECATED_V2=y
44# CONFIG_RELAY is not set 54# CONFIG_RELAY is not set
55# CONFIG_NAMESPACES is not set
45CONFIG_BLK_DEV_INITRD=y 56CONFIG_BLK_DEV_INITRD=y
46CONFIG_INITRAMFS_SOURCE="" 57CONFIG_INITRAMFS_SOURCE=""
47# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 58# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
48CONFIG_SYSCTL=y 59CONFIG_SYSCTL=y
60CONFIG_ANON_INODES=y
49CONFIG_EMBEDDED=y 61CONFIG_EMBEDDED=y
50CONFIG_SYSCTL_SYSCALL=y 62CONFIG_SYSCTL_SYSCALL=y
51CONFIG_KALLSYMS=y 63CONFIG_KALLSYMS=y
@@ -57,28 +69,40 @@ CONFIG_BUG=y
57CONFIG_ELF_CORE=y 69CONFIG_ELF_CORE=y
58CONFIG_BASE_FULL=y 70CONFIG_BASE_FULL=y
59CONFIG_FUTEX=y 71CONFIG_FUTEX=y
60CONFIG_ANON_INODES=y
61CONFIG_EPOLL=y 72CONFIG_EPOLL=y
62CONFIG_SIGNALFD=y 73CONFIG_SIGNALFD=y
74CONFIG_TIMERFD=y
63CONFIG_EVENTFD=y 75CONFIG_EVENTFD=y
64CONFIG_SHMEM=y 76CONFIG_SHMEM=y
77CONFIG_AIO=y
65CONFIG_VM_EVENT_COUNTERS=y 78CONFIG_VM_EVENT_COUNTERS=y
79CONFIG_PCI_QUIRKS=y
80CONFIG_COMPAT_BRK=y
66CONFIG_SLAB=y 81CONFIG_SLAB=y
67# CONFIG_SLUB is not set 82# CONFIG_SLUB is not set
68# CONFIG_SLOB is not set 83# CONFIG_SLOB is not set
84CONFIG_PROFILING=y
85CONFIG_TRACEPOINTS=y
86# CONFIG_MARKERS is not set
87CONFIG_OPROFILE=m
88CONFIG_HAVE_OPROFILE=y
89CONFIG_USE_GENERIC_SMP_HELPERS=y
90# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
91CONFIG_SLABINFO=y
69CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
70# CONFIG_TINY_SHMEM is not set
71CONFIG_BASE_SMALL=0 93CONFIG_BASE_SMALL=0
72CONFIG_MODULES=y 94CONFIG_MODULES=y
95# CONFIG_MODULE_FORCE_LOAD is not set
73CONFIG_MODULE_UNLOAD=y 96CONFIG_MODULE_UNLOAD=y
74CONFIG_MODULE_FORCE_UNLOAD=y 97CONFIG_MODULE_FORCE_UNLOAD=y
75# CONFIG_MODVERSIONS is not set 98# CONFIG_MODVERSIONS is not set
76# CONFIG_MODULE_SRCVERSION_ALL is not set 99# CONFIG_MODULE_SRCVERSION_ALL is not set
77CONFIG_KMOD=y 100CONFIG_INIT_ALL_POSSIBLE=y
78CONFIG_STOP_MACHINE=y 101CONFIG_STOP_MACHINE=y
79CONFIG_BLOCK=y 102CONFIG_BLOCK=y
80# CONFIG_BLK_DEV_IO_TRACE is not set 103# CONFIG_BLK_DEV_IO_TRACE is not set
81# CONFIG_BLK_DEV_BSG is not set 104# CONFIG_BLK_DEV_BSG is not set
105# CONFIG_BLK_DEV_INTEGRITY is not set
82CONFIG_BLOCK_COMPAT=y 106CONFIG_BLOCK_COMPAT=y
83 107
84# 108#
@@ -93,6 +117,7 @@ CONFIG_IOSCHED_CFQ=y
93CONFIG_DEFAULT_CFQ=y 117CONFIG_DEFAULT_CFQ=y
94# CONFIG_DEFAULT_NOOP is not set 118# CONFIG_DEFAULT_NOOP is not set
95CONFIG_DEFAULT_IOSCHED="cfq" 119CONFIG_DEFAULT_IOSCHED="cfq"
120# CONFIG_FREEZER is not set
96 121
97# 122#
98# Processor type and features 123# Processor type and features
@@ -118,12 +143,12 @@ CONFIG_NODES_SHIFT=3
118CONFIG_PREEMPT_NONE=y 143CONFIG_PREEMPT_NONE=y
119# CONFIG_PREEMPT_VOLUNTARY is not set 144# CONFIG_PREEMPT_VOLUNTARY is not set
120# CONFIG_PREEMPT is not set 145# CONFIG_PREEMPT is not set
121CONFIG_PREEMPT_BKL=y
122# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
123CONFIG_HZ_250=y 147CONFIG_HZ_250=y
124# CONFIG_HZ_300 is not set 148# CONFIG_HZ_300 is not set
125# CONFIG_HZ_1000 is not set 149# CONFIG_HZ_1000 is not set
126CONFIG_HZ=250 150CONFIG_HZ=250
151# CONFIG_SCHED_HRTICK is not set
127CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
128# CONFIG_FLATMEM_MANUAL is not set 153# CONFIG_FLATMEM_MANUAL is not set
129CONFIG_DISCONTIGMEM_MANUAL=y 154CONFIG_DISCONTIGMEM_MANUAL=y
@@ -131,11 +156,12 @@ CONFIG_DISCONTIGMEM_MANUAL=y
131CONFIG_DISCONTIGMEM=y 156CONFIG_DISCONTIGMEM=y
132CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
133CONFIG_NEED_MULTIPLE_NODES=y 158CONFIG_NEED_MULTIPLE_NODES=y
134# CONFIG_SPARSEMEM_STATIC is not set 159CONFIG_PAGEFLAGS_EXTENDED=y
135CONFIG_SPLIT_PTLOCK_CPUS=4 160CONFIG_SPLIT_PTLOCK_CPUS=4
136CONFIG_RESOURCES_64BIT=y 161CONFIG_PHYS_ADDR_T_64BIT=y
137CONFIG_ZONE_DMA_FLAG=0 162CONFIG_ZONE_DMA_FLAG=0
138CONFIG_VIRT_TO_BUS=y 163CONFIG_VIRT_TO_BUS=y
164CONFIG_UNEVICTABLE_LRU=y
139CONFIG_COMPAT=y 165CONFIG_COMPAT=y
140CONFIG_NR_CPUS=8 166CONFIG_NR_CPUS=8
141 167
@@ -145,14 +171,13 @@ CONFIG_NR_CPUS=8
145# CONFIG_GSC is not set 171# CONFIG_GSC is not set
146CONFIG_PCI=y 172CONFIG_PCI=y
147# CONFIG_ARCH_SUPPORTS_MSI is not set 173# CONFIG_ARCH_SUPPORTS_MSI is not set
174CONFIG_PCI_LEGACY=y
148# CONFIG_PCI_DEBUG is not set 175# CONFIG_PCI_DEBUG is not set
176# CONFIG_PCI_STUB is not set
149CONFIG_PCI_LBA=y 177CONFIG_PCI_LBA=y
150CONFIG_IOSAPIC=y 178CONFIG_IOSAPIC=y
151CONFIG_IOMMU_SBA=y 179CONFIG_IOMMU_SBA=y
152 180CONFIG_IOMMU_HELPER=y
153#
154# PCCARD (PCMCIA/CardBus) support
155#
156CONFIG_PCCARD=m 181CONFIG_PCCARD=m
157# CONFIG_PCMCIA_DEBUG is not set 182# CONFIG_PCMCIA_DEBUG is not set
158CONFIG_PCMCIA=m 183CONFIG_PCMCIA=m
@@ -187,16 +212,15 @@ CONFIG_PDC_STABLE=y
187# Executable file formats 212# Executable file formats
188# 213#
189CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
216# CONFIG_HAVE_AOUT is not set
190# CONFIG_BINFMT_MISC is not set 217# CONFIG_BINFMT_MISC is not set
191
192#
193# Networking
194#
195CONFIG_NET=y 218CONFIG_NET=y
196 219
197# 220#
198# Networking options 221# Networking options
199# 222#
223CONFIG_COMPAT_NET_DEV_OPS=y
200CONFIG_PACKET=y 224CONFIG_PACKET=y
201CONFIG_PACKET_MMAP=y 225CONFIG_PACKET_MMAP=y
202CONFIG_UNIX=y 226CONFIG_UNIX=y
@@ -204,6 +228,8 @@ CONFIG_XFRM=y
204CONFIG_XFRM_USER=m 228CONFIG_XFRM_USER=m
205# CONFIG_XFRM_SUB_POLICY is not set 229# CONFIG_XFRM_SUB_POLICY is not set
206# CONFIG_XFRM_MIGRATE is not set 230# CONFIG_XFRM_MIGRATE is not set
231# CONFIG_XFRM_STATISTICS is not set
232CONFIG_XFRM_IPCOMP=m
207CONFIG_NET_KEY=m 233CONFIG_NET_KEY=m
208# CONFIG_NET_KEY_MIGRATE is not set 234# CONFIG_NET_KEY_MIGRATE is not set
209CONFIG_INET=y 235CONFIG_INET=y
@@ -234,7 +260,6 @@ CONFIG_INET_TCP_DIAG=y
234CONFIG_TCP_CONG_CUBIC=y 260CONFIG_TCP_CONG_CUBIC=y
235CONFIG_DEFAULT_TCP_CONG="cubic" 261CONFIG_DEFAULT_TCP_CONG="cubic"
236# CONFIG_TCP_MD5SIG is not set 262# CONFIG_TCP_MD5SIG is not set
237# CONFIG_IP_VS is not set
238CONFIG_IPV6=m 263CONFIG_IPV6=m
239# CONFIG_IPV6_PRIVACY is not set 264# CONFIG_IPV6_PRIVACY is not set
240# CONFIG_IPV6_ROUTER_PREF is not set 265# CONFIG_IPV6_ROUTER_PREF is not set
@@ -250,66 +275,72 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
250CONFIG_INET6_XFRM_MODE_BEET=m 275CONFIG_INET6_XFRM_MODE_BEET=m
251# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 276# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
252CONFIG_IPV6_SIT=m 277CONFIG_IPV6_SIT=m
278CONFIG_IPV6_NDISC_NODETYPE=y
253CONFIG_IPV6_TUNNEL=m 279CONFIG_IPV6_TUNNEL=m
254# CONFIG_IPV6_MULTIPLE_TABLES is not set 280# CONFIG_IPV6_MULTIPLE_TABLES is not set
281# CONFIG_IPV6_MROUTE is not set
255# CONFIG_NETWORK_SECMARK is not set 282# CONFIG_NETWORK_SECMARK is not set
256CONFIG_NETFILTER=y 283CONFIG_NETFILTER=y
257# CONFIG_NETFILTER_DEBUG is not set 284# CONFIG_NETFILTER_DEBUG is not set
285CONFIG_NETFILTER_ADVANCED=y
258 286
259# 287#
260# Core Netfilter Configuration 288# Core Netfilter Configuration
261# 289#
262# CONFIG_NETFILTER_NETLINK is not set 290# CONFIG_NETFILTER_NETLINK_QUEUE is not set
263# CONFIG_NF_CONNTRACK_ENABLED is not set 291# CONFIG_NETFILTER_NETLINK_LOG is not set
264# CONFIG_NF_CONNTRACK is not set 292# CONFIG_NF_CONNTRACK is not set
265CONFIG_NETFILTER_XTABLES=m 293CONFIG_NETFILTER_XTABLES=m
266# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set 294# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
267# CONFIG_NETFILTER_XT_TARGET_DSCP is not set 295# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
268# CONFIG_NETFILTER_XT_TARGET_MARK is not set 296# CONFIG_NETFILTER_XT_TARGET_MARK is not set
269# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
270# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set 297# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
298# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
299# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
271# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 300# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
272# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set 301# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
302# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
273# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set 303# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
274# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 304# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
275# CONFIG_NETFILTER_XT_MATCH_DSCP is not set 305# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
276# CONFIG_NETFILTER_XT_MATCH_ESP is not set 306# CONFIG_NETFILTER_XT_MATCH_ESP is not set
307# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
308# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
277# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set 309# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
278# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set 310# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
279# CONFIG_NETFILTER_XT_MATCH_MAC is not set 311# CONFIG_NETFILTER_XT_MATCH_MAC is not set
280# CONFIG_NETFILTER_XT_MATCH_MARK is not set 312# CONFIG_NETFILTER_XT_MATCH_MARK is not set
281# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
282# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set 313# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
314# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
315# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
283# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set 316# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
284# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 317# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
318# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
285# CONFIG_NETFILTER_XT_MATCH_REALM is not set 319# CONFIG_NETFILTER_XT_MATCH_REALM is not set
320# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
286# CONFIG_NETFILTER_XT_MATCH_SCTP is not set 321# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
287# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set 322# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
288# CONFIG_NETFILTER_XT_MATCH_STRING is not set 323# CONFIG_NETFILTER_XT_MATCH_STRING is not set
289# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set 324# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
290# CONFIG_NETFILTER_XT_MATCH_TIME is not set 325# CONFIG_NETFILTER_XT_MATCH_TIME is not set
291# CONFIG_NETFILTER_XT_MATCH_U32 is not set 326# CONFIG_NETFILTER_XT_MATCH_U32 is not set
292# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set 327# CONFIG_IP_VS is not set
293 328
294# 329#
295# IP: Netfilter Configuration 330# IP: Netfilter Configuration
296# 331#
332# CONFIG_NF_DEFRAG_IPV4 is not set
297CONFIG_IP_NF_QUEUE=m 333CONFIG_IP_NF_QUEUE=m
298CONFIG_IP_NF_IPTABLES=m 334CONFIG_IP_NF_IPTABLES=m
299CONFIG_IP_NF_MATCH_IPRANGE=m 335# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
300CONFIG_IP_NF_MATCH_TOS=m
301CONFIG_IP_NF_MATCH_RECENT=m
302CONFIG_IP_NF_MATCH_ECN=m
303# CONFIG_IP_NF_MATCH_AH is not set 336# CONFIG_IP_NF_MATCH_AH is not set
337CONFIG_IP_NF_MATCH_ECN=m
304CONFIG_IP_NF_MATCH_TTL=m 338CONFIG_IP_NF_MATCH_TTL=m
305CONFIG_IP_NF_MATCH_OWNER=m
306# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
307CONFIG_IP_NF_FILTER=m 339CONFIG_IP_NF_FILTER=m
308CONFIG_IP_NF_TARGET_REJECT=m 340CONFIG_IP_NF_TARGET_REJECT=m
309CONFIG_IP_NF_TARGET_LOG=m 341CONFIG_IP_NF_TARGET_LOG=m
310CONFIG_IP_NF_TARGET_ULOG=m 342CONFIG_IP_NF_TARGET_ULOG=m
311CONFIG_IP_NF_MANGLE=m 343CONFIG_IP_NF_MANGLE=m
312CONFIG_IP_NF_TARGET_TOS=m
313CONFIG_IP_NF_TARGET_ECN=m 344CONFIG_IP_NF_TARGET_ECN=m
314# CONFIG_IP_NF_TARGET_TTL is not set 345# CONFIG_IP_NF_TARGET_TTL is not set
315CONFIG_IP_NF_RAW=m 346CONFIG_IP_NF_RAW=m
@@ -318,33 +349,30 @@ CONFIG_IP_NF_ARPFILTER=m
318CONFIG_IP_NF_ARP_MANGLE=m 349CONFIG_IP_NF_ARP_MANGLE=m
319 350
320# 351#
321# IPv6: Netfilter Configuration (EXPERIMENTAL) 352# IPv6: Netfilter Configuration
322# 353#
323# CONFIG_IP6_NF_QUEUE is not set 354# CONFIG_IP6_NF_QUEUE is not set
324CONFIG_IP6_NF_IPTABLES=m 355CONFIG_IP6_NF_IPTABLES=m
325CONFIG_IP6_NF_MATCH_RT=m 356# CONFIG_IP6_NF_MATCH_AH is not set
326CONFIG_IP6_NF_MATCH_OPTS=m 357# CONFIG_IP6_NF_MATCH_EUI64 is not set
327CONFIG_IP6_NF_MATCH_FRAG=m 358CONFIG_IP6_NF_MATCH_FRAG=m
359CONFIG_IP6_NF_MATCH_OPTS=m
328CONFIG_IP6_NF_MATCH_HL=m 360CONFIG_IP6_NF_MATCH_HL=m
329# CONFIG_IP6_NF_MATCH_OWNER is not set
330CONFIG_IP6_NF_MATCH_IPV6HEADER=m 361CONFIG_IP6_NF_MATCH_IPV6HEADER=m
331# CONFIG_IP6_NF_MATCH_AH is not set
332# CONFIG_IP6_NF_MATCH_MH is not set 362# CONFIG_IP6_NF_MATCH_MH is not set
333# CONFIG_IP6_NF_MATCH_EUI64 is not set 363CONFIG_IP6_NF_MATCH_RT=m
334CONFIG_IP6_NF_FILTER=m
335CONFIG_IP6_NF_TARGET_LOG=m 364CONFIG_IP6_NF_TARGET_LOG=m
365CONFIG_IP6_NF_FILTER=m
336CONFIG_IP6_NF_TARGET_REJECT=m 366CONFIG_IP6_NF_TARGET_REJECT=m
337CONFIG_IP6_NF_MANGLE=m 367CONFIG_IP6_NF_MANGLE=m
338# CONFIG_IP6_NF_TARGET_HL is not set 368# CONFIG_IP6_NF_TARGET_HL is not set
339CONFIG_IP6_NF_RAW=m 369CONFIG_IP6_NF_RAW=m
340CONFIG_IP_DCCP=m 370CONFIG_IP_DCCP=m
341CONFIG_INET_DCCP_DIAG=m 371CONFIG_INET_DCCP_DIAG=m
342CONFIG_IP_DCCP_ACKVEC=y
343 372
344# 373#
345# DCCP CCIDs Configuration (EXPERIMENTAL) 374# DCCP CCIDs Configuration (EXPERIMENTAL)
346# 375#
347CONFIG_IP_DCCP_CCID2=m
348# CONFIG_IP_DCCP_CCID2_DEBUG is not set 376# CONFIG_IP_DCCP_CCID2_DEBUG is not set
349# CONFIG_IP_DCCP_CCID3 is not set 377# CONFIG_IP_DCCP_CCID3 is not set
350 378
@@ -356,6 +384,7 @@ CONFIG_IP_DCCP_CCID2=m
356# CONFIG_TIPC is not set 384# CONFIG_TIPC is not set
357# CONFIG_ATM is not set 385# CONFIG_ATM is not set
358# CONFIG_BRIDGE is not set 386# CONFIG_BRIDGE is not set
387# CONFIG_NET_DSA is not set
359# CONFIG_VLAN_8021Q is not set 388# CONFIG_VLAN_8021Q is not set
360# CONFIG_DECNET is not set 389# CONFIG_DECNET is not set
361CONFIG_LLC=m 390CONFIG_LLC=m
@@ -366,28 +395,26 @@ CONFIG_LLC2=m
366# CONFIG_LAPB is not set 395# CONFIG_LAPB is not set
367# CONFIG_ECONET is not set 396# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set 397# CONFIG_WAN_ROUTER is not set
369
370#
371# QoS and/or fair queueing
372#
373# CONFIG_NET_SCHED is not set 398# CONFIG_NET_SCHED is not set
399# CONFIG_DCB is not set
374 400
375# 401#
376# Network testing 402# Network testing
377# 403#
378CONFIG_NET_PKTGEN=m 404CONFIG_NET_PKTGEN=m
379# CONFIG_HAMRADIO is not set 405# CONFIG_HAMRADIO is not set
406# CONFIG_CAN is not set
380# CONFIG_IRDA is not set 407# CONFIG_IRDA is not set
381# CONFIG_BT is not set 408# CONFIG_BT is not set
382# CONFIG_AF_RXRPC is not set 409# CONFIG_AF_RXRPC is not set
383 410# CONFIG_PHONET is not set
384# 411CONFIG_WIRELESS=y
385# Wireless
386#
387# CONFIG_CFG80211 is not set 412# CONFIG_CFG80211 is not set
413CONFIG_WIRELESS_OLD_REGULATORY=y
388# CONFIG_WIRELESS_EXT is not set 414# CONFIG_WIRELESS_EXT is not set
415# CONFIG_LIB80211 is not set
389# CONFIG_MAC80211 is not set 416# CONFIG_MAC80211 is not set
390# CONFIG_IEEE80211 is not set 417# CONFIG_WIMAX is not set
391# CONFIG_RFKILL is not set 418# CONFIG_RFKILL is not set
392# CONFIG_NET_9P is not set 419# CONFIG_NET_9P is not set
393 420
@@ -402,6 +429,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
402# CONFIG_STANDALONE is not set 429# CONFIG_STANDALONE is not set
403# CONFIG_PREVENT_FIRMWARE_BUILD is not set 430# CONFIG_PREVENT_FIRMWARE_BUILD is not set
404CONFIG_FW_LOADER=y 431CONFIG_FW_LOADER=y
432CONFIG_FIRMWARE_IN_KERNEL=y
433CONFIG_EXTRA_FIRMWARE=""
405# CONFIG_DEBUG_DRIVER is not set 434# CONFIG_DEBUG_DRIVER is not set
406# CONFIG_DEBUG_DEVRES is not set 435# CONFIG_DEBUG_DEVRES is not set
407# CONFIG_SYS_HYPERVISOR is not set 436# CONFIG_SYS_HYPERVISOR is not set
@@ -421,14 +450,23 @@ CONFIG_BLK_DEV_LOOP=y
421CONFIG_BLK_DEV_RAM=y 450CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16 451CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=6144 452CONFIG_BLK_DEV_RAM_SIZE=6144
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 453# CONFIG_BLK_DEV_XIP is not set
425# CONFIG_CDROM_PKTCDVD is not set 454# CONFIG_CDROM_PKTCDVD is not set
426# CONFIG_ATA_OVER_ETH is not set 455# CONFIG_ATA_OVER_ETH is not set
456# CONFIG_BLK_DEV_HD is not set
427CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
428# CONFIG_PHANTOM is not set 458# CONFIG_PHANTOM is not set
429# CONFIG_EEPROM_93CX6 is not set
430# CONFIG_SGI_IOC4 is not set 459# CONFIG_SGI_IOC4 is not set
431# CONFIG_TIFM_CORE is not set 460# CONFIG_TIFM_CORE is not set
461# CONFIG_ENCLOSURE_SERVICES is not set
462# CONFIG_HP_ILO is not set
463# CONFIG_C2PORT is not set
464
465#
466# EEPROM support
467#
468# CONFIG_EEPROM_93CX6 is not set
469CONFIG_HAVE_IDE=y
432# CONFIG_IDE is not set 470# CONFIG_IDE is not set
433 471
434# 472#
@@ -468,8 +506,10 @@ CONFIG_SCSI_SPI_ATTRS=y
468CONFIG_SCSI_FC_ATTRS=m 506CONFIG_SCSI_FC_ATTRS=m
469CONFIG_SCSI_ISCSI_ATTRS=m 507CONFIG_SCSI_ISCSI_ATTRS=m
470# CONFIG_SCSI_SAS_LIBSAS is not set 508# CONFIG_SCSI_SAS_LIBSAS is not set
509# CONFIG_SCSI_SRP_ATTRS is not set
471CONFIG_SCSI_LOWLEVEL=y 510CONFIG_SCSI_LOWLEVEL=y
472# CONFIG_ISCSI_TCP is not set 511# CONFIG_ISCSI_TCP is not set
512# CONFIG_SCSI_CXGB3_ISCSI is not set
473# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 513# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
474# CONFIG_SCSI_3W_9XXX is not set 514# CONFIG_SCSI_3W_9XXX is not set
475# CONFIG_SCSI_ACARD is not set 515# CONFIG_SCSI_ACARD is not set
@@ -478,16 +518,21 @@ CONFIG_SCSI_LOWLEVEL=y
478# CONFIG_SCSI_AIC7XXX_OLD is not set 518# CONFIG_SCSI_AIC7XXX_OLD is not set
479# CONFIG_SCSI_AIC79XX is not set 519# CONFIG_SCSI_AIC79XX is not set
480# CONFIG_SCSI_AIC94XX is not set 520# CONFIG_SCSI_AIC94XX is not set
521# CONFIG_SCSI_DPT_I2O is not set
522# CONFIG_SCSI_ADVANSYS is not set
481# CONFIG_SCSI_ARCMSR is not set 523# CONFIG_SCSI_ARCMSR is not set
482# CONFIG_MEGARAID_NEWGEN is not set 524# CONFIG_MEGARAID_NEWGEN is not set
483# CONFIG_MEGARAID_LEGACY is not set 525# CONFIG_MEGARAID_LEGACY is not set
484# CONFIG_MEGARAID_SAS is not set 526# CONFIG_MEGARAID_SAS is not set
485# CONFIG_SCSI_HPTIOP is not set 527# CONFIG_SCSI_HPTIOP is not set
528# CONFIG_LIBFC is not set
529# CONFIG_FCOE is not set
486# CONFIG_SCSI_DMX3191D is not set 530# CONFIG_SCSI_DMX3191D is not set
487# CONFIG_SCSI_FUTURE_DOMAIN is not set 531# CONFIG_SCSI_FUTURE_DOMAIN is not set
488# CONFIG_SCSI_IPS is not set 532# CONFIG_SCSI_IPS is not set
489# CONFIG_SCSI_INITIO is not set 533# CONFIG_SCSI_INITIO is not set
490# CONFIG_SCSI_INIA100 is not set 534# CONFIG_SCSI_INIA100 is not set
535# CONFIG_SCSI_MVSAS is not set
491# CONFIG_SCSI_STEX is not set 536# CONFIG_SCSI_STEX is not set
492CONFIG_SCSI_SYM53C8XX_2=y 537CONFIG_SCSI_SYM53C8XX_2=y
493CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 538CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
@@ -503,9 +548,11 @@ CONFIG_SCSI_QLOGIC_1280=m
503CONFIG_SCSI_DEBUG=m 548CONFIG_SCSI_DEBUG=m
504# CONFIG_SCSI_SRP is not set 549# CONFIG_SCSI_SRP is not set
505# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 550# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
551# CONFIG_SCSI_DH is not set
506# CONFIG_ATA is not set 552# CONFIG_ATA is not set
507CONFIG_MD=y 553CONFIG_MD=y
508CONFIG_BLK_DEV_MD=y 554CONFIG_BLK_DEV_MD=y
555CONFIG_MD_AUTODETECT=y
509CONFIG_MD_LINEAR=y 556CONFIG_MD_LINEAR=y
510CONFIG_MD_RAID0=y 557CONFIG_MD_RAID0=y
511CONFIG_MD_RAID1=y 558CONFIG_MD_RAID1=y
@@ -514,10 +561,6 @@ CONFIG_MD_RAID1=y
514# CONFIG_MD_MULTIPATH is not set 561# CONFIG_MD_MULTIPATH is not set
515# CONFIG_MD_FAULTY is not set 562# CONFIG_MD_FAULTY is not set
516# CONFIG_BLK_DEV_DM is not set 563# CONFIG_BLK_DEV_DM is not set
517
518#
519# Fusion MPT device support
520#
521CONFIG_FUSION=y 564CONFIG_FUSION=y
522CONFIG_FUSION_SPI=m 565CONFIG_FUSION_SPI=m
523CONFIG_FUSION_FC=m 566CONFIG_FUSION_FC=m
@@ -529,20 +572,40 @@ CONFIG_FUSION_CTL=m
529# 572#
530# IEEE 1394 (FireWire) support 573# IEEE 1394 (FireWire) support
531# 574#
575
576#
577# Enable only one of the two stacks, unless you know what you are doing
578#
532# CONFIG_FIREWIRE is not set 579# CONFIG_FIREWIRE is not set
533# CONFIG_IEEE1394 is not set 580# CONFIG_IEEE1394 is not set
534# CONFIG_I2O is not set 581# CONFIG_I2O is not set
535CONFIG_NETDEVICES=y 582CONFIG_NETDEVICES=y
536# CONFIG_NETDEVICES_MULTIQUEUE is not set
537CONFIG_DUMMY=m 583CONFIG_DUMMY=m
538CONFIG_BONDING=m 584CONFIG_BONDING=m
539# CONFIG_MACVLAN is not set 585# CONFIG_MACVLAN is not set
540# CONFIG_EQUALIZER is not set 586# CONFIG_EQUALIZER is not set
541CONFIG_TUN=m 587CONFIG_TUN=m
542# CONFIG_VETH is not set 588# CONFIG_VETH is not set
543# CONFIG_IP1000 is not set
544# CONFIG_ARCNET is not set 589# CONFIG_ARCNET is not set
545# CONFIG_PHYLIB is not set 590CONFIG_PHYLIB=m
591
592#
593# MII PHY device drivers
594#
595# CONFIG_MARVELL_PHY is not set
596# CONFIG_DAVICOM_PHY is not set
597# CONFIG_QSEMI_PHY is not set
598# CONFIG_LXT_PHY is not set
599# CONFIG_CICADA_PHY is not set
600# CONFIG_VITESSE_PHY is not set
601# CONFIG_SMSC_PHY is not set
602# CONFIG_BROADCOM_PHY is not set
603# CONFIG_ICPLUS_PHY is not set
604# CONFIG_REALTEK_PHY is not set
605# CONFIG_NATIONAL_PHY is not set
606# CONFIG_STE10XP is not set
607# CONFIG_LSI_ET1011C_PHY is not set
608# CONFIG_MDIO_BITBANG is not set
546CONFIG_NET_ETHERNET=y 609CONFIG_NET_ETHERNET=y
547CONFIG_MII=m 610CONFIG_MII=m
548# CONFIG_HAPPYMEAL is not set 611# CONFIG_HAPPYMEAL is not set
@@ -567,33 +630,38 @@ CONFIG_HP100=m
567# CONFIG_IBM_NEW_EMAC_RGMII is not set 630# CONFIG_IBM_NEW_EMAC_RGMII is not set
568# CONFIG_IBM_NEW_EMAC_TAH is not set 631# CONFIG_IBM_NEW_EMAC_TAH is not set
569# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 632# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
633# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
634# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
635# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
570CONFIG_NET_PCI=y 636CONFIG_NET_PCI=y
571CONFIG_PCNET32=m 637CONFIG_PCNET32=m
572# CONFIG_PCNET32_NAPI is not set
573# CONFIG_AMD8111_ETH is not set 638# CONFIG_AMD8111_ETH is not set
574# CONFIG_ADAPTEC_STARFIRE is not set 639# CONFIG_ADAPTEC_STARFIRE is not set
575# CONFIG_B44 is not set 640# CONFIG_B44 is not set
576# CONFIG_FORCEDETH is not set 641# CONFIG_FORCEDETH is not set
577# CONFIG_EEPRO100 is not set
578CONFIG_E100=m 642CONFIG_E100=m
579# CONFIG_FEALNX is not set 643# CONFIG_FEALNX is not set
580# CONFIG_NATSEMI is not set 644# CONFIG_NATSEMI is not set
581# CONFIG_NE2K_PCI is not set 645# CONFIG_NE2K_PCI is not set
582# CONFIG_8139CP is not set 646# CONFIG_8139CP is not set
583# CONFIG_8139TOO is not set 647# CONFIG_8139TOO is not set
648# CONFIG_R6040 is not set
584# CONFIG_SIS900 is not set 649# CONFIG_SIS900 is not set
585# CONFIG_EPIC100 is not set 650# CONFIG_EPIC100 is not set
651# CONFIG_SMSC9420 is not set
586# CONFIG_SUNDANCE is not set 652# CONFIG_SUNDANCE is not set
653# CONFIG_TLAN is not set
587# CONFIG_VIA_RHINE is not set 654# CONFIG_VIA_RHINE is not set
588# CONFIG_SC92031 is not set 655# CONFIG_SC92031 is not set
656# CONFIG_ATL2 is not set
589CONFIG_NETDEV_1000=y 657CONFIG_NETDEV_1000=y
590CONFIG_ACENIC=m 658CONFIG_ACENIC=m
591CONFIG_ACENIC_OMIT_TIGON_I=y 659CONFIG_ACENIC_OMIT_TIGON_I=y
592# CONFIG_DL2K is not set 660# CONFIG_DL2K is not set
593CONFIG_E1000=m 661CONFIG_E1000=m
594CONFIG_E1000_NAPI=y
595# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
596# CONFIG_E1000E is not set 662# CONFIG_E1000E is not set
663# CONFIG_IP1000 is not set
664# CONFIG_IGB is not set
597# CONFIG_NS83820 is not set 665# CONFIG_NS83820 is not set
598# CONFIG_HAMACHI is not set 666# CONFIG_HAMACHI is not set
599# CONFIG_YELLOWFIN is not set 667# CONFIG_YELLOWFIN is not set
@@ -601,23 +669,31 @@ CONFIG_E1000_NAPI=y
601# CONFIG_SIS190 is not set 669# CONFIG_SIS190 is not set
602# CONFIG_SKGE is not set 670# CONFIG_SKGE is not set
603# CONFIG_SKY2 is not set 671# CONFIG_SKY2 is not set
604# CONFIG_SK98LIN is not set
605# CONFIG_VIA_VELOCITY is not set 672# CONFIG_VIA_VELOCITY is not set
606CONFIG_TIGON3=m 673CONFIG_TIGON3=m
607# CONFIG_BNX2 is not set 674# CONFIG_BNX2 is not set
608# CONFIG_QLA3XXX is not set 675# CONFIG_QLA3XXX is not set
609# CONFIG_ATL1 is not set 676# CONFIG_ATL1 is not set
677# CONFIG_ATL1E is not set
678# CONFIG_ATL1C is not set
679# CONFIG_JME is not set
610CONFIG_NETDEV_10000=y 680CONFIG_NETDEV_10000=y
611# CONFIG_CHELSIO_T1 is not set 681# CONFIG_CHELSIO_T1 is not set
682CONFIG_CHELSIO_T3_DEPENDS=y
612# CONFIG_CHELSIO_T3 is not set 683# CONFIG_CHELSIO_T3 is not set
684# CONFIG_ENIC is not set
613# CONFIG_IXGBE is not set 685# CONFIG_IXGBE is not set
614# CONFIG_IXGB is not set 686# CONFIG_IXGB is not set
615# CONFIG_S2IO is not set 687# CONFIG_S2IO is not set
616# CONFIG_MYRI10GE is not set 688# CONFIG_MYRI10GE is not set
617# CONFIG_NETXEN_NIC is not set 689# CONFIG_NETXEN_NIC is not set
618# CONFIG_NIU is not set 690# CONFIG_NIU is not set
691# CONFIG_MLX4_EN is not set
619# CONFIG_MLX4_CORE is not set 692# CONFIG_MLX4_CORE is not set
620# CONFIG_TEHUTI is not set 693# CONFIG_TEHUTI is not set
694# CONFIG_BNX2X is not set
695# CONFIG_QLGE is not set
696# CONFIG_SFC is not set
621# CONFIG_TR is not set 697# CONFIG_TR is not set
622 698
623# 699#
@@ -625,6 +701,11 @@ CONFIG_NETDEV_10000=y
625# 701#
626# CONFIG_WLAN_PRE80211 is not set 702# CONFIG_WLAN_PRE80211 is not set
627# CONFIG_WLAN_80211 is not set 703# CONFIG_WLAN_80211 is not set
704# CONFIG_IWLWIFI_LEDS is not set
705
706#
707# Enable WiMAX (Networking options) to see the WiMAX drivers
708#
628CONFIG_NET_PCMCIA=y 709CONFIG_NET_PCMCIA=y
629CONFIG_PCMCIA_3C589=m 710CONFIG_PCMCIA_3C589=m
630CONFIG_PCMCIA_3C574=m 711CONFIG_PCMCIA_3C574=m
@@ -650,7 +731,6 @@ CONFIG_PPP_BSDCOMP=m
650# CONFIG_SLIP is not set 731# CONFIG_SLIP is not set
651CONFIG_SLHC=m 732CONFIG_SLHC=m
652# CONFIG_NET_FC is not set 733# CONFIG_NET_FC is not set
653# CONFIG_SHAPER is not set
654# CONFIG_NETCONSOLE is not set 734# CONFIG_NETCONSOLE is not set
655# CONFIG_NETPOLL is not set 735# CONFIG_NETPOLL is not set
656# CONFIG_NET_POLL_CONTROLLER is not set 736# CONFIG_NET_POLL_CONTROLLER is not set
@@ -669,7 +749,6 @@ CONFIG_INPUT=y
669# 749#
670# CONFIG_INPUT_MOUSEDEV is not set 750# CONFIG_INPUT_MOUSEDEV is not set
671# CONFIG_INPUT_JOYDEV is not set 751# CONFIG_INPUT_JOYDEV is not set
672# CONFIG_INPUT_TSDEV is not set
673# CONFIG_INPUT_EVDEV is not set 752# CONFIG_INPUT_EVDEV is not set
674# CONFIG_INPUT_EVBUG is not set 753# CONFIG_INPUT_EVBUG is not set
675 754
@@ -693,10 +772,13 @@ CONFIG_INPUT=y
693# Character devices 772# Character devices
694# 773#
695CONFIG_VT=y 774CONFIG_VT=y
775CONFIG_CONSOLE_TRANSLATIONS=y
696CONFIG_VT_CONSOLE=y 776CONFIG_VT_CONSOLE=y
697CONFIG_HW_CONSOLE=y 777CONFIG_HW_CONSOLE=y
698# CONFIG_VT_HW_CONSOLE_BINDING is not set 778# CONFIG_VT_HW_CONSOLE_BINDING is not set
779CONFIG_DEVKMEM=y
699# CONFIG_SERIAL_NONSTANDARD is not set 780# CONFIG_SERIAL_NONSTANDARD is not set
781# CONFIG_NOZOMI is not set
700 782
701# 783#
702# Serial drivers 784# Serial drivers
@@ -721,17 +803,12 @@ CONFIG_SERIAL_CORE=y
721CONFIG_SERIAL_CORE_CONSOLE=y 803CONFIG_SERIAL_CORE_CONSOLE=y
722# CONFIG_SERIAL_JSM is not set 804# CONFIG_SERIAL_JSM is not set
723CONFIG_UNIX98_PTYS=y 805CONFIG_UNIX98_PTYS=y
806# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
724# CONFIG_LEGACY_PTYS is not set 807# CONFIG_LEGACY_PTYS is not set
725# CONFIG_IPMI_HANDLER is not set 808# CONFIG_IPMI_HANDLER is not set
726# CONFIG_WATCHDOG is not set
727# CONFIG_HW_RANDOM is not set 809# CONFIG_HW_RANDOM is not set
728CONFIG_GEN_RTC=y
729CONFIG_GEN_RTC_X=y
730# CONFIG_R3964 is not set 810# CONFIG_R3964 is not set
731# CONFIG_APPLICOM is not set 811# CONFIG_APPLICOM is not set
732CONFIG_AGP=y
733CONFIG_AGP_PARISC=y
734# CONFIG_DRM is not set
735 812
736# 813#
737# PCMCIA character devices 814# PCMCIA character devices
@@ -739,51 +816,66 @@ CONFIG_AGP_PARISC=y
739# CONFIG_SYNCLINK_CS is not set 816# CONFIG_SYNCLINK_CS is not set
740# CONFIG_CARDMAN_4000 is not set 817# CONFIG_CARDMAN_4000 is not set
741# CONFIG_CARDMAN_4040 is not set 818# CONFIG_CARDMAN_4040 is not set
819# CONFIG_IPWIRELESS is not set
742CONFIG_RAW_DRIVER=y 820CONFIG_RAW_DRIVER=y
743CONFIG_MAX_RAW_DEVS=256 821CONFIG_MAX_RAW_DEVS=256
744# CONFIG_TCG_TPM is not set 822# CONFIG_TCG_TPM is not set
745CONFIG_DEVPORT=y 823CONFIG_DEVPORT=y
746# CONFIG_I2C is not set 824# CONFIG_I2C is not set
747
748#
749# SPI support
750#
751# CONFIG_SPI is not set 825# CONFIG_SPI is not set
752# CONFIG_SPI_MASTER is not set
753# CONFIG_W1 is not set 826# CONFIG_W1 is not set
754# CONFIG_POWER_SUPPLY is not set 827# CONFIG_POWER_SUPPLY is not set
755# CONFIG_HWMON is not set 828# CONFIG_HWMON is not set
829# CONFIG_THERMAL is not set
830# CONFIG_THERMAL_HWMON is not set
831# CONFIG_WATCHDOG is not set
832CONFIG_SSB_POSSIBLE=y
756 833
757# 834#
758# Sonics Silicon Backplane 835# Sonics Silicon Backplane
759# 836#
760CONFIG_SSB_POSSIBLE=y
761# CONFIG_SSB is not set 837# CONFIG_SSB is not set
762 838
763# 839#
764# Multifunction device drivers 840# Multifunction device drivers
765# 841#
842# CONFIG_MFD_CORE is not set
766# CONFIG_MFD_SM501 is not set 843# CONFIG_MFD_SM501 is not set
844# CONFIG_HTC_PASIC3 is not set
845# CONFIG_MFD_TMIO is not set
846# CONFIG_REGULATOR is not set
767 847
768# 848#
769# Multimedia devices 849# Multimedia devices
770# 850#
851
852#
853# Multimedia core support
854#
771# CONFIG_VIDEO_DEV is not set 855# CONFIG_VIDEO_DEV is not set
772# CONFIG_DVB_CORE is not set 856# CONFIG_DVB_CORE is not set
857# CONFIG_VIDEO_MEDIA is not set
858
859#
860# Multimedia drivers
861#
773# CONFIG_DAB is not set 862# CONFIG_DAB is not set
774 863
775# 864#
776# Graphics support 865# Graphics support
777# 866#
867CONFIG_AGP=y
868CONFIG_AGP_PARISC=y
869# CONFIG_DRM is not set
870# CONFIG_VGASTATE is not set
871# CONFIG_VIDEO_OUTPUT_CONTROL is not set
872# CONFIG_FB is not set
778# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 873# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
779 874
780# 875#
781# Display device support 876# Display device support
782# 877#
783# CONFIG_DISPLAY_SUPPORT is not set 878# CONFIG_DISPLAY_SUPPORT is not set
784# CONFIG_VGASTATE is not set
785# CONFIG_VIDEO_OUTPUT_CONTROL is not set
786# CONFIG_FB is not set
787 879
788# 880#
789# Console display driver support 881# Console display driver support
@@ -792,50 +884,83 @@ CONFIG_DUMMY_CONSOLE=y
792CONFIG_DUMMY_CONSOLE_COLUMNS=160 884CONFIG_DUMMY_CONSOLE_COLUMNS=160
793CONFIG_DUMMY_CONSOLE_ROWS=64 885CONFIG_DUMMY_CONSOLE_ROWS=64
794# CONFIG_STI_CONSOLE is not set 886# CONFIG_STI_CONSOLE is not set
795
796#
797# Sound
798#
799# CONFIG_SOUND is not set 887# CONFIG_SOUND is not set
800CONFIG_HID_SUPPORT=y 888CONFIG_HID_SUPPORT=y
801CONFIG_HID=y 889CONFIG_HID=y
802# CONFIG_HID_DEBUG is not set 890# CONFIG_HID_DEBUG is not set
891# CONFIG_HIDRAW is not set
892# CONFIG_HID_PID is not set
893
894#
895# Special HID drivers
896#
897CONFIG_HID_COMPAT=y
803CONFIG_USB_SUPPORT=y 898CONFIG_USB_SUPPORT=y
804CONFIG_USB_ARCH_HAS_HCD=y 899CONFIG_USB_ARCH_HAS_HCD=y
805CONFIG_USB_ARCH_HAS_OHCI=y 900CONFIG_USB_ARCH_HAS_OHCI=y
806CONFIG_USB_ARCH_HAS_EHCI=y 901CONFIG_USB_ARCH_HAS_EHCI=y
807# CONFIG_USB is not set 902# CONFIG_USB is not set
903# CONFIG_USB_OTG_WHITELIST is not set
904# CONFIG_USB_OTG_BLACKLIST_HUB is not set
808 905
809# 906#
810# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 907# Enable Host or Gadget support to see Inventra options
811# 908#
812 909
813# 910#
814# USB Gadget Support 911# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
815# 912#
816# CONFIG_USB_GADGET is not set 913# CONFIG_USB_GADGET is not set
914
915#
916# OTG and related infrastructure
917#
918# CONFIG_UWB is not set
817# CONFIG_MMC is not set 919# CONFIG_MMC is not set
920# CONFIG_MEMSTICK is not set
818# CONFIG_NEW_LEDS is not set 921# CONFIG_NEW_LEDS is not set
922# CONFIG_ACCESSIBILITY is not set
819# CONFIG_INFINIBAND is not set 923# CONFIG_INFINIBAND is not set
820# CONFIG_RTC_CLASS is not set 924CONFIG_RTC_LIB=y
925CONFIG_RTC_CLASS=y
926CONFIG_RTC_HCTOSYS=y
927CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
928# CONFIG_RTC_DEBUG is not set
821 929
822# 930#
823# DMA Engine support 931# RTC interfaces
824# 932#
825# CONFIG_DMA_ENGINE is not set 933CONFIG_RTC_INTF_SYSFS=y
934CONFIG_RTC_INTF_PROC=y
935CONFIG_RTC_INTF_DEV=y
936# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
937# CONFIG_RTC_DRV_TEST is not set
826 938
827# 939#
828# DMA Clients 940# SPI RTC drivers
829# 941#
830 942
831# 943#
832# DMA Devices 944# Platform RTC drivers
833# 945#
946# CONFIG_RTC_DRV_DS1286 is not set
947# CONFIG_RTC_DRV_DS1511 is not set
948# CONFIG_RTC_DRV_DS1553 is not set
949# CONFIG_RTC_DRV_DS1742 is not set
950# CONFIG_RTC_DRV_STK17TA8 is not set
951# CONFIG_RTC_DRV_M48T86 is not set
952# CONFIG_RTC_DRV_M48T35 is not set
953# CONFIG_RTC_DRV_M48T59 is not set
954# CONFIG_RTC_DRV_BQ4802 is not set
955# CONFIG_RTC_DRV_V3020 is not set
834 956
835# 957#
836# Userspace I/O 958# on-CPU RTC drivers
837# 959#
960CONFIG_RTC_DRV_PARISC=y
961# CONFIG_DMADEVICES is not set
838# CONFIG_UIO is not set 962# CONFIG_UIO is not set
963# CONFIG_STAGING is not set
839 964
840# 965#
841# File systems 966# File systems
@@ -845,7 +970,7 @@ CONFIG_EXT2_FS=y
845# CONFIG_EXT2_FS_XIP is not set 970# CONFIG_EXT2_FS_XIP is not set
846CONFIG_EXT3_FS=y 971CONFIG_EXT3_FS=y
847# CONFIG_EXT3_FS_XATTR is not set 972# CONFIG_EXT3_FS_XATTR is not set
848# CONFIG_EXT4DEV_FS is not set 973# CONFIG_EXT4_FS is not set
849CONFIG_JBD=y 974CONFIG_JBD=y
850# CONFIG_JBD_DEBUG is not set 975# CONFIG_JBD_DEBUG is not set
851# CONFIG_REISERFS_FS is not set 976# CONFIG_REISERFS_FS is not set
@@ -855,19 +980,19 @@ CONFIG_JFS_FS=m
855# CONFIG_JFS_DEBUG is not set 980# CONFIG_JFS_DEBUG is not set
856# CONFIG_JFS_STATISTICS is not set 981# CONFIG_JFS_STATISTICS is not set
857CONFIG_FS_POSIX_ACL=y 982CONFIG_FS_POSIX_ACL=y
983CONFIG_FILE_LOCKING=y
858CONFIG_XFS_FS=m 984CONFIG_XFS_FS=m
859# CONFIG_XFS_QUOTA is not set 985# CONFIG_XFS_QUOTA is not set
860# CONFIG_XFS_SECURITY is not set
861# CONFIG_XFS_POSIX_ACL is not set 986# CONFIG_XFS_POSIX_ACL is not set
862# CONFIG_XFS_RT is not set 987# CONFIG_XFS_RT is not set
988# CONFIG_XFS_DEBUG is not set
863# CONFIG_GFS2_FS is not set 989# CONFIG_GFS2_FS is not set
864# CONFIG_OCFS2_FS is not set 990# CONFIG_OCFS2_FS is not set
865# CONFIG_MINIX_FS is not set 991# CONFIG_BTRFS_FS is not set
866# CONFIG_ROMFS_FS is not set 992CONFIG_DNOTIFY=y
867CONFIG_INOTIFY=y 993CONFIG_INOTIFY=y
868CONFIG_INOTIFY_USER=y 994CONFIG_INOTIFY_USER=y
869# CONFIG_QUOTA is not set 995# CONFIG_QUOTA is not set
870CONFIG_DNOTIFY=y
871# CONFIG_AUTOFS_FS is not set 996# CONFIG_AUTOFS_FS is not set
872CONFIG_AUTOFS4_FS=y 997CONFIG_AUTOFS4_FS=y
873# CONFIG_FUSE_FS is not set 998# CONFIG_FUSE_FS is not set
@@ -897,16 +1022,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
897CONFIG_PROC_FS=y 1022CONFIG_PROC_FS=y
898CONFIG_PROC_KCORE=y 1023CONFIG_PROC_KCORE=y
899CONFIG_PROC_SYSCTL=y 1024CONFIG_PROC_SYSCTL=y
1025CONFIG_PROC_PAGE_MONITOR=y
900CONFIG_SYSFS=y 1026CONFIG_SYSFS=y
901CONFIG_TMPFS=y 1027CONFIG_TMPFS=y
902# CONFIG_TMPFS_POSIX_ACL is not set 1028# CONFIG_TMPFS_POSIX_ACL is not set
903# CONFIG_HUGETLB_PAGE is not set 1029# CONFIG_HUGETLB_PAGE is not set
904CONFIG_RAMFS=y
905# CONFIG_CONFIGFS_FS is not set 1030# CONFIG_CONFIGFS_FS is not set
906 1031CONFIG_MISC_FILESYSTEMS=y
907#
908# Miscellaneous filesystems
909#
910# CONFIG_ADFS_FS is not set 1032# CONFIG_ADFS_FS is not set
911# CONFIG_AFFS_FS is not set 1033# CONFIG_AFFS_FS is not set
912# CONFIG_ECRYPT_FS is not set 1034# CONFIG_ECRYPT_FS is not set
@@ -916,34 +1038,33 @@ CONFIG_RAMFS=y
916# CONFIG_BFS_FS is not set 1038# CONFIG_BFS_FS is not set
917# CONFIG_EFS_FS is not set 1039# CONFIG_EFS_FS is not set
918# CONFIG_CRAMFS is not set 1040# CONFIG_CRAMFS is not set
1041# CONFIG_SQUASHFS is not set
919# CONFIG_VXFS_FS is not set 1042# CONFIG_VXFS_FS is not set
1043# CONFIG_MINIX_FS is not set
1044# CONFIG_OMFS_FS is not set
920# CONFIG_HPFS_FS is not set 1045# CONFIG_HPFS_FS is not set
921# CONFIG_QNX4FS_FS is not set 1046# CONFIG_QNX4FS_FS is not set
1047# CONFIG_ROMFS_FS is not set
922# CONFIG_SYSV_FS is not set 1048# CONFIG_SYSV_FS is not set
923CONFIG_UFS_FS=m 1049CONFIG_UFS_FS=m
924# CONFIG_UFS_FS_WRITE is not set 1050# CONFIG_UFS_FS_WRITE is not set
925# CONFIG_UFS_DEBUG is not set 1051# CONFIG_UFS_DEBUG is not set
926 1052CONFIG_NETWORK_FILESYSTEMS=y
927#
928# Network File Systems
929#
930CONFIG_NFS_FS=m 1053CONFIG_NFS_FS=m
931CONFIG_NFS_V3=y 1054CONFIG_NFS_V3=y
932# CONFIG_NFS_V3_ACL is not set 1055# CONFIG_NFS_V3_ACL is not set
933CONFIG_NFS_V4=y 1056CONFIG_NFS_V4=y
934CONFIG_NFS_DIRECTIO=y
935CONFIG_NFSD=m 1057CONFIG_NFSD=m
936CONFIG_NFSD_V3=y 1058CONFIG_NFSD_V3=y
937# CONFIG_NFSD_V3_ACL is not set 1059# CONFIG_NFSD_V3_ACL is not set
938CONFIG_NFSD_V4=y 1060CONFIG_NFSD_V4=y
939CONFIG_NFSD_TCP=y
940CONFIG_LOCKD=m 1061CONFIG_LOCKD=m
941CONFIG_LOCKD_V4=y 1062CONFIG_LOCKD_V4=y
942CONFIG_EXPORTFS=m 1063CONFIG_EXPORTFS=m
943CONFIG_NFS_COMMON=y 1064CONFIG_NFS_COMMON=y
944CONFIG_SUNRPC=m 1065CONFIG_SUNRPC=m
945CONFIG_SUNRPC_GSS=m 1066CONFIG_SUNRPC_GSS=m
946# CONFIG_SUNRPC_BIND34 is not set 1067# CONFIG_SUNRPC_REGISTER_V4 is not set
947CONFIG_RPCSEC_GSS_KRB5=m 1068CONFIG_RPCSEC_GSS_KRB5=m
948CONFIG_RPCSEC_GSS_SPKM3=m 1069CONFIG_RPCSEC_GSS_SPKM3=m
949CONFIG_SMB_FS=m 1070CONFIG_SMB_FS=m
@@ -952,6 +1073,7 @@ CONFIG_SMB_NLS_REMOTE="cp437"
952CONFIG_CIFS=m 1073CONFIG_CIFS=m
953# CONFIG_CIFS_STATS is not set 1074# CONFIG_CIFS_STATS is not set
954# CONFIG_CIFS_WEAK_PW_HASH is not set 1075# CONFIG_CIFS_WEAK_PW_HASH is not set
1076# CONFIG_CIFS_UPCALL is not set
955# CONFIG_CIFS_XATTR is not set 1077# CONFIG_CIFS_XATTR is not set
956# CONFIG_CIFS_DEBUG2 is not set 1078# CONFIG_CIFS_DEBUG2 is not set
957# CONFIG_CIFS_EXPERIMENTAL is not set 1079# CONFIG_CIFS_EXPERIMENTAL is not set
@@ -964,10 +1086,6 @@ CONFIG_CIFS=m
964# 1086#
965# CONFIG_PARTITION_ADVANCED is not set 1087# CONFIG_PARTITION_ADVANCED is not set
966CONFIG_MSDOS_PARTITION=y 1088CONFIG_MSDOS_PARTITION=y
967
968#
969# Native Language Support
970#
971CONFIG_NLS=y 1089CONFIG_NLS=y
972CONFIG_NLS_DEFAULT="iso8859-1" 1090CONFIG_NLS_DEFAULT="iso8859-1"
973CONFIG_NLS_CODEPAGE_437=m 1091CONFIG_NLS_CODEPAGE_437=m
@@ -1008,33 +1126,28 @@ CONFIG_NLS_ISO8859_15=m
1008# CONFIG_NLS_KOI8_R is not set 1126# CONFIG_NLS_KOI8_R is not set
1009# CONFIG_NLS_KOI8_U is not set 1127# CONFIG_NLS_KOI8_U is not set
1010CONFIG_NLS_UTF8=m 1128CONFIG_NLS_UTF8=m
1011
1012#
1013# Distributed Lock Manager
1014#
1015# CONFIG_DLM is not set 1129# CONFIG_DLM is not set
1016 1130
1017# 1131#
1018# Profiling support
1019#
1020CONFIG_PROFILING=y
1021CONFIG_OPROFILE=m
1022
1023#
1024# Kernel hacking 1132# Kernel hacking
1025# 1133#
1026# CONFIG_PRINTK_TIME is not set 1134# CONFIG_PRINTK_TIME is not set
1135CONFIG_ENABLE_WARN_DEPRECATED=y
1027CONFIG_ENABLE_MUST_CHECK=y 1136CONFIG_ENABLE_MUST_CHECK=y
1137CONFIG_FRAME_WARN=2048
1028CONFIG_MAGIC_SYSRQ=y 1138CONFIG_MAGIC_SYSRQ=y
1029# CONFIG_UNUSED_SYMBOLS is not set 1139# CONFIG_UNUSED_SYMBOLS is not set
1030# CONFIG_DEBUG_FS is not set 1140CONFIG_DEBUG_FS=y
1031CONFIG_HEADERS_CHECK=y 1141CONFIG_HEADERS_CHECK=y
1032CONFIG_DEBUG_KERNEL=y 1142CONFIG_DEBUG_KERNEL=y
1033# CONFIG_DEBUG_SHIRQ is not set 1143# CONFIG_DEBUG_SHIRQ is not set
1034CONFIG_DETECT_SOFTLOCKUP=y 1144CONFIG_DETECT_SOFTLOCKUP=y
1145# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1146CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1035CONFIG_SCHED_DEBUG=y 1147CONFIG_SCHED_DEBUG=y
1036# CONFIG_SCHEDSTATS is not set 1148# CONFIG_SCHEDSTATS is not set
1037# CONFIG_TIMER_STATS is not set 1149# CONFIG_TIMER_STATS is not set
1150# CONFIG_DEBUG_OBJECTS is not set
1038# CONFIG_DEBUG_SLAB is not set 1151# CONFIG_DEBUG_SLAB is not set
1039# CONFIG_DEBUG_RT_MUTEXES is not set 1152# CONFIG_DEBUG_RT_MUTEXES is not set
1040# CONFIG_RT_MUTEX_TESTER is not set 1153# CONFIG_RT_MUTEX_TESTER is not set
@@ -1046,10 +1159,33 @@ CONFIG_SCHED_DEBUG=y
1046# CONFIG_DEBUG_BUGVERBOSE is not set 1159# CONFIG_DEBUG_BUGVERBOSE is not set
1047# CONFIG_DEBUG_INFO is not set 1160# CONFIG_DEBUG_INFO is not set
1048# CONFIG_DEBUG_VM is not set 1161# CONFIG_DEBUG_VM is not set
1162# CONFIG_DEBUG_WRITECOUNT is not set
1163# CONFIG_DEBUG_MEMORY_INIT is not set
1049# CONFIG_DEBUG_LIST is not set 1164# CONFIG_DEBUG_LIST is not set
1050CONFIG_FORCED_INLINING=y 1165# CONFIG_DEBUG_SG is not set
1166# CONFIG_DEBUG_NOTIFIERS is not set
1167# CONFIG_BOOT_PRINTK_DELAY is not set
1051# CONFIG_RCU_TORTURE_TEST is not set 1168# CONFIG_RCU_TORTURE_TEST is not set
1169# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1170# CONFIG_BACKTRACE_SELF_TEST is not set
1171# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1052# CONFIG_FAULT_INJECTION is not set 1172# CONFIG_FAULT_INJECTION is not set
1173# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1174CONFIG_NOP_TRACER=y
1175CONFIG_RING_BUFFER=y
1176CONFIG_TRACING=y
1177
1178#
1179# Tracers
1180#
1181# CONFIG_SCHED_TRACER is not set
1182# CONFIG_CONTEXT_SWITCH_TRACER is not set
1183# CONFIG_BOOT_TRACER is not set
1184# CONFIG_TRACE_BRANCH_PROFILING is not set
1185# CONFIG_FTRACE_STARTUP_TEST is not set
1186# CONFIG_BUILD_DOCSRC is not set
1187# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1188# CONFIG_SAMPLES is not set
1053# CONFIG_DEBUG_RODATA is not set 1189# CONFIG_DEBUG_RODATA is not set
1054 1190
1055# 1191#
@@ -1058,56 +1194,112 @@ CONFIG_FORCED_INLINING=y
1058CONFIG_KEYS=y 1194CONFIG_KEYS=y
1059CONFIG_KEYS_DEBUG_PROC_KEYS=y 1195CONFIG_KEYS_DEBUG_PROC_KEYS=y
1060# CONFIG_SECURITY is not set 1196# CONFIG_SECURITY is not set
1197# CONFIG_SECURITYFS is not set
1198# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1061CONFIG_CRYPTO=y 1199CONFIG_CRYPTO=y
1200
1201#
1202# Crypto core or helper
1203#
1204# CONFIG_CRYPTO_FIPS is not set
1062CONFIG_CRYPTO_ALGAPI=y 1205CONFIG_CRYPTO_ALGAPI=y
1206CONFIG_CRYPTO_ALGAPI2=y
1207CONFIG_CRYPTO_AEAD=m
1208CONFIG_CRYPTO_AEAD2=y
1063CONFIG_CRYPTO_BLKCIPHER=m 1209CONFIG_CRYPTO_BLKCIPHER=m
1210CONFIG_CRYPTO_BLKCIPHER2=y
1064CONFIG_CRYPTO_HASH=y 1211CONFIG_CRYPTO_HASH=y
1212CONFIG_CRYPTO_HASH2=y
1213CONFIG_CRYPTO_RNG2=y
1065CONFIG_CRYPTO_MANAGER=y 1214CONFIG_CRYPTO_MANAGER=y
1215CONFIG_CRYPTO_MANAGER2=y
1216# CONFIG_CRYPTO_GF128MUL is not set
1217CONFIG_CRYPTO_NULL=m
1218# CONFIG_CRYPTO_CRYPTD is not set
1219CONFIG_CRYPTO_AUTHENC=m
1220CONFIG_CRYPTO_TEST=m
1221
1222#
1223# Authenticated Encryption with Associated Data
1224#
1225# CONFIG_CRYPTO_CCM is not set
1226# CONFIG_CRYPTO_GCM is not set
1227# CONFIG_CRYPTO_SEQIV is not set
1228
1229#
1230# Block modes
1231#
1232CONFIG_CRYPTO_CBC=m
1233# CONFIG_CRYPTO_CTR is not set
1234# CONFIG_CRYPTO_CTS is not set
1235# CONFIG_CRYPTO_ECB is not set
1236# CONFIG_CRYPTO_LRW is not set
1237# CONFIG_CRYPTO_PCBC is not set
1238# CONFIG_CRYPTO_XTS is not set
1239
1240#
1241# Hash modes
1242#
1066CONFIG_CRYPTO_HMAC=y 1243CONFIG_CRYPTO_HMAC=y
1067# CONFIG_CRYPTO_XCBC is not set 1244# CONFIG_CRYPTO_XCBC is not set
1068CONFIG_CRYPTO_NULL=m 1245
1246#
1247# Digest
1248#
1249CONFIG_CRYPTO_CRC32C=m
1069# CONFIG_CRYPTO_MD4 is not set 1250# CONFIG_CRYPTO_MD4 is not set
1070CONFIG_CRYPTO_MD5=y 1251CONFIG_CRYPTO_MD5=y
1252# CONFIG_CRYPTO_MICHAEL_MIC is not set
1253# CONFIG_CRYPTO_RMD128 is not set
1254# CONFIG_CRYPTO_RMD160 is not set
1255# CONFIG_CRYPTO_RMD256 is not set
1256# CONFIG_CRYPTO_RMD320 is not set
1071CONFIG_CRYPTO_SHA1=m 1257CONFIG_CRYPTO_SHA1=m
1072# CONFIG_CRYPTO_SHA256 is not set 1258# CONFIG_CRYPTO_SHA256 is not set
1073# CONFIG_CRYPTO_SHA512 is not set 1259# CONFIG_CRYPTO_SHA512 is not set
1074# CONFIG_CRYPTO_WP512 is not set
1075# CONFIG_CRYPTO_TGR192 is not set 1260# CONFIG_CRYPTO_TGR192 is not set
1076# CONFIG_CRYPTO_GF128MUL is not set 1261# CONFIG_CRYPTO_WP512 is not set
1077# CONFIG_CRYPTO_ECB is not set 1262
1078CONFIG_CRYPTO_CBC=m 1263#
1079# CONFIG_CRYPTO_PCBC is not set 1264# Ciphers
1080# CONFIG_CRYPTO_LRW is not set 1265#
1081# CONFIG_CRYPTO_XTS is not set
1082# CONFIG_CRYPTO_CRYPTD is not set
1083CONFIG_CRYPTO_DES=m
1084# CONFIG_CRYPTO_FCRYPT is not set
1085CONFIG_CRYPTO_BLOWFISH=m
1086# CONFIG_CRYPTO_TWOFISH is not set
1087# CONFIG_CRYPTO_SERPENT is not set
1088# CONFIG_CRYPTO_AES is not set 1266# CONFIG_CRYPTO_AES is not set
1267# CONFIG_CRYPTO_ANUBIS is not set
1268# CONFIG_CRYPTO_ARC4 is not set
1269CONFIG_CRYPTO_BLOWFISH=m
1270# CONFIG_CRYPTO_CAMELLIA is not set
1089CONFIG_CRYPTO_CAST5=m 1271CONFIG_CRYPTO_CAST5=m
1090# CONFIG_CRYPTO_CAST6 is not set 1272# CONFIG_CRYPTO_CAST6 is not set
1091# CONFIG_CRYPTO_TEA is not set 1273CONFIG_CRYPTO_DES=m
1092# CONFIG_CRYPTO_ARC4 is not set 1274# CONFIG_CRYPTO_FCRYPT is not set
1093# CONFIG_CRYPTO_KHAZAD is not set 1275# CONFIG_CRYPTO_KHAZAD is not set
1094# CONFIG_CRYPTO_ANUBIS is not set 1276# CONFIG_CRYPTO_SALSA20 is not set
1095# CONFIG_CRYPTO_SEED is not set 1277# CONFIG_CRYPTO_SEED is not set
1278# CONFIG_CRYPTO_SERPENT is not set
1279# CONFIG_CRYPTO_TEA is not set
1280# CONFIG_CRYPTO_TWOFISH is not set
1281
1282#
1283# Compression
1284#
1096CONFIG_CRYPTO_DEFLATE=m 1285CONFIG_CRYPTO_DEFLATE=m
1097# CONFIG_CRYPTO_MICHAEL_MIC is not set 1286# CONFIG_CRYPTO_LZO is not set
1098CONFIG_CRYPTO_CRC32C=m 1287
1099# CONFIG_CRYPTO_CAMELLIA is not set 1288#
1100CONFIG_CRYPTO_TEST=m 1289# Random Number Generation
1101# CONFIG_CRYPTO_AUTHENC is not set 1290#
1291# CONFIG_CRYPTO_ANSI_CPRNG is not set
1102# CONFIG_CRYPTO_HW is not set 1292# CONFIG_CRYPTO_HW is not set
1103 1293
1104# 1294#
1105# Library routines 1295# Library routines
1106# 1296#
1107CONFIG_BITREVERSE=y 1297CONFIG_BITREVERSE=y
1298CONFIG_GENERIC_FIND_LAST_BIT=y
1108CONFIG_CRC_CCITT=m 1299CONFIG_CRC_CCITT=m
1109# CONFIG_CRC16 is not set 1300# CONFIG_CRC16 is not set
1110# CONFIG_CRC_ITU_T is not set 1301# CONFIG_CRC_T10DIF is not set
1302CONFIG_CRC_ITU_T=m
1111CONFIG_CRC32=y 1303CONFIG_CRC32=y
1112# CONFIG_CRC7 is not set 1304# CONFIG_CRC7 is not set
1113CONFIG_LIBCRC32C=m 1305CONFIG_LIBCRC32C=m
diff --git a/arch/parisc/configs/b180_defconfig b/arch/parisc/configs/b180_defconfig
index 1bf22c9a4614..98bb05ee6e8d 100644
--- a/arch/parisc/configs/b180_defconfig
+++ b/arch/parisc/configs/b180_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 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:16:46 2007 4# Fri Mar 13 01:32:57 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,13 +33,29 @@ CONFIG_SYSVIPC_SYSCTL=y
33# CONFIG_BSD_PROCESS_ACCT is not set 33# CONFIG_BSD_PROCESS_ACCT is not set
34# CONFIG_TASKSTATS is not set 34# CONFIG_TASKSTATS is not set
35# CONFIG_AUDIT is not set 35# CONFIG_AUDIT is not set
36
37#
38# RCU Subsystem
39#
40CONFIG_CLASSIC_RCU=y
41# CONFIG_TREE_RCU is not set
42# CONFIG_PREEMPT_RCU is not set
43# CONFIG_TREE_RCU_TRACE is not set
44# CONFIG_PREEMPT_RCU_TRACE is not set
36CONFIG_IKCONFIG=y 45CONFIG_IKCONFIG=y
37CONFIG_IKCONFIG_PROC=y 46CONFIG_IKCONFIG_PROC=y
38CONFIG_LOG_BUF_SHIFT=16 47CONFIG_LOG_BUF_SHIFT=16
48# CONFIG_CGROUPS is not set
39CONFIG_SYSFS_DEPRECATED=y 49CONFIG_SYSFS_DEPRECATED=y
50CONFIG_SYSFS_DEPRECATED_V2=y
40# CONFIG_RELAY is not set 51# CONFIG_RELAY is not set
52CONFIG_NAMESPACES=y
53# CONFIG_UTS_NS is not set
54# CONFIG_IPC_NS is not set
41# CONFIG_BLK_DEV_INITRD is not set 55# CONFIG_BLK_DEV_INITRD is not set
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
42CONFIG_SYSCTL=y 57CONFIG_SYSCTL=y
58CONFIG_ANON_INODES=y
43# CONFIG_EMBEDDED is not set 59# CONFIG_EMBEDDED is not set
44CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
45CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
@@ -51,27 +67,34 @@ CONFIG_BUG=y
51CONFIG_ELF_CORE=y 67CONFIG_ELF_CORE=y
52CONFIG_BASE_FULL=y 68CONFIG_BASE_FULL=y
53CONFIG_FUTEX=y 69CONFIG_FUTEX=y
54CONFIG_ANON_INODES=y
55CONFIG_EPOLL=y 70CONFIG_EPOLL=y
56CONFIG_SIGNALFD=y 71CONFIG_SIGNALFD=y
72CONFIG_TIMERFD=y
57CONFIG_EVENTFD=y 73CONFIG_EVENTFD=y
58CONFIG_SHMEM=y 74CONFIG_SHMEM=y
75CONFIG_AIO=y
59CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_COMPAT_BRK=y
60CONFIG_SLAB=y 79CONFIG_SLAB=y
61# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
62# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set
83CONFIG_HAVE_OPROFILE=y
84# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
85CONFIG_SLABINFO=y
63CONFIG_RT_MUTEXES=y 86CONFIG_RT_MUTEXES=y
64# CONFIG_TINY_SHMEM is not set
65CONFIG_BASE_SMALL=0 87CONFIG_BASE_SMALL=0
66CONFIG_MODULES=y 88CONFIG_MODULES=y
89# CONFIG_MODULE_FORCE_LOAD is not set
67# CONFIG_MODULE_UNLOAD is not set 90# CONFIG_MODULE_UNLOAD is not set
68CONFIG_MODVERSIONS=y 91CONFIG_MODVERSIONS=y
69# CONFIG_MODULE_SRCVERSION_ALL is not set 92# CONFIG_MODULE_SRCVERSION_ALL is not set
70# CONFIG_KMOD is not set 93CONFIG_INIT_ALL_POSSIBLE=y
71CONFIG_BLOCK=y 94CONFIG_BLOCK=y
72# CONFIG_LBD is not set 95# CONFIG_LBD is not set
73# CONFIG_BLK_DEV_IO_TRACE is not set 96# CONFIG_BLK_DEV_IO_TRACE is not set
74# CONFIG_LSF is not set 97# CONFIG_BLK_DEV_INTEGRITY is not set
75 98
76# 99#
77# IO Schedulers 100# IO Schedulers
@@ -85,6 +108,7 @@ CONFIG_IOSCHED_CFQ=y
85CONFIG_DEFAULT_CFQ=y 108CONFIG_DEFAULT_CFQ=y
86# CONFIG_DEFAULT_NOOP is not set 109# CONFIG_DEFAULT_NOOP is not set
87CONFIG_DEFAULT_IOSCHED="cfq" 110CONFIG_DEFAULT_IOSCHED="cfq"
111# CONFIG_FREEZER is not set
88 112
89# 113#
90# Processor type and features 114# Processor type and features
@@ -108,13 +132,15 @@ CONFIG_HZ_250=y
108# CONFIG_HZ_300 is not set 132# CONFIG_HZ_300 is not set
109# CONFIG_HZ_1000 is not set 133# CONFIG_HZ_1000 is not set
110CONFIG_HZ=250 134CONFIG_HZ=250
135# CONFIG_SCHED_HRTICK is not set
111CONFIG_FLATMEM=y 136CONFIG_FLATMEM=y
112CONFIG_FLAT_NODE_MEM_MAP=y 137CONFIG_FLAT_NODE_MEM_MAP=y
113# CONFIG_SPARSEMEM_STATIC is not set 138CONFIG_PAGEFLAGS_EXTENDED=y
114CONFIG_SPLIT_PTLOCK_CPUS=4096 139CONFIG_SPLIT_PTLOCK_CPUS=4096
115# CONFIG_RESOURCES_64BIT is not set 140# CONFIG_PHYS_ADDR_T_64BIT is not set
116CONFIG_ZONE_DMA_FLAG=0 141CONFIG_ZONE_DMA_FLAG=0
117CONFIG_VIRT_TO_BUS=y 142CONFIG_VIRT_TO_BUS=y
143CONFIG_UNEVICTABLE_LRU=y
118# CONFIG_HPUX is not set 144# CONFIG_HPUX is not set
119 145
120# 146#
@@ -130,14 +156,14 @@ CONFIG_EISA_NAMES=y
130CONFIG_ISA=y 156CONFIG_ISA=y
131CONFIG_PCI=y 157CONFIG_PCI=y
132# CONFIG_ARCH_SUPPORTS_MSI is not set 158# CONFIG_ARCH_SUPPORTS_MSI is not set
159CONFIG_PCI_LEGACY=y
133# CONFIG_PCI_DEBUG is not set 160# CONFIG_PCI_DEBUG is not set
161# CONFIG_PCI_STUB is not set
134CONFIG_GSC_DINO=y 162CONFIG_GSC_DINO=y
135# CONFIG_PCI_LBA is not set 163# CONFIG_PCI_LBA is not set
136 164CONFIG_IOMMU_HELPER=y
137#
138# PCCARD (PCMCIA/CardBus) support
139#
140# CONFIG_PCCARD is not set 165# CONFIG_PCCARD is not set
166# CONFIG_HOTPLUG_PCI is not set
141 167
142# 168#
143# PA-RISC specific drivers 169# PA-RISC specific drivers
@@ -151,16 +177,15 @@ CONFIG_PDC_STABLE=y
151# Executable file formats 177# Executable file formats
152# 178#
153CONFIG_BINFMT_ELF=y 179CONFIG_BINFMT_ELF=y
180# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
181# CONFIG_HAVE_AOUT is not set
154# CONFIG_BINFMT_MISC is not set 182# CONFIG_BINFMT_MISC is not set
155
156#
157# Networking
158#
159CONFIG_NET=y 183CONFIG_NET=y
160 184
161# 185#
162# Networking options 186# Networking options
163# 187#
188CONFIG_COMPAT_NET_DEV_OPS=y
164CONFIG_PACKET=y 189CONFIG_PACKET=y
165CONFIG_PACKET_MMAP=y 190CONFIG_PACKET_MMAP=y
166CONFIG_UNIX=y 191CONFIG_UNIX=y
@@ -205,36 +230,37 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=y
205CONFIG_INET6_XFRM_MODE_TUNNEL=y 230CONFIG_INET6_XFRM_MODE_TUNNEL=y
206CONFIG_INET6_XFRM_MODE_BEET=y 231CONFIG_INET6_XFRM_MODE_BEET=y
207CONFIG_IPV6_SIT=y 232CONFIG_IPV6_SIT=y
233CONFIG_IPV6_NDISC_NODETYPE=y
208# CONFIG_IPV6_TUNNEL is not set 234# CONFIG_IPV6_TUNNEL is not set
209# CONFIG_NETLABEL is not set 235# CONFIG_NETLABEL is not set
210# CONFIG_NETWORK_SECMARK is not set 236# CONFIG_NETWORK_SECMARK is not set
211# CONFIG_NETFILTER is not set 237# CONFIG_NETFILTER is not set
238# CONFIG_ATM is not set
212# CONFIG_BRIDGE is not set 239# CONFIG_BRIDGE is not set
213# CONFIG_VLAN_8021Q is not set 240# CONFIG_VLAN_8021Q is not set
214# CONFIG_DECNET is not set 241# CONFIG_DECNET is not set
215# CONFIG_LLC2 is not set 242# CONFIG_LLC2 is not set
216# CONFIG_IPX is not set 243# CONFIG_IPX is not set
217# CONFIG_ATALK is not set 244# CONFIG_ATALK is not set
218
219#
220# QoS and/or fair queueing
221#
222# CONFIG_NET_SCHED is not set 245# CONFIG_NET_SCHED is not set
246# CONFIG_DCB is not set
223 247
224# 248#
225# Network testing 249# Network testing
226# 250#
227# CONFIG_NET_PKTGEN is not set 251# CONFIG_NET_PKTGEN is not set
228# CONFIG_HAMRADIO is not set 252# CONFIG_HAMRADIO is not set
253# CONFIG_CAN is not set
229# CONFIG_IRDA is not set 254# CONFIG_IRDA is not set
230# CONFIG_BT is not set 255# CONFIG_BT is not set
231 256# CONFIG_PHONET is not set
232# 257CONFIG_WIRELESS=y
233# Wireless
234#
235# CONFIG_CFG80211 is not set 258# CONFIG_CFG80211 is not set
259CONFIG_WIRELESS_OLD_REGULATORY=y
236# CONFIG_WIRELESS_EXT is not set 260# CONFIG_WIRELESS_EXT is not set
237# CONFIG_IEEE80211 is not set 261# CONFIG_LIB80211 is not set
262# CONFIG_MAC80211 is not set
263# CONFIG_WIMAX is not set
238# CONFIG_RFKILL is not set 264# CONFIG_RFKILL is not set
239 265
240# 266#
@@ -247,7 +273,9 @@ CONFIG_IPV6_SIT=y
247CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 273CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
248CONFIG_STANDALONE=y 274CONFIG_STANDALONE=y
249# CONFIG_PREVENT_FIRMWARE_BUILD is not set 275# CONFIG_PREVENT_FIRMWARE_BUILD is not set
250# CONFIG_FW_LOADER is not set 276CONFIG_FW_LOADER=y
277CONFIG_FIRMWARE_IN_KERNEL=y
278CONFIG_EXTRA_FIRMWARE=""
251# CONFIG_DEBUG_DRIVER is not set 279# CONFIG_DEBUG_DRIVER is not set
252# CONFIG_DEBUG_DEVRES is not set 280# CONFIG_DEBUG_DEVRES is not set
253# CONFIG_SYS_HYPERVISOR is not set 281# CONFIG_SYS_HYPERVISOR is not set
@@ -275,10 +303,18 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y
275CONFIG_CDROM_PKTCDVD=m 303CONFIG_CDROM_PKTCDVD=m
276CONFIG_CDROM_PKTCDVD_BUFFERS=8 304CONFIG_CDROM_PKTCDVD_BUFFERS=8
277CONFIG_ATA_OVER_ETH=y 305CONFIG_ATA_OVER_ETH=y
306# CONFIG_BLK_DEV_HD is not set
278CONFIG_MISC_DEVICES=y 307CONFIG_MISC_DEVICES=y
279# CONFIG_PHANTOM is not set 308# CONFIG_PHANTOM is not set
280# CONFIG_EEPROM_93CX6 is not set
281# CONFIG_SGI_IOC4 is not set 309# CONFIG_SGI_IOC4 is not set
310# CONFIG_ENCLOSURE_SERVICES is not set
311# CONFIG_HP_ILO is not set
312
313#
314# EEPROM support
315#
316# CONFIG_EEPROM_93CX6 is not set
317CONFIG_HAVE_IDE=y
282# CONFIG_IDE is not set 318# CONFIG_IDE is not set
283 319
284# 320#
@@ -317,8 +353,10 @@ CONFIG_SCSI_SPI_ATTRS=y
317# CONFIG_SCSI_FC_ATTRS is not set 353# CONFIG_SCSI_FC_ATTRS is not set
318# CONFIG_SCSI_ISCSI_ATTRS is not set 354# CONFIG_SCSI_ISCSI_ATTRS is not set
319# CONFIG_SCSI_SAS_LIBSAS is not set 355# CONFIG_SCSI_SAS_LIBSAS is not set
356# CONFIG_SCSI_SRP_ATTRS is not set
320CONFIG_SCSI_LOWLEVEL=y 357CONFIG_SCSI_LOWLEVEL=y
321# CONFIG_ISCSI_TCP is not set 358# CONFIG_ISCSI_TCP is not set
359# CONFIG_SCSI_CXGB3_ISCSI is not set
322# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 360# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
323# CONFIG_SCSI_3W_9XXX is not set 361# CONFIG_SCSI_3W_9XXX is not set
324# CONFIG_SCSI_ACARD is not set 362# CONFIG_SCSI_ACARD is not set
@@ -330,12 +368,15 @@ CONFIG_SCSI_LOWLEVEL=y
330# CONFIG_SCSI_AIC79XX is not set 368# CONFIG_SCSI_AIC79XX is not set
331# CONFIG_SCSI_AIC94XX is not set 369# CONFIG_SCSI_AIC94XX is not set
332# CONFIG_SCSI_DPT_I2O is not set 370# CONFIG_SCSI_DPT_I2O is not set
371# CONFIG_SCSI_ADVANSYS is not set
333# CONFIG_SCSI_IN2000 is not set 372# CONFIG_SCSI_IN2000 is not set
334# CONFIG_SCSI_ARCMSR is not set 373# CONFIG_SCSI_ARCMSR is not set
335# CONFIG_MEGARAID_NEWGEN is not set 374# CONFIG_MEGARAID_NEWGEN is not set
336# CONFIG_MEGARAID_LEGACY is not set 375# CONFIG_MEGARAID_LEGACY is not set
337# CONFIG_MEGARAID_SAS is not set 376# CONFIG_MEGARAID_SAS is not set
338# CONFIG_SCSI_HPTIOP is not set 377# CONFIG_SCSI_HPTIOP is not set
378# CONFIG_LIBFC is not set
379# CONFIG_FCOE is not set
339# CONFIG_SCSI_DMX3191D is not set 380# CONFIG_SCSI_DMX3191D is not set
340# CONFIG_SCSI_DTC3280 is not set 381# CONFIG_SCSI_DTC3280 is not set
341# CONFIG_SCSI_FUTURE_DOMAIN is not set 382# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -346,6 +387,7 @@ CONFIG_SCSI_LOWLEVEL=y
346# CONFIG_SCSI_INIA100 is not set 387# CONFIG_SCSI_INIA100 is not set
347# CONFIG_SCSI_PPA is not set 388# CONFIG_SCSI_PPA is not set
348# CONFIG_SCSI_IMM is not set 389# CONFIG_SCSI_IMM is not set
390# CONFIG_SCSI_MVSAS is not set
349# CONFIG_SCSI_NCR53C406A is not set 391# CONFIG_SCSI_NCR53C406A is not set
350CONFIG_SCSI_LASI700=y 392CONFIG_SCSI_LASI700=y
351CONFIG_53C700_LE_ON_BE=y 393CONFIG_53C700_LE_ON_BE=y
@@ -360,7 +402,6 @@ CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
360CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 402CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32
361CONFIG_SCSI_NCR53C8XX_SYNC=40 403CONFIG_SCSI_NCR53C8XX_SYNC=40
362# CONFIG_SCSI_PAS16 is not set 404# CONFIG_SCSI_PAS16 is not set
363# CONFIG_SCSI_PSI240I is not set
364# CONFIG_SCSI_QLOGIC_FAS is not set 405# CONFIG_SCSI_QLOGIC_FAS is not set
365# CONFIG_SCSI_QLOGIC_1280 is not set 406# CONFIG_SCSI_QLOGIC_1280 is not set
366# CONFIG_SCSI_QLA_FC is not set 407# CONFIG_SCSI_QLA_FC is not set
@@ -373,9 +414,11 @@ CONFIG_SCSI_NCR53C8XX_SYNC=40
373# CONFIG_SCSI_NSP32 is not set 414# CONFIG_SCSI_NSP32 is not set
374# CONFIG_SCSI_DEBUG is not set 415# CONFIG_SCSI_DEBUG is not set
375# CONFIG_SCSI_SRP is not set 416# CONFIG_SCSI_SRP is not set
417# CONFIG_SCSI_DH is not set
376# CONFIG_ATA is not set 418# CONFIG_ATA is not set
377CONFIG_MD=y 419CONFIG_MD=y
378CONFIG_BLK_DEV_MD=y 420CONFIG_BLK_DEV_MD=y
421CONFIG_MD_AUTODETECT=y
379CONFIG_MD_LINEAR=y 422CONFIG_MD_LINEAR=y
380CONFIG_MD_RAID0=y 423CONFIG_MD_RAID0=y
381CONFIG_MD_RAID1=y 424CONFIG_MD_RAID1=y
@@ -383,26 +426,18 @@ CONFIG_MD_RAID1=y
383# CONFIG_MD_MULTIPATH is not set 426# CONFIG_MD_MULTIPATH is not set
384# CONFIG_MD_FAULTY is not set 427# CONFIG_MD_FAULTY is not set
385# CONFIG_BLK_DEV_DM is not set 428# CONFIG_BLK_DEV_DM is not set
386
387#
388# Fusion MPT device support
389#
390# CONFIG_FUSION is not set 429# CONFIG_FUSION is not set
391# CONFIG_FUSION_SPI is not set
392# CONFIG_FUSION_FC is not set
393# CONFIG_FUSION_SAS is not set
394 430
395# 431#
396# IEEE 1394 (FireWire) support 432# IEEE 1394 (FireWire) support
397# 433#
398 434
399# 435#
400# An alternative FireWire stack is available with EXPERIMENTAL=y 436# A new alternative FireWire stack is available with EXPERIMENTAL=y
401# 437#
402# CONFIG_IEEE1394 is not set 438# CONFIG_IEEE1394 is not set
403# CONFIG_I2O is not set 439# CONFIG_I2O is not set
404CONFIG_NETDEVICES=y 440CONFIG_NETDEVICES=y
405# CONFIG_NETDEVICES_MULTIQUEUE is not set
406# CONFIG_DUMMY is not set 441# CONFIG_DUMMY is not set
407# CONFIG_BONDING is not set 442# CONFIG_BONDING is not set
408# CONFIG_EQUALIZER is not set 443# CONFIG_EQUALIZER is not set
@@ -434,36 +469,49 @@ CONFIG_TULIP=y
434# CONFIG_IBM_NEW_EMAC_RGMII is not set 469# CONFIG_IBM_NEW_EMAC_RGMII is not set
435# CONFIG_IBM_NEW_EMAC_TAH is not set 470# CONFIG_IBM_NEW_EMAC_TAH is not set
436# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 471# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
472# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
473# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
474# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
437# CONFIG_NET_PCI is not set 475# CONFIG_NET_PCI is not set
438# CONFIG_B44 is not set 476# CONFIG_B44 is not set
477# CONFIG_CS89x0 is not set
439# CONFIG_NET_POCKET is not set 478# CONFIG_NET_POCKET is not set
479# CONFIG_ATL2 is not set
440CONFIG_NETDEV_1000=y 480CONFIG_NETDEV_1000=y
441# CONFIG_ACENIC is not set 481# CONFIG_ACENIC is not set
442# CONFIG_DL2K is not set 482# CONFIG_DL2K is not set
443# CONFIG_E1000 is not set 483# CONFIG_E1000 is not set
444# CONFIG_E1000E is not set 484# CONFIG_E1000E is not set
485# CONFIG_IGB is not set
445# CONFIG_NS83820 is not set 486# CONFIG_NS83820 is not set
446# CONFIG_HAMACHI is not set 487# CONFIG_HAMACHI is not set
447# CONFIG_R8169 is not set 488# CONFIG_R8169 is not set
448# CONFIG_SIS190 is not set 489# CONFIG_SIS190 is not set
449# CONFIG_SKGE is not set 490# CONFIG_SKGE is not set
450# CONFIG_SKY2 is not set 491# CONFIG_SKY2 is not set
451# CONFIG_SK98LIN is not set
452# CONFIG_VIA_VELOCITY is not set 492# CONFIG_VIA_VELOCITY is not set
453# CONFIG_TIGON3 is not set 493# CONFIG_TIGON3 is not set
454# CONFIG_BNX2 is not set 494# CONFIG_BNX2 is not set
455# CONFIG_QLA3XXX is not set 495# CONFIG_QLA3XXX is not set
496# CONFIG_ATL1 is not set
497# CONFIG_JME is not set
456CONFIG_NETDEV_10000=y 498CONFIG_NETDEV_10000=y
457# CONFIG_CHELSIO_T1 is not set 499# CONFIG_CHELSIO_T1 is not set
500CONFIG_CHELSIO_T3_DEPENDS=y
458# CONFIG_CHELSIO_T3 is not set 501# CONFIG_CHELSIO_T3 is not set
502# CONFIG_ENIC is not set
459# CONFIG_IXGBE is not set 503# CONFIG_IXGBE is not set
460# CONFIG_IXGB is not set 504# CONFIG_IXGB is not set
461# CONFIG_S2IO is not set 505# CONFIG_S2IO is not set
462# CONFIG_MYRI10GE is not set 506# CONFIG_MYRI10GE is not set
463# CONFIG_NETXEN_NIC is not set 507# CONFIG_NETXEN_NIC is not set
464# CONFIG_NIU is not set 508# CONFIG_NIU is not set
509# CONFIG_MLX4_EN is not set
465# CONFIG_MLX4_CORE is not set 510# CONFIG_MLX4_CORE is not set
466# CONFIG_TEHUTI is not set 511# CONFIG_TEHUTI is not set
512# CONFIG_BNX2X is not set
513# CONFIG_QLGE is not set
514# CONFIG_SFC is not set
467# CONFIG_TR is not set 515# CONFIG_TR is not set
468 516
469# 517#
@@ -471,6 +519,11 @@ CONFIG_NETDEV_10000=y
471# 519#
472# CONFIG_WLAN_PRE80211 is not set 520# CONFIG_WLAN_PRE80211 is not set
473# CONFIG_WLAN_80211 is not set 521# CONFIG_WLAN_80211 is not set
522# CONFIG_IWLWIFI_LEDS is not set
523
524#
525# Enable WiMAX (Networking options) to see the WiMAX drivers
526#
474# CONFIG_WAN is not set 527# CONFIG_WAN is not set
475# CONFIG_FDDI is not set 528# CONFIG_FDDI is not set
476# CONFIG_PLIP is not set 529# CONFIG_PLIP is not set
@@ -503,7 +556,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
503CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 556CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
504CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 557CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
505# CONFIG_INPUT_JOYDEV is not set 558# CONFIG_INPUT_JOYDEV is not set
506# CONFIG_INPUT_TSDEV is not set
507CONFIG_INPUT_EVDEV=y 559CONFIG_INPUT_EVDEV=y
508# CONFIG_INPUT_EVBUG is not set 560# CONFIG_INPUT_EVBUG is not set
509 561
@@ -526,11 +578,12 @@ CONFIG_MOUSE_PS2=y
526CONFIG_MOUSE_PS2_ALPS=y 578CONFIG_MOUSE_PS2_ALPS=y
527CONFIG_MOUSE_PS2_LOGIPS2PP=y 579CONFIG_MOUSE_PS2_LOGIPS2PP=y
528CONFIG_MOUSE_PS2_SYNAPTICS=y 580CONFIG_MOUSE_PS2_SYNAPTICS=y
529CONFIG_MOUSE_PS2_LIFEBOOK=y
530CONFIG_MOUSE_PS2_TRACKPOINT=y 581CONFIG_MOUSE_PS2_TRACKPOINT=y
582# CONFIG_MOUSE_PS2_ELANTECH is not set
531# CONFIG_MOUSE_PS2_TOUCHKIT is not set 583# CONFIG_MOUSE_PS2_TOUCHKIT is not set
532# CONFIG_MOUSE_SERIAL is not set 584# CONFIG_MOUSE_SERIAL is not set
533# CONFIG_MOUSE_APPLETOUCH is not set 585# CONFIG_MOUSE_APPLETOUCH is not set
586# CONFIG_MOUSE_BCM5974 is not set
534# CONFIG_MOUSE_INPORT is not set 587# CONFIG_MOUSE_INPORT is not set
535# CONFIG_MOUSE_LOGIBM is not set 588# CONFIG_MOUSE_LOGIBM is not set
536# CONFIG_MOUSE_PC110PAD is not set 589# CONFIG_MOUSE_PC110PAD is not set
@@ -564,9 +617,11 @@ CONFIG_SERIO_LIBPS2=y
564# Character devices 617# Character devices
565# 618#
566CONFIG_VT=y 619CONFIG_VT=y
620CONFIG_CONSOLE_TRANSLATIONS=y
567CONFIG_VT_CONSOLE=y 621CONFIG_VT_CONSOLE=y
568CONFIG_HW_CONSOLE=y 622CONFIG_HW_CONSOLE=y
569# CONFIG_VT_HW_CONSOLE_BINDING is not set 623# CONFIG_VT_HW_CONSOLE_BINDING is not set
624CONFIG_DEVKMEM=y
570# CONFIG_SERIAL_NONSTANDARD is not set 625# CONFIG_SERIAL_NONSTANDARD is not set
571 626
572# 627#
@@ -598,75 +653,79 @@ CONFIG_SERIAL_CORE=y
598CONFIG_SERIAL_CORE_CONSOLE=y 653CONFIG_SERIAL_CORE_CONSOLE=y
599# CONFIG_SERIAL_JSM is not set 654# CONFIG_SERIAL_JSM is not set
600CONFIG_UNIX98_PTYS=y 655CONFIG_UNIX98_PTYS=y
656# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
601CONFIG_LEGACY_PTYS=y 657CONFIG_LEGACY_PTYS=y
602CONFIG_LEGACY_PTY_COUNT=256 658CONFIG_LEGACY_PTY_COUNT=256
603CONFIG_PRINTER=y 659CONFIG_PRINTER=y
604# CONFIG_LP_CONSOLE is not set 660# CONFIG_LP_CONSOLE is not set
605# CONFIG_PPDEV is not set 661# CONFIG_PPDEV is not set
606# CONFIG_TIPAR is not set
607# CONFIG_IPMI_HANDLER is not set 662# CONFIG_IPMI_HANDLER is not set
608# CONFIG_WATCHDOG is not set
609# CONFIG_HW_RANDOM is not set 663# CONFIG_HW_RANDOM is not set
610CONFIG_GEN_RTC=y
611# CONFIG_GEN_RTC_X is not set
612# CONFIG_DTLK is not set 664# CONFIG_DTLK is not set
613# CONFIG_R3964 is not set 665# CONFIG_R3964 is not set
614# CONFIG_APPLICOM is not set 666# CONFIG_APPLICOM is not set
615# CONFIG_AGP is not set
616# CONFIG_DRM is not set
617# CONFIG_RAW_DRIVER is not set 667# CONFIG_RAW_DRIVER is not set
618CONFIG_DEVPORT=y 668CONFIG_DEVPORT=y
619# CONFIG_I2C is not set 669# CONFIG_I2C is not set
620
621#
622# SPI support
623#
624# CONFIG_SPI is not set 670# CONFIG_SPI is not set
625# CONFIG_SPI_MASTER is not set
626# CONFIG_W1 is not set 671# CONFIG_W1 is not set
627# CONFIG_POWER_SUPPLY is not set 672# CONFIG_POWER_SUPPLY is not set
628# CONFIG_HWMON is not set 673# CONFIG_HWMON is not set
674# CONFIG_THERMAL is not set
675# CONFIG_THERMAL_HWMON is not set
676# CONFIG_WATCHDOG is not set
677CONFIG_SSB_POSSIBLE=y
629 678
630# 679#
631# Sonics Silicon Backplane 680# Sonics Silicon Backplane
632# 681#
633CONFIG_SSB_POSSIBLE=y
634# CONFIG_SSB is not set 682# CONFIG_SSB is not set
635 683
636# 684#
637# Multifunction device drivers 685# Multifunction device drivers
638# 686#
687# CONFIG_MFD_CORE is not set
639# CONFIG_MFD_SM501 is not set 688# CONFIG_MFD_SM501 is not set
689# CONFIG_HTC_PASIC3 is not set
690# CONFIG_MFD_TMIO is not set
691# CONFIG_REGULATOR is not set
640 692
641# 693#
642# Multimedia devices 694# Multimedia devices
643# 695#
696
697#
698# Multimedia core support
699#
644# CONFIG_VIDEO_DEV is not set 700# CONFIG_VIDEO_DEV is not set
645# CONFIG_DVB_CORE is not set 701# CONFIG_DVB_CORE is not set
646# CONFIG_DAB is not set 702# CONFIG_VIDEO_MEDIA is not set
647 703
648# 704#
649# Graphics support 705# Multimedia drivers
650# 706#
651# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 707# CONFIG_DAB is not set
652 708
653# 709#
654# Display device support 710# Graphics support
655# 711#
656# CONFIG_DISPLAY_SUPPORT is not set 712# CONFIG_AGP is not set
713# CONFIG_DRM is not set
657# CONFIG_VGASTATE is not set 714# CONFIG_VGASTATE is not set
658CONFIG_VIDEO_OUTPUT_CONTROL=m 715CONFIG_VIDEO_OUTPUT_CONTROL=m
659CONFIG_FB=y 716CONFIG_FB=y
660# CONFIG_FIRMWARE_EDID is not set 717# CONFIG_FIRMWARE_EDID is not set
661# CONFIG_FB_DDC is not set 718# CONFIG_FB_DDC is not set
719# CONFIG_FB_BOOT_VESA_SUPPORT is not set
662CONFIG_FB_CFB_FILLRECT=y 720CONFIG_FB_CFB_FILLRECT=y
663CONFIG_FB_CFB_COPYAREA=y 721CONFIG_FB_CFB_COPYAREA=y
664CONFIG_FB_CFB_IMAGEBLIT=y 722CONFIG_FB_CFB_IMAGEBLIT=y
723# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
665# CONFIG_FB_SYS_FILLRECT is not set 724# CONFIG_FB_SYS_FILLRECT is not set
666# CONFIG_FB_SYS_COPYAREA is not set 725# CONFIG_FB_SYS_COPYAREA is not set
667# CONFIG_FB_SYS_IMAGEBLIT is not set 726# CONFIG_FB_SYS_IMAGEBLIT is not set
727# CONFIG_FB_FOREIGN_ENDIAN is not set
668# CONFIG_FB_SYS_FOPS is not set 728# CONFIG_FB_SYS_FOPS is not set
669CONFIG_FB_DEFERRED_IO=y
670# CONFIG_FB_SVGALIB is not set 729# CONFIG_FB_SVGALIB is not set
671# CONFIG_FB_MACMODES is not set 730# CONFIG_FB_MACMODES is not set
672# CONFIG_FB_BACKLIGHT is not set 731# CONFIG_FB_BACKLIGHT is not set
@@ -691,6 +750,7 @@ CONFIG_FB_STI=y
691# CONFIG_FB_ATY is not set 750# CONFIG_FB_ATY is not set
692# CONFIG_FB_S3 is not set 751# CONFIG_FB_S3 is not set
693# CONFIG_FB_SIS is not set 752# CONFIG_FB_SIS is not set
753# CONFIG_FB_VIA is not set
694# CONFIG_FB_NEOMAGIC is not set 754# CONFIG_FB_NEOMAGIC is not set
695# CONFIG_FB_KYRO is not set 755# CONFIG_FB_KYRO is not set
696# CONFIG_FB_3DFX is not set 756# CONFIG_FB_3DFX is not set
@@ -698,7 +758,16 @@ CONFIG_FB_STI=y
698# CONFIG_FB_VT8623 is not set 758# CONFIG_FB_VT8623 is not set
699# CONFIG_FB_TRIDENT is not set 759# CONFIG_FB_TRIDENT is not set
700# CONFIG_FB_ARK is not set 760# CONFIG_FB_ARK is not set
761# CONFIG_FB_CARMINE is not set
701# CONFIG_FB_VIRTUAL is not set 762# CONFIG_FB_VIRTUAL is not set
763# CONFIG_FB_METRONOME is not set
764# CONFIG_FB_MB862XX is not set
765# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
766
767#
768# Display device support
769#
770# CONFIG_DISPLAY_SUPPORT is not set
702 771
703# 772#
704# Console display driver support 773# Console display driver support
@@ -718,15 +787,8 @@ CONFIG_LOGO_LINUX_MONO=y
718CONFIG_LOGO_LINUX_VGA16=y 787CONFIG_LOGO_LINUX_VGA16=y
719CONFIG_LOGO_LINUX_CLUT224=y 788CONFIG_LOGO_LINUX_CLUT224=y
720CONFIG_LOGO_PARISC_CLUT224=y 789CONFIG_LOGO_PARISC_CLUT224=y
721
722#
723# Sound
724#
725CONFIG_SOUND=y 790CONFIG_SOUND=y
726 791CONFIG_SOUND_OSS_CORE=y
727#
728# Advanced Linux Sound Architecture
729#
730CONFIG_SND=y 792CONFIG_SND=y
731CONFIG_SND_TIMER=y 793CONFIG_SND_TIMER=y
732CONFIG_SND_PCM=y 794CONFIG_SND_PCM=y
@@ -742,10 +804,7 @@ CONFIG_SND_SUPPORT_OLD_API=y
742CONFIG_SND_VERBOSE_PROCFS=y 804CONFIG_SND_VERBOSE_PROCFS=y
743# CONFIG_SND_VERBOSE_PRINTK is not set 805# CONFIG_SND_VERBOSE_PRINTK is not set
744# CONFIG_SND_DEBUG is not set 806# CONFIG_SND_DEBUG is not set
745 807CONFIG_SND_DRIVERS=y
746#
747# Generic devices
748#
749# CONFIG_SND_DUMMY is not set 808# CONFIG_SND_DUMMY is not set
750# CONFIG_SND_VIRMIDI is not set 809# CONFIG_SND_VIRMIDI is not set
751# CONFIG_SND_MTPAV is not set 810# CONFIG_SND_MTPAV is not set
@@ -753,10 +812,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
753# CONFIG_SND_SERIAL_U16550 is not set 812# CONFIG_SND_SERIAL_U16550 is not set
754# CONFIG_SND_MPU401 is not set 813# CONFIG_SND_MPU401 is not set
755# CONFIG_SND_PORTMAN2X4 is not set 814# CONFIG_SND_PORTMAN2X4 is not set
756 815CONFIG_SND_PCI=y
757#
758# PCI devices
759#
760# CONFIG_SND_AD1889 is not set 816# CONFIG_SND_AD1889 is not set
761# CONFIG_SND_ALS300 is not set 817# CONFIG_SND_ALS300 is not set
762# CONFIG_SND_ALI5451 is not set 818# CONFIG_SND_ALI5451 is not set
@@ -765,9 +821,11 @@ CONFIG_SND_VERBOSE_PROCFS=y
765# CONFIG_SND_AU8810 is not set 821# CONFIG_SND_AU8810 is not set
766# CONFIG_SND_AU8820 is not set 822# CONFIG_SND_AU8820 is not set
767# CONFIG_SND_AU8830 is not set 823# CONFIG_SND_AU8830 is not set
824# CONFIG_SND_AW2 is not set
768# CONFIG_SND_BT87X is not set 825# CONFIG_SND_BT87X is not set
769# CONFIG_SND_CA0106 is not set 826# CONFIG_SND_CA0106 is not set
770# CONFIG_SND_CMIPCI is not set 827# CONFIG_SND_CMIPCI is not set
828# CONFIG_SND_OXYGEN is not set
771# CONFIG_SND_CS4281 is not set 829# CONFIG_SND_CS4281 is not set
772# CONFIG_SND_CS46XX is not set 830# CONFIG_SND_CS46XX is not set
773# CONFIG_SND_DARLA20 is not set 831# CONFIG_SND_DARLA20 is not set
@@ -792,6 +850,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
792# CONFIG_SND_HDA_INTEL is not set 850# CONFIG_SND_HDA_INTEL is not set
793# CONFIG_SND_HDSP is not set 851# CONFIG_SND_HDSP is not set
794# CONFIG_SND_HDSPM is not set 852# CONFIG_SND_HDSPM is not set
853# CONFIG_SND_HIFIER is not set
795# CONFIG_SND_ICE1712 is not set 854# CONFIG_SND_ICE1712 is not set
796# CONFIG_SND_ICE1724 is not set 855# CONFIG_SND_ICE1724 is not set
797# CONFIG_SND_INTEL8X0 is not set 856# CONFIG_SND_INTEL8X0 is not set
@@ -809,30 +868,23 @@ CONFIG_SND_VERBOSE_PROCFS=y
809# CONFIG_SND_TRIDENT is not set 868# CONFIG_SND_TRIDENT is not set
810# CONFIG_SND_VIA82XX is not set 869# CONFIG_SND_VIA82XX is not set
811# CONFIG_SND_VIA82XX_MODEM is not set 870# CONFIG_SND_VIA82XX_MODEM is not set
871# CONFIG_SND_VIRTUOSO is not set
812# CONFIG_SND_VX222 is not set 872# CONFIG_SND_VX222 is not set
813# CONFIG_SND_YMFPCI is not set 873# CONFIG_SND_YMFPCI is not set
814 874CONFIG_SND_GSC=y
815#
816# GSC devices
817#
818CONFIG_SND_HARMONY=y 875CONFIG_SND_HARMONY=y
819
820#
821# System on Chip audio support
822#
823# CONFIG_SND_SOC is not set 876# CONFIG_SND_SOC is not set
824
825#
826# SoC Audio support for SuperH
827#
828
829#
830# Open Sound System
831#
832# CONFIG_SOUND_PRIME is not set 877# CONFIG_SOUND_PRIME is not set
833CONFIG_HID_SUPPORT=y 878CONFIG_HID_SUPPORT=y
834CONFIG_HID=y 879CONFIG_HID=y
835CONFIG_HID_DEBUG=y 880CONFIG_HID_DEBUG=y
881# CONFIG_HIDRAW is not set
882# CONFIG_HID_PID is not set
883
884#
885# Special HID drivers
886#
887CONFIG_HID_COMPAT=y
836CONFIG_USB_SUPPORT=y 888CONFIG_USB_SUPPORT=y
837CONFIG_USB_ARCH_HAS_HCD=y 889CONFIG_USB_ARCH_HAS_HCD=y
838CONFIG_USB_ARCH_HAS_OHCI=y 890CONFIG_USB_ARCH_HAS_OHCI=y
@@ -840,36 +892,63 @@ CONFIG_USB_ARCH_HAS_EHCI=y
840# CONFIG_USB is not set 892# CONFIG_USB is not set
841 893
842# 894#
843# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 895# Enable Host or Gadget support to see Inventra options
844# 896#
845 897
846# 898#
847# USB Gadget Support 899# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
848# 900#
849# CONFIG_USB_GADGET is not set 901# CONFIG_USB_GADGET is not set
902
903#
904# OTG and related infrastructure
905#
850# CONFIG_MMC is not set 906# CONFIG_MMC is not set
907# CONFIG_MEMSTICK is not set
851# CONFIG_NEW_LEDS is not set 908# CONFIG_NEW_LEDS is not set
909# CONFIG_ACCESSIBILITY is not set
852# CONFIG_INFINIBAND is not set 910# CONFIG_INFINIBAND is not set
853# CONFIG_RTC_CLASS is not set 911CONFIG_RTC_LIB=y
912CONFIG_RTC_CLASS=y
913CONFIG_RTC_HCTOSYS=y
914CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
915# CONFIG_RTC_DEBUG is not set
854 916
855# 917#
856# DMA Engine support 918# RTC interfaces
857# 919#
858# CONFIG_DMA_ENGINE is not set 920CONFIG_RTC_INTF_SYSFS=y
921CONFIG_RTC_INTF_PROC=y
922CONFIG_RTC_INTF_DEV=y
923# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
924# CONFIG_RTC_DRV_TEST is not set
859 925
860# 926#
861# DMA Clients 927# SPI RTC drivers
862# 928#
863 929
864# 930#
865# DMA Devices 931# Platform RTC drivers
866# 932#
867# CONFIG_AUXDISPLAY is not set 933# CONFIG_RTC_DRV_DS1286 is not set
934# CONFIG_RTC_DRV_DS1511 is not set
935# CONFIG_RTC_DRV_DS1553 is not set
936# CONFIG_RTC_DRV_DS1742 is not set
937# CONFIG_RTC_DRV_STK17TA8 is not set
938# CONFIG_RTC_DRV_M48T86 is not set
939# CONFIG_RTC_DRV_M48T35 is not set
940# CONFIG_RTC_DRV_M48T59 is not set
941# CONFIG_RTC_DRV_BQ4802 is not set
942# CONFIG_RTC_DRV_V3020 is not set
868 943
869# 944#
870# Userspace I/O 945# on-CPU RTC drivers
871# 946#
947CONFIG_RTC_DRV_PARISC=y
948# CONFIG_DMADEVICES is not set
949# CONFIG_AUXDISPLAY is not set
872# CONFIG_UIO is not set 950# CONFIG_UIO is not set
951# CONFIG_STAGING is not set
873 952
874# 953#
875# File systems 954# File systems
@@ -879,19 +958,18 @@ CONFIG_EXT2_FS=y
879# CONFIG_EXT2_FS_XIP is not set 958# CONFIG_EXT2_FS_XIP is not set
880CONFIG_EXT3_FS=y 959CONFIG_EXT3_FS=y
881# CONFIG_EXT3_FS_XATTR is not set 960# CONFIG_EXT3_FS_XATTR is not set
961# CONFIG_EXT4_FS is not set
882CONFIG_JBD=y 962CONFIG_JBD=y
883# CONFIG_JBD_DEBUG is not set
884# CONFIG_REISERFS_FS is not set 963# CONFIG_REISERFS_FS is not set
885# CONFIG_JFS_FS is not set 964# CONFIG_JFS_FS is not set
886# CONFIG_FS_POSIX_ACL is not set 965# CONFIG_FS_POSIX_ACL is not set
966CONFIG_FILE_LOCKING=y
887# CONFIG_XFS_FS is not set 967# CONFIG_XFS_FS is not set
888# CONFIG_OCFS2_FS is not set 968# CONFIG_OCFS2_FS is not set
889# CONFIG_MINIX_FS is not set 969CONFIG_DNOTIFY=y
890# CONFIG_ROMFS_FS is not set
891CONFIG_INOTIFY=y 970CONFIG_INOTIFY=y
892CONFIG_INOTIFY_USER=y 971CONFIG_INOTIFY_USER=y
893# CONFIG_QUOTA is not set 972# CONFIG_QUOTA is not set
894CONFIG_DNOTIFY=y
895# CONFIG_AUTOFS_FS is not set 973# CONFIG_AUTOFS_FS is not set
896CONFIG_AUTOFS4_FS=y 974CONFIG_AUTOFS4_FS=y
897# CONFIG_FUSE_FS is not set 975# CONFIG_FUSE_FS is not set
@@ -917,35 +995,32 @@ CONFIG_JOLIET=y
917CONFIG_PROC_FS=y 995CONFIG_PROC_FS=y
918CONFIG_PROC_KCORE=y 996CONFIG_PROC_KCORE=y
919CONFIG_PROC_SYSCTL=y 997CONFIG_PROC_SYSCTL=y
998CONFIG_PROC_PAGE_MONITOR=y
920CONFIG_SYSFS=y 999CONFIG_SYSFS=y
921CONFIG_TMPFS=y 1000CONFIG_TMPFS=y
922# CONFIG_TMPFS_POSIX_ACL is not set 1001# CONFIG_TMPFS_POSIX_ACL is not set
923# CONFIG_HUGETLB_PAGE is not set 1002# CONFIG_HUGETLB_PAGE is not set
924CONFIG_RAMFS=y 1003# CONFIG_CONFIGFS_FS is not set
925 1004CONFIG_MISC_FILESYSTEMS=y
926#
927# Miscellaneous filesystems
928#
929# CONFIG_HFSPLUS_FS is not set 1005# CONFIG_HFSPLUS_FS is not set
930# CONFIG_CRAMFS is not set 1006# CONFIG_CRAMFS is not set
1007# CONFIG_SQUASHFS is not set
931# CONFIG_VXFS_FS is not set 1008# CONFIG_VXFS_FS is not set
1009# CONFIG_MINIX_FS is not set
1010# CONFIG_OMFS_FS is not set
932# CONFIG_HPFS_FS is not set 1011# CONFIG_HPFS_FS is not set
933# CONFIG_QNX4FS_FS is not set 1012# CONFIG_QNX4FS_FS is not set
1013# CONFIG_ROMFS_FS is not set
934# CONFIG_SYSV_FS is not set 1014# CONFIG_SYSV_FS is not set
935# CONFIG_UFS_FS is not set 1015# CONFIG_UFS_FS is not set
936 1016CONFIG_NETWORK_FILESYSTEMS=y
937#
938# Network File Systems
939#
940CONFIG_NFS_FS=y 1017CONFIG_NFS_FS=y
941CONFIG_NFS_V3=y 1018CONFIG_NFS_V3=y
942# CONFIG_NFS_V3_ACL is not set 1019# CONFIG_NFS_V3_ACL is not set
943# CONFIG_NFS_DIRECTIO is not set 1020CONFIG_ROOT_NFS=y
944CONFIG_NFSD=y 1021CONFIG_NFSD=y
945CONFIG_NFSD_V3=y 1022CONFIG_NFSD_V3=y
946# CONFIG_NFSD_V3_ACL is not set 1023# CONFIG_NFSD_V3_ACL is not set
947CONFIG_NFSD_TCP=y
948CONFIG_ROOT_NFS=y
949CONFIG_LOCKD=y 1024CONFIG_LOCKD=y
950CONFIG_LOCKD_V4=y 1025CONFIG_LOCKD_V4=y
951CONFIG_EXPORTFS=y 1026CONFIG_EXPORTFS=y
@@ -962,10 +1037,6 @@ CONFIG_SMB_FS=y
962# 1037#
963# CONFIG_PARTITION_ADVANCED is not set 1038# CONFIG_PARTITION_ADVANCED is not set
964CONFIG_MSDOS_PARTITION=y 1039CONFIG_MSDOS_PARTITION=y
965
966#
967# Native Language Support
968#
969CONFIG_NLS=y 1040CONFIG_NLS=y
970CONFIG_NLS_DEFAULT="iso8859-1" 1041CONFIG_NLS_DEFAULT="iso8859-1"
971CONFIG_NLS_CODEPAGE_437=m 1042CONFIG_NLS_CODEPAGE_437=m
@@ -1011,7 +1082,9 @@ CONFIG_NLS_UTF8=m
1011# Kernel hacking 1082# Kernel hacking
1012# 1083#
1013# CONFIG_PRINTK_TIME is not set 1084# CONFIG_PRINTK_TIME is not set
1085CONFIG_ENABLE_WARN_DEPRECATED=y
1014CONFIG_ENABLE_MUST_CHECK=y 1086CONFIG_ENABLE_MUST_CHECK=y
1087CONFIG_FRAME_WARN=1024
1015CONFIG_MAGIC_SYSRQ=y 1088CONFIG_MAGIC_SYSRQ=y
1016# CONFIG_UNUSED_SYMBOLS is not set 1089# CONFIG_UNUSED_SYMBOLS is not set
1017# CONFIG_DEBUG_FS is not set 1090# CONFIG_DEBUG_FS is not set
@@ -1019,9 +1092,12 @@ CONFIG_HEADERS_CHECK=y
1019CONFIG_DEBUG_KERNEL=y 1092CONFIG_DEBUG_KERNEL=y
1020# CONFIG_DEBUG_SHIRQ is not set 1093# CONFIG_DEBUG_SHIRQ is not set
1021CONFIG_DETECT_SOFTLOCKUP=y 1094CONFIG_DETECT_SOFTLOCKUP=y
1095# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1096CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1022CONFIG_SCHED_DEBUG=y 1097CONFIG_SCHED_DEBUG=y
1023# CONFIG_SCHEDSTATS is not set 1098# CONFIG_SCHEDSTATS is not set
1024# CONFIG_TIMER_STATS is not set 1099# CONFIG_TIMER_STATS is not set
1100# CONFIG_DEBUG_OBJECTS is not set
1025# CONFIG_DEBUG_SLAB is not set 1101# CONFIG_DEBUG_SLAB is not set
1026# CONFIG_DEBUG_RT_MUTEXES is not set 1102# CONFIG_DEBUG_RT_MUTEXES is not set
1027# CONFIG_RT_MUTEX_TESTER is not set 1103# CONFIG_RT_MUTEX_TESTER is not set
@@ -1033,10 +1109,29 @@ CONFIG_SCHED_DEBUG=y
1033CONFIG_DEBUG_BUGVERBOSE=y 1109CONFIG_DEBUG_BUGVERBOSE=y
1034# CONFIG_DEBUG_INFO is not set 1110# CONFIG_DEBUG_INFO is not set
1035# CONFIG_DEBUG_VM is not set 1111# CONFIG_DEBUG_VM is not set
1112# CONFIG_DEBUG_WRITECOUNT is not set
1113CONFIG_DEBUG_MEMORY_INIT=y
1036# CONFIG_DEBUG_LIST is not set 1114# CONFIG_DEBUG_LIST is not set
1037CONFIG_FORCED_INLINING=y 1115# CONFIG_DEBUG_SG is not set
1116# CONFIG_DEBUG_NOTIFIERS is not set
1117# CONFIG_BOOT_PRINTK_DELAY is not set
1038# CONFIG_RCU_TORTURE_TEST is not set 1118# CONFIG_RCU_TORTURE_TEST is not set
1119# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1120# CONFIG_BACKTRACE_SELF_TEST is not set
1121# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1039# CONFIG_FAULT_INJECTION is not set 1122# CONFIG_FAULT_INJECTION is not set
1123# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1124
1125#
1126# Tracers
1127#
1128# CONFIG_SCHED_TRACER is not set
1129# CONFIG_CONTEXT_SWITCH_TRACER is not set
1130# CONFIG_BOOT_TRACER is not set
1131# CONFIG_TRACE_BRANCH_PROFILING is not set
1132# CONFIG_BUILD_DOCSRC is not set
1133# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1134# CONFIG_SAMPLES is not set
1040# CONFIG_DEBUG_RODATA is not set 1135# CONFIG_DEBUG_RODATA is not set
1041 1136
1042# 1137#
@@ -1044,52 +1139,108 @@ CONFIG_FORCED_INLINING=y
1044# 1139#
1045# CONFIG_KEYS is not set 1140# CONFIG_KEYS is not set
1046CONFIG_SECURITY=y 1141CONFIG_SECURITY=y
1142# CONFIG_SECURITYFS is not set
1047# CONFIG_SECURITY_NETWORK is not set 1143# CONFIG_SECURITY_NETWORK is not set
1048CONFIG_SECURITY_CAPABILITIES=y 1144# CONFIG_SECURITY_PATH is not set
1145# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1146CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1049CONFIG_CRYPTO=y 1147CONFIG_CRYPTO=y
1148
1149#
1150# Crypto core or helper
1151#
1152# CONFIG_CRYPTO_FIPS is not set
1050CONFIG_CRYPTO_ALGAPI=y 1153CONFIG_CRYPTO_ALGAPI=y
1154CONFIG_CRYPTO_ALGAPI2=y
1155CONFIG_CRYPTO_AEAD2=y
1051CONFIG_CRYPTO_BLKCIPHER=y 1156CONFIG_CRYPTO_BLKCIPHER=y
1157CONFIG_CRYPTO_BLKCIPHER2=y
1158CONFIG_CRYPTO_HASH2=y
1159CONFIG_CRYPTO_RNG2=y
1052CONFIG_CRYPTO_MANAGER=y 1160CONFIG_CRYPTO_MANAGER=y
1053# CONFIG_CRYPTO_HMAC is not set 1161CONFIG_CRYPTO_MANAGER2=y
1054# CONFIG_CRYPTO_NULL is not set 1162# CONFIG_CRYPTO_NULL is not set
1163# CONFIG_CRYPTO_CRYPTD is not set
1164# CONFIG_CRYPTO_AUTHENC is not set
1165# CONFIG_CRYPTO_TEST is not set
1166
1167#
1168# Authenticated Encryption with Associated Data
1169#
1170# CONFIG_CRYPTO_CCM is not set
1171# CONFIG_CRYPTO_GCM is not set
1172# CONFIG_CRYPTO_SEQIV is not set
1173
1174#
1175# Block modes
1176#
1177CONFIG_CRYPTO_CBC=y
1178# CONFIG_CRYPTO_CTR is not set
1179# CONFIG_CRYPTO_CTS is not set
1180# CONFIG_CRYPTO_ECB is not set
1181# CONFIG_CRYPTO_PCBC is not set
1182
1183#
1184# Hash modes
1185#
1186# CONFIG_CRYPTO_HMAC is not set
1187
1188#
1189# Digest
1190#
1191# CONFIG_CRYPTO_CRC32C is not set
1055# CONFIG_CRYPTO_MD4 is not set 1192# CONFIG_CRYPTO_MD4 is not set
1056# CONFIG_CRYPTO_MD5 is not set 1193# CONFIG_CRYPTO_MD5 is not set
1194# CONFIG_CRYPTO_MICHAEL_MIC is not set
1195# CONFIG_CRYPTO_RMD128 is not set
1196# CONFIG_CRYPTO_RMD160 is not set
1197# CONFIG_CRYPTO_RMD256 is not set
1198# CONFIG_CRYPTO_RMD320 is not set
1057# CONFIG_CRYPTO_SHA1 is not set 1199# CONFIG_CRYPTO_SHA1 is not set
1058# CONFIG_CRYPTO_SHA256 is not set 1200# CONFIG_CRYPTO_SHA256 is not set
1059# CONFIG_CRYPTO_SHA512 is not set 1201# CONFIG_CRYPTO_SHA512 is not set
1060# CONFIG_CRYPTO_WP512 is not set
1061# CONFIG_CRYPTO_TGR192 is not set 1202# CONFIG_CRYPTO_TGR192 is not set
1062# CONFIG_CRYPTO_ECB is not set 1203# CONFIG_CRYPTO_WP512 is not set
1063CONFIG_CRYPTO_CBC=y 1204
1064# CONFIG_CRYPTO_PCBC is not set 1205#
1065# CONFIG_CRYPTO_CRYPTD is not set 1206# Ciphers
1066# CONFIG_CRYPTO_DES is not set 1207#
1067# CONFIG_CRYPTO_FCRYPT is not set
1068# CONFIG_CRYPTO_BLOWFISH is not set
1069# CONFIG_CRYPTO_TWOFISH is not set
1070# CONFIG_CRYPTO_SERPENT is not set
1071# CONFIG_CRYPTO_AES is not set 1208# CONFIG_CRYPTO_AES is not set
1209# CONFIG_CRYPTO_ANUBIS is not set
1210# CONFIG_CRYPTO_ARC4 is not set
1211# CONFIG_CRYPTO_BLOWFISH is not set
1212# CONFIG_CRYPTO_CAMELLIA is not set
1072# CONFIG_CRYPTO_CAST5 is not set 1213# CONFIG_CRYPTO_CAST5 is not set
1073# CONFIG_CRYPTO_CAST6 is not set 1214# CONFIG_CRYPTO_CAST6 is not set
1074# CONFIG_CRYPTO_TEA is not set 1215# CONFIG_CRYPTO_DES is not set
1075# CONFIG_CRYPTO_ARC4 is not set 1216# CONFIG_CRYPTO_FCRYPT is not set
1076# CONFIG_CRYPTO_KHAZAD is not set 1217# CONFIG_CRYPTO_KHAZAD is not set
1077# CONFIG_CRYPTO_ANUBIS is not set
1078# CONFIG_CRYPTO_SEED is not set 1218# CONFIG_CRYPTO_SEED is not set
1219# CONFIG_CRYPTO_SERPENT is not set
1220# CONFIG_CRYPTO_TEA is not set
1221# CONFIG_CRYPTO_TWOFISH is not set
1222
1223#
1224# Compression
1225#
1079# CONFIG_CRYPTO_DEFLATE is not set 1226# CONFIG_CRYPTO_DEFLATE is not set
1080# CONFIG_CRYPTO_MICHAEL_MIC is not set 1227# CONFIG_CRYPTO_LZO is not set
1081# CONFIG_CRYPTO_CRC32C is not set 1228
1082# CONFIG_CRYPTO_CAMELLIA is not set 1229#
1083# CONFIG_CRYPTO_TEST is not set 1230# Random Number Generation
1084# CONFIG_CRYPTO_AUTHENC is not set 1231#
1232# CONFIG_CRYPTO_ANSI_CPRNG is not set
1085CONFIG_CRYPTO_HW=y 1233CONFIG_CRYPTO_HW=y
1234# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1086 1235
1087# 1236#
1088# Library routines 1237# Library routines
1089# 1238#
1090CONFIG_BITREVERSE=y 1239CONFIG_BITREVERSE=y
1240CONFIG_GENERIC_FIND_LAST_BIT=y
1091# CONFIG_CRC_CCITT is not set 1241# CONFIG_CRC_CCITT is not set
1092# CONFIG_CRC16 is not set 1242# CONFIG_CRC16 is not set
1243# CONFIG_CRC_T10DIF is not set
1093# CONFIG_CRC_ITU_T is not set 1244# CONFIG_CRC_ITU_T is not set
1094CONFIG_CRC32=y 1245CONFIG_CRC32=y
1095# CONFIG_CRC7 is not set 1246# CONFIG_CRC7 is not set
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig
index c6def3c1d209..0aa8014f758c 100644
--- a/arch/parisc/configs/c3000_defconfig
+++ b/arch/parisc/configs/c3000_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 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 21:24:00 2007 4# Fri Mar 13 01:32:58 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,16 +33,29 @@ CONFIG_SYSVIPC_SYSCTL=y
33# CONFIG_POSIX_MQUEUE is not set 33# CONFIG_POSIX_MQUEUE is not set
34# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
35# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
36# CONFIG_USER_NS is not set
37# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
38CONFIG_IKCONFIG=y 46CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 47CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=16 48CONFIG_LOG_BUF_SHIFT=16
49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
41CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
42# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54# CONFIG_NAMESPACES is not set
43# CONFIG_BLK_DEV_INITRD is not set 55# CONFIG_BLK_DEV_INITRD is not set
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 56# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
45CONFIG_SYSCTL=y 57CONFIG_SYSCTL=y
58CONFIG_ANON_INODES=y
46CONFIG_EMBEDDED=y 59CONFIG_EMBEDDED=y
47CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
48CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
@@ -54,29 +67,39 @@ CONFIG_BUG=y
54CONFIG_ELF_CORE=y 67CONFIG_ELF_CORE=y
55CONFIG_BASE_FULL=y 68CONFIG_BASE_FULL=y
56CONFIG_FUTEX=y 69CONFIG_FUTEX=y
57CONFIG_ANON_INODES=y
58CONFIG_EPOLL=y 70CONFIG_EPOLL=y
59CONFIG_SIGNALFD=y 71CONFIG_SIGNALFD=y
72CONFIG_TIMERFD=y
60CONFIG_EVENTFD=y 73CONFIG_EVENTFD=y
61CONFIG_SHMEM=y 74CONFIG_SHMEM=y
75CONFIG_AIO=y
62CONFIG_VM_EVENT_COUNTERS=y 76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_PCI_QUIRKS=y
78CONFIG_COMPAT_BRK=y
63CONFIG_SLAB=y 79CONFIG_SLAB=y
64# CONFIG_SLUB is not set 80# CONFIG_SLUB is not set
65# CONFIG_SLOB is not set 81# CONFIG_SLOB is not set
82CONFIG_PROFILING=y
83CONFIG_TRACEPOINTS=y
84# CONFIG_MARKERS is not set
85CONFIG_OPROFILE=m
86CONFIG_HAVE_OPROFILE=y
87# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
88CONFIG_SLABINFO=y
66CONFIG_RT_MUTEXES=y 89CONFIG_RT_MUTEXES=y
67# CONFIG_TINY_SHMEM is not set
68CONFIG_BASE_SMALL=0 90CONFIG_BASE_SMALL=0
69CONFIG_MODULES=y 91CONFIG_MODULES=y
92# CONFIG_MODULE_FORCE_LOAD is not set
70CONFIG_MODULE_UNLOAD=y 93CONFIG_MODULE_UNLOAD=y
71CONFIG_MODULE_FORCE_UNLOAD=y 94CONFIG_MODULE_FORCE_UNLOAD=y
72# CONFIG_MODVERSIONS is not set 95# CONFIG_MODVERSIONS is not set
73# CONFIG_MODULE_SRCVERSION_ALL is not set 96# CONFIG_MODULE_SRCVERSION_ALL is not set
74CONFIG_KMOD=y 97CONFIG_INIT_ALL_POSSIBLE=y
75CONFIG_BLOCK=y 98CONFIG_BLOCK=y
76# CONFIG_LBD is not set 99# CONFIG_LBD is not set
77# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
78# CONFIG_LSF is not set
79# CONFIG_BLK_DEV_BSG is not set 101# CONFIG_BLK_DEV_BSG is not set
102# CONFIG_BLK_DEV_INTEGRITY is not set
80 103
81# 104#
82# IO Schedulers 105# IO Schedulers
@@ -90,6 +113,7 @@ CONFIG_DEFAULT_AS=y
90# CONFIG_DEFAULT_CFQ is not set 113# CONFIG_DEFAULT_CFQ is not set
91# CONFIG_DEFAULT_NOOP is not set 114# CONFIG_DEFAULT_NOOP is not set
92CONFIG_DEFAULT_IOSCHED="anticipatory" 115CONFIG_DEFAULT_IOSCHED="anticipatory"
116# CONFIG_FREEZER is not set
93 117
94# 118#
95# Processor type and features 119# Processor type and features
@@ -115,17 +139,19 @@ CONFIG_HZ_250=y
115# CONFIG_HZ_300 is not set 139# CONFIG_HZ_300 is not set
116# CONFIG_HZ_1000 is not set 140# CONFIG_HZ_1000 is not set
117CONFIG_HZ=250 141CONFIG_HZ=250
142# CONFIG_SCHED_HRTICK is not set
118CONFIG_SELECT_MEMORY_MODEL=y 143CONFIG_SELECT_MEMORY_MODEL=y
119CONFIG_FLATMEM_MANUAL=y 144CONFIG_FLATMEM_MANUAL=y
120# CONFIG_DISCONTIGMEM_MANUAL is not set 145# CONFIG_DISCONTIGMEM_MANUAL is not set
121# CONFIG_SPARSEMEM_MANUAL is not set 146# CONFIG_SPARSEMEM_MANUAL is not set
122CONFIG_FLATMEM=y 147CONFIG_FLATMEM=y
123CONFIG_FLAT_NODE_MEM_MAP=y 148CONFIG_FLAT_NODE_MEM_MAP=y
124# CONFIG_SPARSEMEM_STATIC is not set 149CONFIG_PAGEFLAGS_EXTENDED=y
125CONFIG_SPLIT_PTLOCK_CPUS=4 150CONFIG_SPLIT_PTLOCK_CPUS=4
126# CONFIG_RESOURCES_64BIT is not set 151# CONFIG_PHYS_ADDR_T_64BIT is not set
127CONFIG_ZONE_DMA_FLAG=0 152CONFIG_ZONE_DMA_FLAG=0
128CONFIG_VIRT_TO_BUS=y 153CONFIG_VIRT_TO_BUS=y
154CONFIG_UNEVICTABLE_LRU=y
129# CONFIG_HPUX is not set 155# CONFIG_HPUX is not set
130 156
131# 157#
@@ -134,14 +160,13 @@ CONFIG_VIRT_TO_BUS=y
134# CONFIG_GSC is not set 160# CONFIG_GSC is not set
135CONFIG_PCI=y 161CONFIG_PCI=y
136# CONFIG_ARCH_SUPPORTS_MSI is not set 162# CONFIG_ARCH_SUPPORTS_MSI is not set
163CONFIG_PCI_LEGACY=y
137# CONFIG_PCI_DEBUG is not set 164# CONFIG_PCI_DEBUG is not set
165# CONFIG_PCI_STUB is not set
138CONFIG_PCI_LBA=y 166CONFIG_PCI_LBA=y
139CONFIG_IOSAPIC=y 167CONFIG_IOSAPIC=y
140CONFIG_IOMMU_SBA=y 168CONFIG_IOMMU_SBA=y
141 169CONFIG_IOMMU_HELPER=y
142#
143# PCCARD (PCMCIA/CardBus) support
144#
145# CONFIG_PCCARD is not set 170# CONFIG_PCCARD is not set
146# CONFIG_HOTPLUG_PCI is not set 171# CONFIG_HOTPLUG_PCI is not set
147 172
@@ -158,16 +183,15 @@ CONFIG_PDC_STABLE=y
158# Executable file formats 183# Executable file formats
159# 184#
160CONFIG_BINFMT_ELF=y 185CONFIG_BINFMT_ELF=y
186# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
187# CONFIG_HAVE_AOUT is not set
161# CONFIG_BINFMT_MISC is not set 188# CONFIG_BINFMT_MISC is not set
162
163#
164# Networking
165#
166CONFIG_NET=y 189CONFIG_NET=y
167 190
168# 191#
169# Networking options 192# Networking options
170# 193#
194CONFIG_COMPAT_NET_DEV_OPS=y
171CONFIG_PACKET=y 195CONFIG_PACKET=y
172CONFIG_PACKET_MMAP=y 196CONFIG_PACKET_MMAP=y
173CONFIG_UNIX=y 197CONFIG_UNIX=y
@@ -175,6 +199,8 @@ CONFIG_XFRM=y
175CONFIG_XFRM_USER=m 199CONFIG_XFRM_USER=m
176# CONFIG_XFRM_SUB_POLICY is not set 200# CONFIG_XFRM_SUB_POLICY is not set
177# CONFIG_XFRM_MIGRATE is not set 201# CONFIG_XFRM_MIGRATE is not set
202# CONFIG_XFRM_STATISTICS is not set
203CONFIG_XFRM_IPCOMP=m
178CONFIG_NET_KEY=m 204CONFIG_NET_KEY=m
179# CONFIG_NET_KEY_MIGRATE is not set 205# CONFIG_NET_KEY_MIGRATE is not set
180CONFIG_INET=y 206CONFIG_INET=y
@@ -204,7 +230,6 @@ CONFIG_INET_XFRM_MODE_BEET=y
204CONFIG_TCP_CONG_CUBIC=y 230CONFIG_TCP_CONG_CUBIC=y
205CONFIG_DEFAULT_TCP_CONG="cubic" 231CONFIG_DEFAULT_TCP_CONG="cubic"
206# CONFIG_TCP_MD5SIG is not set 232# CONFIG_TCP_MD5SIG is not set
207# CONFIG_IP_VS is not set
208CONFIG_IPV6=m 233CONFIG_IPV6=m
209# CONFIG_IPV6_PRIVACY is not set 234# CONFIG_IPV6_PRIVACY is not set
210# CONFIG_IPV6_ROUTER_PREF is not set 235# CONFIG_IPV6_ROUTER_PREF is not set
@@ -220,29 +245,34 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
220CONFIG_INET6_XFRM_MODE_BEET=m 245CONFIG_INET6_XFRM_MODE_BEET=m
221# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 246# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
222CONFIG_IPV6_SIT=m 247CONFIG_IPV6_SIT=m
248CONFIG_IPV6_NDISC_NODETYPE=y
223CONFIG_IPV6_TUNNEL=m 249CONFIG_IPV6_TUNNEL=m
224# CONFIG_IPV6_MULTIPLE_TABLES is not set 250# CONFIG_IPV6_MULTIPLE_TABLES is not set
251# CONFIG_IPV6_MROUTE is not set
225# CONFIG_NETWORK_SECMARK is not set 252# CONFIG_NETWORK_SECMARK is not set
226CONFIG_NETFILTER=y 253CONFIG_NETFILTER=y
227CONFIG_NETFILTER_DEBUG=y 254CONFIG_NETFILTER_DEBUG=y
255CONFIG_NETFILTER_ADVANCED=y
228 256
229# 257#
230# Core Netfilter Configuration 258# Core Netfilter Configuration
231# 259#
232# CONFIG_NETFILTER_NETLINK is not set 260# CONFIG_NETFILTER_NETLINK_QUEUE is not set
233# CONFIG_NF_CONNTRACK_ENABLED is not set 261# CONFIG_NETFILTER_NETLINK_LOG is not set
234# CONFIG_NF_CONNTRACK is not set 262# CONFIG_NF_CONNTRACK is not set
235# CONFIG_NETFILTER_XTABLES is not set 263# CONFIG_NETFILTER_XTABLES is not set
264# CONFIG_IP_VS is not set
236 265
237# 266#
238# IP: Netfilter Configuration 267# IP: Netfilter Configuration
239# 268#
269# CONFIG_NF_DEFRAG_IPV4 is not set
240CONFIG_IP_NF_QUEUE=m 270CONFIG_IP_NF_QUEUE=m
241# CONFIG_IP_NF_IPTABLES is not set 271# CONFIG_IP_NF_IPTABLES is not set
242# CONFIG_IP_NF_ARPTABLES is not set 272# CONFIG_IP_NF_ARPTABLES is not set
243 273
244# 274#
245# IPv6: Netfilter Configuration (EXPERIMENTAL) 275# IPv6: Netfilter Configuration
246# 276#
247# CONFIG_IP6_NF_QUEUE is not set 277# CONFIG_IP6_NF_QUEUE is not set
248# CONFIG_IP6_NF_IPTABLES is not set 278# CONFIG_IP6_NF_IPTABLES is not set
@@ -251,6 +281,7 @@ CONFIG_IP_NF_QUEUE=m
251# CONFIG_TIPC is not set 281# CONFIG_TIPC is not set
252# CONFIG_ATM is not set 282# CONFIG_ATM is not set
253# CONFIG_BRIDGE is not set 283# CONFIG_BRIDGE is not set
284# CONFIG_NET_DSA is not set
254# CONFIG_VLAN_8021Q is not set 285# CONFIG_VLAN_8021Q is not set
255# CONFIG_DECNET is not set 286# CONFIG_DECNET is not set
256# CONFIG_LLC2 is not set 287# CONFIG_LLC2 is not set
@@ -260,28 +291,26 @@ CONFIG_IP_NF_QUEUE=m
260# CONFIG_LAPB is not set 291# CONFIG_LAPB is not set
261# CONFIG_ECONET is not set 292# CONFIG_ECONET is not set
262# CONFIG_WAN_ROUTER is not set 293# CONFIG_WAN_ROUTER is not set
263
264#
265# QoS and/or fair queueing
266#
267# CONFIG_NET_SCHED is not set 294# CONFIG_NET_SCHED is not set
295# CONFIG_DCB is not set
268 296
269# 297#
270# Network testing 298# Network testing
271# 299#
272CONFIG_NET_PKTGEN=m 300CONFIG_NET_PKTGEN=m
273# CONFIG_HAMRADIO is not set 301# CONFIG_HAMRADIO is not set
302# CONFIG_CAN is not set
274# CONFIG_IRDA is not set 303# CONFIG_IRDA is not set
275# CONFIG_BT is not set 304# CONFIG_BT is not set
276# CONFIG_AF_RXRPC is not set 305# CONFIG_AF_RXRPC is not set
277 306# CONFIG_PHONET is not set
278# 307CONFIG_WIRELESS=y
279# Wireless
280#
281# CONFIG_CFG80211 is not set 308# CONFIG_CFG80211 is not set
309CONFIG_WIRELESS_OLD_REGULATORY=y
282# CONFIG_WIRELESS_EXT is not set 310# CONFIG_WIRELESS_EXT is not set
311# CONFIG_LIB80211 is not set
283# CONFIG_MAC80211 is not set 312# CONFIG_MAC80211 is not set
284# CONFIG_IEEE80211 is not set 313# CONFIG_WIMAX is not set
285# CONFIG_RFKILL is not set 314# CONFIG_RFKILL is not set
286# CONFIG_NET_9P is not set 315# CONFIG_NET_9P is not set
287 316
@@ -296,6 +325,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
296# CONFIG_STANDALONE is not set 325# CONFIG_STANDALONE is not set
297# CONFIG_PREVENT_FIRMWARE_BUILD is not set 326# CONFIG_PREVENT_FIRMWARE_BUILD is not set
298CONFIG_FW_LOADER=y 327CONFIG_FW_LOADER=y
328CONFIG_FIRMWARE_IN_KERNEL=y
329CONFIG_EXTRA_FIRMWARE=""
299# CONFIG_DEBUG_DRIVER is not set 330# CONFIG_DEBUG_DRIVER is not set
300# CONFIG_DEBUG_DEVRES is not set 331# CONFIG_DEBUG_DEVRES is not set
301# CONFIG_SYS_HYPERVISOR is not set 332# CONFIG_SYS_HYPERVISOR is not set
@@ -316,59 +347,62 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
316# CONFIG_BLK_DEV_RAM is not set 347# CONFIG_BLK_DEV_RAM is not set
317# CONFIG_CDROM_PKTCDVD is not set 348# CONFIG_CDROM_PKTCDVD is not set
318# CONFIG_ATA_OVER_ETH is not set 349# CONFIG_ATA_OVER_ETH is not set
350# CONFIG_BLK_DEV_HD is not set
319CONFIG_MISC_DEVICES=y 351CONFIG_MISC_DEVICES=y
320# CONFIG_PHANTOM is not set 352# CONFIG_PHANTOM is not set
321# CONFIG_EEPROM_93CX6 is not set
322# CONFIG_SGI_IOC4 is not set 353# CONFIG_SGI_IOC4 is not set
323# CONFIG_TIFM_CORE is not set 354# CONFIG_TIFM_CORE is not set
355# CONFIG_ENCLOSURE_SERVICES is not set
356# CONFIG_HP_ILO is not set
357# CONFIG_C2PORT is not set
358
359#
360# EEPROM support
361#
362# CONFIG_EEPROM_93CX6 is not set
363CONFIG_HAVE_IDE=y
324CONFIG_IDE=y 364CONFIG_IDE=y
325CONFIG_IDE_MAX_HWIFS=4
326CONFIG_BLK_DEV_IDE=y
327 365
328# 366#
329# Please see Documentation/ide.txt for help/info on IDE drives 367# Please see Documentation/ide/ide.txt for help/info on IDE drives
330# 368#
369CONFIG_IDE_ATAPI=y
331# CONFIG_BLK_DEV_IDE_SATA is not set 370# CONFIG_BLK_DEV_IDE_SATA is not set
332CONFIG_BLK_DEV_IDEDISK=m 371CONFIG_IDE_GD=y
333# CONFIG_IDEDISK_MULTI_MODE is not set 372CONFIG_IDE_GD_ATA=y
373# CONFIG_IDE_GD_ATAPI is not set
334CONFIG_BLK_DEV_IDECD=y 374CONFIG_BLK_DEV_IDECD=y
375CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
335# CONFIG_BLK_DEV_IDETAPE is not set 376# CONFIG_BLK_DEV_IDETAPE is not set
336# CONFIG_BLK_DEV_IDEFLOPPY is not set
337CONFIG_BLK_DEV_IDESCSI=y
338# CONFIG_IDE_TASK_IOCTL is not set 377# CONFIG_IDE_TASK_IOCTL is not set
339CONFIG_IDE_PROC_FS=y 378CONFIG_IDE_PROC_FS=y
340 379
341# 380#
342# IDE chipset support/bugfixes 381# IDE chipset support/bugfixes
343# 382#
344CONFIG_IDE_GENERIC=y
345# CONFIG_BLK_DEV_PLATFORM is not set 383# CONFIG_BLK_DEV_PLATFORM is not set
384CONFIG_BLK_DEV_IDEDMA_SFF=y
346 385
347# 386#
348# PCI IDE chipsets support 387# PCI IDE chipsets support
349# 388#
350CONFIG_BLK_DEV_IDEPCI=y 389CONFIG_BLK_DEV_IDEPCI=y
351CONFIG_IDEPCI_SHARE_IRQ=y
352CONFIG_IDEPCI_PCIBUS_ORDER=y 390CONFIG_IDEPCI_PCIBUS_ORDER=y
353# CONFIG_BLK_DEV_OFFBOARD is not set
354# CONFIG_BLK_DEV_GENERIC is not set 391# CONFIG_BLK_DEV_GENERIC is not set
355# CONFIG_BLK_DEV_OPTI621 is not set 392# CONFIG_BLK_DEV_OPTI621 is not set
356CONFIG_BLK_DEV_IDEDMA_PCI=y 393CONFIG_BLK_DEV_IDEDMA_PCI=y
357# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
358CONFIG_IDEDMA_ONLYDISK=y
359# CONFIG_BLK_DEV_AEC62XX is not set 394# CONFIG_BLK_DEV_AEC62XX is not set
360# CONFIG_BLK_DEV_ALI15X3 is not set 395# CONFIG_BLK_DEV_ALI15X3 is not set
361# CONFIG_BLK_DEV_AMD74XX is not set 396# CONFIG_BLK_DEV_AMD74XX is not set
362# CONFIG_BLK_DEV_CMD64X is not set 397# CONFIG_BLK_DEV_CMD64X is not set
363# CONFIG_BLK_DEV_TRIFLEX is not set 398# CONFIG_BLK_DEV_TRIFLEX is not set
364# CONFIG_BLK_DEV_CY82C693 is not set
365# CONFIG_BLK_DEV_CS5520 is not set 399# CONFIG_BLK_DEV_CS5520 is not set
366# CONFIG_BLK_DEV_CS5530 is not set 400# CONFIG_BLK_DEV_CS5530 is not set
367# CONFIG_BLK_DEV_HPT34X is not set
368# CONFIG_BLK_DEV_HPT366 is not set 401# CONFIG_BLK_DEV_HPT366 is not set
369# CONFIG_BLK_DEV_JMICRON is not set 402# CONFIG_BLK_DEV_JMICRON is not set
370# CONFIG_BLK_DEV_SC1200 is not set 403# CONFIG_BLK_DEV_SC1200 is not set
371# CONFIG_BLK_DEV_PIIX is not set 404# CONFIG_BLK_DEV_PIIX is not set
405# CONFIG_BLK_DEV_IT8172 is not set
372# CONFIG_BLK_DEV_IT8213 is not set 406# CONFIG_BLK_DEV_IT8213 is not set
373# CONFIG_BLK_DEV_IT821X is not set 407# CONFIG_BLK_DEV_IT821X is not set
374CONFIG_BLK_DEV_NS87415=y 408CONFIG_BLK_DEV_NS87415=y
@@ -380,10 +414,7 @@ CONFIG_BLK_DEV_SIIMAGE=m
380# CONFIG_BLK_DEV_TRM290 is not set 414# CONFIG_BLK_DEV_TRM290 is not set
381# CONFIG_BLK_DEV_VIA82CXXX is not set 415# CONFIG_BLK_DEV_VIA82CXXX is not set
382# CONFIG_BLK_DEV_TC86C001 is not set 416# CONFIG_BLK_DEV_TC86C001 is not set
383# CONFIG_IDE_ARM is not set
384CONFIG_BLK_DEV_IDEDMA=y 417CONFIG_BLK_DEV_IDEDMA=y
385# CONFIG_IDEDMA_IVB is not set
386# CONFIG_BLK_DEV_HD is not set
387 418
388# 419#
389# SCSI device support 420# SCSI device support
@@ -422,8 +453,10 @@ CONFIG_SCSI_SPI_ATTRS=y
422# CONFIG_SCSI_FC_ATTRS is not set 453# CONFIG_SCSI_FC_ATTRS is not set
423CONFIG_SCSI_ISCSI_ATTRS=m 454CONFIG_SCSI_ISCSI_ATTRS=m
424# CONFIG_SCSI_SAS_LIBSAS is not set 455# CONFIG_SCSI_SAS_LIBSAS is not set
456# CONFIG_SCSI_SRP_ATTRS is not set
425CONFIG_SCSI_LOWLEVEL=y 457CONFIG_SCSI_LOWLEVEL=y
426# CONFIG_ISCSI_TCP is not set 458# CONFIG_ISCSI_TCP is not set
459# CONFIG_SCSI_CXGB3_ISCSI is not set
427# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 460# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
428# CONFIG_SCSI_3W_9XXX is not set 461# CONFIG_SCSI_3W_9XXX is not set
429# CONFIG_SCSI_ACARD is not set 462# CONFIG_SCSI_ACARD is not set
@@ -433,16 +466,20 @@ CONFIG_SCSI_LOWLEVEL=y
433# CONFIG_SCSI_AIC79XX is not set 466# CONFIG_SCSI_AIC79XX is not set
434# CONFIG_SCSI_AIC94XX is not set 467# CONFIG_SCSI_AIC94XX is not set
435# CONFIG_SCSI_DPT_I2O is not set 468# CONFIG_SCSI_DPT_I2O is not set
469# CONFIG_SCSI_ADVANSYS is not set
436# CONFIG_SCSI_ARCMSR is not set 470# CONFIG_SCSI_ARCMSR is not set
437# CONFIG_MEGARAID_NEWGEN is not set 471# CONFIG_MEGARAID_NEWGEN is not set
438# CONFIG_MEGARAID_LEGACY is not set 472# CONFIG_MEGARAID_LEGACY is not set
439# CONFIG_MEGARAID_SAS is not set 473# CONFIG_MEGARAID_SAS is not set
440# CONFIG_SCSI_HPTIOP is not set 474# CONFIG_SCSI_HPTIOP is not set
475# CONFIG_LIBFC is not set
476# CONFIG_FCOE is not set
441# CONFIG_SCSI_DMX3191D is not set 477# CONFIG_SCSI_DMX3191D is not set
442# CONFIG_SCSI_FUTURE_DOMAIN is not set 478# CONFIG_SCSI_FUTURE_DOMAIN is not set
443# CONFIG_SCSI_IPS is not set 479# CONFIG_SCSI_IPS is not set
444# CONFIG_SCSI_INITIO is not set 480# CONFIG_SCSI_INITIO is not set
445# CONFIG_SCSI_INIA100 is not set 481# CONFIG_SCSI_INIA100 is not set
482# CONFIG_SCSI_MVSAS is not set
446# CONFIG_SCSI_STEX is not set 483# CONFIG_SCSI_STEX is not set
447CONFIG_SCSI_SYM53C8XX_2=y 484CONFIG_SCSI_SYM53C8XX_2=y
448CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 485CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
@@ -458,9 +495,11 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y
458# CONFIG_SCSI_NSP32 is not set 495# CONFIG_SCSI_NSP32 is not set
459CONFIG_SCSI_DEBUG=m 496CONFIG_SCSI_DEBUG=m
460# CONFIG_SCSI_SRP is not set 497# CONFIG_SCSI_SRP is not set
498# CONFIG_SCSI_DH is not set
461# CONFIG_ATA is not set 499# CONFIG_ATA is not set
462CONFIG_MD=y 500CONFIG_MD=y
463CONFIG_BLK_DEV_MD=y 501CONFIG_BLK_DEV_MD=y
502CONFIG_MD_AUTODETECT=y
464CONFIG_MD_LINEAR=y 503CONFIG_MD_LINEAR=y
465CONFIG_MD_RAID0=y 504CONFIG_MD_RAID0=y
466CONFIG_MD_RAID1=y 505CONFIG_MD_RAID1=y
@@ -475,13 +514,8 @@ CONFIG_DM_SNAPSHOT=m
475CONFIG_DM_MIRROR=m 514CONFIG_DM_MIRROR=m
476CONFIG_DM_ZERO=m 515CONFIG_DM_ZERO=m
477CONFIG_DM_MULTIPATH=m 516CONFIG_DM_MULTIPATH=m
478# CONFIG_DM_MULTIPATH_EMC is not set
479# CONFIG_DM_MULTIPATH_RDAC is not set
480# CONFIG_DM_DELAY is not set 517# CONFIG_DM_DELAY is not set
481 518# CONFIG_DM_UEVENT is not set
482#
483# Fusion MPT device support
484#
485CONFIG_FUSION=y 519CONFIG_FUSION=y
486CONFIG_FUSION_SPI=m 520CONFIG_FUSION_SPI=m
487# CONFIG_FUSION_FC is not set 521# CONFIG_FUSION_FC is not set
@@ -493,20 +527,40 @@ CONFIG_FUSION_CTL=m
493# 527#
494# IEEE 1394 (FireWire) support 528# IEEE 1394 (FireWire) support
495# 529#
530
531#
532# Enable only one of the two stacks, unless you know what you are doing
533#
496# CONFIG_FIREWIRE is not set 534# CONFIG_FIREWIRE is not set
497# CONFIG_IEEE1394 is not set 535# CONFIG_IEEE1394 is not set
498# CONFIG_I2O is not set 536# CONFIG_I2O is not set
499CONFIG_NETDEVICES=y 537CONFIG_NETDEVICES=y
500# CONFIG_NETDEVICES_MULTIQUEUE is not set
501CONFIG_DUMMY=m 538CONFIG_DUMMY=m
502CONFIG_BONDING=m 539CONFIG_BONDING=m
503# CONFIG_MACVLAN is not set 540# CONFIG_MACVLAN is not set
504# CONFIG_EQUALIZER is not set 541# CONFIG_EQUALIZER is not set
505CONFIG_TUN=m 542CONFIG_TUN=m
506# CONFIG_VETH is not set 543# CONFIG_VETH is not set
507# CONFIG_IP1000 is not set
508# CONFIG_ARCNET is not set 544# CONFIG_ARCNET is not set
509# CONFIG_PHYLIB is not set 545CONFIG_PHYLIB=m
546
547#
548# MII PHY device drivers
549#
550# CONFIG_MARVELL_PHY is not set
551# CONFIG_DAVICOM_PHY is not set
552# CONFIG_QSEMI_PHY is not set
553# CONFIG_LXT_PHY is not set
554# CONFIG_CICADA_PHY is not set
555# CONFIG_VITESSE_PHY is not set
556# CONFIG_SMSC_PHY is not set
557# CONFIG_BROADCOM_PHY is not set
558# CONFIG_ICPLUS_PHY is not set
559# CONFIG_REALTEK_PHY is not set
560# CONFIG_NATIONAL_PHY is not set
561# CONFIG_STE10XP is not set
562# CONFIG_LSI_ET1011C_PHY is not set
563# CONFIG_MDIO_BITBANG is not set
510CONFIG_NET_ETHERNET=y 564CONFIG_NET_ETHERNET=y
511CONFIG_MII=m 565CONFIG_MII=m
512# CONFIG_HAPPYMEAL is not set 566# CONFIG_HAPPYMEAL is not set
@@ -528,33 +582,38 @@ CONFIG_TULIP_MMIO=y
528# CONFIG_IBM_NEW_EMAC_RGMII is not set 582# CONFIG_IBM_NEW_EMAC_RGMII is not set
529# CONFIG_IBM_NEW_EMAC_TAH is not set 583# CONFIG_IBM_NEW_EMAC_TAH is not set
530# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 584# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
585# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
586# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
587# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
531CONFIG_NET_PCI=y 588CONFIG_NET_PCI=y
532# CONFIG_PCNET32 is not set 589# CONFIG_PCNET32 is not set
533# CONFIG_AMD8111_ETH is not set 590# CONFIG_AMD8111_ETH is not set
534# CONFIG_ADAPTEC_STARFIRE is not set 591# CONFIG_ADAPTEC_STARFIRE is not set
535# CONFIG_B44 is not set 592# CONFIG_B44 is not set
536# CONFIG_FORCEDETH is not set 593# CONFIG_FORCEDETH is not set
537# CONFIG_EEPRO100 is not set
538CONFIG_E100=m 594CONFIG_E100=m
539# CONFIG_FEALNX is not set 595# CONFIG_FEALNX is not set
540# CONFIG_NATSEMI is not set 596# CONFIG_NATSEMI is not set
541# CONFIG_NE2K_PCI is not set 597# CONFIG_NE2K_PCI is not set
542# CONFIG_8139CP is not set 598# CONFIG_8139CP is not set
543# CONFIG_8139TOO is not set 599# CONFIG_8139TOO is not set
600# CONFIG_R6040 is not set
544# CONFIG_SIS900 is not set 601# CONFIG_SIS900 is not set
545# CONFIG_EPIC100 is not set 602# CONFIG_EPIC100 is not set
603# CONFIG_SMSC9420 is not set
546# CONFIG_SUNDANCE is not set 604# CONFIG_SUNDANCE is not set
547# CONFIG_TLAN is not set 605# CONFIG_TLAN is not set
548# CONFIG_VIA_RHINE is not set 606# CONFIG_VIA_RHINE is not set
549# CONFIG_SC92031 is not set 607# CONFIG_SC92031 is not set
608# CONFIG_ATL2 is not set
550CONFIG_NETDEV_1000=y 609CONFIG_NETDEV_1000=y
551CONFIG_ACENIC=m 610CONFIG_ACENIC=m
552# CONFIG_ACENIC_OMIT_TIGON_I is not set 611# CONFIG_ACENIC_OMIT_TIGON_I is not set
553# CONFIG_DL2K is not set 612# CONFIG_DL2K is not set
554CONFIG_E1000=m 613CONFIG_E1000=m
555# CONFIG_E1000_NAPI is not set
556# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
557# CONFIG_E1000E is not set 614# CONFIG_E1000E is not set
615# CONFIG_IP1000 is not set
616# CONFIG_IGB is not set
558# CONFIG_NS83820 is not set 617# CONFIG_NS83820 is not set
559# CONFIG_HAMACHI is not set 618# CONFIG_HAMACHI is not set
560# CONFIG_YELLOWFIN is not set 619# CONFIG_YELLOWFIN is not set
@@ -562,23 +621,31 @@ CONFIG_E1000=m
562# CONFIG_SIS190 is not set 621# CONFIG_SIS190 is not set
563# CONFIG_SKGE is not set 622# CONFIG_SKGE is not set
564# CONFIG_SKY2 is not set 623# CONFIG_SKY2 is not set
565# CONFIG_SK98LIN is not set
566# CONFIG_VIA_VELOCITY is not set 624# CONFIG_VIA_VELOCITY is not set
567CONFIG_TIGON3=m 625CONFIG_TIGON3=m
568# CONFIG_BNX2 is not set 626# CONFIG_BNX2 is not set
569# CONFIG_QLA3XXX is not set 627# CONFIG_QLA3XXX is not set
570# CONFIG_ATL1 is not set 628# CONFIG_ATL1 is not set
629# CONFIG_ATL1E is not set
630# CONFIG_ATL1C is not set
631# CONFIG_JME is not set
571CONFIG_NETDEV_10000=y 632CONFIG_NETDEV_10000=y
572# CONFIG_CHELSIO_T1 is not set 633# CONFIG_CHELSIO_T1 is not set
634CONFIG_CHELSIO_T3_DEPENDS=y
573# CONFIG_CHELSIO_T3 is not set 635# CONFIG_CHELSIO_T3 is not set
636# CONFIG_ENIC is not set
574# CONFIG_IXGBE is not set 637# CONFIG_IXGBE is not set
575# CONFIG_IXGB is not set 638# CONFIG_IXGB is not set
576# CONFIG_S2IO is not set 639# CONFIG_S2IO is not set
577# CONFIG_MYRI10GE is not set 640# CONFIG_MYRI10GE is not set
578# CONFIG_NETXEN_NIC is not set 641# CONFIG_NETXEN_NIC is not set
579# CONFIG_NIU is not set 642# CONFIG_NIU is not set
643# CONFIG_MLX4_EN is not set
580# CONFIG_MLX4_CORE is not set 644# CONFIG_MLX4_CORE is not set
581# CONFIG_TEHUTI is not set 645# CONFIG_TEHUTI is not set
646# CONFIG_BNX2X is not set
647# CONFIG_QLGE is not set
648# CONFIG_SFC is not set
582# CONFIG_TR is not set 649# CONFIG_TR is not set
583 650
584# 651#
@@ -586,6 +653,11 @@ CONFIG_NETDEV_10000=y
586# 653#
587# CONFIG_WLAN_PRE80211 is not set 654# CONFIG_WLAN_PRE80211 is not set
588# CONFIG_WLAN_80211 is not set 655# CONFIG_WLAN_80211 is not set
656# CONFIG_IWLWIFI_LEDS is not set
657
658#
659# Enable WiMAX (Networking options) to see the WiMAX drivers
660#
589 661
590# 662#
591# USB Network Adapters 663# USB Network Adapters
@@ -594,7 +666,6 @@ CONFIG_NETDEV_10000=y
594# CONFIG_USB_KAWETH is not set 666# CONFIG_USB_KAWETH is not set
595# CONFIG_USB_PEGASUS is not set 667# CONFIG_USB_PEGASUS is not set
596# CONFIG_USB_RTL8150 is not set 668# CONFIG_USB_RTL8150 is not set
597# CONFIG_USB_USBNET_MII is not set
598# CONFIG_USB_USBNET is not set 669# CONFIG_USB_USBNET is not set
599# CONFIG_WAN is not set 670# CONFIG_WAN is not set
600# CONFIG_FDDI is not set 671# CONFIG_FDDI is not set
@@ -612,7 +683,6 @@ CONFIG_PPPOE=m
612# CONFIG_SLIP is not set 683# CONFIG_SLIP is not set
613CONFIG_SLHC=m 684CONFIG_SLHC=m
614# CONFIG_NET_FC is not set 685# CONFIG_NET_FC is not set
615# CONFIG_SHAPER is not set
616# CONFIG_NETCONSOLE is not set 686# CONFIG_NETCONSOLE is not set
617# CONFIG_NETPOLL is not set 687# CONFIG_NETPOLL is not set
618# CONFIG_NET_POLL_CONTROLLER is not set 688# CONFIG_NET_POLL_CONTROLLER is not set
@@ -634,7 +704,6 @@ CONFIG_INPUT_MOUSEDEV=y
634CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600 704CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600
635CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200 705CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200
636# CONFIG_INPUT_JOYDEV is not set 706# CONFIG_INPUT_JOYDEV is not set
637# CONFIG_INPUT_TSDEV is not set
638# CONFIG_INPUT_EVDEV is not set 707# CONFIG_INPUT_EVDEV is not set
639# CONFIG_INPUT_EVBUG is not set 708# CONFIG_INPUT_EVBUG is not set
640 709
@@ -652,6 +721,7 @@ CONFIG_INPUT_MOUSE=y
652# CONFIG_MOUSE_PS2 is not set 721# CONFIG_MOUSE_PS2 is not set
653# CONFIG_MOUSE_SERIAL is not set 722# CONFIG_MOUSE_SERIAL is not set
654# CONFIG_MOUSE_APPLETOUCH is not set 723# CONFIG_MOUSE_APPLETOUCH is not set
724# CONFIG_MOUSE_BCM5974 is not set
655# CONFIG_MOUSE_VSXXXAA is not set 725# CONFIG_MOUSE_VSXXXAA is not set
656# CONFIG_INPUT_JOYSTICK is not set 726# CONFIG_INPUT_JOYSTICK is not set
657# CONFIG_INPUT_TABLET is not set 727# CONFIG_INPUT_TABLET is not set
@@ -672,10 +742,13 @@ CONFIG_SERIO_LIBPS2=m
672# Character devices 742# Character devices
673# 743#
674CONFIG_VT=y 744CONFIG_VT=y
745CONFIG_CONSOLE_TRANSLATIONS=y
675CONFIG_VT_CONSOLE=y 746CONFIG_VT_CONSOLE=y
676CONFIG_HW_CONSOLE=y 747CONFIG_HW_CONSOLE=y
677# CONFIG_VT_HW_CONSOLE_BINDING is not set 748# CONFIG_VT_HW_CONSOLE_BINDING is not set
749CONFIG_DEVKMEM=y
678# CONFIG_SERIAL_NONSTANDARD is not set 750# CONFIG_SERIAL_NONSTANDARD is not set
751# CONFIG_NOZOMI is not set
679 752
680# 753#
681# Serial drivers 754# Serial drivers
@@ -699,72 +772,77 @@ CONFIG_SERIAL_CORE=y
699CONFIG_SERIAL_CORE_CONSOLE=y 772CONFIG_SERIAL_CORE_CONSOLE=y
700# CONFIG_SERIAL_JSM is not set 773# CONFIG_SERIAL_JSM is not set
701CONFIG_UNIX98_PTYS=y 774CONFIG_UNIX98_PTYS=y
775# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
702CONFIG_LEGACY_PTYS=y 776CONFIG_LEGACY_PTYS=y
703CONFIG_LEGACY_PTY_COUNT=256 777CONFIG_LEGACY_PTY_COUNT=256
704# CONFIG_IPMI_HANDLER is not set 778# CONFIG_IPMI_HANDLER is not set
705# CONFIG_WATCHDOG is not set
706# CONFIG_HW_RANDOM is not set 779# CONFIG_HW_RANDOM is not set
707CONFIG_GEN_RTC=y
708CONFIG_GEN_RTC_X=y
709# CONFIG_R3964 is not set 780# CONFIG_R3964 is not set
710# CONFIG_APPLICOM is not set 781# CONFIG_APPLICOM is not set
711# CONFIG_AGP is not set
712# CONFIG_DRM is not set
713CONFIG_RAW_DRIVER=y 782CONFIG_RAW_DRIVER=y
714CONFIG_MAX_RAW_DEVS=256 783CONFIG_MAX_RAW_DEVS=256
715# CONFIG_TCG_TPM is not set 784# CONFIG_TCG_TPM is not set
716CONFIG_DEVPORT=y 785CONFIG_DEVPORT=y
717# CONFIG_I2C is not set 786# CONFIG_I2C is not set
718
719#
720# SPI support
721#
722# CONFIG_SPI is not set 787# CONFIG_SPI is not set
723# CONFIG_SPI_MASTER is not set
724# CONFIG_W1 is not set 788# CONFIG_W1 is not set
725# CONFIG_POWER_SUPPLY is not set 789# CONFIG_POWER_SUPPLY is not set
726# CONFIG_HWMON is not set 790# CONFIG_HWMON is not set
791# CONFIG_THERMAL is not set
792# CONFIG_THERMAL_HWMON is not set
793# CONFIG_WATCHDOG is not set
794CONFIG_SSB_POSSIBLE=y
727 795
728# 796#
729# Sonics Silicon Backplane 797# Sonics Silicon Backplane
730# 798#
731CONFIG_SSB_POSSIBLE=y
732# CONFIG_SSB is not set 799# CONFIG_SSB is not set
733 800
734# 801#
735# Multifunction device drivers 802# Multifunction device drivers
736# 803#
804# CONFIG_MFD_CORE is not set
737# CONFIG_MFD_SM501 is not set 805# CONFIG_MFD_SM501 is not set
806# CONFIG_HTC_PASIC3 is not set
807# CONFIG_MFD_TMIO is not set
808# CONFIG_REGULATOR is not set
738 809
739# 810#
740# Multimedia devices 811# Multimedia devices
741# 812#
813
814#
815# Multimedia core support
816#
742# CONFIG_VIDEO_DEV is not set 817# CONFIG_VIDEO_DEV is not set
743# CONFIG_DVB_CORE is not set 818# CONFIG_DVB_CORE is not set
744# CONFIG_DAB is not set 819# CONFIG_VIDEO_MEDIA is not set
745 820
746# 821#
747# Graphics support 822# Multimedia drivers
748# 823#
749# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 824# CONFIG_DAB is not set
750 825
751# 826#
752# Display device support 827# Graphics support
753# 828#
754# CONFIG_DISPLAY_SUPPORT is not set 829# CONFIG_AGP is not set
830# CONFIG_DRM is not set
755# CONFIG_VGASTATE is not set 831# CONFIG_VGASTATE is not set
756CONFIG_VIDEO_OUTPUT_CONTROL=m 832CONFIG_VIDEO_OUTPUT_CONTROL=m
757CONFIG_FB=y 833CONFIG_FB=y
758# CONFIG_FIRMWARE_EDID is not set 834# CONFIG_FIRMWARE_EDID is not set
759# CONFIG_FB_DDC is not set 835# CONFIG_FB_DDC is not set
836# CONFIG_FB_BOOT_VESA_SUPPORT is not set
760CONFIG_FB_CFB_FILLRECT=y 837CONFIG_FB_CFB_FILLRECT=y
761CONFIG_FB_CFB_COPYAREA=y 838CONFIG_FB_CFB_COPYAREA=y
762CONFIG_FB_CFB_IMAGEBLIT=y 839CONFIG_FB_CFB_IMAGEBLIT=y
840# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
763# CONFIG_FB_SYS_FILLRECT is not set 841# CONFIG_FB_SYS_FILLRECT is not set
764# CONFIG_FB_SYS_COPYAREA is not set 842# CONFIG_FB_SYS_COPYAREA is not set
765# CONFIG_FB_SYS_IMAGEBLIT is not set 843# CONFIG_FB_SYS_IMAGEBLIT is not set
844# CONFIG_FB_FOREIGN_ENDIAN is not set
766# CONFIG_FB_SYS_FOPS is not set 845# CONFIG_FB_SYS_FOPS is not set
767CONFIG_FB_DEFERRED_IO=y
768# CONFIG_FB_SVGALIB is not set 846# CONFIG_FB_SVGALIB is not set
769# CONFIG_FB_MACMODES is not set 847# CONFIG_FB_MACMODES is not set
770# CONFIG_FB_BACKLIGHT is not set 848# CONFIG_FB_BACKLIGHT is not set
@@ -790,6 +868,7 @@ CONFIG_FB_STI=y
790# CONFIG_FB_S3 is not set 868# CONFIG_FB_S3 is not set
791# CONFIG_FB_SAVAGE is not set 869# CONFIG_FB_SAVAGE is not set
792# CONFIG_FB_SIS is not set 870# CONFIG_FB_SIS is not set
871# CONFIG_FB_VIA is not set
793# CONFIG_FB_NEOMAGIC is not set 872# CONFIG_FB_NEOMAGIC is not set
794# CONFIG_FB_KYRO is not set 873# CONFIG_FB_KYRO is not set
795# CONFIG_FB_3DFX is not set 874# CONFIG_FB_3DFX is not set
@@ -798,7 +877,16 @@ CONFIG_FB_STI=y
798# CONFIG_FB_TRIDENT is not set 877# CONFIG_FB_TRIDENT is not set
799# CONFIG_FB_ARK is not set 878# CONFIG_FB_ARK is not set
800# CONFIG_FB_PM3 is not set 879# CONFIG_FB_PM3 is not set
880# CONFIG_FB_CARMINE is not set
801# CONFIG_FB_VIRTUAL is not set 881# CONFIG_FB_VIRTUAL is not set
882# CONFIG_FB_METRONOME is not set
883# CONFIG_FB_MB862XX is not set
884# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
885
886#
887# Display device support
888#
889# CONFIG_DISPLAY_SUPPORT is not set
802 890
803# 891#
804# Console display driver support 892# Console display driver support
@@ -818,15 +906,8 @@ CONFIG_LOGO=y
818# CONFIG_LOGO_LINUX_VGA16 is not set 906# CONFIG_LOGO_LINUX_VGA16 is not set
819# CONFIG_LOGO_LINUX_CLUT224 is not set 907# CONFIG_LOGO_LINUX_CLUT224 is not set
820CONFIG_LOGO_PARISC_CLUT224=y 908CONFIG_LOGO_PARISC_CLUT224=y
821
822#
823# Sound
824#
825CONFIG_SOUND=y 909CONFIG_SOUND=y
826 910CONFIG_SOUND_OSS_CORE=y
827#
828# Advanced Linux Sound Architecture
829#
830CONFIG_SND=y 911CONFIG_SND=y
831CONFIG_SND_TIMER=y 912CONFIG_SND_TIMER=y
832CONFIG_SND_PCM=y 913CONFIG_SND_PCM=y
@@ -842,20 +923,16 @@ CONFIG_SND_SUPPORT_OLD_API=y
842CONFIG_SND_VERBOSE_PROCFS=y 923CONFIG_SND_VERBOSE_PROCFS=y
843# CONFIG_SND_VERBOSE_PRINTK is not set 924# CONFIG_SND_VERBOSE_PRINTK is not set
844# CONFIG_SND_DEBUG is not set 925# CONFIG_SND_DEBUG is not set
845 926CONFIG_SND_VMASTER=y
846#
847# Generic devices
848#
849CONFIG_SND_AC97_CODEC=y 927CONFIG_SND_AC97_CODEC=y
928CONFIG_SND_DRIVERS=y
850# CONFIG_SND_DUMMY is not set 929# CONFIG_SND_DUMMY is not set
851# CONFIG_SND_VIRMIDI is not set 930# CONFIG_SND_VIRMIDI is not set
852# CONFIG_SND_MTPAV is not set 931# CONFIG_SND_MTPAV is not set
853# CONFIG_SND_SERIAL_U16550 is not set 932# CONFIG_SND_SERIAL_U16550 is not set
854# CONFIG_SND_MPU401 is not set 933# CONFIG_SND_MPU401 is not set
855 934# CONFIG_SND_AC97_POWER_SAVE is not set
856# 935CONFIG_SND_PCI=y
857# PCI devices
858#
859CONFIG_SND_AD1889=y 936CONFIG_SND_AD1889=y
860# CONFIG_SND_ALS300 is not set 937# CONFIG_SND_ALS300 is not set
861# CONFIG_SND_ALI5451 is not set 938# CONFIG_SND_ALI5451 is not set
@@ -864,10 +941,12 @@ CONFIG_SND_AD1889=y
864# CONFIG_SND_AU8810 is not set 941# CONFIG_SND_AU8810 is not set
865# CONFIG_SND_AU8820 is not set 942# CONFIG_SND_AU8820 is not set
866# CONFIG_SND_AU8830 is not set 943# CONFIG_SND_AU8830 is not set
944# CONFIG_SND_AW2 is not set
867# CONFIG_SND_AZT3328 is not set 945# CONFIG_SND_AZT3328 is not set
868# CONFIG_SND_BT87X is not set 946# CONFIG_SND_BT87X is not set
869# CONFIG_SND_CA0106 is not set 947# CONFIG_SND_CA0106 is not set
870# CONFIG_SND_CMIPCI is not set 948# CONFIG_SND_CMIPCI is not set
949# CONFIG_SND_OXYGEN is not set
871# CONFIG_SND_CS4281 is not set 950# CONFIG_SND_CS4281 is not set
872# CONFIG_SND_CS46XX is not set 951# CONFIG_SND_CS46XX is not set
873# CONFIG_SND_DARLA20 is not set 952# CONFIG_SND_DARLA20 is not set
@@ -892,6 +971,7 @@ CONFIG_SND_AD1889=y
892# CONFIG_SND_HDA_INTEL is not set 971# CONFIG_SND_HDA_INTEL is not set
893# CONFIG_SND_HDSP is not set 972# CONFIG_SND_HDSP is not set
894# CONFIG_SND_HDSPM is not set 973# CONFIG_SND_HDSPM is not set
974# CONFIG_SND_HIFIER is not set
895# CONFIG_SND_ICE1712 is not set 975# CONFIG_SND_ICE1712 is not set
896# CONFIG_SND_ICE1724 is not set 976# CONFIG_SND_ICE1724 is not set
897# CONFIG_SND_INTEL8X0 is not set 977# CONFIG_SND_INTEL8X0 is not set
@@ -909,47 +989,59 @@ CONFIG_SND_AD1889=y
909# CONFIG_SND_TRIDENT is not set 989# CONFIG_SND_TRIDENT is not set
910# CONFIG_SND_VIA82XX is not set 990# CONFIG_SND_VIA82XX is not set
911# CONFIG_SND_VIA82XX_MODEM is not set 991# CONFIG_SND_VIA82XX_MODEM is not set
992# CONFIG_SND_VIRTUOSO is not set
912# CONFIG_SND_VX222 is not set 993# CONFIG_SND_VX222 is not set
913# CONFIG_SND_YMFPCI is not set 994# CONFIG_SND_YMFPCI is not set
914# CONFIG_SND_AC97_POWER_SAVE is not set 995CONFIG_SND_USB=y
915
916#
917# USB devices
918#
919# CONFIG_SND_USB_AUDIO is not set 996# CONFIG_SND_USB_AUDIO is not set
920# CONFIG_SND_USB_CAIAQ is not set 997# CONFIG_SND_USB_CAIAQ is not set
921
922#
923# System on Chip audio support
924#
925# CONFIG_SND_SOC is not set 998# CONFIG_SND_SOC is not set
926
927#
928# SoC Audio support for SuperH
929#
930
931#
932# Open Sound System
933#
934# CONFIG_SOUND_PRIME is not set 999# CONFIG_SOUND_PRIME is not set
935CONFIG_AC97_BUS=y 1000CONFIG_AC97_BUS=y
936CONFIG_HID_SUPPORT=y 1001CONFIG_HID_SUPPORT=y
937CONFIG_HID=y 1002CONFIG_HID=y
938# CONFIG_HID_DEBUG is not set 1003# CONFIG_HID_DEBUG is not set
1004# CONFIG_HIDRAW is not set
939 1005
940# 1006#
941# USB Input Devices 1007# USB Input Devices
942# 1008#
943CONFIG_USB_HID=y 1009CONFIG_USB_HID=y
944# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1010# CONFIG_HID_PID is not set
945# CONFIG_HID_FF is not set
946CONFIG_USB_HIDDEV=y 1011CONFIG_USB_HIDDEV=y
1012
1013#
1014# Special HID drivers
1015#
1016CONFIG_HID_COMPAT=y
1017# CONFIG_HID_A4TECH is not set
1018# CONFIG_HID_APPLE is not set
1019# CONFIG_HID_BELKIN is not set
1020# CONFIG_HID_CHERRY is not set
1021# CONFIG_HID_CHICONY is not set
1022# CONFIG_HID_CYPRESS is not set
1023# CONFIG_HID_EZKEY is not set
1024# CONFIG_HID_GYRATION is not set
1025# CONFIG_HID_LOGITECH is not set
1026# CONFIG_HID_MICROSOFT is not set
1027# CONFIG_HID_MONTEREY is not set
1028# CONFIG_HID_NTRIG is not set
1029# CONFIG_HID_PANTHERLORD is not set
1030# CONFIG_HID_PETALYNX is not set
1031# CONFIG_HID_SAMSUNG is not set
1032# CONFIG_HID_SONY is not set
1033# CONFIG_HID_SUNPLUS is not set
1034# CONFIG_GREENASIA_FF is not set
1035# CONFIG_HID_TOPSEED is not set
1036# CONFIG_THRUSTMASTER_FF is not set
1037# CONFIG_ZEROPLUS_FF is not set
947CONFIG_USB_SUPPORT=y 1038CONFIG_USB_SUPPORT=y
948CONFIG_USB_ARCH_HAS_HCD=y 1039CONFIG_USB_ARCH_HAS_HCD=y
949CONFIG_USB_ARCH_HAS_OHCI=y 1040CONFIG_USB_ARCH_HAS_OHCI=y
950CONFIG_USB_ARCH_HAS_EHCI=y 1041CONFIG_USB_ARCH_HAS_EHCI=y
951CONFIG_USB=y 1042CONFIG_USB=y
952CONFIG_USB_DEBUG=y 1043CONFIG_USB_DEBUG=y
1044# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
953 1045
954# 1046#
955# Miscellaneous USB options 1047# Miscellaneous USB options
@@ -958,12 +1050,20 @@ CONFIG_USB_DEVICEFS=y
958CONFIG_USB_DEVICE_CLASS=y 1050CONFIG_USB_DEVICE_CLASS=y
959# CONFIG_USB_DYNAMIC_MINORS is not set 1051# CONFIG_USB_DYNAMIC_MINORS is not set
960# CONFIG_USB_OTG is not set 1052# CONFIG_USB_OTG is not set
1053# CONFIG_USB_OTG_WHITELIST is not set
1054# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1055# CONFIG_USB_MON is not set
1056# CONFIG_USB_WUSB is not set
1057# CONFIG_USB_WUSB_CBAF is not set
961 1058
962# 1059#
963# USB Host Controller Drivers 1060# USB Host Controller Drivers
964# 1061#
1062# CONFIG_USB_C67X00_HCD is not set
965# CONFIG_USB_EHCI_HCD is not set 1063# CONFIG_USB_EHCI_HCD is not set
1064# CONFIG_USB_OXU210HP_HCD is not set
966# CONFIG_USB_ISP116X_HCD is not set 1065# CONFIG_USB_ISP116X_HCD is not set
1066# CONFIG_USB_ISP1760_HCD is not set
967CONFIG_USB_OHCI_HCD=y 1067CONFIG_USB_OHCI_HCD=y
968# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1068# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
969# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1069# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -971,32 +1071,37 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
971# CONFIG_USB_UHCI_HCD is not set 1071# CONFIG_USB_UHCI_HCD is not set
972# CONFIG_USB_SL811_HCD is not set 1072# CONFIG_USB_SL811_HCD is not set
973# CONFIG_USB_R8A66597_HCD is not set 1073# CONFIG_USB_R8A66597_HCD is not set
1074# CONFIG_USB_WHCI_HCD is not set
1075# CONFIG_USB_HWA_HCD is not set
974 1076
975# 1077#
976# USB Device Class drivers 1078# USB Device Class drivers
977# 1079#
978# CONFIG_USB_ACM is not set 1080# CONFIG_USB_ACM is not set
979CONFIG_USB_PRINTER=m 1081CONFIG_USB_PRINTER=m
1082# CONFIG_USB_WDM is not set
1083# CONFIG_USB_TMC is not set
980 1084
981# 1085#
982# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1086# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
983# 1087#
984 1088
985# 1089#
986# may also be needed; see USB_STORAGE Help for more information 1090# see USB_STORAGE Help for more information
987# 1091#
988CONFIG_USB_STORAGE=m 1092CONFIG_USB_STORAGE=m
989# CONFIG_USB_STORAGE_DEBUG is not set 1093# CONFIG_USB_STORAGE_DEBUG is not set
990# CONFIG_USB_STORAGE_DATAFAB is not set 1094# CONFIG_USB_STORAGE_DATAFAB is not set
991# CONFIG_USB_STORAGE_FREECOM is not set 1095# CONFIG_USB_STORAGE_FREECOM is not set
992# CONFIG_USB_STORAGE_ISD200 is not set 1096# CONFIG_USB_STORAGE_ISD200 is not set
993CONFIG_USB_STORAGE_DPCM=y
994CONFIG_USB_STORAGE_USBAT=y 1097CONFIG_USB_STORAGE_USBAT=y
995CONFIG_USB_STORAGE_SDDR09=y 1098CONFIG_USB_STORAGE_SDDR09=y
996CONFIG_USB_STORAGE_SDDR55=y 1099CONFIG_USB_STORAGE_SDDR55=y
997CONFIG_USB_STORAGE_JUMPSHOT=y 1100CONFIG_USB_STORAGE_JUMPSHOT=y
998# CONFIG_USB_STORAGE_ALAUDA is not set 1101# CONFIG_USB_STORAGE_ALAUDA is not set
1102# CONFIG_USB_STORAGE_ONETOUCH is not set
999# CONFIG_USB_STORAGE_KARMA is not set 1103# CONFIG_USB_STORAGE_KARMA is not set
1104# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1000# CONFIG_USB_LIBUSUAL is not set 1105# CONFIG_USB_LIBUSUAL is not set
1001 1106
1002# 1107#
@@ -1004,15 +1109,10 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1004# 1109#
1005CONFIG_USB_MDC800=m 1110CONFIG_USB_MDC800=m
1006CONFIG_USB_MICROTEK=m 1111CONFIG_USB_MICROTEK=m
1007# CONFIG_USB_MON is not set
1008 1112
1009# 1113#
1010# USB port drivers 1114# USB port drivers
1011# 1115#
1012
1013#
1014# USB Serial Converter support
1015#
1016# CONFIG_USB_SERIAL is not set 1116# CONFIG_USB_SERIAL is not set
1017 1117
1018# 1118#
@@ -1021,7 +1121,7 @@ CONFIG_USB_MICROTEK=m
1021# CONFIG_USB_EMI62 is not set 1121# CONFIG_USB_EMI62 is not set
1022# CONFIG_USB_EMI26 is not set 1122# CONFIG_USB_EMI26 is not set
1023# CONFIG_USB_ADUTUX is not set 1123# CONFIG_USB_ADUTUX is not set
1024# CONFIG_USB_AUERSWALD is not set 1124# CONFIG_USB_SEVSEG is not set
1025# CONFIG_USB_RIO500 is not set 1125# CONFIG_USB_RIO500 is not set
1026CONFIG_USB_LEGOTOWER=m 1126CONFIG_USB_LEGOTOWER=m
1027# CONFIG_USB_LCD is not set 1127# CONFIG_USB_LCD is not set
@@ -1037,37 +1137,59 @@ CONFIG_USB_LEGOTOWER=m
1037# CONFIG_USB_TRANCEVIBRATOR is not set 1137# CONFIG_USB_TRANCEVIBRATOR is not set
1038# CONFIG_USB_IOWARRIOR is not set 1138# CONFIG_USB_IOWARRIOR is not set
1039# CONFIG_USB_TEST is not set 1139# CONFIG_USB_TEST is not set
1140# CONFIG_USB_ISIGHTFW is not set
1141# CONFIG_USB_VST is not set
1142# CONFIG_USB_GADGET is not set
1040 1143
1041# 1144#
1042# USB DSL modem support 1145# OTG and related infrastructure
1043#
1044
1045#
1046# USB Gadget Support
1047# 1146#
1048# CONFIG_USB_GADGET is not set 1147# CONFIG_UWB is not set
1049# CONFIG_MMC is not set 1148# CONFIG_MMC is not set
1149# CONFIG_MEMSTICK is not set
1050# CONFIG_NEW_LEDS is not set 1150# CONFIG_NEW_LEDS is not set
1151# CONFIG_ACCESSIBILITY is not set
1051# CONFIG_INFINIBAND is not set 1152# CONFIG_INFINIBAND is not set
1052# CONFIG_RTC_CLASS is not set 1153CONFIG_RTC_LIB=y
1154CONFIG_RTC_CLASS=y
1155CONFIG_RTC_HCTOSYS=y
1156CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1157# CONFIG_RTC_DEBUG is not set
1053 1158
1054# 1159#
1055# DMA Engine support 1160# RTC interfaces
1056# 1161#
1057# CONFIG_DMA_ENGINE is not set 1162CONFIG_RTC_INTF_SYSFS=y
1163CONFIG_RTC_INTF_PROC=y
1164CONFIG_RTC_INTF_DEV=y
1165# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1166# CONFIG_RTC_DRV_TEST is not set
1058 1167
1059# 1168#
1060# DMA Clients 1169# SPI RTC drivers
1061# 1170#
1062 1171
1063# 1172#
1064# DMA Devices 1173# Platform RTC drivers
1065# 1174#
1175# CONFIG_RTC_DRV_DS1286 is not set
1176# CONFIG_RTC_DRV_DS1511 is not set
1177# CONFIG_RTC_DRV_DS1553 is not set
1178# CONFIG_RTC_DRV_DS1742 is not set
1179# CONFIG_RTC_DRV_STK17TA8 is not set
1180# CONFIG_RTC_DRV_M48T86 is not set
1181# CONFIG_RTC_DRV_M48T35 is not set
1182# CONFIG_RTC_DRV_M48T59 is not set
1183# CONFIG_RTC_DRV_BQ4802 is not set
1184# CONFIG_RTC_DRV_V3020 is not set
1066 1185
1067# 1186#
1068# Userspace I/O 1187# on-CPU RTC drivers
1069# 1188#
1189CONFIG_RTC_DRV_PARISC=y
1190# CONFIG_DMADEVICES is not set
1070# CONFIG_UIO is not set 1191# CONFIG_UIO is not set
1192# CONFIG_STAGING is not set
1071 1193
1072# 1194#
1073# File systems 1195# File systems
@@ -1077,25 +1199,24 @@ CONFIG_EXT2_FS=y
1077# CONFIG_EXT2_FS_XIP is not set 1199# CONFIG_EXT2_FS_XIP is not set
1078CONFIG_EXT3_FS=y 1200CONFIG_EXT3_FS=y
1079# CONFIG_EXT3_FS_XATTR is not set 1201# CONFIG_EXT3_FS_XATTR is not set
1080# CONFIG_EXT4DEV_FS is not set 1202# CONFIG_EXT4_FS is not set
1081CONFIG_JBD=y 1203CONFIG_JBD=y
1082# CONFIG_JBD_DEBUG is not set 1204# CONFIG_JBD_DEBUG is not set
1083# CONFIG_REISERFS_FS is not set 1205# CONFIG_REISERFS_FS is not set
1084# CONFIG_JFS_FS is not set 1206# CONFIG_JFS_FS is not set
1085# CONFIG_FS_POSIX_ACL is not set 1207# CONFIG_FS_POSIX_ACL is not set
1208CONFIG_FILE_LOCKING=y
1086CONFIG_XFS_FS=m 1209CONFIG_XFS_FS=m
1087# CONFIG_XFS_QUOTA is not set 1210# CONFIG_XFS_QUOTA is not set
1088# CONFIG_XFS_SECURITY is not set
1089# CONFIG_XFS_POSIX_ACL is not set 1211# CONFIG_XFS_POSIX_ACL is not set
1090# CONFIG_XFS_RT is not set 1212# CONFIG_XFS_RT is not set
1091# CONFIG_GFS2_FS is not set 1213# CONFIG_XFS_DEBUG is not set
1092# CONFIG_OCFS2_FS is not set 1214# CONFIG_OCFS2_FS is not set
1093# CONFIG_MINIX_FS is not set 1215# CONFIG_BTRFS_FS is not set
1094# CONFIG_ROMFS_FS is not set 1216CONFIG_DNOTIFY=y
1095CONFIG_INOTIFY=y 1217CONFIG_INOTIFY=y
1096CONFIG_INOTIFY_USER=y 1218CONFIG_INOTIFY_USER=y
1097# CONFIG_QUOTA is not set 1219# CONFIG_QUOTA is not set
1098CONFIG_DNOTIFY=y
1099# CONFIG_AUTOFS_FS is not set 1220# CONFIG_AUTOFS_FS is not set
1100CONFIG_AUTOFS4_FS=y 1221CONFIG_AUTOFS4_FS=y
1101# CONFIG_FUSE_FS is not set 1222# CONFIG_FUSE_FS is not set
@@ -1124,16 +1245,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1124CONFIG_PROC_FS=y 1245CONFIG_PROC_FS=y
1125CONFIG_PROC_KCORE=y 1246CONFIG_PROC_KCORE=y
1126CONFIG_PROC_SYSCTL=y 1247CONFIG_PROC_SYSCTL=y
1248CONFIG_PROC_PAGE_MONITOR=y
1127CONFIG_SYSFS=y 1249CONFIG_SYSFS=y
1128CONFIG_TMPFS=y 1250CONFIG_TMPFS=y
1129# CONFIG_TMPFS_POSIX_ACL is not set 1251# CONFIG_TMPFS_POSIX_ACL is not set
1130# CONFIG_HUGETLB_PAGE is not set 1252# CONFIG_HUGETLB_PAGE is not set
1131CONFIG_RAMFS=y
1132# CONFIG_CONFIGFS_FS is not set 1253# CONFIG_CONFIGFS_FS is not set
1133 1254CONFIG_MISC_FILESYSTEMS=y
1134#
1135# Miscellaneous filesystems
1136#
1137# CONFIG_ADFS_FS is not set 1255# CONFIG_ADFS_FS is not set
1138# CONFIG_AFFS_FS is not set 1256# CONFIG_AFFS_FS is not set
1139# CONFIG_HFS_FS is not set 1257# CONFIG_HFS_FS is not set
@@ -1142,32 +1260,31 @@ CONFIG_RAMFS=y
1142# CONFIG_BFS_FS is not set 1260# CONFIG_BFS_FS is not set
1143# CONFIG_EFS_FS is not set 1261# CONFIG_EFS_FS is not set
1144# CONFIG_CRAMFS is not set 1262# CONFIG_CRAMFS is not set
1263# CONFIG_SQUASHFS is not set
1145# CONFIG_VXFS_FS is not set 1264# CONFIG_VXFS_FS is not set
1265# CONFIG_MINIX_FS is not set
1266# CONFIG_OMFS_FS is not set
1146# CONFIG_HPFS_FS is not set 1267# CONFIG_HPFS_FS is not set
1147# CONFIG_QNX4FS_FS is not set 1268# CONFIG_QNX4FS_FS is not set
1269# CONFIG_ROMFS_FS is not set
1148# CONFIG_SYSV_FS is not set 1270# CONFIG_SYSV_FS is not set
1149# CONFIG_UFS_FS is not set 1271# CONFIG_UFS_FS is not set
1150 1272CONFIG_NETWORK_FILESYSTEMS=y
1151#
1152# Network File Systems
1153#
1154CONFIG_NFS_FS=y 1273CONFIG_NFS_FS=y
1155CONFIG_NFS_V3=y 1274CONFIG_NFS_V3=y
1156# CONFIG_NFS_V3_ACL is not set 1275# CONFIG_NFS_V3_ACL is not set
1157# CONFIG_NFS_V4 is not set 1276# CONFIG_NFS_V4 is not set
1158# CONFIG_NFS_DIRECTIO is not set 1277CONFIG_ROOT_NFS=y
1159CONFIG_NFSD=y 1278CONFIG_NFSD=y
1160CONFIG_NFSD_V3=y 1279CONFIG_NFSD_V3=y
1161# CONFIG_NFSD_V3_ACL is not set 1280# CONFIG_NFSD_V3_ACL is not set
1162# CONFIG_NFSD_V4 is not set 1281# CONFIG_NFSD_V4 is not set
1163# CONFIG_NFSD_TCP is not set
1164CONFIG_ROOT_NFS=y
1165CONFIG_LOCKD=y 1282CONFIG_LOCKD=y
1166CONFIG_LOCKD_V4=y 1283CONFIG_LOCKD_V4=y
1167CONFIG_EXPORTFS=y 1284CONFIG_EXPORTFS=y
1168CONFIG_NFS_COMMON=y 1285CONFIG_NFS_COMMON=y
1169CONFIG_SUNRPC=y 1286CONFIG_SUNRPC=y
1170# CONFIG_SUNRPC_BIND34 is not set 1287# CONFIG_SUNRPC_REGISTER_V4 is not set
1171# CONFIG_RPCSEC_GSS_KRB5 is not set 1288# CONFIG_RPCSEC_GSS_KRB5 is not set
1172# CONFIG_RPCSEC_GSS_SPKM3 is not set 1289# CONFIG_RPCSEC_GSS_SPKM3 is not set
1173# CONFIG_SMB_FS is not set 1290# CONFIG_SMB_FS is not set
@@ -1181,10 +1298,6 @@ CONFIG_SUNRPC=y
1181# 1298#
1182# CONFIG_PARTITION_ADVANCED is not set 1299# CONFIG_PARTITION_ADVANCED is not set
1183CONFIG_MSDOS_PARTITION=y 1300CONFIG_MSDOS_PARTITION=y
1184
1185#
1186# Native Language Support
1187#
1188CONFIG_NLS=y 1301CONFIG_NLS=y
1189CONFIG_NLS_DEFAULT="iso8859-1" 1302CONFIG_NLS_DEFAULT="iso8859-1"
1190CONFIG_NLS_CODEPAGE_437=m 1303CONFIG_NLS_CODEPAGE_437=m
@@ -1225,33 +1338,28 @@ CONFIG_NLS_ISO8859_15=m
1225# CONFIG_NLS_KOI8_R is not set 1338# CONFIG_NLS_KOI8_R is not set
1226# CONFIG_NLS_KOI8_U is not set 1339# CONFIG_NLS_KOI8_U is not set
1227CONFIG_NLS_UTF8=m 1340CONFIG_NLS_UTF8=m
1228
1229#
1230# Distributed Lock Manager
1231#
1232# CONFIG_DLM is not set 1341# CONFIG_DLM is not set
1233 1342
1234# 1343#
1235# Profiling support
1236#
1237CONFIG_PROFILING=y
1238CONFIG_OPROFILE=m
1239
1240#
1241# Kernel hacking 1344# Kernel hacking
1242# 1345#
1243# CONFIG_PRINTK_TIME is not set 1346# CONFIG_PRINTK_TIME is not set
1347CONFIG_ENABLE_WARN_DEPRECATED=y
1244CONFIG_ENABLE_MUST_CHECK=y 1348CONFIG_ENABLE_MUST_CHECK=y
1349CONFIG_FRAME_WARN=1024
1245CONFIG_MAGIC_SYSRQ=y 1350CONFIG_MAGIC_SYSRQ=y
1246# CONFIG_UNUSED_SYMBOLS is not set 1351# CONFIG_UNUSED_SYMBOLS is not set
1247# CONFIG_DEBUG_FS is not set 1352CONFIG_DEBUG_FS=y
1248CONFIG_HEADERS_CHECK=y 1353CONFIG_HEADERS_CHECK=y
1249CONFIG_DEBUG_KERNEL=y 1354CONFIG_DEBUG_KERNEL=y
1250# CONFIG_DEBUG_SHIRQ is not set 1355# CONFIG_DEBUG_SHIRQ is not set
1251CONFIG_DETECT_SOFTLOCKUP=y 1356CONFIG_DETECT_SOFTLOCKUP=y
1357# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1358CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1252CONFIG_SCHED_DEBUG=y 1359CONFIG_SCHED_DEBUG=y
1253# CONFIG_SCHEDSTATS is not set 1360# CONFIG_SCHEDSTATS is not set
1254# CONFIG_TIMER_STATS is not set 1361# CONFIG_TIMER_STATS is not set
1362# CONFIG_DEBUG_OBJECTS is not set
1255# CONFIG_DEBUG_SLAB is not set 1363# CONFIG_DEBUG_SLAB is not set
1256# CONFIG_DEBUG_RT_MUTEXES is not set 1364# CONFIG_DEBUG_RT_MUTEXES is not set
1257# CONFIG_RT_MUTEX_TESTER is not set 1365# CONFIG_RT_MUTEX_TESTER is not set
@@ -1263,10 +1371,33 @@ CONFIG_DEBUG_MUTEXES=y
1263# CONFIG_DEBUG_BUGVERBOSE is not set 1371# CONFIG_DEBUG_BUGVERBOSE is not set
1264# CONFIG_DEBUG_INFO is not set 1372# CONFIG_DEBUG_INFO is not set
1265# CONFIG_DEBUG_VM is not set 1373# CONFIG_DEBUG_VM is not set
1374# CONFIG_DEBUG_WRITECOUNT is not set
1375# CONFIG_DEBUG_MEMORY_INIT is not set
1266# CONFIG_DEBUG_LIST is not set 1376# CONFIG_DEBUG_LIST is not set
1267CONFIG_FORCED_INLINING=y 1377# CONFIG_DEBUG_SG is not set
1378# CONFIG_DEBUG_NOTIFIERS is not set
1379# CONFIG_BOOT_PRINTK_DELAY is not set
1268# CONFIG_RCU_TORTURE_TEST is not set 1380# CONFIG_RCU_TORTURE_TEST is not set
1381# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1382# CONFIG_BACKTRACE_SELF_TEST is not set
1383# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1269# CONFIG_FAULT_INJECTION is not set 1384# CONFIG_FAULT_INJECTION is not set
1385# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1386CONFIG_NOP_TRACER=y
1387CONFIG_RING_BUFFER=y
1388CONFIG_TRACING=y
1389
1390#
1391# Tracers
1392#
1393# CONFIG_SCHED_TRACER is not set
1394# CONFIG_CONTEXT_SWITCH_TRACER is not set
1395# CONFIG_BOOT_TRACER is not set
1396# CONFIG_TRACE_BRANCH_PROFILING is not set
1397# CONFIG_FTRACE_STARTUP_TEST is not set
1398# CONFIG_BUILD_DOCSRC is not set
1399# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1400# CONFIG_SAMPLES is not set
1270CONFIG_DEBUG_RODATA=y 1401CONFIG_DEBUG_RODATA=y
1271 1402
1272# 1403#
@@ -1274,54 +1405,110 @@ CONFIG_DEBUG_RODATA=y
1274# 1405#
1275# CONFIG_KEYS is not set 1406# CONFIG_KEYS is not set
1276# CONFIG_SECURITY is not set 1407# CONFIG_SECURITY is not set
1408# CONFIG_SECURITYFS is not set
1409# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1277CONFIG_CRYPTO=y 1410CONFIG_CRYPTO=y
1411
1412#
1413# Crypto core or helper
1414#
1415# CONFIG_CRYPTO_FIPS is not set
1278CONFIG_CRYPTO_ALGAPI=m 1416CONFIG_CRYPTO_ALGAPI=m
1417CONFIG_CRYPTO_ALGAPI2=m
1418CONFIG_CRYPTO_AEAD2=m
1279CONFIG_CRYPTO_BLKCIPHER=m 1419CONFIG_CRYPTO_BLKCIPHER=m
1420CONFIG_CRYPTO_BLKCIPHER2=m
1421CONFIG_CRYPTO_HASH=m
1422CONFIG_CRYPTO_HASH2=m
1423CONFIG_CRYPTO_RNG2=m
1280CONFIG_CRYPTO_MANAGER=m 1424CONFIG_CRYPTO_MANAGER=m
1425CONFIG_CRYPTO_MANAGER2=m
1426# CONFIG_CRYPTO_GF128MUL is not set
1427CONFIG_CRYPTO_NULL=m
1428# CONFIG_CRYPTO_CRYPTD is not set
1429# CONFIG_CRYPTO_AUTHENC is not set
1430CONFIG_CRYPTO_TEST=m
1431
1432#
1433# Authenticated Encryption with Associated Data
1434#
1435# CONFIG_CRYPTO_CCM is not set
1436# CONFIG_CRYPTO_GCM is not set
1437# CONFIG_CRYPTO_SEQIV is not set
1438
1439#
1440# Block modes
1441#
1442CONFIG_CRYPTO_CBC=m
1443# CONFIG_CRYPTO_CTR is not set
1444# CONFIG_CRYPTO_CTS is not set
1445# CONFIG_CRYPTO_ECB is not set
1446# CONFIG_CRYPTO_LRW is not set
1447# CONFIG_CRYPTO_PCBC is not set
1448# CONFIG_CRYPTO_XTS is not set
1449
1450#
1451# Hash modes
1452#
1281# CONFIG_CRYPTO_HMAC is not set 1453# CONFIG_CRYPTO_HMAC is not set
1282# CONFIG_CRYPTO_XCBC is not set 1454# CONFIG_CRYPTO_XCBC is not set
1283CONFIG_CRYPTO_NULL=m 1455
1456#
1457# Digest
1458#
1459CONFIG_CRYPTO_CRC32C=m
1284# CONFIG_CRYPTO_MD4 is not set 1460# CONFIG_CRYPTO_MD4 is not set
1285CONFIG_CRYPTO_MD5=m 1461CONFIG_CRYPTO_MD5=m
1462# CONFIG_CRYPTO_MICHAEL_MIC is not set
1463# CONFIG_CRYPTO_RMD128 is not set
1464# CONFIG_CRYPTO_RMD160 is not set
1465# CONFIG_CRYPTO_RMD256 is not set
1466# CONFIG_CRYPTO_RMD320 is not set
1286# CONFIG_CRYPTO_SHA1 is not set 1467# CONFIG_CRYPTO_SHA1 is not set
1287# CONFIG_CRYPTO_SHA256 is not set 1468# CONFIG_CRYPTO_SHA256 is not set
1288# CONFIG_CRYPTO_SHA512 is not set 1469# CONFIG_CRYPTO_SHA512 is not set
1289# CONFIG_CRYPTO_WP512 is not set
1290# CONFIG_CRYPTO_TGR192 is not set 1470# CONFIG_CRYPTO_TGR192 is not set
1291# CONFIG_CRYPTO_GF128MUL is not set 1471# CONFIG_CRYPTO_WP512 is not set
1292# CONFIG_CRYPTO_ECB is not set 1472
1293CONFIG_CRYPTO_CBC=m 1473#
1294# CONFIG_CRYPTO_PCBC is not set 1474# Ciphers
1295# CONFIG_CRYPTO_LRW is not set 1475#
1296# CONFIG_CRYPTO_XTS is not set
1297# CONFIG_CRYPTO_CRYPTD is not set
1298CONFIG_CRYPTO_DES=m
1299# CONFIG_CRYPTO_FCRYPT is not set
1300CONFIG_CRYPTO_BLOWFISH=m
1301# CONFIG_CRYPTO_TWOFISH is not set
1302# CONFIG_CRYPTO_SERPENT is not set
1303# CONFIG_CRYPTO_AES is not set 1476# CONFIG_CRYPTO_AES is not set
1477# CONFIG_CRYPTO_ANUBIS is not set
1478# CONFIG_CRYPTO_ARC4 is not set
1479CONFIG_CRYPTO_BLOWFISH=m
1480# CONFIG_CRYPTO_CAMELLIA is not set
1304# CONFIG_CRYPTO_CAST5 is not set 1481# CONFIG_CRYPTO_CAST5 is not set
1305# CONFIG_CRYPTO_CAST6 is not set 1482# CONFIG_CRYPTO_CAST6 is not set
1306# CONFIG_CRYPTO_TEA is not set 1483CONFIG_CRYPTO_DES=m
1307# CONFIG_CRYPTO_ARC4 is not set 1484# CONFIG_CRYPTO_FCRYPT is not set
1308# CONFIG_CRYPTO_KHAZAD is not set 1485# CONFIG_CRYPTO_KHAZAD is not set
1309# CONFIG_CRYPTO_ANUBIS is not set 1486# CONFIG_CRYPTO_SALSA20 is not set
1310# CONFIG_CRYPTO_SEED is not set 1487# CONFIG_CRYPTO_SEED is not set
1488# CONFIG_CRYPTO_SERPENT is not set
1489# CONFIG_CRYPTO_TEA is not set
1490# CONFIG_CRYPTO_TWOFISH is not set
1491
1492#
1493# Compression
1494#
1311CONFIG_CRYPTO_DEFLATE=m 1495CONFIG_CRYPTO_DEFLATE=m
1312# CONFIG_CRYPTO_MICHAEL_MIC is not set 1496# CONFIG_CRYPTO_LZO is not set
1313CONFIG_CRYPTO_CRC32C=m 1497
1314# CONFIG_CRYPTO_CAMELLIA is not set 1498#
1315CONFIG_CRYPTO_TEST=m 1499# Random Number Generation
1316# CONFIG_CRYPTO_AUTHENC is not set 1500#
1501# CONFIG_CRYPTO_ANSI_CPRNG is not set
1317# CONFIG_CRYPTO_HW is not set 1502# CONFIG_CRYPTO_HW is not set
1318 1503
1319# 1504#
1320# Library routines 1505# Library routines
1321# 1506#
1322CONFIG_BITREVERSE=y 1507CONFIG_BITREVERSE=y
1508CONFIG_GENERIC_FIND_LAST_BIT=y
1323CONFIG_CRC_CCITT=m 1509CONFIG_CRC_CCITT=m
1324# CONFIG_CRC16 is not set 1510# CONFIG_CRC16 is not set
1511# CONFIG_CRC_T10DIF is not set
1325# CONFIG_CRC_ITU_T is not set 1512# CONFIG_CRC_ITU_T is not set
1326CONFIG_CRC32=y 1513CONFIG_CRC32=y
1327# CONFIG_CRC7 is not set 1514# CONFIG_CRC7 is not set
diff --git a/arch/parisc/configs/default_defconfig b/arch/parisc/configs/default_defconfig
index 448a757b06c6..283a96c1b5ea 100644
--- a/arch/parisc/configs/default_defconfig
+++ b/arch/parisc/configs/default_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 3# Linux kernel version: 2.6.29-rc8
4# Fri Oct 12 20:54:57 2007 4# Fri Mar 13 01:32:59 2009
5# 5#
6CONFIG_PARISC=y 6CONFIG_PARISC=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -33,17 +33,35 @@ CONFIG_SYSVIPC_SYSCTL=y
33CONFIG_POSIX_MQUEUE=y 33CONFIG_POSIX_MQUEUE=y
34# CONFIG_BSD_PROCESS_ACCT is not set 34# CONFIG_BSD_PROCESS_ACCT is not set
35# CONFIG_TASKSTATS is not set 35# CONFIG_TASKSTATS is not set
36# CONFIG_USER_NS is not set
37# CONFIG_AUDIT is not set 36# CONFIG_AUDIT is not set
37
38#
39# RCU Subsystem
40#
41CONFIG_CLASSIC_RCU=y
42# CONFIG_TREE_RCU is not set
43# CONFIG_PREEMPT_RCU is not set
44# CONFIG_TREE_RCU_TRACE is not set
45# CONFIG_PREEMPT_RCU_TRACE is not set
38CONFIG_IKCONFIG=y 46CONFIG_IKCONFIG=y
39CONFIG_IKCONFIG_PROC=y 47CONFIG_IKCONFIG_PROC=y
40CONFIG_LOG_BUF_SHIFT=16 48CONFIG_LOG_BUF_SHIFT=16
49# CONFIG_GROUP_SCHED is not set
50# CONFIG_CGROUPS is not set
41CONFIG_SYSFS_DEPRECATED=y 51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
42# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59# CONFIG_NET_NS is not set
43CONFIG_BLK_DEV_INITRD=y 60CONFIG_BLK_DEV_INITRD=y
44CONFIG_INITRAMFS_SOURCE="" 61CONFIG_INITRAMFS_SOURCE=""
45CONFIG_CC_OPTIMIZE_FOR_SIZE=y 62CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y 63CONFIG_SYSCTL=y
64CONFIG_ANON_INODES=y
47# CONFIG_EMBEDDED is not set 65# CONFIG_EMBEDDED is not set
48CONFIG_SYSCTL_SYSCALL=y 66CONFIG_SYSCTL_SYSCALL=y
49CONFIG_KALLSYMS=y 67CONFIG_KALLSYMS=y
@@ -55,29 +73,39 @@ CONFIG_BUG=y
55CONFIG_ELF_CORE=y 73CONFIG_ELF_CORE=y
56CONFIG_BASE_FULL=y 74CONFIG_BASE_FULL=y
57CONFIG_FUTEX=y 75CONFIG_FUTEX=y
58CONFIG_ANON_INODES=y
59CONFIG_EPOLL=y 76CONFIG_EPOLL=y
60CONFIG_SIGNALFD=y 77CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
61CONFIG_EVENTFD=y 79CONFIG_EVENTFD=y
62CONFIG_SHMEM=y 80CONFIG_SHMEM=y
81CONFIG_AIO=y
63CONFIG_VM_EVENT_COUNTERS=y 82CONFIG_VM_EVENT_COUNTERS=y
83CONFIG_PCI_QUIRKS=y
84CONFIG_COMPAT_BRK=y
64CONFIG_SLAB=y 85CONFIG_SLAB=y
65# CONFIG_SLUB is not set 86# CONFIG_SLUB is not set
66# CONFIG_SLOB is not set 87# CONFIG_SLOB is not set
88CONFIG_PROFILING=y
89CONFIG_TRACEPOINTS=y
90# CONFIG_MARKERS is not set
91CONFIG_OPROFILE=m
92CONFIG_HAVE_OPROFILE=y
93# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
94CONFIG_SLABINFO=y
67CONFIG_RT_MUTEXES=y 95CONFIG_RT_MUTEXES=y
68# CONFIG_TINY_SHMEM is not set
69CONFIG_BASE_SMALL=0 96CONFIG_BASE_SMALL=0
70CONFIG_MODULES=y 97CONFIG_MODULES=y
98# CONFIG_MODULE_FORCE_LOAD is not set
71CONFIG_MODULE_UNLOAD=y 99CONFIG_MODULE_UNLOAD=y
72CONFIG_MODULE_FORCE_UNLOAD=y 100CONFIG_MODULE_FORCE_UNLOAD=y
73# CONFIG_MODVERSIONS is not set 101# CONFIG_MODVERSIONS is not set
74# CONFIG_MODULE_SRCVERSION_ALL is not set 102# CONFIG_MODULE_SRCVERSION_ALL is not set
75CONFIG_KMOD=y 103CONFIG_INIT_ALL_POSSIBLE=y
76CONFIG_BLOCK=y 104CONFIG_BLOCK=y
77# CONFIG_LBD is not set 105# CONFIG_LBD is not set
78# CONFIG_BLK_DEV_IO_TRACE is not set 106# CONFIG_BLK_DEV_IO_TRACE is not set
79# CONFIG_LSF is not set
80# CONFIG_BLK_DEV_BSG is not set 107# CONFIG_BLK_DEV_BSG is not set
108# CONFIG_BLK_DEV_INTEGRITY is not set
81 109
82# 110#
83# IO Schedulers 111# IO Schedulers
@@ -91,6 +119,7 @@ CONFIG_DEFAULT_AS=y
91# CONFIG_DEFAULT_CFQ is not set 119# CONFIG_DEFAULT_CFQ is not set
92# CONFIG_DEFAULT_NOOP is not set 120# CONFIG_DEFAULT_NOOP is not set
93CONFIG_DEFAULT_IOSCHED="anticipatory" 121CONFIG_DEFAULT_IOSCHED="anticipatory"
122# CONFIG_FREEZER is not set
94 123
95# 124#
96# Processor type and features 125# Processor type and features
@@ -114,17 +143,19 @@ CONFIG_HZ_250=y
114# CONFIG_HZ_300 is not set 143# CONFIG_HZ_300 is not set
115# CONFIG_HZ_1000 is not set 144# CONFIG_HZ_1000 is not set
116CONFIG_HZ=250 145CONFIG_HZ=250
146# CONFIG_SCHED_HRTICK is not set
117CONFIG_SELECT_MEMORY_MODEL=y 147CONFIG_SELECT_MEMORY_MODEL=y
118CONFIG_FLATMEM_MANUAL=y 148CONFIG_FLATMEM_MANUAL=y
119# CONFIG_DISCONTIGMEM_MANUAL is not set 149# CONFIG_DISCONTIGMEM_MANUAL is not set
120# CONFIG_SPARSEMEM_MANUAL is not set 150# CONFIG_SPARSEMEM_MANUAL is not set
121CONFIG_FLATMEM=y 151CONFIG_FLATMEM=y
122CONFIG_FLAT_NODE_MEM_MAP=y 152CONFIG_FLAT_NODE_MEM_MAP=y
123# CONFIG_SPARSEMEM_STATIC is not set 153CONFIG_PAGEFLAGS_EXTENDED=y
124CONFIG_SPLIT_PTLOCK_CPUS=4096 154CONFIG_SPLIT_PTLOCK_CPUS=4096
125# CONFIG_RESOURCES_64BIT is not set 155# CONFIG_PHYS_ADDR_T_64BIT is not set
126CONFIG_ZONE_DMA_FLAG=0 156CONFIG_ZONE_DMA_FLAG=0
127CONFIG_VIRT_TO_BUS=y 157CONFIG_VIRT_TO_BUS=y
158CONFIG_UNEVICTABLE_LRU=y
128# CONFIG_HPUX is not set 159# CONFIG_HPUX is not set
129 160
130# 161#
@@ -140,15 +171,14 @@ CONFIG_EISA_NAMES=y
140# CONFIG_ISA is not set 171# CONFIG_ISA is not set
141CONFIG_PCI=y 172CONFIG_PCI=y
142# CONFIG_ARCH_SUPPORTS_MSI is not set 173# CONFIG_ARCH_SUPPORTS_MSI is not set
174CONFIG_PCI_LEGACY=y
143# CONFIG_PCI_DEBUG is not set 175# CONFIG_PCI_DEBUG is not set
176# CONFIG_PCI_STUB is not set
144CONFIG_GSC_DINO=y 177CONFIG_GSC_DINO=y
145CONFIG_PCI_LBA=y 178CONFIG_PCI_LBA=y
146CONFIG_IOSAPIC=y 179CONFIG_IOSAPIC=y
147CONFIG_IOMMU_SBA=y 180CONFIG_IOMMU_SBA=y
148 181CONFIG_IOMMU_HELPER=y
149#
150# PCCARD (PCMCIA/CardBus) support
151#
152CONFIG_PCCARD=y 182CONFIG_PCCARD=y
153# CONFIG_PCMCIA_DEBUG is not set 183# CONFIG_PCMCIA_DEBUG is not set
154CONFIG_PCMCIA=y 184CONFIG_PCMCIA=y
@@ -183,16 +213,15 @@ CONFIG_PDC_STABLE=y
183# Executable file formats 213# Executable file formats
184# 214#
185CONFIG_BINFMT_ELF=y 215CONFIG_BINFMT_ELF=y
216# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
217# CONFIG_HAVE_AOUT is not set
186CONFIG_BINFMT_MISC=m 218CONFIG_BINFMT_MISC=m
187
188#
189# Networking
190#
191CONFIG_NET=y 219CONFIG_NET=y
192 220
193# 221#
194# Networking options 222# Networking options
195# 223#
224CONFIG_COMPAT_NET_DEV_OPS=y
196CONFIG_PACKET=y 225CONFIG_PACKET=y
197CONFIG_PACKET_MMAP=y 226CONFIG_PACKET_MMAP=y
198CONFIG_UNIX=y 227CONFIG_UNIX=y
@@ -200,6 +229,8 @@ CONFIG_XFRM=y
200CONFIG_XFRM_USER=m 229CONFIG_XFRM_USER=m
201# CONFIG_XFRM_SUB_POLICY is not set 230# CONFIG_XFRM_SUB_POLICY is not set
202# CONFIG_XFRM_MIGRATE is not set 231# CONFIG_XFRM_MIGRATE is not set
232# CONFIG_XFRM_STATISTICS is not set
233CONFIG_XFRM_IPCOMP=y
203CONFIG_NET_KEY=m 234CONFIG_NET_KEY=m
204# CONFIG_NET_KEY_MIGRATE is not set 235# CONFIG_NET_KEY_MIGRATE is not set
205CONFIG_INET=y 236CONFIG_INET=y
@@ -245,8 +276,10 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=y
245CONFIG_INET6_XFRM_MODE_BEET=y 276CONFIG_INET6_XFRM_MODE_BEET=y
246# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set 277# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
247CONFIG_IPV6_SIT=y 278CONFIG_IPV6_SIT=y
279CONFIG_IPV6_NDISC_NODETYPE=y
248# CONFIG_IPV6_TUNNEL is not set 280# CONFIG_IPV6_TUNNEL is not set
249# CONFIG_IPV6_MULTIPLE_TABLES is not set 281# CONFIG_IPV6_MULTIPLE_TABLES is not set
282# CONFIG_IPV6_MROUTE is not set
250# CONFIG_NETWORK_SECMARK is not set 283# CONFIG_NETWORK_SECMARK is not set
251# CONFIG_NETFILTER is not set 284# CONFIG_NETFILTER is not set
252# CONFIG_IP_DCCP is not set 285# CONFIG_IP_DCCP is not set
@@ -254,6 +287,7 @@ CONFIG_IPV6_SIT=y
254# CONFIG_TIPC is not set 287# CONFIG_TIPC is not set
255# CONFIG_ATM is not set 288# CONFIG_ATM is not set
256# CONFIG_BRIDGE is not set 289# CONFIG_BRIDGE is not set
290# CONFIG_NET_DSA is not set
257# CONFIG_VLAN_8021Q is not set 291# CONFIG_VLAN_8021Q is not set
258# CONFIG_DECNET is not set 292# CONFIG_DECNET is not set
259CONFIG_LLC=m 293CONFIG_LLC=m
@@ -264,28 +298,26 @@ CONFIG_LLC2=m
264# CONFIG_LAPB is not set 298# CONFIG_LAPB is not set
265# CONFIG_ECONET is not set 299# CONFIG_ECONET is not set
266# CONFIG_WAN_ROUTER is not set 300# CONFIG_WAN_ROUTER is not set
267
268#
269# QoS and/or fair queueing
270#
271# CONFIG_NET_SCHED is not set 301# CONFIG_NET_SCHED is not set
302# CONFIG_DCB is not set
272 303
273# 304#
274# Network testing 305# Network testing
275# 306#
276# CONFIG_NET_PKTGEN is not set 307# CONFIG_NET_PKTGEN is not set
277# CONFIG_HAMRADIO is not set 308# CONFIG_HAMRADIO is not set
309# CONFIG_CAN is not set
278# CONFIG_IRDA is not set 310# CONFIG_IRDA is not set
279# CONFIG_BT is not set 311# CONFIG_BT is not set
280# CONFIG_AF_RXRPC is not set 312# CONFIG_AF_RXRPC is not set
281 313# CONFIG_PHONET is not set
282# 314CONFIG_WIRELESS=y
283# Wireless
284#
285# CONFIG_CFG80211 is not set 315# CONFIG_CFG80211 is not set
316CONFIG_WIRELESS_OLD_REGULATORY=y
286# CONFIG_WIRELESS_EXT is not set 317# CONFIG_WIRELESS_EXT is not set
318# CONFIG_LIB80211 is not set
287# CONFIG_MAC80211 is not set 319# CONFIG_MAC80211 is not set
288# CONFIG_IEEE80211 is not set 320# CONFIG_WIMAX is not set
289# CONFIG_RFKILL is not set 321# CONFIG_RFKILL is not set
290# CONFIG_NET_9P is not set 322# CONFIG_NET_9P is not set
291 323
@@ -300,6 +332,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
300# CONFIG_STANDALONE is not set 332# CONFIG_STANDALONE is not set
301# CONFIG_PREVENT_FIRMWARE_BUILD is not set 333# CONFIG_PREVENT_FIRMWARE_BUILD is not set
302CONFIG_FW_LOADER=y 334CONFIG_FW_LOADER=y
335CONFIG_FIRMWARE_IN_KERNEL=y
336CONFIG_EXTRA_FIRMWARE=""
303# CONFIG_DEBUG_DRIVER is not set 337# CONFIG_DEBUG_DRIVER is not set
304# CONFIG_DEBUG_DEVRES is not set 338# CONFIG_DEBUG_DEVRES is not set
305# CONFIG_SYS_HYPERVISOR is not set 339# CONFIG_SYS_HYPERVISOR is not set
@@ -330,63 +364,68 @@ CONFIG_BLK_DEV_CRYPTOLOOP=y
330CONFIG_BLK_DEV_RAM=y 364CONFIG_BLK_DEV_RAM=y
331CONFIG_BLK_DEV_RAM_COUNT=16 365CONFIG_BLK_DEV_RAM_COUNT=16
332CONFIG_BLK_DEV_RAM_SIZE=6144 366CONFIG_BLK_DEV_RAM_SIZE=6144
333CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 367# CONFIG_BLK_DEV_XIP is not set
334# CONFIG_CDROM_PKTCDVD is not set 368# CONFIG_CDROM_PKTCDVD is not set
335# CONFIG_ATA_OVER_ETH is not set 369# CONFIG_ATA_OVER_ETH is not set
370# CONFIG_BLK_DEV_HD is not set
336CONFIG_MISC_DEVICES=y 371CONFIG_MISC_DEVICES=y
337# CONFIG_PHANTOM is not set 372# CONFIG_PHANTOM is not set
338# CONFIG_EEPROM_93CX6 is not set
339# CONFIG_SGI_IOC4 is not set 373# CONFIG_SGI_IOC4 is not set
340# CONFIG_TIFM_CORE is not set 374# CONFIG_TIFM_CORE is not set
375# CONFIG_ENCLOSURE_SERVICES is not set
376# CONFIG_HP_ILO is not set
377# CONFIG_C2PORT is not set
378
379#
380# EEPROM support
381#
382# CONFIG_EEPROM_93CX6 is not set
383CONFIG_HAVE_IDE=y
341CONFIG_IDE=y 384CONFIG_IDE=y
342CONFIG_BLK_DEV_IDE=y
343 385
344# 386#
345# Please see Documentation/ide.txt for help/info on IDE drives 387# Please see Documentation/ide/ide.txt for help/info on IDE drives
346# 388#
389CONFIG_IDE_ATAPI=y
347# CONFIG_BLK_DEV_IDE_SATA is not set 390# CONFIG_BLK_DEV_IDE_SATA is not set
348CONFIG_BLK_DEV_IDEDISK=y 391CONFIG_IDE_GD=y
349CONFIG_IDEDISK_MULTI_MODE=y 392CONFIG_IDE_GD_ATA=y
393# CONFIG_IDE_GD_ATAPI is not set
350CONFIG_BLK_DEV_IDECS=y 394CONFIG_BLK_DEV_IDECS=y
351# CONFIG_BLK_DEV_DELKIN is not set 395# CONFIG_BLK_DEV_DELKIN is not set
352CONFIG_BLK_DEV_IDECD=y 396CONFIG_BLK_DEV_IDECD=y
397CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
353# CONFIG_BLK_DEV_IDETAPE is not set 398# CONFIG_BLK_DEV_IDETAPE is not set
354# CONFIG_BLK_DEV_IDEFLOPPY is not set
355CONFIG_BLK_DEV_IDESCSI=y
356# CONFIG_IDE_TASK_IOCTL is not set 399# CONFIG_IDE_TASK_IOCTL is not set
357CONFIG_IDE_PROC_FS=y 400CONFIG_IDE_PROC_FS=y
358 401
359# 402#
360# IDE chipset support/bugfixes 403# IDE chipset support/bugfixes
361# 404#
362CONFIG_IDE_GENERIC=y
363# CONFIG_BLK_DEV_PLATFORM is not set 405# CONFIG_BLK_DEV_PLATFORM is not set
406CONFIG_BLK_DEV_IDEDMA_SFF=y
364 407
365# 408#
366# PCI IDE chipsets support 409# PCI IDE chipsets support
367# 410#
368CONFIG_BLK_DEV_IDEPCI=y 411CONFIG_BLK_DEV_IDEPCI=y
369CONFIG_IDEPCI_SHARE_IRQ=y
370CONFIG_IDEPCI_PCIBUS_ORDER=y 412CONFIG_IDEPCI_PCIBUS_ORDER=y
371# CONFIG_BLK_DEV_OFFBOARD is not set 413# CONFIG_BLK_DEV_OFFBOARD is not set
372CONFIG_BLK_DEV_GENERIC=y 414CONFIG_BLK_DEV_GENERIC=y
373# CONFIG_BLK_DEV_OPTI621 is not set 415# CONFIG_BLK_DEV_OPTI621 is not set
374CONFIG_BLK_DEV_IDEDMA_PCI=y 416CONFIG_BLK_DEV_IDEDMA_PCI=y
375# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
376CONFIG_IDEDMA_ONLYDISK=y
377# CONFIG_BLK_DEV_AEC62XX is not set 417# CONFIG_BLK_DEV_AEC62XX is not set
378# CONFIG_BLK_DEV_ALI15X3 is not set 418# CONFIG_BLK_DEV_ALI15X3 is not set
379# CONFIG_BLK_DEV_AMD74XX is not set 419# CONFIG_BLK_DEV_AMD74XX is not set
380# CONFIG_BLK_DEV_CMD64X is not set 420# CONFIG_BLK_DEV_CMD64X is not set
381# CONFIG_BLK_DEV_TRIFLEX is not set 421# CONFIG_BLK_DEV_TRIFLEX is not set
382# CONFIG_BLK_DEV_CY82C693 is not set
383# CONFIG_BLK_DEV_CS5520 is not set 422# CONFIG_BLK_DEV_CS5520 is not set
384# CONFIG_BLK_DEV_CS5530 is not set 423# CONFIG_BLK_DEV_CS5530 is not set
385# CONFIG_BLK_DEV_HPT34X is not set
386# CONFIG_BLK_DEV_HPT366 is not set 424# CONFIG_BLK_DEV_HPT366 is not set
387# CONFIG_BLK_DEV_JMICRON is not set 425# CONFIG_BLK_DEV_JMICRON is not set
388# CONFIG_BLK_DEV_SC1200 is not set 426# CONFIG_BLK_DEV_SC1200 is not set
389# CONFIG_BLK_DEV_PIIX is not set 427# CONFIG_BLK_DEV_PIIX is not set
428# CONFIG_BLK_DEV_IT8172 is not set
390# CONFIG_BLK_DEV_IT8213 is not set 429# CONFIG_BLK_DEV_IT8213 is not set
391# CONFIG_BLK_DEV_IT821X is not set 430# CONFIG_BLK_DEV_IT821X is not set
392CONFIG_BLK_DEV_NS87415=y 431CONFIG_BLK_DEV_NS87415=y
@@ -398,10 +437,7 @@ CONFIG_BLK_DEV_NS87415=y
398# CONFIG_BLK_DEV_TRM290 is not set 437# CONFIG_BLK_DEV_TRM290 is not set
399# CONFIG_BLK_DEV_VIA82CXXX is not set 438# CONFIG_BLK_DEV_VIA82CXXX is not set
400# CONFIG_BLK_DEV_TC86C001 is not set 439# CONFIG_BLK_DEV_TC86C001 is not set
401# CONFIG_IDE_ARM is not set
402CONFIG_BLK_DEV_IDEDMA=y 440CONFIG_BLK_DEV_IDEDMA=y
403# CONFIG_IDEDMA_IVB is not set
404# CONFIG_BLK_DEV_HD is not set
405 441
406# 442#
407# SCSI device support 443# SCSI device support
@@ -440,8 +476,10 @@ CONFIG_SCSI_SPI_ATTRS=y
440# CONFIG_SCSI_FC_ATTRS is not set 476# CONFIG_SCSI_FC_ATTRS is not set
441# CONFIG_SCSI_ISCSI_ATTRS is not set 477# CONFIG_SCSI_ISCSI_ATTRS is not set
442# CONFIG_SCSI_SAS_LIBSAS is not set 478# CONFIG_SCSI_SAS_LIBSAS is not set
479# CONFIG_SCSI_SRP_ATTRS is not set
443CONFIG_SCSI_LOWLEVEL=y 480CONFIG_SCSI_LOWLEVEL=y
444# CONFIG_ISCSI_TCP is not set 481# CONFIG_ISCSI_TCP is not set
482# CONFIG_SCSI_CXGB3_ISCSI is not set
445# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 483# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
446# CONFIG_SCSI_3W_9XXX is not set 484# CONFIG_SCSI_3W_9XXX is not set
447# CONFIG_SCSI_ACARD is not set 485# CONFIG_SCSI_ACARD is not set
@@ -452,11 +490,14 @@ CONFIG_SCSI_LOWLEVEL=y
452# CONFIG_SCSI_AIC79XX is not set 490# CONFIG_SCSI_AIC79XX is not set
453# CONFIG_SCSI_AIC94XX is not set 491# CONFIG_SCSI_AIC94XX is not set
454# CONFIG_SCSI_DPT_I2O is not set 492# CONFIG_SCSI_DPT_I2O is not set
493# CONFIG_SCSI_ADVANSYS is not set
455# CONFIG_SCSI_ARCMSR is not set 494# CONFIG_SCSI_ARCMSR is not set
456# CONFIG_MEGARAID_NEWGEN is not set 495# CONFIG_MEGARAID_NEWGEN is not set
457# CONFIG_MEGARAID_LEGACY is not set 496# CONFIG_MEGARAID_LEGACY is not set
458# CONFIG_MEGARAID_SAS is not set 497# CONFIG_MEGARAID_SAS is not set
459# CONFIG_SCSI_HPTIOP is not set 498# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_LIBFC is not set
500# CONFIG_FCOE is not set
460# CONFIG_SCSI_DMX3191D is not set 501# CONFIG_SCSI_DMX3191D is not set
461# CONFIG_SCSI_FUTURE_DOMAIN is not set 502# CONFIG_SCSI_FUTURE_DOMAIN is not set
462# CONFIG_SCSI_IPS is not set 503# CONFIG_SCSI_IPS is not set
@@ -464,6 +505,7 @@ CONFIG_SCSI_LOWLEVEL=y
464# CONFIG_SCSI_INIA100 is not set 505# CONFIG_SCSI_INIA100 is not set
465# CONFIG_SCSI_PPA is not set 506# CONFIG_SCSI_PPA is not set
466# CONFIG_SCSI_IMM is not set 507# CONFIG_SCSI_IMM is not set
508# CONFIG_SCSI_MVSAS is not set
467CONFIG_SCSI_LASI700=y 509CONFIG_SCSI_LASI700=y
468CONFIG_53C700_LE_ON_BE=y 510CONFIG_53C700_LE_ON_BE=y
469# CONFIG_SCSI_STEX is not set 511# CONFIG_SCSI_STEX is not set
@@ -487,9 +529,11 @@ CONFIG_SCSI_NCR53C8XX_SYNC=20
487# CONFIG_SCSI_DEBUG is not set 529# CONFIG_SCSI_DEBUG is not set
488# CONFIG_SCSI_SRP is not set 530# CONFIG_SCSI_SRP is not set
489# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 531# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
532# CONFIG_SCSI_DH is not set
490# CONFIG_ATA is not set 533# CONFIG_ATA is not set
491CONFIG_MD=y 534CONFIG_MD=y
492CONFIG_BLK_DEV_MD=y 535CONFIG_BLK_DEV_MD=y
536CONFIG_MD_AUTODETECT=y
493CONFIG_MD_LINEAR=y 537CONFIG_MD_LINEAR=y
494CONFIG_MD_RAID0=y 538CONFIG_MD_RAID0=y
495CONFIG_MD_RAID1=y 539CONFIG_MD_RAID1=y
@@ -505,32 +549,47 @@ CONFIG_BLK_DEV_DM=y
505# CONFIG_DM_ZERO is not set 549# CONFIG_DM_ZERO is not set
506# CONFIG_DM_MULTIPATH is not set 550# CONFIG_DM_MULTIPATH is not set
507# CONFIG_DM_DELAY is not set 551# CONFIG_DM_DELAY is not set
552# CONFIG_DM_UEVENT is not set
553# CONFIG_FUSION is not set
508 554
509# 555#
510# Fusion MPT device support 556# IEEE 1394 (FireWire) support
511# 557#
512# CONFIG_FUSION is not set
513# CONFIG_FUSION_SPI is not set
514# CONFIG_FUSION_FC is not set
515# CONFIG_FUSION_SAS is not set
516 558
517# 559#
518# IEEE 1394 (FireWire) support 560# Enable only one of the two stacks, unless you know what you are doing
519# 561#
520# CONFIG_FIREWIRE is not set 562# CONFIG_FIREWIRE is not set
521# CONFIG_IEEE1394 is not set 563# CONFIG_IEEE1394 is not set
522# CONFIG_I2O is not set 564# CONFIG_I2O is not set
523CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
524# CONFIG_NETDEVICES_MULTIQUEUE is not set
525CONFIG_DUMMY=m 566CONFIG_DUMMY=m
526CONFIG_BONDING=m 567CONFIG_BONDING=m
527# CONFIG_MACVLAN is not set 568# CONFIG_MACVLAN is not set
528# CONFIG_EQUALIZER is not set 569# CONFIG_EQUALIZER is not set
529CONFIG_TUN=m 570CONFIG_TUN=m
530# CONFIG_VETH is not set 571# CONFIG_VETH is not set
531# CONFIG_IP1000 is not set
532# CONFIG_ARCNET is not set 572# CONFIG_ARCNET is not set
533# CONFIG_PHYLIB is not set 573CONFIG_PHYLIB=y
574
575#
576# MII PHY device drivers
577#
578# CONFIG_MARVELL_PHY is not set
579# CONFIG_DAVICOM_PHY is not set
580# CONFIG_QSEMI_PHY is not set
581# CONFIG_LXT_PHY is not set
582# CONFIG_CICADA_PHY is not set
583# CONFIG_VITESSE_PHY is not set
584# CONFIG_SMSC_PHY is not set
585# CONFIG_BROADCOM_PHY is not set
586# CONFIG_ICPLUS_PHY is not set
587# CONFIG_REALTEK_PHY is not set
588# CONFIG_NATIONAL_PHY is not set
589# CONFIG_STE10XP is not set
590# CONFIG_LSI_ET1011C_PHY is not set
591# CONFIG_FIXED_PHY is not set
592# CONFIG_MDIO_BITBANG is not set
534CONFIG_NET_ETHERNET=y 593CONFIG_NET_ETHERNET=y
535CONFIG_MII=m 594CONFIG_MII=m
536CONFIG_LASI_82596=y 595CONFIG_LASI_82596=y
@@ -550,13 +609,15 @@ CONFIG_TULIP=y
550# CONFIG_DM9102 is not set 609# CONFIG_DM9102 is not set
551# CONFIG_ULI526X is not set 610# CONFIG_ULI526X is not set
552# CONFIG_PCMCIA_XIRCOM is not set 611# CONFIG_PCMCIA_XIRCOM is not set
553# CONFIG_PCMCIA_XIRTULIP is not set
554# CONFIG_DEPCA is not set 612# CONFIG_DEPCA is not set
555# CONFIG_HP100 is not set 613# CONFIG_HP100 is not set
556# CONFIG_IBM_NEW_EMAC_ZMII is not set 614# CONFIG_IBM_NEW_EMAC_ZMII is not set
557# CONFIG_IBM_NEW_EMAC_RGMII is not set 615# CONFIG_IBM_NEW_EMAC_RGMII is not set
558# CONFIG_IBM_NEW_EMAC_TAH is not set 616# CONFIG_IBM_NEW_EMAC_TAH is not set
559# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 617# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
618# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
619# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
620# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
560CONFIG_NET_PCI=y 621CONFIG_NET_PCI=y
561# CONFIG_PCNET32 is not set 622# CONFIG_PCNET32 is not set
562# CONFIG_AMD8111_ETH is not set 623# CONFIG_AMD8111_ETH is not set
@@ -564,7 +625,7 @@ CONFIG_NET_PCI=y
564# CONFIG_AC3200 is not set 625# CONFIG_AC3200 is not set
565# CONFIG_B44 is not set 626# CONFIG_B44 is not set
566# CONFIG_FORCEDETH is not set 627# CONFIG_FORCEDETH is not set
567# CONFIG_EEPRO100 is not set 628# CONFIG_CS89x0 is not set
568# CONFIG_E100 is not set 629# CONFIG_E100 is not set
569# CONFIG_LNE390 is not set 630# CONFIG_LNE390 is not set
570# CONFIG_FEALNX is not set 631# CONFIG_FEALNX is not set
@@ -574,19 +635,24 @@ CONFIG_NET_PCI=y
574# CONFIG_ES3210 is not set 635# CONFIG_ES3210 is not set
575# CONFIG_8139CP is not set 636# CONFIG_8139CP is not set
576# CONFIG_8139TOO is not set 637# CONFIG_8139TOO is not set
638# CONFIG_R6040 is not set
577# CONFIG_SIS900 is not set 639# CONFIG_SIS900 is not set
578# CONFIG_EPIC100 is not set 640# CONFIG_EPIC100 is not set
641# CONFIG_SMSC9420 is not set
579# CONFIG_SUNDANCE is not set 642# CONFIG_SUNDANCE is not set
580# CONFIG_TLAN is not set 643# CONFIG_TLAN is not set
581# CONFIG_VIA_RHINE is not set 644# CONFIG_VIA_RHINE is not set
582# CONFIG_SC92031 is not set 645# CONFIG_SC92031 is not set
583# CONFIG_NET_POCKET is not set 646# CONFIG_NET_POCKET is not set
647# CONFIG_ATL2 is not set
584CONFIG_NETDEV_1000=y 648CONFIG_NETDEV_1000=y
585CONFIG_ACENIC=y 649CONFIG_ACENIC=y
586# CONFIG_ACENIC_OMIT_TIGON_I is not set 650# CONFIG_ACENIC_OMIT_TIGON_I is not set
587# CONFIG_DL2K is not set 651# CONFIG_DL2K is not set
588# CONFIG_E1000 is not set 652# CONFIG_E1000 is not set
589# CONFIG_E1000E is not set 653# CONFIG_E1000E is not set
654# CONFIG_IP1000 is not set
655# CONFIG_IGB is not set
590# CONFIG_NS83820 is not set 656# CONFIG_NS83820 is not set
591# CONFIG_HAMACHI is not set 657# CONFIG_HAMACHI is not set
592# CONFIG_YELLOWFIN is not set 658# CONFIG_YELLOWFIN is not set
@@ -594,23 +660,31 @@ CONFIG_ACENIC=y
594# CONFIG_SIS190 is not set 660# CONFIG_SIS190 is not set
595# CONFIG_SKGE is not set 661# CONFIG_SKGE is not set
596# CONFIG_SKY2 is not set 662# CONFIG_SKY2 is not set
597# CONFIG_SK98LIN is not set
598# CONFIG_VIA_VELOCITY is not set 663# CONFIG_VIA_VELOCITY is not set
599CONFIG_TIGON3=y 664CONFIG_TIGON3=y
600# CONFIG_BNX2 is not set 665# CONFIG_BNX2 is not set
601# CONFIG_QLA3XXX is not set 666# CONFIG_QLA3XXX is not set
602# CONFIG_ATL1 is not set 667# CONFIG_ATL1 is not set
668# CONFIG_ATL1E is not set
669# CONFIG_ATL1C is not set
670# CONFIG_JME is not set
603CONFIG_NETDEV_10000=y 671CONFIG_NETDEV_10000=y
604# CONFIG_CHELSIO_T1 is not set 672# CONFIG_CHELSIO_T1 is not set
673CONFIG_CHELSIO_T3_DEPENDS=y
605# CONFIG_CHELSIO_T3 is not set 674# CONFIG_CHELSIO_T3 is not set
675# CONFIG_ENIC is not set
606# CONFIG_IXGBE is not set 676# CONFIG_IXGBE is not set
607# CONFIG_IXGB is not set 677# CONFIG_IXGB is not set
608# CONFIG_S2IO is not set 678# CONFIG_S2IO is not set
609# CONFIG_MYRI10GE is not set 679# CONFIG_MYRI10GE is not set
610# CONFIG_NETXEN_NIC is not set 680# CONFIG_NETXEN_NIC is not set
611# CONFIG_NIU is not set 681# CONFIG_NIU is not set
682# CONFIG_MLX4_EN is not set
612# CONFIG_MLX4_CORE is not set 683# CONFIG_MLX4_CORE is not set
613# CONFIG_TEHUTI is not set 684# CONFIG_TEHUTI is not set
685# CONFIG_BNX2X is not set
686# CONFIG_QLGE is not set
687# CONFIG_SFC is not set
614# CONFIG_TR is not set 688# CONFIG_TR is not set
615 689
616# 690#
@@ -618,6 +692,11 @@ CONFIG_NETDEV_10000=y
618# 692#
619# CONFIG_WLAN_PRE80211 is not set 693# CONFIG_WLAN_PRE80211 is not set
620# CONFIG_WLAN_80211 is not set 694# CONFIG_WLAN_80211 is not set
695# CONFIG_IWLWIFI_LEDS is not set
696
697#
698# Enable WiMAX (Networking options) to see the WiMAX drivers
699#
621 700
622# 701#
623# USB Network Adapters 702# USB Network Adapters
@@ -626,7 +705,6 @@ CONFIG_NETDEV_10000=y
626# CONFIG_USB_KAWETH is not set 705# CONFIG_USB_KAWETH is not set
627# CONFIG_USB_PEGASUS is not set 706# CONFIG_USB_PEGASUS is not set
628# CONFIG_USB_RTL8150 is not set 707# CONFIG_USB_RTL8150 is not set
629# CONFIG_USB_USBNET_MII is not set
630# CONFIG_USB_USBNET is not set 708# CONFIG_USB_USBNET is not set
631CONFIG_NET_PCMCIA=y 709CONFIG_NET_PCMCIA=y
632# CONFIG_PCMCIA_3C589 is not set 710# CONFIG_PCMCIA_3C589 is not set
@@ -654,7 +732,6 @@ CONFIG_PPPOE=m
654# CONFIG_SLIP is not set 732# CONFIG_SLIP is not set
655CONFIG_SLHC=m 733CONFIG_SLHC=m
656# CONFIG_NET_FC is not set 734# CONFIG_NET_FC is not set
657# CONFIG_SHAPER is not set
658# CONFIG_NETCONSOLE is not set 735# CONFIG_NETCONSOLE is not set
659# CONFIG_NETPOLL is not set 736# CONFIG_NETPOLL is not set
660# CONFIG_NET_POLL_CONTROLLER is not set 737# CONFIG_NET_POLL_CONTROLLER is not set
@@ -676,7 +753,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
676CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 753CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
677CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 754CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
678# CONFIG_INPUT_JOYDEV is not set 755# CONFIG_INPUT_JOYDEV is not set
679# CONFIG_INPUT_TSDEV is not set
680# CONFIG_INPUT_EVDEV is not set 756# CONFIG_INPUT_EVDEV is not set
681# CONFIG_INPUT_EVBUG is not set 757# CONFIG_INPUT_EVBUG is not set
682 758
@@ -699,11 +775,12 @@ CONFIG_MOUSE_PS2=y
699CONFIG_MOUSE_PS2_ALPS=y 775CONFIG_MOUSE_PS2_ALPS=y
700CONFIG_MOUSE_PS2_LOGIPS2PP=y 776CONFIG_MOUSE_PS2_LOGIPS2PP=y
701CONFIG_MOUSE_PS2_SYNAPTICS=y 777CONFIG_MOUSE_PS2_SYNAPTICS=y
702CONFIG_MOUSE_PS2_LIFEBOOK=y
703CONFIG_MOUSE_PS2_TRACKPOINT=y 778CONFIG_MOUSE_PS2_TRACKPOINT=y
779# CONFIG_MOUSE_PS2_ELANTECH is not set
704# CONFIG_MOUSE_PS2_TOUCHKIT is not set 780# CONFIG_MOUSE_PS2_TOUCHKIT is not set
705CONFIG_MOUSE_SERIAL=y 781CONFIG_MOUSE_SERIAL=y
706# CONFIG_MOUSE_APPLETOUCH is not set 782# CONFIG_MOUSE_APPLETOUCH is not set
783# CONFIG_MOUSE_BCM5974 is not set
707# CONFIG_MOUSE_VSXXXAA is not set 784# CONFIG_MOUSE_VSXXXAA is not set
708CONFIG_MOUSE_HIL=y 785CONFIG_MOUSE_HIL=y
709# CONFIG_INPUT_JOYSTICK is not set 786# CONFIG_INPUT_JOYSTICK is not set
@@ -729,10 +806,13 @@ CONFIG_SERIO_LIBPS2=y
729# Character devices 806# Character devices
730# 807#
731CONFIG_VT=y 808CONFIG_VT=y
809CONFIG_CONSOLE_TRANSLATIONS=y
732CONFIG_VT_CONSOLE=y 810CONFIG_VT_CONSOLE=y
733CONFIG_HW_CONSOLE=y 811CONFIG_HW_CONSOLE=y
734# CONFIG_VT_HW_CONSOLE_BINDING is not set 812# CONFIG_VT_HW_CONSOLE_BINDING is not set
813CONFIG_DEVKMEM=y
735# CONFIG_SERIAL_NONSTANDARD is not set 814# CONFIG_SERIAL_NONSTANDARD is not set
815# CONFIG_NOZOMI is not set
736 816
737# 817#
738# Serial drivers 818# Serial drivers
@@ -759,21 +839,16 @@ CONFIG_SERIAL_CORE=y
759CONFIG_SERIAL_CORE_CONSOLE=y 839CONFIG_SERIAL_CORE_CONSOLE=y
760# CONFIG_SERIAL_JSM is not set 840# CONFIG_SERIAL_JSM is not set
761CONFIG_UNIX98_PTYS=y 841CONFIG_UNIX98_PTYS=y
842# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
762CONFIG_LEGACY_PTYS=y 843CONFIG_LEGACY_PTYS=y
763CONFIG_LEGACY_PTY_COUNT=64 844CONFIG_LEGACY_PTY_COUNT=64
764CONFIG_PRINTER=m 845CONFIG_PRINTER=m
765# CONFIG_LP_CONSOLE is not set 846# CONFIG_LP_CONSOLE is not set
766CONFIG_PPDEV=m 847CONFIG_PPDEV=m
767# CONFIG_TIPAR is not set
768# CONFIG_IPMI_HANDLER is not set 848# CONFIG_IPMI_HANDLER is not set
769# CONFIG_WATCHDOG is not set
770# CONFIG_HW_RANDOM is not set 849# CONFIG_HW_RANDOM is not set
771CONFIG_GEN_RTC=y
772CONFIG_GEN_RTC_X=y
773# CONFIG_R3964 is not set 850# CONFIG_R3964 is not set
774# CONFIG_APPLICOM is not set 851# CONFIG_APPLICOM is not set
775# CONFIG_AGP is not set
776# CONFIG_DRM is not set
777 852
778# 853#
779# PCMCIA character devices 854# PCMCIA character devices
@@ -781,60 +856,70 @@ CONFIG_GEN_RTC_X=y
781# CONFIG_SYNCLINK_CS is not set 856# CONFIG_SYNCLINK_CS is not set
782# CONFIG_CARDMAN_4000 is not set 857# CONFIG_CARDMAN_4000 is not set
783# CONFIG_CARDMAN_4040 is not set 858# CONFIG_CARDMAN_4040 is not set
859# CONFIG_IPWIRELESS is not set
784# CONFIG_RAW_DRIVER is not set 860# CONFIG_RAW_DRIVER is not set
785# CONFIG_TCG_TPM is not set 861# CONFIG_TCG_TPM is not set
786CONFIG_DEVPORT=y 862CONFIG_DEVPORT=y
787# CONFIG_I2C is not set 863# CONFIG_I2C is not set
788
789#
790# SPI support
791#
792# CONFIG_SPI is not set 864# CONFIG_SPI is not set
793# CONFIG_SPI_MASTER is not set
794# CONFIG_W1 is not set 865# CONFIG_W1 is not set
795# CONFIG_POWER_SUPPLY is not set 866# CONFIG_POWER_SUPPLY is not set
796# CONFIG_HWMON is not set 867# CONFIG_HWMON is not set
868# CONFIG_THERMAL is not set
869# CONFIG_THERMAL_HWMON is not set
870# CONFIG_WATCHDOG is not set
871CONFIG_SSB_POSSIBLE=y
797 872
798# 873#
799# Sonics Silicon Backplane 874# Sonics Silicon Backplane
800# 875#
801CONFIG_SSB_POSSIBLE=y
802# CONFIG_SSB is not set 876# CONFIG_SSB is not set
803 877
804# 878#
805# Multifunction device drivers 879# Multifunction device drivers
806# 880#
881# CONFIG_MFD_CORE is not set
807# CONFIG_MFD_SM501 is not set 882# CONFIG_MFD_SM501 is not set
883# CONFIG_HTC_PASIC3 is not set
884# CONFIG_MFD_TMIO is not set
885# CONFIG_REGULATOR is not set
808 886
809# 887#
810# Multimedia devices 888# Multimedia devices
811# 889#
890
891#
892# Multimedia core support
893#
812# CONFIG_VIDEO_DEV is not set 894# CONFIG_VIDEO_DEV is not set
813# CONFIG_DVB_CORE is not set 895# CONFIG_DVB_CORE is not set
814# CONFIG_DAB is not set 896# CONFIG_VIDEO_MEDIA is not set
815 897
816# 898#
817# Graphics support 899# Multimedia drivers
818# 900#
819# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 901# CONFIG_DAB is not set
820 902
821# 903#
822# Display device support 904# Graphics support
823# 905#
824# CONFIG_DISPLAY_SUPPORT is not set 906# CONFIG_AGP is not set
907# CONFIG_DRM is not set
825# CONFIG_VGASTATE is not set 908# CONFIG_VGASTATE is not set
826CONFIG_VIDEO_OUTPUT_CONTROL=m 909CONFIG_VIDEO_OUTPUT_CONTROL=m
827CONFIG_FB=y 910CONFIG_FB=y
828# CONFIG_FIRMWARE_EDID is not set 911# CONFIG_FIRMWARE_EDID is not set
829# CONFIG_FB_DDC is not set 912# CONFIG_FB_DDC is not set
913# CONFIG_FB_BOOT_VESA_SUPPORT is not set
830CONFIG_FB_CFB_FILLRECT=y 914CONFIG_FB_CFB_FILLRECT=y
831CONFIG_FB_CFB_COPYAREA=y 915CONFIG_FB_CFB_COPYAREA=y
832CONFIG_FB_CFB_IMAGEBLIT=y 916CONFIG_FB_CFB_IMAGEBLIT=y
917# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
833# CONFIG_FB_SYS_FILLRECT is not set 918# CONFIG_FB_SYS_FILLRECT is not set
834# CONFIG_FB_SYS_COPYAREA is not set 919# CONFIG_FB_SYS_COPYAREA is not set
835# CONFIG_FB_SYS_IMAGEBLIT is not set 920# CONFIG_FB_SYS_IMAGEBLIT is not set
921# CONFIG_FB_FOREIGN_ENDIAN is not set
836# CONFIG_FB_SYS_FOPS is not set 922# CONFIG_FB_SYS_FOPS is not set
837CONFIG_FB_DEFERRED_IO=y
838# CONFIG_FB_SVGALIB is not set 923# CONFIG_FB_SVGALIB is not set
839# CONFIG_FB_MACMODES is not set 924# CONFIG_FB_MACMODES is not set
840# CONFIG_FB_BACKLIGHT is not set 925# CONFIG_FB_BACKLIGHT is not set
@@ -860,6 +945,7 @@ CONFIG_FB_STI=y
860# CONFIG_FB_S3 is not set 945# CONFIG_FB_S3 is not set
861# CONFIG_FB_SAVAGE is not set 946# CONFIG_FB_SAVAGE is not set
862# CONFIG_FB_SIS is not set 947# CONFIG_FB_SIS is not set
948# CONFIG_FB_VIA is not set
863# CONFIG_FB_NEOMAGIC is not set 949# CONFIG_FB_NEOMAGIC is not set
864# CONFIG_FB_KYRO is not set 950# CONFIG_FB_KYRO is not set
865# CONFIG_FB_3DFX is not set 951# CONFIG_FB_3DFX is not set
@@ -868,7 +954,16 @@ CONFIG_FB_STI=y
868# CONFIG_FB_TRIDENT is not set 954# CONFIG_FB_TRIDENT is not set
869# CONFIG_FB_ARK is not set 955# CONFIG_FB_ARK is not set
870# CONFIG_FB_PM3 is not set 956# CONFIG_FB_PM3 is not set
957# CONFIG_FB_CARMINE is not set
871# CONFIG_FB_VIRTUAL is not set 958# CONFIG_FB_VIRTUAL is not set
959# CONFIG_FB_METRONOME is not set
960# CONFIG_FB_MB862XX is not set
961# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
962
963#
964# Display device support
965#
966# CONFIG_DISPLAY_SUPPORT is not set
872 967
873# 968#
874# Console display driver support 969# Console display driver support
@@ -896,15 +991,8 @@ CONFIG_LOGO=y
896# CONFIG_LOGO_LINUX_VGA16 is not set 991# CONFIG_LOGO_LINUX_VGA16 is not set
897# CONFIG_LOGO_LINUX_CLUT224 is not set 992# CONFIG_LOGO_LINUX_CLUT224 is not set
898CONFIG_LOGO_PARISC_CLUT224=y 993CONFIG_LOGO_PARISC_CLUT224=y
899
900#
901# Sound
902#
903CONFIG_SOUND=y 994CONFIG_SOUND=y
904 995CONFIG_SOUND_OSS_CORE=y
905#
906# Advanced Linux Sound Architecture
907#
908CONFIG_SND=y 996CONFIG_SND=y
909CONFIG_SND_TIMER=y 997CONFIG_SND_TIMER=y
910CONFIG_SND_PCM=y 998CONFIG_SND_PCM=y
@@ -920,11 +1008,9 @@ CONFIG_SND_SUPPORT_OLD_API=y
920CONFIG_SND_VERBOSE_PROCFS=y 1008CONFIG_SND_VERBOSE_PROCFS=y
921# CONFIG_SND_VERBOSE_PRINTK is not set 1009# CONFIG_SND_VERBOSE_PRINTK is not set
922# CONFIG_SND_DEBUG is not set 1010# CONFIG_SND_DEBUG is not set
923 1011CONFIG_SND_VMASTER=y
924#
925# Generic devices
926#
927CONFIG_SND_AC97_CODEC=y 1012CONFIG_SND_AC97_CODEC=y
1013CONFIG_SND_DRIVERS=y
928# CONFIG_SND_DUMMY is not set 1014# CONFIG_SND_DUMMY is not set
929# CONFIG_SND_VIRMIDI is not set 1015# CONFIG_SND_VIRMIDI is not set
930# CONFIG_SND_MTPAV is not set 1016# CONFIG_SND_MTPAV is not set
@@ -932,10 +1018,8 @@ CONFIG_SND_AC97_CODEC=y
932# CONFIG_SND_SERIAL_U16550 is not set 1018# CONFIG_SND_SERIAL_U16550 is not set
933# CONFIG_SND_MPU401 is not set 1019# CONFIG_SND_MPU401 is not set
934# CONFIG_SND_PORTMAN2X4 is not set 1020# CONFIG_SND_PORTMAN2X4 is not set
935 1021# CONFIG_SND_AC97_POWER_SAVE is not set
936# 1022CONFIG_SND_PCI=y
937# PCI devices
938#
939CONFIG_SND_AD1889=y 1023CONFIG_SND_AD1889=y
940# CONFIG_SND_ALS300 is not set 1024# CONFIG_SND_ALS300 is not set
941# CONFIG_SND_ALI5451 is not set 1025# CONFIG_SND_ALI5451 is not set
@@ -944,10 +1028,12 @@ CONFIG_SND_AD1889=y
944# CONFIG_SND_AU8810 is not set 1028# CONFIG_SND_AU8810 is not set
945# CONFIG_SND_AU8820 is not set 1029# CONFIG_SND_AU8820 is not set
946# CONFIG_SND_AU8830 is not set 1030# CONFIG_SND_AU8830 is not set
1031# CONFIG_SND_AW2 is not set
947# CONFIG_SND_AZT3328 is not set 1032# CONFIG_SND_AZT3328 is not set
948# CONFIG_SND_BT87X is not set 1033# CONFIG_SND_BT87X is not set
949# CONFIG_SND_CA0106 is not set 1034# CONFIG_SND_CA0106 is not set
950# CONFIG_SND_CMIPCI is not set 1035# CONFIG_SND_CMIPCI is not set
1036# CONFIG_SND_OXYGEN is not set
951# CONFIG_SND_CS4281 is not set 1037# CONFIG_SND_CS4281 is not set
952# CONFIG_SND_CS46XX is not set 1038# CONFIG_SND_CS46XX is not set
953# CONFIG_SND_DARLA20 is not set 1039# CONFIG_SND_DARLA20 is not set
@@ -972,6 +1058,7 @@ CONFIG_SND_AD1889=y
972# CONFIG_SND_HDA_INTEL is not set 1058# CONFIG_SND_HDA_INTEL is not set
973# CONFIG_SND_HDSP is not set 1059# CONFIG_SND_HDSP is not set
974# CONFIG_SND_HDSPM is not set 1060# CONFIG_SND_HDSPM is not set
1061# CONFIG_SND_HIFIER is not set
975# CONFIG_SND_ICE1712 is not set 1062# CONFIG_SND_ICE1712 is not set
976# CONFIG_SND_ICE1724 is not set 1063# CONFIG_SND_ICE1724 is not set
977# CONFIG_SND_INTEL8X0 is not set 1064# CONFIG_SND_INTEL8X0 is not set
@@ -989,58 +1076,67 @@ CONFIG_SND_AD1889=y
989# CONFIG_SND_TRIDENT is not set 1076# CONFIG_SND_TRIDENT is not set
990# CONFIG_SND_VIA82XX is not set 1077# CONFIG_SND_VIA82XX is not set
991# CONFIG_SND_VIA82XX_MODEM is not set 1078# CONFIG_SND_VIA82XX_MODEM is not set
1079# CONFIG_SND_VIRTUOSO is not set
992# CONFIG_SND_VX222 is not set 1080# CONFIG_SND_VX222 is not set
993# CONFIG_SND_YMFPCI is not set 1081# CONFIG_SND_YMFPCI is not set
994# CONFIG_SND_AC97_POWER_SAVE is not set 1082CONFIG_SND_USB=y
995
996#
997# USB devices
998#
999# CONFIG_SND_USB_AUDIO is not set 1083# CONFIG_SND_USB_AUDIO is not set
1000# CONFIG_SND_USB_CAIAQ is not set 1084# CONFIG_SND_USB_CAIAQ is not set
1001 1085CONFIG_SND_PCMCIA=y
1002#
1003# PCMCIA devices
1004#
1005# CONFIG_SND_VXPOCKET is not set 1086# CONFIG_SND_VXPOCKET is not set
1006# CONFIG_SND_PDAUDIOCF is not set 1087# CONFIG_SND_PDAUDIOCF is not set
1007 1088CONFIG_SND_GSC=y
1008#
1009# GSC devices
1010#
1011CONFIG_SND_HARMONY=y 1089CONFIG_SND_HARMONY=y
1012
1013#
1014# System on Chip audio support
1015#
1016# CONFIG_SND_SOC is not set 1090# CONFIG_SND_SOC is not set
1017
1018#
1019# SoC Audio support for SuperH
1020#
1021
1022#
1023# Open Sound System
1024#
1025# CONFIG_SOUND_PRIME is not set 1091# CONFIG_SOUND_PRIME is not set
1026CONFIG_AC97_BUS=y 1092CONFIG_AC97_BUS=y
1027CONFIG_HID_SUPPORT=y 1093CONFIG_HID_SUPPORT=y
1028CONFIG_HID=y 1094CONFIG_HID=y
1029CONFIG_HID_DEBUG=y 1095CONFIG_HID_DEBUG=y
1096# CONFIG_HIDRAW is not set
1030 1097
1031# 1098#
1032# USB Input Devices 1099# USB Input Devices
1033# 1100#
1034CONFIG_USB_HID=y 1101CONFIG_USB_HID=y
1035# CONFIG_USB_HIDINPUT_POWERBOOK is not set 1102# CONFIG_HID_PID is not set
1036# CONFIG_HID_FF is not set
1037# CONFIG_USB_HIDDEV is not set 1103# CONFIG_USB_HIDDEV is not set
1104
1105#
1106# Special HID drivers
1107#
1108CONFIG_HID_COMPAT=y
1109CONFIG_HID_A4TECH=y
1110CONFIG_HID_APPLE=y
1111CONFIG_HID_BELKIN=y
1112CONFIG_HID_CHERRY=y
1113CONFIG_HID_CHICONY=y
1114CONFIG_HID_CYPRESS=y
1115CONFIG_HID_EZKEY=y
1116CONFIG_HID_GYRATION=y
1117CONFIG_HID_LOGITECH=y
1118# CONFIG_LOGITECH_FF is not set
1119# CONFIG_LOGIRUMBLEPAD2_FF is not set
1120CONFIG_HID_MICROSOFT=y
1121CONFIG_HID_MONTEREY=y
1122CONFIG_HID_NTRIG=y
1123CONFIG_HID_PANTHERLORD=y
1124# CONFIG_PANTHERLORD_FF is not set
1125CONFIG_HID_PETALYNX=y
1126CONFIG_HID_SAMSUNG=y
1127CONFIG_HID_SONY=y
1128CONFIG_HID_SUNPLUS=y
1129# CONFIG_GREENASIA_FF is not set
1130CONFIG_HID_TOPSEED=y
1131# CONFIG_THRUSTMASTER_FF is not set
1132# CONFIG_ZEROPLUS_FF is not set
1038CONFIG_USB_SUPPORT=y 1133CONFIG_USB_SUPPORT=y
1039CONFIG_USB_ARCH_HAS_HCD=y 1134CONFIG_USB_ARCH_HAS_HCD=y
1040CONFIG_USB_ARCH_HAS_OHCI=y 1135CONFIG_USB_ARCH_HAS_OHCI=y
1041CONFIG_USB_ARCH_HAS_EHCI=y 1136CONFIG_USB_ARCH_HAS_EHCI=y
1042CONFIG_USB=y 1137CONFIG_USB=y
1043# CONFIG_USB_DEBUG is not set 1138# CONFIG_USB_DEBUG is not set
1139# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1044 1140
1045# 1141#
1046# Miscellaneous USB options 1142# Miscellaneous USB options
@@ -1049,12 +1145,18 @@ CONFIG_USB_DEVICEFS=y
1049CONFIG_USB_DEVICE_CLASS=y 1145CONFIG_USB_DEVICE_CLASS=y
1050# CONFIG_USB_DYNAMIC_MINORS is not set 1146# CONFIG_USB_DYNAMIC_MINORS is not set
1051# CONFIG_USB_OTG is not set 1147# CONFIG_USB_OTG is not set
1148CONFIG_USB_MON=y
1149# CONFIG_USB_WUSB is not set
1150# CONFIG_USB_WUSB_CBAF is not set
1052 1151
1053# 1152#
1054# USB Host Controller Drivers 1153# USB Host Controller Drivers
1055# 1154#
1155# CONFIG_USB_C67X00_HCD is not set
1056# CONFIG_USB_EHCI_HCD is not set 1156# CONFIG_USB_EHCI_HCD is not set
1157# CONFIG_USB_OXU210HP_HCD is not set
1057# CONFIG_USB_ISP116X_HCD is not set 1158# CONFIG_USB_ISP116X_HCD is not set
1159# CONFIG_USB_ISP1760_HCD is not set
1058CONFIG_USB_OHCI_HCD=y 1160CONFIG_USB_OHCI_HCD=y
1059# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1161# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1060# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1162# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -1062,19 +1164,23 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1062CONFIG_USB_UHCI_HCD=y 1164CONFIG_USB_UHCI_HCD=y
1063# CONFIG_USB_SL811_HCD is not set 1165# CONFIG_USB_SL811_HCD is not set
1064# CONFIG_USB_R8A66597_HCD is not set 1166# CONFIG_USB_R8A66597_HCD is not set
1167# CONFIG_USB_WHCI_HCD is not set
1168# CONFIG_USB_HWA_HCD is not set
1065 1169
1066# 1170#
1067# USB Device Class drivers 1171# USB Device Class drivers
1068# 1172#
1069# CONFIG_USB_ACM is not set 1173# CONFIG_USB_ACM is not set
1070# CONFIG_USB_PRINTER is not set 1174# CONFIG_USB_PRINTER is not set
1175# CONFIG_USB_WDM is not set
1176# CONFIG_USB_TMC is not set
1071 1177
1072# 1178#
1073# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1179# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
1074# 1180#
1075 1181
1076# 1182#
1077# may also be needed; see USB_STORAGE Help for more information 1183# see USB_STORAGE Help for more information
1078# 1184#
1079# CONFIG_USB_STORAGE is not set 1185# CONFIG_USB_STORAGE is not set
1080# CONFIG_USB_LIBUSUAL is not set 1186# CONFIG_USB_LIBUSUAL is not set
@@ -1084,16 +1190,11 @@ CONFIG_USB_UHCI_HCD=y
1084# 1190#
1085# CONFIG_USB_MDC800 is not set 1191# CONFIG_USB_MDC800 is not set
1086# CONFIG_USB_MICROTEK is not set 1192# CONFIG_USB_MICROTEK is not set
1087CONFIG_USB_MON=y
1088 1193
1089# 1194#
1090# USB port drivers 1195# USB port drivers
1091# 1196#
1092# CONFIG_USB_USS720 is not set 1197# CONFIG_USB_USS720 is not set
1093
1094#
1095# USB Serial Converter support
1096#
1097# CONFIG_USB_SERIAL is not set 1198# CONFIG_USB_SERIAL is not set
1098 1199
1099# 1200#
@@ -1102,7 +1203,7 @@ CONFIG_USB_MON=y
1102# CONFIG_USB_EMI62 is not set 1203# CONFIG_USB_EMI62 is not set
1103# CONFIG_USB_EMI26 is not set 1204# CONFIG_USB_EMI26 is not set
1104# CONFIG_USB_ADUTUX is not set 1205# CONFIG_USB_ADUTUX is not set
1105# CONFIG_USB_AUERSWALD is not set 1206# CONFIG_USB_SEVSEG is not set
1106# CONFIG_USB_RIO500 is not set 1207# CONFIG_USB_RIO500 is not set
1107# CONFIG_USB_LEGOTOWER is not set 1208# CONFIG_USB_LEGOTOWER is not set
1108# CONFIG_USB_LCD is not set 1209# CONFIG_USB_LCD is not set
@@ -1118,38 +1219,60 @@ CONFIG_USB_MON=y
1118# CONFIG_USB_TRANCEVIBRATOR is not set 1219# CONFIG_USB_TRANCEVIBRATOR is not set
1119# CONFIG_USB_IOWARRIOR is not set 1220# CONFIG_USB_IOWARRIOR is not set
1120# CONFIG_USB_TEST is not set 1221# CONFIG_USB_TEST is not set
1222# CONFIG_USB_ISIGHTFW is not set
1223# CONFIG_USB_VST is not set
1224# CONFIG_USB_GADGET is not set
1121 1225
1122# 1226#
1123# USB DSL modem support 1227# OTG and related infrastructure
1124#
1125
1126#
1127# USB Gadget Support
1128# 1228#
1129# CONFIG_USB_GADGET is not set 1229# CONFIG_UWB is not set
1130# CONFIG_MMC is not set 1230# CONFIG_MMC is not set
1231# CONFIG_MEMSTICK is not set
1131# CONFIG_NEW_LEDS is not set 1232# CONFIG_NEW_LEDS is not set
1233# CONFIG_ACCESSIBILITY is not set
1132# CONFIG_INFINIBAND is not set 1234# CONFIG_INFINIBAND is not set
1133# CONFIG_RTC_CLASS is not set 1235CONFIG_RTC_LIB=y
1236CONFIG_RTC_CLASS=y
1237CONFIG_RTC_HCTOSYS=y
1238CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1239# CONFIG_RTC_DEBUG is not set
1134 1240
1135# 1241#
1136# DMA Engine support 1242# RTC interfaces
1137# 1243#
1138# CONFIG_DMA_ENGINE is not set 1244CONFIG_RTC_INTF_SYSFS=y
1245CONFIG_RTC_INTF_PROC=y
1246CONFIG_RTC_INTF_DEV=y
1247# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1248# CONFIG_RTC_DRV_TEST is not set
1139 1249
1140# 1250#
1141# DMA Clients 1251# SPI RTC drivers
1142# 1252#
1143 1253
1144# 1254#
1145# DMA Devices 1255# Platform RTC drivers
1146# 1256#
1147# CONFIG_AUXDISPLAY is not set 1257# CONFIG_RTC_DRV_DS1286 is not set
1258# CONFIG_RTC_DRV_DS1511 is not set
1259# CONFIG_RTC_DRV_DS1553 is not set
1260# CONFIG_RTC_DRV_DS1742 is not set
1261# CONFIG_RTC_DRV_STK17TA8 is not set
1262# CONFIG_RTC_DRV_M48T86 is not set
1263# CONFIG_RTC_DRV_M48T35 is not set
1264# CONFIG_RTC_DRV_M48T59 is not set
1265# CONFIG_RTC_DRV_BQ4802 is not set
1266# CONFIG_RTC_DRV_V3020 is not set
1148 1267
1149# 1268#
1150# Userspace I/O 1269# on-CPU RTC drivers
1151# 1270#
1271CONFIG_RTC_DRV_PARISC=y
1272# CONFIG_DMADEVICES is not set
1273# CONFIG_AUXDISPLAY is not set
1152# CONFIG_UIO is not set 1274# CONFIG_UIO is not set
1275# CONFIG_STAGING is not set
1153 1276
1154# 1277#
1155# File systems 1278# File systems
@@ -1159,21 +1282,20 @@ CONFIG_EXT2_FS=y
1159# CONFIG_EXT2_FS_XIP is not set 1282# CONFIG_EXT2_FS_XIP is not set
1160CONFIG_EXT3_FS=y 1283CONFIG_EXT3_FS=y
1161# CONFIG_EXT3_FS_XATTR is not set 1284# CONFIG_EXT3_FS_XATTR is not set
1162# CONFIG_EXT4DEV_FS is not set 1285# CONFIG_EXT4_FS is not set
1163CONFIG_JBD=y 1286CONFIG_JBD=y
1164# CONFIG_JBD_DEBUG is not set 1287# CONFIG_JBD_DEBUG is not set
1165# CONFIG_REISERFS_FS is not set 1288# CONFIG_REISERFS_FS is not set
1166# CONFIG_JFS_FS is not set 1289# CONFIG_JFS_FS is not set
1167CONFIG_FS_POSIX_ACL=y 1290CONFIG_FS_POSIX_ACL=y
1291CONFIG_FILE_LOCKING=y
1168# CONFIG_XFS_FS is not set 1292# CONFIG_XFS_FS is not set
1169# CONFIG_GFS2_FS is not set
1170# CONFIG_OCFS2_FS is not set 1293# CONFIG_OCFS2_FS is not set
1171# CONFIG_MINIX_FS is not set 1294# CONFIG_BTRFS_FS is not set
1172# CONFIG_ROMFS_FS is not set 1295CONFIG_DNOTIFY=y
1173CONFIG_INOTIFY=y 1296CONFIG_INOTIFY=y
1174CONFIG_INOTIFY_USER=y 1297CONFIG_INOTIFY_USER=y
1175# CONFIG_QUOTA is not set 1298# CONFIG_QUOTA is not set
1176CONFIG_DNOTIFY=y
1177CONFIG_AUTOFS_FS=y 1299CONFIG_AUTOFS_FS=y
1178# CONFIG_AUTOFS4_FS is not set 1300# CONFIG_AUTOFS4_FS is not set
1179# CONFIG_FUSE_FS is not set 1301# CONFIG_FUSE_FS is not set
@@ -1202,16 +1324,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1202CONFIG_PROC_FS=y 1324CONFIG_PROC_FS=y
1203CONFIG_PROC_KCORE=y 1325CONFIG_PROC_KCORE=y
1204CONFIG_PROC_SYSCTL=y 1326CONFIG_PROC_SYSCTL=y
1327CONFIG_PROC_PAGE_MONITOR=y
1205CONFIG_SYSFS=y 1328CONFIG_SYSFS=y
1206CONFIG_TMPFS=y 1329CONFIG_TMPFS=y
1207# CONFIG_TMPFS_POSIX_ACL is not set 1330# CONFIG_TMPFS_POSIX_ACL is not set
1208# CONFIG_HUGETLB_PAGE is not set 1331# CONFIG_HUGETLB_PAGE is not set
1209CONFIG_RAMFS=y
1210# CONFIG_CONFIGFS_FS is not set 1332# CONFIG_CONFIGFS_FS is not set
1211 1333CONFIG_MISC_FILESYSTEMS=y
1212#
1213# Miscellaneous filesystems
1214#
1215# CONFIG_ADFS_FS is not set 1334# CONFIG_ADFS_FS is not set
1216# CONFIG_AFFS_FS is not set 1335# CONFIG_AFFS_FS is not set
1217# CONFIG_ECRYPT_FS is not set 1336# CONFIG_ECRYPT_FS is not set
@@ -1221,33 +1340,32 @@ CONFIG_RAMFS=y
1221# CONFIG_BFS_FS is not set 1340# CONFIG_BFS_FS is not set
1222# CONFIG_EFS_FS is not set 1341# CONFIG_EFS_FS is not set
1223# CONFIG_CRAMFS is not set 1342# CONFIG_CRAMFS is not set
1343# CONFIG_SQUASHFS is not set
1224# CONFIG_VXFS_FS is not set 1344# CONFIG_VXFS_FS is not set
1345# CONFIG_MINIX_FS is not set
1346# CONFIG_OMFS_FS is not set
1225# CONFIG_HPFS_FS is not set 1347# CONFIG_HPFS_FS is not set
1226# CONFIG_QNX4FS_FS is not set 1348# CONFIG_QNX4FS_FS is not set
1349# CONFIG_ROMFS_FS is not set
1227# CONFIG_SYSV_FS is not set 1350# CONFIG_SYSV_FS is not set
1228# CONFIG_UFS_FS is not set 1351# CONFIG_UFS_FS is not set
1229 1352CONFIG_NETWORK_FILESYSTEMS=y
1230#
1231# Network File Systems
1232#
1233CONFIG_NFS_FS=y 1353CONFIG_NFS_FS=y
1234CONFIG_NFS_V3=y 1354CONFIG_NFS_V3=y
1235# CONFIG_NFS_V3_ACL is not set 1355# CONFIG_NFS_V3_ACL is not set
1236# CONFIG_NFS_V4 is not set 1356# CONFIG_NFS_V4 is not set
1237# CONFIG_NFS_DIRECTIO is not set 1357CONFIG_ROOT_NFS=y
1238CONFIG_NFSD=y 1358CONFIG_NFSD=y
1239CONFIG_NFSD_V3=y 1359CONFIG_NFSD_V3=y
1240# CONFIG_NFSD_V3_ACL is not set 1360# CONFIG_NFSD_V3_ACL is not set
1241CONFIG_NFSD_V4=y 1361CONFIG_NFSD_V4=y
1242CONFIG_NFSD_TCP=y
1243CONFIG_ROOT_NFS=y
1244CONFIG_LOCKD=y 1362CONFIG_LOCKD=y
1245CONFIG_LOCKD_V4=y 1363CONFIG_LOCKD_V4=y
1246CONFIG_EXPORTFS=y 1364CONFIG_EXPORTFS=y
1247CONFIG_NFS_COMMON=y 1365CONFIG_NFS_COMMON=y
1248CONFIG_SUNRPC=y 1366CONFIG_SUNRPC=y
1249CONFIG_SUNRPC_GSS=y 1367CONFIG_SUNRPC_GSS=y
1250# CONFIG_SUNRPC_BIND34 is not set 1368# CONFIG_SUNRPC_REGISTER_V4 is not set
1251CONFIG_RPCSEC_GSS_KRB5=y 1369CONFIG_RPCSEC_GSS_KRB5=y
1252CONFIG_RPCSEC_GSS_SPKM3=m 1370CONFIG_RPCSEC_GSS_SPKM3=m
1253CONFIG_SMB_FS=m 1371CONFIG_SMB_FS=m
@@ -1256,6 +1374,7 @@ CONFIG_SMB_NLS_REMOTE="cp437"
1256CONFIG_CIFS=m 1374CONFIG_CIFS=m
1257# CONFIG_CIFS_STATS is not set 1375# CONFIG_CIFS_STATS is not set
1258# CONFIG_CIFS_WEAK_PW_HASH is not set 1376# CONFIG_CIFS_WEAK_PW_HASH is not set
1377# CONFIG_CIFS_UPCALL is not set
1259# CONFIG_CIFS_XATTR is not set 1378# CONFIG_CIFS_XATTR is not set
1260# CONFIG_CIFS_DEBUG2 is not set 1379# CONFIG_CIFS_DEBUG2 is not set
1261# CONFIG_CIFS_EXPERIMENTAL is not set 1380# CONFIG_CIFS_EXPERIMENTAL is not set
@@ -1268,10 +1387,6 @@ CONFIG_CIFS=m
1268# 1387#
1269# CONFIG_PARTITION_ADVANCED is not set 1388# CONFIG_PARTITION_ADVANCED is not set
1270CONFIG_MSDOS_PARTITION=y 1389CONFIG_MSDOS_PARTITION=y
1271
1272#
1273# Native Language Support
1274#
1275CONFIG_NLS=y 1390CONFIG_NLS=y
1276CONFIG_NLS_DEFAULT="iso8859-1" 1391CONFIG_NLS_DEFAULT="iso8859-1"
1277CONFIG_NLS_CODEPAGE_437=y 1392CONFIG_NLS_CODEPAGE_437=y
@@ -1312,33 +1427,28 @@ CONFIG_NLS_ISO8859_15=m
1312CONFIG_NLS_KOI8_R=m 1427CONFIG_NLS_KOI8_R=m
1313CONFIG_NLS_KOI8_U=m 1428CONFIG_NLS_KOI8_U=m
1314CONFIG_NLS_UTF8=y 1429CONFIG_NLS_UTF8=y
1315
1316#
1317# Distributed Lock Manager
1318#
1319# CONFIG_DLM is not set 1430# CONFIG_DLM is not set
1320 1431
1321# 1432#
1322# Profiling support
1323#
1324CONFIG_PROFILING=y
1325CONFIG_OPROFILE=m
1326
1327#
1328# Kernel hacking 1433# Kernel hacking
1329# 1434#
1330# CONFIG_PRINTK_TIME is not set 1435# CONFIG_PRINTK_TIME is not set
1436CONFIG_ENABLE_WARN_DEPRECATED=y
1331CONFIG_ENABLE_MUST_CHECK=y 1437CONFIG_ENABLE_MUST_CHECK=y
1438CONFIG_FRAME_WARN=1024
1332CONFIG_MAGIC_SYSRQ=y 1439CONFIG_MAGIC_SYSRQ=y
1333# CONFIG_UNUSED_SYMBOLS is not set 1440# CONFIG_UNUSED_SYMBOLS is not set
1334# CONFIG_DEBUG_FS is not set 1441CONFIG_DEBUG_FS=y
1335CONFIG_HEADERS_CHECK=y 1442CONFIG_HEADERS_CHECK=y
1336CONFIG_DEBUG_KERNEL=y 1443CONFIG_DEBUG_KERNEL=y
1337# CONFIG_DEBUG_SHIRQ is not set 1444# CONFIG_DEBUG_SHIRQ is not set
1338CONFIG_DETECT_SOFTLOCKUP=y 1445CONFIG_DETECT_SOFTLOCKUP=y
1446# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1447CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1339CONFIG_SCHED_DEBUG=y 1448CONFIG_SCHED_DEBUG=y
1340# CONFIG_SCHEDSTATS is not set 1449# CONFIG_SCHEDSTATS is not set
1341# CONFIG_TIMER_STATS is not set 1450# CONFIG_TIMER_STATS is not set
1451# CONFIG_DEBUG_OBJECTS is not set
1342# CONFIG_DEBUG_SLAB is not set 1452# CONFIG_DEBUG_SLAB is not set
1343# CONFIG_DEBUG_RT_MUTEXES is not set 1453# CONFIG_DEBUG_RT_MUTEXES is not set
1344# CONFIG_RT_MUTEX_TESTER is not set 1454# CONFIG_RT_MUTEX_TESTER is not set
@@ -1350,10 +1460,33 @@ CONFIG_DEBUG_MUTEXES=y
1350CONFIG_DEBUG_BUGVERBOSE=y 1460CONFIG_DEBUG_BUGVERBOSE=y
1351# CONFIG_DEBUG_INFO is not set 1461# CONFIG_DEBUG_INFO is not set
1352# CONFIG_DEBUG_VM is not set 1462# CONFIG_DEBUG_VM is not set
1463# CONFIG_DEBUG_WRITECOUNT is not set
1464CONFIG_DEBUG_MEMORY_INIT=y
1353# CONFIG_DEBUG_LIST is not set 1465# CONFIG_DEBUG_LIST is not set
1354CONFIG_FORCED_INLINING=y 1466# CONFIG_DEBUG_SG is not set
1467# CONFIG_DEBUG_NOTIFIERS is not set
1468# CONFIG_BOOT_PRINTK_DELAY is not set
1355# CONFIG_RCU_TORTURE_TEST is not set 1469# CONFIG_RCU_TORTURE_TEST is not set
1470# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1471# CONFIG_BACKTRACE_SELF_TEST is not set
1472# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1356# CONFIG_FAULT_INJECTION is not set 1473# CONFIG_FAULT_INJECTION is not set
1474# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1475CONFIG_NOP_TRACER=y
1476CONFIG_RING_BUFFER=y
1477CONFIG_TRACING=y
1478
1479#
1480# Tracers
1481#
1482# CONFIG_SCHED_TRACER is not set
1483# CONFIG_CONTEXT_SWITCH_TRACER is not set
1484# CONFIG_BOOT_TRACER is not set
1485# CONFIG_TRACE_BRANCH_PROFILING is not set
1486# CONFIG_FTRACE_STARTUP_TEST is not set
1487# CONFIG_BUILD_DOCSRC is not set
1488# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1489# CONFIG_SAMPLES is not set
1357# CONFIG_DEBUG_RODATA is not set 1490# CONFIG_DEBUG_RODATA is not set
1358 1491
1359# 1492#
@@ -1362,56 +1495,112 @@ CONFIG_FORCED_INLINING=y
1362CONFIG_KEYS=y 1495CONFIG_KEYS=y
1363CONFIG_KEYS_DEBUG_PROC_KEYS=y 1496CONFIG_KEYS_DEBUG_PROC_KEYS=y
1364# CONFIG_SECURITY is not set 1497# CONFIG_SECURITY is not set
1498# CONFIG_SECURITYFS is not set
1499# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1365CONFIG_CRYPTO=y 1500CONFIG_CRYPTO=y
1501
1502#
1503# Crypto core or helper
1504#
1505# CONFIG_CRYPTO_FIPS is not set
1366CONFIG_CRYPTO_ALGAPI=y 1506CONFIG_CRYPTO_ALGAPI=y
1507CONFIG_CRYPTO_ALGAPI2=y
1508CONFIG_CRYPTO_AEAD=y
1509CONFIG_CRYPTO_AEAD2=y
1367CONFIG_CRYPTO_BLKCIPHER=y 1510CONFIG_CRYPTO_BLKCIPHER=y
1511CONFIG_CRYPTO_BLKCIPHER2=y
1368CONFIG_CRYPTO_HASH=y 1512CONFIG_CRYPTO_HASH=y
1513CONFIG_CRYPTO_HASH2=y
1514CONFIG_CRYPTO_RNG2=y
1369CONFIG_CRYPTO_MANAGER=y 1515CONFIG_CRYPTO_MANAGER=y
1516CONFIG_CRYPTO_MANAGER2=y
1517# CONFIG_CRYPTO_GF128MUL is not set
1518CONFIG_CRYPTO_NULL=m
1519# CONFIG_CRYPTO_CRYPTD is not set
1520CONFIG_CRYPTO_AUTHENC=y
1521CONFIG_CRYPTO_TEST=m
1522
1523#
1524# Authenticated Encryption with Associated Data
1525#
1526# CONFIG_CRYPTO_CCM is not set
1527# CONFIG_CRYPTO_GCM is not set
1528# CONFIG_CRYPTO_SEQIV is not set
1529
1530#
1531# Block modes
1532#
1533CONFIG_CRYPTO_CBC=y
1534# CONFIG_CRYPTO_CTR is not set
1535# CONFIG_CRYPTO_CTS is not set
1536# CONFIG_CRYPTO_ECB is not set
1537# CONFIG_CRYPTO_LRW is not set
1538# CONFIG_CRYPTO_PCBC is not set
1539# CONFIG_CRYPTO_XTS is not set
1540
1541#
1542# Hash modes
1543#
1370CONFIG_CRYPTO_HMAC=y 1544CONFIG_CRYPTO_HMAC=y
1371# CONFIG_CRYPTO_XCBC is not set 1545# CONFIG_CRYPTO_XCBC is not set
1372CONFIG_CRYPTO_NULL=m 1546
1547#
1548# Digest
1549#
1550CONFIG_CRYPTO_CRC32C=m
1373CONFIG_CRYPTO_MD4=m 1551CONFIG_CRYPTO_MD4=m
1374CONFIG_CRYPTO_MD5=y 1552CONFIG_CRYPTO_MD5=y
1553CONFIG_CRYPTO_MICHAEL_MIC=m
1554# CONFIG_CRYPTO_RMD128 is not set
1555# CONFIG_CRYPTO_RMD160 is not set
1556# CONFIG_CRYPTO_RMD256 is not set
1557# CONFIG_CRYPTO_RMD320 is not set
1375CONFIG_CRYPTO_SHA1=y 1558CONFIG_CRYPTO_SHA1=y
1376CONFIG_CRYPTO_SHA256=m 1559CONFIG_CRYPTO_SHA256=m
1377CONFIG_CRYPTO_SHA512=m 1560CONFIG_CRYPTO_SHA512=m
1378CONFIG_CRYPTO_WP512=m
1379CONFIG_CRYPTO_TGR192=m 1561CONFIG_CRYPTO_TGR192=m
1380# CONFIG_CRYPTO_GF128MUL is not set 1562CONFIG_CRYPTO_WP512=m
1381# CONFIG_CRYPTO_ECB is not set 1563
1382CONFIG_CRYPTO_CBC=y 1564#
1383# CONFIG_CRYPTO_PCBC is not set 1565# Ciphers
1384# CONFIG_CRYPTO_LRW is not set 1566#
1385# CONFIG_CRYPTO_XTS is not set
1386# CONFIG_CRYPTO_CRYPTD is not set
1387CONFIG_CRYPTO_DES=y
1388# CONFIG_CRYPTO_FCRYPT is not set
1389CONFIG_CRYPTO_BLOWFISH=m
1390CONFIG_CRYPTO_TWOFISH=m
1391CONFIG_CRYPTO_TWOFISH_COMMON=m
1392CONFIG_CRYPTO_SERPENT=m
1393CONFIG_CRYPTO_AES=m 1567CONFIG_CRYPTO_AES=m
1568CONFIG_CRYPTO_ANUBIS=m
1569CONFIG_CRYPTO_ARC4=m
1570CONFIG_CRYPTO_BLOWFISH=m
1571# CONFIG_CRYPTO_CAMELLIA is not set
1394CONFIG_CRYPTO_CAST5=m 1572CONFIG_CRYPTO_CAST5=m
1395CONFIG_CRYPTO_CAST6=m 1573CONFIG_CRYPTO_CAST6=m
1396CONFIG_CRYPTO_TEA=m 1574CONFIG_CRYPTO_DES=y
1397CONFIG_CRYPTO_ARC4=m 1575# CONFIG_CRYPTO_FCRYPT is not set
1398CONFIG_CRYPTO_KHAZAD=m 1576CONFIG_CRYPTO_KHAZAD=m
1399CONFIG_CRYPTO_ANUBIS=m 1577# CONFIG_CRYPTO_SALSA20 is not set
1400# CONFIG_CRYPTO_SEED is not set 1578# CONFIG_CRYPTO_SEED is not set
1579CONFIG_CRYPTO_SERPENT=m
1580CONFIG_CRYPTO_TEA=m
1581CONFIG_CRYPTO_TWOFISH=m
1582CONFIG_CRYPTO_TWOFISH_COMMON=m
1583
1584#
1585# Compression
1586#
1401CONFIG_CRYPTO_DEFLATE=y 1587CONFIG_CRYPTO_DEFLATE=y
1402CONFIG_CRYPTO_MICHAEL_MIC=m 1588# CONFIG_CRYPTO_LZO is not set
1403CONFIG_CRYPTO_CRC32C=m 1589
1404# CONFIG_CRYPTO_CAMELLIA is not set 1590#
1405CONFIG_CRYPTO_TEST=m 1591# Random Number Generation
1406# CONFIG_CRYPTO_AUTHENC is not set 1592#
1593# CONFIG_CRYPTO_ANSI_CPRNG is not set
1407# CONFIG_CRYPTO_HW is not set 1594# CONFIG_CRYPTO_HW is not set
1408 1595
1409# 1596#
1410# Library routines 1597# Library routines
1411# 1598#
1412CONFIG_BITREVERSE=y 1599CONFIG_BITREVERSE=y
1600CONFIG_GENERIC_FIND_LAST_BIT=y
1413CONFIG_CRC_CCITT=m 1601CONFIG_CRC_CCITT=m
1414# CONFIG_CRC16 is not set 1602# CONFIG_CRC16 is not set
1603# CONFIG_CRC_T10DIF is not set
1415# CONFIG_CRC_ITU_T is not set 1604# CONFIG_CRC_ITU_T is not set
1416CONFIG_CRC32=y 1605CONFIG_CRC32=y
1417# CONFIG_CRC7 is not set 1606# CONFIG_CRC7 is not set
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c
index bd9a4db3bd4c..5cbe9f9e5d9e 100644
--- a/arch/parisc/hpux/fs.c
+++ b/arch/parisc/hpux/fs.c
@@ -137,7 +137,6 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
137 error = count - buf.count; 137 error = count - buf.count;
138 } 138 }
139 139
140out_putf:
141 fput(file); 140 fput(file);
142out: 141out:
143 return error; 142 return error;
diff --git a/arch/parisc/include/asm/assembly.h b/arch/parisc/include/asm/assembly.h
index ffb208840ecc..89fb40005e3f 100644
--- a/arch/parisc/include/asm/assembly.h
+++ b/arch/parisc/include/asm/assembly.h
@@ -79,6 +79,7 @@
79 79
80#include <asm/asm-offsets.h> 80#include <asm/asm-offsets.h>
81#include <asm/page.h> 81#include <asm/page.h>
82#include <asm/types.h>
82 83
83#include <asm/asmregs.h> 84#include <asm/asmregs.h>
84 85
@@ -129,27 +130,27 @@
129 130
130 /* Shift Left - note the r and t can NOT be the same! */ 131 /* Shift Left - note the r and t can NOT be the same! */
131 .macro shl r, sa, t 132 .macro shl r, sa, t
132 dep,z \r, 31-\sa, 32-\sa, \t 133 dep,z \r, 31-(\sa), 32-(\sa), \t
133 .endm 134 .endm
134 135
135 /* The PA 2.0 shift left */ 136 /* The PA 2.0 shift left */
136 .macro shlw r, sa, t 137 .macro shlw r, sa, t
137 depw,z \r, 31-\sa, 32-\sa, \t 138 depw,z \r, 31-(\sa), 32-(\sa), \t
138 .endm 139 .endm
139 140
140 /* And the PA 2.0W shift left */ 141 /* And the PA 2.0W shift left */
141 .macro shld r, sa, t 142 .macro shld r, sa, t
142 depd,z \r, 63-\sa, 64-\sa, \t 143 depd,z \r, 63-(\sa), 64-(\sa), \t
143 .endm 144 .endm
144 145
145 /* Shift Right - note the r and t can NOT be the same! */ 146 /* Shift Right - note the r and t can NOT be the same! */
146 .macro shr r, sa, t 147 .macro shr r, sa, t
147 extru \r, 31-\sa, 32-\sa, \t 148 extru \r, 31-(\sa), 32-(\sa), \t
148 .endm 149 .endm
149 150
150 /* pa20w version of shift right */ 151 /* pa20w version of shift right */
151 .macro shrd r, sa, t 152 .macro shrd r, sa, t
152 extrd,u \r, 63-\sa, 64-\sa, \t 153 extrd,u \r, 63-(\sa), 64-(\sa), \t
153 .endm 154 .endm
154 155
155 /* load 32-bit 'value' into 'reg' compensating for the ldil 156 /* load 32-bit 'value' into 'reg' compensating for the ldil
diff --git a/arch/parisc/include/asm/io.h b/arch/parisc/include/asm/io.h
index d3031d1f9d03..1f6d2ae7aba5 100644
--- a/arch/parisc/include/asm/io.h
+++ b/arch/parisc/include/asm/io.h
@@ -174,15 +174,48 @@ static inline void __raw_writeq(unsigned long long b, volatile void __iomem *add
174 *(volatile unsigned long long __force *) addr = b; 174 *(volatile unsigned long long __force *) addr = b;
175} 175}
176 176
177/* readb can never be const, so use __fswab instead of le*_to_cpu */ 177static inline unsigned char readb(const volatile void __iomem *addr)
178#define readb(addr) __raw_readb(addr) 178{
179#define readw(addr) le16_to_cpu(__raw_readw(addr)) 179 return __raw_readb(addr);
180#define readl(addr) le32_to_cpu(__raw_readl(addr)) 180}
181#define readq(addr) le64_to_cpu(__raw_readq(addr)) 181static inline unsigned short readw(const volatile void __iomem *addr)
182#define writeb(b, addr) __raw_writeb(b, addr) 182{
183#define writew(b, addr) __raw_writew(cpu_to_le16(b), addr) 183 return le16_to_cpu(__raw_readw(addr));
184#define writel(b, addr) __raw_writel(cpu_to_le32(b), addr) 184}
185#define writeq(b, addr) __raw_writeq(cpu_to_le64(b), addr) 185static inline unsigned int readl(const volatile void __iomem *addr)
186{
187 return le32_to_cpu(__raw_readl(addr));
188}
189static inline unsigned long long readq(const volatile void __iomem *addr)
190{
191 return le64_to_cpu(__raw_readq(addr));
192}
193
194static inline void writeb(unsigned char b, volatile void __iomem *addr)
195{
196 __raw_writeb(b, addr);
197}
198static inline void writew(unsigned short w, volatile void __iomem *addr)
199{
200 __raw_writew(cpu_to_le16(w), addr);
201}
202static inline void writel(unsigned int l, volatile void __iomem *addr)
203{
204 __raw_writel(cpu_to_le32(l), addr);
205}
206static inline void writeq(unsigned long long q, volatile void __iomem *addr)
207{
208 __raw_writeq(cpu_to_le64(q), addr);
209}
210
211#define readb readb
212#define readw readw
213#define readl readl
214#define readq readq
215#define writeb writeb
216#define writew writew
217#define writel writel
218#define writeq writeq
186 219
187#define readb_relaxed(addr) readb(addr) 220#define readb_relaxed(addr) readb(addr)
188#define readw_relaxed(addr) readw(addr) 221#define readw_relaxed(addr) readw(addr)
diff --git a/arch/parisc/include/asm/irq.h b/arch/parisc/include/asm/irq.h
index 399c81981ed5..dfa26b67f919 100644
--- a/arch/parisc/include/asm/irq.h
+++ b/arch/parisc/include/asm/irq.h
@@ -49,7 +49,7 @@ extern unsigned long txn_alloc_addr(unsigned int);
49extern unsigned long txn_affinity_addr(unsigned int irq, int cpu); 49extern unsigned long txn_affinity_addr(unsigned int irq, int cpu);
50 50
51extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *); 51extern int cpu_claim_irq(unsigned int irq, struct irq_chip *, void *);
52extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest); 52extern int cpu_check_affinity(unsigned int irq, const struct cpumask *dest);
53 53
54/* soft power switch support (power.c) */ 54/* soft power switch support (power.c) */
55extern struct tasklet_struct power_tasklet; 55extern struct tasklet_struct power_tasklet;
diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
index 1c6dbb6f6e56..cd4c0b2a8e70 100644
--- a/arch/parisc/include/asm/uaccess.h
+++ b/arch/parisc/include/asm/uaccess.h
@@ -241,6 +241,7 @@ unsigned long copy_in_user(void __user *dst, const void __user *src, unsigned lo
241#define __copy_to_user_inatomic __copy_to_user 241#define __copy_to_user_inatomic __copy_to_user
242#define __copy_from_user_inatomic __copy_from_user 242#define __copy_from_user_inatomic __copy_from_user
243 243
244struct pt_regs;
244int fixup_exception(struct pt_regs *regs); 245int fixup_exception(struct pt_regs *regs);
245 246
246#endif /* __PARISC_UACCESS_H */ 247#endif /* __PARISC_UACCESS_H */
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
index 5259d8c20676..837530ea32e7 100644
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -551,10 +551,7 @@ void flush_cache_range(struct vm_area_struct *vma,
551{ 551{
552 int sr3; 552 int sr3;
553 553
554 if (!vma->vm_mm->context) { 554 BUG_ON(!vma->vm_mm->context);
555 BUG();
556 return;
557 }
558 555
559 sr3 = mfsp(3); 556 sr3 = mfsp(3);
560 if (vma->vm_mm->context == sr3) { 557 if (vma->vm_mm->context == sr3) {
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index d1fa4edd2d80..0db9fdcb7709 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -368,7 +368,7 @@
368 * abstractions for the macros */ 368 * abstractions for the macros */
369 .macro EXTR reg1,start,length,reg2 369 .macro EXTR reg1,start,length,reg2
370#ifdef CONFIG_64BIT 370#ifdef CONFIG_64BIT
371 extrd,u \reg1,32+\start,\length,\reg2 371 extrd,u \reg1,32+(\start),\length,\reg2
372#else 372#else
373 extrw,u \reg1,\start,\length,\reg2 373 extrw,u \reg1,\start,\length,\reg2
374#endif 374#endif
@@ -376,7 +376,7 @@
376 376
377 .macro DEP reg1,start,length,reg2 377 .macro DEP reg1,start,length,reg2
378#ifdef CONFIG_64BIT 378#ifdef CONFIG_64BIT
379 depd \reg1,32+\start,\length,\reg2 379 depd \reg1,32+(\start),\length,\reg2
380#else 380#else
381 depw \reg1,\start,\length,\reg2 381 depw \reg1,\start,\length,\reg2
382#endif 382#endif
@@ -384,7 +384,7 @@
384 384
385 .macro DEPI val,start,length,reg 385 .macro DEPI val,start,length,reg
386#ifdef CONFIG_64BIT 386#ifdef CONFIG_64BIT
387 depdi \val,32+\start,\length,\reg 387 depdi \val,32+(\start),\length,\reg
388#else 388#else
389 depwi \val,\start,\length,\reg 389 depwi \val,\start,\length,\reg
390#endif 390#endif
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c
index 03f26bd75bd8..f6d241238a78 100644
--- a/arch/parisc/kernel/firmware.c
+++ b/arch/parisc/kernel/firmware.c
@@ -151,7 +151,7 @@ static void convert_to_wide(unsigned long *addr)
151} 151}
152 152
153#ifdef CONFIG_64BIT 153#ifdef CONFIG_64BIT
154void __init set_firmware_width_unlocked(void) 154void __cpuinit set_firmware_width_unlocked(void)
155{ 155{
156 int ret; 156 int ret;
157 157
@@ -168,7 +168,7 @@ void __init set_firmware_width_unlocked(void)
168 * This function must be called before any pdc_* function that uses the 168 * This function must be called before any pdc_* function that uses the
169 * convert_to_wide function. 169 * convert_to_wide function.
170 */ 170 */
171void __init set_firmware_width(void) 171void __cpuinit set_firmware_width(void)
172{ 172{
173 unsigned long flags; 173 unsigned long flags;
174 spin_lock_irqsave(&pdc_lock, flags); 174 spin_lock_irqsave(&pdc_lock, flags);
@@ -176,11 +176,11 @@ void __init set_firmware_width(void)
176 spin_unlock_irqrestore(&pdc_lock, flags); 176 spin_unlock_irqrestore(&pdc_lock, flags);
177} 177}
178#else 178#else
179void __init set_firmware_width_unlocked(void) { 179void __cpuinit set_firmware_width_unlocked(void) {
180 return; 180 return;
181} 181}
182 182
183void __init set_firmware_width(void) { 183void __cpuinit set_firmware_width(void) {
184 return; 184 return;
185} 185}
186#endif /*CONFIG_64BIT*/ 186#endif /*CONFIG_64BIT*/
@@ -302,7 +302,7 @@ int pdc_chassis_warn(unsigned long *warn)
302 return retval; 302 return retval;
303} 303}
304 304
305int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info) 305int __cpuinit pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info)
306{ 306{
307 int ret; 307 int ret;
308 308
@@ -323,7 +323,7 @@ int __init pdc_coproc_cfg_unlocked(struct pdc_coproc_cfg *pdc_coproc_info)
323 * This PDC call returns the presence and status of all the coprocessors 323 * This PDC call returns the presence and status of all the coprocessors
324 * attached to the processor. 324 * attached to the processor.
325 */ 325 */
326int __init pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info) 326int __cpuinit pdc_coproc_cfg(struct pdc_coproc_cfg *pdc_coproc_info)
327{ 327{
328 int ret; 328 int ret;
329 unsigned long flags; 329 unsigned long flags;
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c
index 49482806863f..2b5f5915dd1d 100644
--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -112,7 +112,7 @@ void cpu_end_irq(unsigned int irq)
112} 112}
113 113
114#ifdef CONFIG_SMP 114#ifdef CONFIG_SMP
115int cpu_check_affinity(unsigned int irq, cpumask_t *dest) 115int cpu_check_affinity(unsigned int irq, const struct cpumask *dest)
116{ 116{
117 int cpu_dest; 117 int cpu_dest;
118 118
@@ -120,23 +120,25 @@ int cpu_check_affinity(unsigned int irq, cpumask_t *dest)
120 if (CHECK_IRQ_PER_CPU(irq)) { 120 if (CHECK_IRQ_PER_CPU(irq)) {
121 /* Bad linux design decision. The mask has already 121 /* Bad linux design decision. The mask has already
122 * been set; we must reset it */ 122 * been set; we must reset it */
123 cpumask_setall(irq_desc[irq].affinity); 123 cpumask_setall(&irq_desc[irq].affinity);
124 return -EINVAL; 124 return -EINVAL;
125 } 125 }
126 126
127 /* whatever mask they set, we just allow one CPU */ 127 /* whatever mask they set, we just allow one CPU */
128 cpu_dest = first_cpu(*dest); 128 cpu_dest = first_cpu(*dest);
129 *dest = cpumask_of_cpu(cpu_dest);
130 129
131 return 0; 130 return cpu_dest;
132} 131}
133 132
134static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) 133static void cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest)
135{ 134{
136 if (cpu_check_affinity(irq, dest)) 135 int cpu_dest;
136
137 cpu_dest = cpu_check_affinity(irq, dest);
138 if (cpu_dest < 0)
137 return; 139 return;
138 140
139 cpumask_copy(irq_desc[irq].affinity, dest); 141 cpumask_copy(&irq_desc[irq].affinity, dest);
140} 142}
141#endif 143#endif
142 144
@@ -295,7 +297,7 @@ int txn_alloc_irq(unsigned int bits_wide)
295unsigned long txn_affinity_addr(unsigned int irq, int cpu) 297unsigned long txn_affinity_addr(unsigned int irq, int cpu)
296{ 298{
297#ifdef CONFIG_SMP 299#ifdef CONFIG_SMP
298 cpumask_copy(irq_desc[irq].affinity, cpumask_of(cpu)); 300 cpumask_copy(&irq_desc[irq].affinity, cpumask_of(cpu));
299#endif 301#endif
300 302
301 return per_cpu(cpu_data, cpu).txn_addr; 303 return per_cpu(cpu_data, cpu).txn_addr;
@@ -352,7 +354,7 @@ void do_cpu_irq_mask(struct pt_regs *regs)
352 irq = eirr_to_irq(eirr_val); 354 irq = eirr_to_irq(eirr_val);
353 355
354#ifdef CONFIG_SMP 356#ifdef CONFIG_SMP
355 cpumask_copy(&dest, irq_desc[irq].affinity); 357 cpumask_copy(&dest, &irq_desc[irq].affinity);
356 if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) && 358 if (CHECK_IRQ_PER_CPU(irq_desc[irq].status) &&
357 !cpu_isset(smp_processor_id(), dest)) { 359 !cpu_isset(smp_processor_id(), dest)) {
358 int cpu = first_cpu(dest); 360 int cpu = first_cpu(dest);
diff --git a/arch/parisc/kernel/pci-dma.c b/arch/parisc/kernel/pci-dma.c
index df47895db828..7d927eac932b 100644
--- a/arch/parisc/kernel/pci-dma.c
+++ b/arch/parisc/kernel/pci-dma.c
@@ -447,10 +447,7 @@ static void pa11_dma_free_consistent (struct device *dev, size_t size, void *vad
447 447
448static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction) 448static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t size, enum dma_data_direction direction)
449{ 449{
450 if (direction == DMA_NONE) { 450 BUG_ON(direction == DMA_NONE);
451 printk(KERN_ERR "pa11_dma_map_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0));
452 BUG();
453 }
454 451
455 flush_kernel_dcache_range((unsigned long) addr, size); 452 flush_kernel_dcache_range((unsigned long) addr, size);
456 return virt_to_phys(addr); 453 return virt_to_phys(addr);
@@ -458,10 +455,7 @@ static dma_addr_t pa11_dma_map_single(struct device *dev, void *addr, size_t siz
458 455
459static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction) 456static void pa11_dma_unmap_single(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction direction)
460{ 457{
461 if (direction == DMA_NONE) { 458 BUG_ON(direction == DMA_NONE);
462 printk(KERN_ERR "pa11_dma_unmap_single(PCI_DMA_NONE) called by %p\n", __builtin_return_address(0));
463 BUG();
464 }
465 459
466 if (direction == DMA_TO_DEVICE) 460 if (direction == DMA_TO_DEVICE)
467 return; 461 return;
@@ -480,8 +474,7 @@ static int pa11_dma_map_sg(struct device *dev, struct scatterlist *sglist, int n
480{ 474{
481 int i; 475 int i;
482 476
483 if (direction == DMA_NONE) 477 BUG_ON(direction == DMA_NONE);
484 BUG();
485 478
486 for (i = 0; i < nents; i++, sglist++ ) { 479 for (i = 0; i < nents; i++, sglist++ ) {
487 unsigned long vaddr = sg_virt_addr(sglist); 480 unsigned long vaddr = sg_virt_addr(sglist);
@@ -496,8 +489,7 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in
496{ 489{
497 int i; 490 int i;
498 491
499 if (direction == DMA_NONE) 492 BUG_ON(direction == DMA_NONE);
500 BUG();
501 493
502 if (direction == DMA_TO_DEVICE) 494 if (direction == DMA_TO_DEVICE)
503 return; 495 return;
@@ -511,16 +503,14 @@ static void pa11_dma_unmap_sg(struct device *dev, struct scatterlist *sglist, in
511 503
512static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) 504static void pa11_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction)
513{ 505{
514 if (direction == DMA_NONE) 506 BUG_ON(direction == DMA_NONE);
515 BUG();
516 507
517 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); 508 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size);
518} 509}
519 510
520static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction) 511static void pa11_dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle, unsigned long offset, size_t size, enum dma_data_direction direction)
521{ 512{
522 if (direction == DMA_NONE) 513 BUG_ON(direction == DMA_NONE);
523 BUG();
524 514
525 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size); 515 flush_kernel_dcache_range((unsigned long) phys_to_virt(dma_handle) + offset, size);
526} 516}
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 7c155c254e72..9d704d9831d1 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -304,10 +304,8 @@ static void __init setup_bootmem(void)
304 */ 304 */
305 max_low_pfn = max_pfn; 305 max_low_pfn = max_pfn;
306 306
307 if ((bootmap_pfn - bootmap_start_pfn) != bootmap_pages) { 307 /* bootmap sizing messed up? */
308 printk(KERN_WARNING "WARNING! bootmap sizing is messed up!\n"); 308 BUG_ON((bootmap_pfn - bootmap_start_pfn) != bootmap_pages);
309 BUG();
310 }
311 309
312 /* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */ 310 /* reserve PAGE0 pdc memory, kernel text/data/bss & bootmap */
313 311
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index b6eee7c93cdd..ac14f5245d2a 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_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.27-rc3 3# Linux kernel version: 2.6.29-rc8
4# Wed Aug 20 08:16:53 2008 4# Fri Mar 13 09:28:45 2009
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -16,13 +16,14 @@ CONFIG_PPC_FPU=y
16CONFIG_ALTIVEC=y 16CONFIG_ALTIVEC=y
17# CONFIG_VSX is not set 17# CONFIG_VSX is not set
18CONFIG_PPC_STD_MMU=y 18CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_64=y
19CONFIG_PPC_MM_SLICES=y 20CONFIG_PPC_MM_SLICES=y
20CONFIG_VIRT_CPU_ACCOUNTING=y 21CONFIG_VIRT_CPU_ACCOUNTING=y
21CONFIG_SMP=y 22CONFIG_SMP=y
22CONFIG_NR_CPUS=2 23CONFIG_NR_CPUS=2
23CONFIG_64BIT=y 24CONFIG_64BIT=y
24CONFIG_WORD_SIZE=64 25CONFIG_WORD_SIZE=64
25CONFIG_PPC_MERGE=y 26CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
26CONFIG_MMU=y 27CONFIG_MMU=y
27CONFIG_GENERIC_CMOS_UPDATE=y 28CONFIG_GENERIC_CMOS_UPDATE=y
28CONFIG_GENERIC_TIME=y 29CONFIG_GENERIC_TIME=y
@@ -46,7 +47,7 @@ CONFIG_PPC=y
46CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
47CONFIG_COMPAT=y 48CONFIG_COMPAT=y
48CONFIG_SYSVIPC_COMPAT=y 49CONFIG_SYSVIPC_COMPAT=y
49CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 50CONFIG_SCHED_OMIT_FRAME_POINTER=y
50CONFIG_ARCH_MAY_HAVE_PC_FDC=y 51CONFIG_ARCH_MAY_HAVE_PC_FDC=y
51CONFIG_PPC_OF=y 52CONFIG_PPC_OF=y
52CONFIG_OF=y 53CONFIG_OF=y
@@ -74,10 +75,19 @@ CONFIG_POSIX_MQUEUE=y
74# CONFIG_BSD_PROCESS_ACCT is not set 75# CONFIG_BSD_PROCESS_ACCT is not set
75# CONFIG_TASKSTATS is not set 76# CONFIG_TASKSTATS is not set
76# CONFIG_AUDIT is not set 77# CONFIG_AUDIT is not set
78
79#
80# RCU Subsystem
81#
82CONFIG_CLASSIC_RCU=y
83# CONFIG_TREE_RCU is not set
84# CONFIG_PREEMPT_RCU is not set
85# CONFIG_TREE_RCU_TRACE is not set
86# CONFIG_PREEMPT_RCU_TRACE is not set
77# CONFIG_IKCONFIG is not set 87# CONFIG_IKCONFIG is not set
78CONFIG_LOG_BUF_SHIFT=17 88CONFIG_LOG_BUF_SHIFT=17
79# CONFIG_CGROUPS is not set
80# CONFIG_GROUP_SCHED is not set 89# CONFIG_GROUP_SCHED is not set
90# CONFIG_CGROUPS is not set
81CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y 92CONFIG_SYSFS_DEPRECATED_V2=y
83# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
@@ -86,11 +96,13 @@ CONFIG_NAMESPACES=y
86# CONFIG_IPC_NS is not set 96# CONFIG_IPC_NS is not set
87# CONFIG_USER_NS is not set 97# CONFIG_USER_NS is not set
88# CONFIG_PID_NS is not set 98# CONFIG_PID_NS is not set
99# CONFIG_NET_NS is not set
89CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
90CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
91CONFIG_CC_OPTIMIZE_FOR_SIZE=y 102CONFIG_CC_OPTIMIZE_FOR_SIZE=y
92CONFIG_SYSCTL=y 103CONFIG_SYSCTL=y
93# CONFIG_EMBEDDED is not set 104CONFIG_ANON_INODES=y
105CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 106CONFIG_SYSCTL_SYSCALL=y
95CONFIG_KALLSYMS=y 107CONFIG_KALLSYMS=y
96CONFIG_KALLSYMS_ALL=y 108CONFIG_KALLSYMS_ALL=y
@@ -99,37 +111,36 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 111CONFIG_PRINTK=y
100CONFIG_BUG=y 112CONFIG_BUG=y
101CONFIG_ELF_CORE=y 113CONFIG_ELF_CORE=y
102# CONFIG_COMPAT_BRK is not set
103CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
104CONFIG_FUTEX=y 115CONFIG_FUTEX=y
105CONFIG_ANON_INODES=y
106CONFIG_EPOLL=y 116CONFIG_EPOLL=y
107CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y 118CONFIG_TIMERFD=y
109CONFIG_EVENTFD=y 119CONFIG_EVENTFD=y
110CONFIG_SHMEM=y 120CONFIG_SHMEM=y
121CONFIG_AIO=y
111CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
123# CONFIG_COMPAT_BRK is not set
112CONFIG_SLAB=y 124CONFIG_SLAB=y
113# CONFIG_SLUB is not set 125# CONFIG_SLUB is not set
114# CONFIG_SLOB is not set 126# CONFIG_SLOB is not set
115CONFIG_PROFILING=y 127CONFIG_PROFILING=y
116# CONFIG_MARKERS is not set 128CONFIG_TRACEPOINTS=y
129CONFIG_MARKERS=y
117CONFIG_OPROFILE=m 130CONFIG_OPROFILE=m
118CONFIG_HAVE_OPROFILE=y 131CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 132# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y 133CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
134CONFIG_HAVE_SYSCALL_WRAPPERS=y
121CONFIG_HAVE_IOREMAP_PROT=y 135CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 136CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 137CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y 138CONFIG_HAVE_ARCH_TRACEHOOK=y
125CONFIG_HAVE_DMA_ATTRS=y 139CONFIG_HAVE_DMA_ATTRS=y
126CONFIG_USE_GENERIC_SMP_HELPERS=y 140CONFIG_USE_GENERIC_SMP_HELPERS=y
127# CONFIG_HAVE_CLK is not set
128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 141# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
130CONFIG_SLABINFO=y 142CONFIG_SLABINFO=y
131CONFIG_RT_MUTEXES=y 143CONFIG_RT_MUTEXES=y
132# CONFIG_TINY_SHMEM is not set
133CONFIG_BASE_SMALL=0 144CONFIG_BASE_SMALL=0
134CONFIG_MODULES=y 145CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set 146# CONFIG_MODULE_FORCE_LOAD is not set
@@ -137,7 +148,6 @@ CONFIG_MODULE_UNLOAD=y
137# CONFIG_MODULE_FORCE_UNLOAD is not set 148# CONFIG_MODULE_FORCE_UNLOAD is not set
138# CONFIG_MODVERSIONS is not set 149# CONFIG_MODVERSIONS is not set
139# CONFIG_MODULE_SRCVERSION_ALL is not set 150# CONFIG_MODULE_SRCVERSION_ALL is not set
140CONFIG_KMOD=y
141CONFIG_STOP_MACHINE=y 151CONFIG_STOP_MACHINE=y
142CONFIG_BLOCK=y 152CONFIG_BLOCK=y
143# CONFIG_BLK_DEV_IO_TRACE is not set 153# CONFIG_BLK_DEV_IO_TRACE is not set
@@ -157,7 +167,7 @@ CONFIG_DEFAULT_AS=y
157# CONFIG_DEFAULT_CFQ is not set 167# CONFIG_DEFAULT_CFQ is not set
158# CONFIG_DEFAULT_NOOP is not set 168# CONFIG_DEFAULT_NOOP is not set
159CONFIG_DEFAULT_IOSCHED="anticipatory" 169CONFIG_DEFAULT_IOSCHED="anticipatory"
160CONFIG_CLASSIC_RCU=y 170# CONFIG_FREEZER is not set
161 171
162# 172#
163# Platform support 173# Platform support
@@ -183,18 +193,20 @@ CONFIG_PS3_STORAGE=y
183CONFIG_PS3_DISK=y 193CONFIG_PS3_DISK=y
184CONFIG_PS3_ROM=y 194CONFIG_PS3_ROM=y
185CONFIG_PS3_FLASH=y 195CONFIG_PS3_FLASH=y
186CONFIG_OPROFILE_PS3=y 196CONFIG_PS3_VRAM=m
187CONFIG_PS3_LPM=m 197CONFIG_PS3_LPM=m
188CONFIG_PPC_CELL=y 198CONFIG_PPC_CELL=y
189# CONFIG_PPC_CELL_NATIVE is not set 199# CONFIG_PPC_CELL_NATIVE is not set
190# CONFIG_PPC_IBM_CELL_BLADE is not set 200# CONFIG_PPC_IBM_CELL_BLADE is not set
191# CONFIG_PPC_CELLEB is not set 201# CONFIG_PPC_CELLEB is not set
202# CONFIG_PPC_CELL_QPACE is not set
192 203
193# 204#
194# Cell Broadband Engine options 205# Cell Broadband Engine options
195# 206#
196CONFIG_SPU_FS=y 207CONFIG_SPU_FS=y
197CONFIG_SPU_FS_64K_LS=y 208CONFIG_SPU_FS_64K_LS=y
209# CONFIG_SPU_TRACE is not set
198CONFIG_SPU_BASE=y 210CONFIG_SPU_BASE=y
199# CONFIG_PQ2ADS is not set 211# CONFIG_PQ2ADS is not set
200# CONFIG_IPIC is not set 212# CONFIG_IPIC is not set
@@ -210,6 +222,7 @@ CONFIG_SPU_BASE=y
210# CONFIG_GENERIC_IOMAP is not set 222# CONFIG_GENERIC_IOMAP is not set
211# CONFIG_CPU_FREQ is not set 223# CONFIG_CPU_FREQ is not set
212# CONFIG_FSL_ULI1575 is not set 224# CONFIG_FSL_ULI1575 is not set
225# CONFIG_SIMPLE_GPIO is not set
213 226
214# 227#
215# Kernel options 228# Kernel options
@@ -229,6 +242,8 @@ CONFIG_PREEMPT_NONE=y
229# CONFIG_PREEMPT is not set 242# CONFIG_PREEMPT is not set
230CONFIG_BINFMT_ELF=y 243CONFIG_BINFMT_ELF=y
231CONFIG_COMPAT_BINFMT_ELF=y 244CONFIG_COMPAT_BINFMT_ELF=y
245# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
246# CONFIG_HAVE_AOUT is not set
232CONFIG_BINFMT_MISC=y 247CONFIG_BINFMT_MISC=y
233CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 248CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
234# CONFIG_IOMMU_VMERGE is not set 249# CONFIG_IOMMU_VMERGE is not set
@@ -251,7 +266,6 @@ CONFIG_SELECT_MEMORY_MODEL=y
251CONFIG_SPARSEMEM_MANUAL=y 266CONFIG_SPARSEMEM_MANUAL=y
252CONFIG_SPARSEMEM=y 267CONFIG_SPARSEMEM=y
253CONFIG_HAVE_MEMORY_PRESENT=y 268CONFIG_HAVE_MEMORY_PRESENT=y
254# CONFIG_SPARSEMEM_STATIC is not set
255CONFIG_SPARSEMEM_EXTREME=y 269CONFIG_SPARSEMEM_EXTREME=y
256CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 270CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
257# CONFIG_SPARSEMEM_VMEMMAP is not set 271# CONFIG_SPARSEMEM_VMEMMAP is not set
@@ -261,11 +275,14 @@ CONFIG_MEMORY_HOTPLUG_SPARSE=y
261CONFIG_PAGEFLAGS_EXTENDED=y 275CONFIG_PAGEFLAGS_EXTENDED=y
262CONFIG_SPLIT_PTLOCK_CPUS=4 276CONFIG_SPLIT_PTLOCK_CPUS=4
263CONFIG_MIGRATION=y 277CONFIG_MIGRATION=y
264CONFIG_RESOURCES_64BIT=y 278CONFIG_PHYS_ADDR_T_64BIT=y
265CONFIG_ZONE_DMA_FLAG=1 279CONFIG_ZONE_DMA_FLAG=1
266CONFIG_BOUNCE=y 280CONFIG_BOUNCE=y
281CONFIG_UNEVICTABLE_LRU=y
267CONFIG_ARCH_MEMORY_PROBE=y 282CONFIG_ARCH_MEMORY_PROBE=y
268CONFIG_PPC_HAS_HASH_64K=y 283CONFIG_PPC_HAS_HASH_64K=y
284CONFIG_PPC_4K_PAGES=y
285# CONFIG_PPC_16K_PAGES is not set
269# CONFIG_PPC_64K_PAGES is not set 286# CONFIG_PPC_64K_PAGES is not set
270CONFIG_FORCE_MAX_ZONEORDER=13 287CONFIG_FORCE_MAX_ZONEORDER=13
271CONFIG_SCHED_SMT=y 288CONFIG_SCHED_SMT=y
@@ -299,6 +316,7 @@ CONFIG_NET=y
299# 316#
300# Networking options 317# Networking options
301# 318#
319CONFIG_COMPAT_NET_DEV_OPS=y
302CONFIG_PACKET=y 320CONFIG_PACKET=y
303CONFIG_PACKET_MMAP=y 321CONFIG_PACKET_MMAP=y
304CONFIG_UNIX=y 322CONFIG_UNIX=y
@@ -361,6 +379,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
361# CONFIG_TIPC is not set 379# CONFIG_TIPC is not set
362# CONFIG_ATM is not set 380# CONFIG_ATM is not set
363# CONFIG_BRIDGE is not set 381# CONFIG_BRIDGE is not set
382# CONFIG_NET_DSA is not set
364# CONFIG_VLAN_8021Q is not set 383# CONFIG_VLAN_8021Q is not set
365# CONFIG_DECNET is not set 384# CONFIG_DECNET is not set
366# CONFIG_LLC2 is not set 385# CONFIG_LLC2 is not set
@@ -371,6 +390,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y
371# CONFIG_ECONET is not set 390# CONFIG_ECONET is not set
372# CONFIG_WAN_ROUTER is not set 391# CONFIG_WAN_ROUTER is not set
373# CONFIG_NET_SCHED is not set 392# CONFIG_NET_SCHED is not set
393# CONFIG_DCB is not set
374 394
375# 395#
376# Network testing 396# Network testing
@@ -392,39 +412,37 @@ CONFIG_BT_HIDP=m
392# 412#
393# Bluetooth device drivers 413# Bluetooth device drivers
394# 414#
395CONFIG_BT_HCIUSB=m 415CONFIG_BT_HCIBTUSB=m
396CONFIG_BT_HCIUSB_SCO=y
397# CONFIG_BT_HCIUART is not set 416# CONFIG_BT_HCIUART is not set
398# CONFIG_BT_HCIBCM203X is not set 417# CONFIG_BT_HCIBCM203X is not set
399# CONFIG_BT_HCIBPA10X is not set 418# CONFIG_BT_HCIBPA10X is not set
400# CONFIG_BT_HCIBFUSB is not set 419# CONFIG_BT_HCIBFUSB is not set
401# CONFIG_BT_HCIVHCI is not set 420# CONFIG_BT_HCIVHCI is not set
402# CONFIG_AF_RXRPC is not set 421# CONFIG_AF_RXRPC is not set
403 422# CONFIG_PHONET is not set
404# 423CONFIG_WIRELESS=y
405# Wireless
406#
407CONFIG_CFG80211=m 424CONFIG_CFG80211=m
425# CONFIG_CFG80211_REG_DEBUG is not set
408CONFIG_NL80211=y 426CONFIG_NL80211=y
427# CONFIG_WIRELESS_OLD_REGULATORY is not set
409CONFIG_WIRELESS_EXT=y 428CONFIG_WIRELESS_EXT=y
410# CONFIG_WIRELESS_EXT_SYSFS is not set 429# CONFIG_WIRELESS_EXT_SYSFS is not set
430# CONFIG_LIB80211 is not set
411CONFIG_MAC80211=m 431CONFIG_MAC80211=m
412 432
413# 433#
414# Rate control algorithm selection 434# Rate control algorithm selection
415# 435#
416CONFIG_MAC80211_RC_PID=y 436CONFIG_MAC80211_RC_PID=y
437# CONFIG_MAC80211_RC_MINSTREL is not set
417CONFIG_MAC80211_RC_DEFAULT_PID=y 438CONFIG_MAC80211_RC_DEFAULT_PID=y
439# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
418CONFIG_MAC80211_RC_DEFAULT="pid" 440CONFIG_MAC80211_RC_DEFAULT="pid"
419# CONFIG_MAC80211_MESH is not set 441# CONFIG_MAC80211_MESH is not set
420# CONFIG_MAC80211_LEDS is not set 442# CONFIG_MAC80211_LEDS is not set
421# CONFIG_MAC80211_DEBUGFS is not set 443# CONFIG_MAC80211_DEBUGFS is not set
422# CONFIG_MAC80211_DEBUG_MENU is not set 444# CONFIG_MAC80211_DEBUG_MENU is not set
423CONFIG_IEEE80211=m 445# CONFIG_WIMAX is not set
424# CONFIG_IEEE80211_DEBUG is not set
425CONFIG_IEEE80211_CRYPT_WEP=m
426CONFIG_IEEE80211_CRYPT_CCMP=m
427CONFIG_IEEE80211_CRYPT_TKIP=m
428# CONFIG_RFKILL is not set 446# CONFIG_RFKILL is not set
429# CONFIG_NET_9P is not set 447# CONFIG_NET_9P is not set
430 448
@@ -450,6 +468,7 @@ CONFIG_MTD_DEBUG=y
450CONFIG_MTD_DEBUG_VERBOSE=0 468CONFIG_MTD_DEBUG_VERBOSE=0
451# CONFIG_MTD_CONCAT is not set 469# CONFIG_MTD_CONCAT is not set
452# CONFIG_MTD_PARTITIONS is not set 470# CONFIG_MTD_PARTITIONS is not set
471# CONFIG_MTD_TESTS is not set
453 472
454# 473#
455# User Modules And Translation Layers 474# User Modules And Translation Layers
@@ -494,7 +513,6 @@ CONFIG_MTD_CFI_I2=y
494# 513#
495# CONFIG_MTD_SLRAM is not set 514# CONFIG_MTD_SLRAM is not set
496# CONFIG_MTD_PHRAM is not set 515# CONFIG_MTD_PHRAM is not set
497CONFIG_MTD_PS3VRAM=y
498# CONFIG_MTD_MTDRAM is not set 516# CONFIG_MTD_MTDRAM is not set
499# CONFIG_MTD_BLOCK2MTD is not set 517# CONFIG_MTD_BLOCK2MTD is not set
500 518
@@ -508,6 +526,11 @@ CONFIG_MTD_PS3VRAM=y
508# CONFIG_MTD_ONENAND is not set 526# CONFIG_MTD_ONENAND is not set
509 527
510# 528#
529# LPDDR flash memory drivers
530#
531# CONFIG_MTD_LPDDR is not set
532
533#
511# UBI - Unsorted block images 534# UBI - Unsorted block images
512# 535#
513# CONFIG_MTD_UBI is not set 536# CONFIG_MTD_UBI is not set
@@ -528,8 +551,13 @@ CONFIG_BLK_DEV_RAM_SIZE=65535
528# CONFIG_ATA_OVER_ETH is not set 551# CONFIG_ATA_OVER_ETH is not set
529# CONFIG_BLK_DEV_HD is not set 552# CONFIG_BLK_DEV_HD is not set
530CONFIG_MISC_DEVICES=y 553CONFIG_MISC_DEVICES=y
531# CONFIG_EEPROM_93CX6 is not set
532# CONFIG_ENCLOSURE_SERVICES is not set 554# CONFIG_ENCLOSURE_SERVICES is not set
555# CONFIG_C2PORT is not set
556
557#
558# EEPROM support
559#
560# CONFIG_EEPROM_93CX6 is not set
533CONFIG_HAVE_IDE=y 561CONFIG_HAVE_IDE=y
534# CONFIG_IDE is not set 562# CONFIG_IDE is not set
535 563
@@ -575,7 +603,17 @@ CONFIG_SCSI_WAIT_SCAN=m
575# CONFIG_SCSI_LOWLEVEL is not set 603# CONFIG_SCSI_LOWLEVEL is not set
576# CONFIG_SCSI_DH is not set 604# CONFIG_SCSI_DH is not set
577# CONFIG_ATA is not set 605# CONFIG_ATA is not set
578# CONFIG_MD is not set 606CONFIG_MD=y
607# CONFIG_BLK_DEV_MD is not set
608CONFIG_BLK_DEV_DM=m
609# CONFIG_DM_DEBUG is not set
610# CONFIG_DM_CRYPT is not set
611# CONFIG_DM_SNAPSHOT is not set
612# CONFIG_DM_MIRROR is not set
613# CONFIG_DM_ZERO is not set
614# CONFIG_DM_MULTIPATH is not set
615# CONFIG_DM_DELAY is not set
616# CONFIG_DM_UEVENT is not set
579# CONFIG_MACINTOSH_DRIVERS is not set 617# CONFIG_MACINTOSH_DRIVERS is not set
580CONFIG_NETDEVICES=y 618CONFIG_NETDEVICES=y
581# CONFIG_DUMMY is not set 619# CONFIG_DUMMY is not set
@@ -591,6 +629,9 @@ CONFIG_MII=m
591# CONFIG_IBM_NEW_EMAC_RGMII is not set 629# CONFIG_IBM_NEW_EMAC_RGMII is not set
592# CONFIG_IBM_NEW_EMAC_TAH is not set 630# CONFIG_IBM_NEW_EMAC_TAH is not set
593# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 631# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
632# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
633# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
634# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
594# CONFIG_B44 is not set 635# CONFIG_B44 is not set
595CONFIG_NETDEV_1000=y 636CONFIG_NETDEV_1000=y
596CONFIG_GELIC_NET=y 637CONFIG_GELIC_NET=y
@@ -604,6 +645,7 @@ CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE=y
604# CONFIG_WLAN_PRE80211 is not set 645# CONFIG_WLAN_PRE80211 is not set
605CONFIG_WLAN_80211=y 646CONFIG_WLAN_80211=y
606# CONFIG_LIBERTAS is not set 647# CONFIG_LIBERTAS is not set
648# CONFIG_LIBERTAS_THINFIRM is not set
607# CONFIG_USB_ZD1201 is not set 649# CONFIG_USB_ZD1201 is not set
608# CONFIG_USB_NET_RNDIS_WLAN is not set 650# CONFIG_USB_NET_RNDIS_WLAN is not set
609# CONFIG_RTL8187 is not set 651# CONFIG_RTL8187 is not set
@@ -615,13 +657,11 @@ CONFIG_WLAN_80211=y
615# CONFIG_B43LEGACY is not set 657# CONFIG_B43LEGACY is not set
616CONFIG_ZD1211RW=m 658CONFIG_ZD1211RW=m
617# CONFIG_ZD1211RW_DEBUG is not set 659# CONFIG_ZD1211RW_DEBUG is not set
618CONFIG_RT2X00=m 660# CONFIG_RT2X00 is not set
619CONFIG_RT2X00_LIB=m 661
620CONFIG_RT2X00_LIB_USB=m 662#
621CONFIG_RT2X00_LIB_FIRMWARE=y 663# Enable WiMAX (Networking options) to see the WiMAX drivers
622# CONFIG_RT2500USB is not set 664#
623CONFIG_RT73USB=m
624# CONFIG_RT2X00_DEBUG is not set
625 665
626# 666#
627# USB Network Adapters 667# USB Network Adapters
@@ -634,6 +674,7 @@ CONFIG_USB_USBNET=m
634CONFIG_USB_NET_AX8817X=m 674CONFIG_USB_NET_AX8817X=m
635# CONFIG_USB_NET_CDCETHER is not set 675# CONFIG_USB_NET_CDCETHER is not set
636# CONFIG_USB_NET_DM9601 is not set 676# CONFIG_USB_NET_DM9601 is not set
677# CONFIG_USB_NET_SMSC95XX is not set
637# CONFIG_USB_NET_GL620A is not set 678# CONFIG_USB_NET_GL620A is not set
638# CONFIG_USB_NET_NET1080 is not set 679# CONFIG_USB_NET_NET1080 is not set
639# CONFIG_USB_NET_PLUSB is not set 680# CONFIG_USB_NET_PLUSB is not set
@@ -664,7 +705,7 @@ CONFIG_SLHC=m
664# Input device support 705# Input device support
665# 706#
666CONFIG_INPUT=y 707CONFIG_INPUT=y
667# CONFIG_INPUT_FF_MEMLESS is not set 708CONFIG_INPUT_FF_MEMLESS=m
668# CONFIG_INPUT_POLLDEV is not set 709# CONFIG_INPUT_POLLDEV is not set
669 710
670# 711#
@@ -735,8 +776,10 @@ CONFIG_DEVKMEM=y
735# Non-8250 serial port support 776# Non-8250 serial port support
736# 777#
737CONFIG_UNIX98_PTYS=y 778CONFIG_UNIX98_PTYS=y
779# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
738CONFIG_LEGACY_PTYS=y 780CONFIG_LEGACY_PTYS=y
739CONFIG_LEGACY_PTY_COUNT=16 781CONFIG_LEGACY_PTY_COUNT=16
782# CONFIG_HVC_UDBG is not set
740# CONFIG_IPMI_HANDLER is not set 783# CONFIG_IPMI_HANDLER is not set
741# CONFIG_HW_RANDOM is not set 784# CONFIG_HW_RANDOM is not set
742# CONFIG_R3964 is not set 785# CONFIG_R3964 is not set
@@ -753,11 +796,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
753# CONFIG_THERMAL is not set 796# CONFIG_THERMAL is not set
754# CONFIG_THERMAL_HWMON is not set 797# CONFIG_THERMAL_HWMON is not set
755# CONFIG_WATCHDOG is not set 798# CONFIG_WATCHDOG is not set
799CONFIG_SSB_POSSIBLE=y
756 800
757# 801#
758# Sonics Silicon Backplane 802# Sonics Silicon Backplane
759# 803#
760CONFIG_SSB_POSSIBLE=y
761# CONFIG_SSB is not set 804# CONFIG_SSB is not set
762 805
763# 806#
@@ -767,6 +810,7 @@ CONFIG_SSB_POSSIBLE=y
767# CONFIG_MFD_SM501 is not set 810# CONFIG_MFD_SM501 is not set
768# CONFIG_HTC_PASIC3 is not set 811# CONFIG_HTC_PASIC3 is not set
769# CONFIG_MFD_TMIO is not set 812# CONFIG_MFD_TMIO is not set
813# CONFIG_REGULATOR is not set
770 814
771# 815#
772# Multimedia devices 816# Multimedia devices
@@ -792,6 +836,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
792CONFIG_FB=y 836CONFIG_FB=y
793# CONFIG_FIRMWARE_EDID is not set 837# CONFIG_FIRMWARE_EDID is not set
794# CONFIG_FB_DDC is not set 838# CONFIG_FB_DDC is not set
839# CONFIG_FB_BOOT_VESA_SUPPORT is not set
795# CONFIG_FB_CFB_FILLRECT is not set 840# CONFIG_FB_CFB_FILLRECT is not set
796# CONFIG_FB_CFB_COPYAREA is not set 841# CONFIG_FB_CFB_COPYAREA is not set
797# CONFIG_FB_CFB_IMAGEBLIT is not set 842# CONFIG_FB_CFB_IMAGEBLIT is not set
@@ -817,6 +862,8 @@ CONFIG_FB_SYS_FOPS=y
817CONFIG_FB_PS3=y 862CONFIG_FB_PS3=y
818CONFIG_FB_PS3_DEFAULT_SIZE_M=9 863CONFIG_FB_PS3_DEFAULT_SIZE_M=9
819# CONFIG_FB_VIRTUAL is not set 864# CONFIG_FB_VIRTUAL is not set
865# CONFIG_FB_METRONOME is not set
866# CONFIG_FB_MB862XX is not set
820# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 867# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
821 868
822# 869#
@@ -841,6 +888,7 @@ CONFIG_FB_LOGO_EXTRA=y
841# CONFIG_LOGO_LINUX_VGA16 is not set 888# CONFIG_LOGO_LINUX_VGA16 is not set
842CONFIG_LOGO_LINUX_CLUT224=y 889CONFIG_LOGO_LINUX_CLUT224=y
843CONFIG_SOUND=m 890CONFIG_SOUND=m
891# CONFIG_SOUND_OSS_CORE is not set
844CONFIG_SND=m 892CONFIG_SND=m
845CONFIG_SND_TIMER=m 893CONFIG_SND_TIMER=m
846CONFIG_SND_PCM=m 894CONFIG_SND_PCM=m
@@ -849,6 +897,7 @@ CONFIG_SND_RAWMIDI=m
849# CONFIG_SND_SEQUENCER is not set 897# CONFIG_SND_SEQUENCER is not set
850# CONFIG_SND_MIXER_OSS is not set 898# CONFIG_SND_MIXER_OSS is not set
851# CONFIG_SND_PCM_OSS is not set 899# CONFIG_SND_PCM_OSS is not set
900# CONFIG_SND_HRTIMER is not set
852# CONFIG_SND_DYNAMIC_MINORS is not set 901# CONFIG_SND_DYNAMIC_MINORS is not set
853CONFIG_SND_SUPPORT_OLD_API=y 902CONFIG_SND_SUPPORT_OLD_API=y
854CONFIG_SND_VERBOSE_PROCFS=y 903CONFIG_SND_VERBOSE_PROCFS=y
@@ -873,15 +922,40 @@ CONFIG_HIDRAW=y
873# USB Input Devices 922# USB Input Devices
874# 923#
875CONFIG_USB_HID=m 924CONFIG_USB_HID=m
876# CONFIG_USB_HIDINPUT_POWERBOOK is not set 925# CONFIG_HID_PID is not set
877# CONFIG_HID_FF is not set 926CONFIG_USB_HIDDEV=y
878# CONFIG_USB_HIDDEV is not set
879 927
880# 928#
881# USB HID Boot Protocol drivers 929# USB HID Boot Protocol drivers
882# 930#
883# CONFIG_USB_KBD is not set 931# CONFIG_USB_KBD is not set
884# CONFIG_USB_MOUSE is not set 932# CONFIG_USB_MOUSE is not set
933
934#
935# Special HID drivers
936#
937# CONFIG_HID_COMPAT is not set
938# CONFIG_HID_A4TECH is not set
939# CONFIG_HID_APPLE is not set
940# CONFIG_HID_BELKIN is not set
941# CONFIG_HID_CHERRY is not set
942# CONFIG_HID_CHICONY is not set
943# CONFIG_HID_CYPRESS is not set
944# CONFIG_HID_EZKEY is not set
945# CONFIG_HID_GYRATION is not set
946# CONFIG_HID_LOGITECH is not set
947# CONFIG_HID_MICROSOFT is not set
948# CONFIG_HID_MONTEREY is not set
949# CONFIG_HID_NTRIG is not set
950# CONFIG_HID_PANTHERLORD is not set
951# CONFIG_HID_PETALYNX is not set
952# CONFIG_HID_SAMSUNG is not set
953# CONFIG_HID_SONY is not set
954# CONFIG_HID_SUNPLUS is not set
955# CONFIG_GREENASIA_FF is not set
956# CONFIG_HID_TOPSEED is not set
957# CONFIG_THRUSTMASTER_FF is not set
958# CONFIG_ZEROPLUS_FF is not set
885CONFIG_USB_SUPPORT=y 959CONFIG_USB_SUPPORT=y
886CONFIG_USB_ARCH_HAS_HCD=y 960CONFIG_USB_ARCH_HAS_HCD=y
887CONFIG_USB_ARCH_HAS_OHCI=y 961CONFIG_USB_ARCH_HAS_OHCI=y
@@ -898,7 +972,11 @@ CONFIG_USB_DEVICEFS=y
898# CONFIG_USB_DYNAMIC_MINORS is not set 972# CONFIG_USB_DYNAMIC_MINORS is not set
899CONFIG_USB_SUSPEND=y 973CONFIG_USB_SUSPEND=y
900# CONFIG_USB_OTG is not set 974# CONFIG_USB_OTG is not set
901CONFIG_USB_MON=y 975# CONFIG_USB_OTG_WHITELIST is not set
976# CONFIG_USB_OTG_BLACKLIST_HUB is not set
977CONFIG_USB_MON=m
978# CONFIG_USB_WUSB is not set
979# CONFIG_USB_WUSB_CBAF is not set
902 980
903# 981#
904# USB Host Controller Drivers 982# USB Host Controller Drivers
@@ -909,6 +987,7 @@ CONFIG_USB_EHCI_HCD=m
909# CONFIG_USB_EHCI_TT_NEWSCHED is not set 987# CONFIG_USB_EHCI_TT_NEWSCHED is not set
910CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 988CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
911# CONFIG_USB_EHCI_HCD_PPC_OF is not set 989# CONFIG_USB_EHCI_HCD_PPC_OF is not set
990# CONFIG_USB_OXU210HP_HCD is not set
912# CONFIG_USB_ISP116X_HCD is not set 991# CONFIG_USB_ISP116X_HCD is not set
913# CONFIG_USB_ISP1760_HCD is not set 992# CONFIG_USB_ISP1760_HCD is not set
914CONFIG_USB_OHCI_HCD=m 993CONFIG_USB_OHCI_HCD=m
@@ -918,6 +997,7 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
918CONFIG_USB_OHCI_LITTLE_ENDIAN=y 997CONFIG_USB_OHCI_LITTLE_ENDIAN=y
919# CONFIG_USB_SL811_HCD is not set 998# CONFIG_USB_SL811_HCD is not set
920# CONFIG_USB_R8A66597_HCD is not set 999# CONFIG_USB_R8A66597_HCD is not set
1000# CONFIG_USB_HWA_HCD is not set
921 1001
922# 1002#
923# Enable Host or Gadget support to see Inventra options 1003# Enable Host or Gadget support to see Inventra options
@@ -929,20 +1009,20 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
929# CONFIG_USB_ACM is not set 1009# CONFIG_USB_ACM is not set
930# CONFIG_USB_PRINTER is not set 1010# CONFIG_USB_PRINTER is not set
931# CONFIG_USB_WDM is not set 1011# CONFIG_USB_WDM is not set
1012# CONFIG_USB_TMC is not set
932 1013
933# 1014#
934# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1015# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
935# 1016#
936 1017
937# 1018#
938# may also be needed; see USB_STORAGE Help for more information 1019# see USB_STORAGE Help for more information
939# 1020#
940CONFIG_USB_STORAGE=m 1021CONFIG_USB_STORAGE=m
941# CONFIG_USB_STORAGE_DEBUG is not set 1022# CONFIG_USB_STORAGE_DEBUG is not set
942# CONFIG_USB_STORAGE_DATAFAB is not set 1023# CONFIG_USB_STORAGE_DATAFAB is not set
943# CONFIG_USB_STORAGE_FREECOM is not set 1024# CONFIG_USB_STORAGE_FREECOM is not set
944# CONFIG_USB_STORAGE_ISD200 is not set 1025# CONFIG_USB_STORAGE_ISD200 is not set
945# CONFIG_USB_STORAGE_DPCM is not set
946# CONFIG_USB_STORAGE_USBAT is not set 1026# CONFIG_USB_STORAGE_USBAT is not set
947# CONFIG_USB_STORAGE_SDDR09 is not set 1027# CONFIG_USB_STORAGE_SDDR09 is not set
948# CONFIG_USB_STORAGE_SDDR55 is not set 1028# CONFIG_USB_STORAGE_SDDR55 is not set
@@ -950,7 +1030,6 @@ CONFIG_USB_STORAGE=m
950# CONFIG_USB_STORAGE_ALAUDA is not set 1030# CONFIG_USB_STORAGE_ALAUDA is not set
951# CONFIG_USB_STORAGE_ONETOUCH is not set 1031# CONFIG_USB_STORAGE_ONETOUCH is not set
952# CONFIG_USB_STORAGE_KARMA is not set 1032# CONFIG_USB_STORAGE_KARMA is not set
953# CONFIG_USB_STORAGE_SIERRA is not set
954# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1033# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
955# CONFIG_USB_LIBUSUAL is not set 1034# CONFIG_USB_LIBUSUAL is not set
956 1035
@@ -971,6 +1050,7 @@ CONFIG_USB_STORAGE=m
971# CONFIG_USB_EMI62 is not set 1050# CONFIG_USB_EMI62 is not set
972# CONFIG_USB_EMI26 is not set 1051# CONFIG_USB_EMI26 is not set
973# CONFIG_USB_ADUTUX is not set 1052# CONFIG_USB_ADUTUX is not set
1053# CONFIG_USB_SEVSEG is not set
974# CONFIG_USB_RIO500 is not set 1054# CONFIG_USB_RIO500 is not set
975# CONFIG_USB_LEGOTOWER is not set 1055# CONFIG_USB_LEGOTOWER is not set
976# CONFIG_USB_LCD is not set 1056# CONFIG_USB_LCD is not set
@@ -988,7 +1068,12 @@ CONFIG_USB_STORAGE=m
988# CONFIG_USB_IOWARRIOR is not set 1068# CONFIG_USB_IOWARRIOR is not set
989# CONFIG_USB_TEST is not set 1069# CONFIG_USB_TEST is not set
990# CONFIG_USB_ISIGHTFW is not set 1070# CONFIG_USB_ISIGHTFW is not set
1071# CONFIG_USB_VST is not set
991# CONFIG_USB_GADGET is not set 1072# CONFIG_USB_GADGET is not set
1073
1074#
1075# OTG and related infrastructure
1076#
992# CONFIG_MMC is not set 1077# CONFIG_MMC is not set
993# CONFIG_MEMSTICK is not set 1078# CONFIG_MEMSTICK is not set
994# CONFIG_NEW_LEDS is not set 1079# CONFIG_NEW_LEDS is not set
@@ -1014,12 +1099,15 @@ CONFIG_RTC_INTF_DEV=y
1014# Platform RTC drivers 1099# Platform RTC drivers
1015# 1100#
1016# CONFIG_RTC_DRV_CMOS is not set 1101# CONFIG_RTC_DRV_CMOS is not set
1102# CONFIG_RTC_DRV_DS1286 is not set
1017# CONFIG_RTC_DRV_DS1511 is not set 1103# CONFIG_RTC_DRV_DS1511 is not set
1018# CONFIG_RTC_DRV_DS1553 is not set 1104# CONFIG_RTC_DRV_DS1553 is not set
1019# CONFIG_RTC_DRV_DS1742 is not set 1105# CONFIG_RTC_DRV_DS1742 is not set
1020# CONFIG_RTC_DRV_STK17TA8 is not set 1106# CONFIG_RTC_DRV_STK17TA8 is not set
1021# CONFIG_RTC_DRV_M48T86 is not set 1107# CONFIG_RTC_DRV_M48T86 is not set
1108# CONFIG_RTC_DRV_M48T35 is not set
1022# CONFIG_RTC_DRV_M48T59 is not set 1109# CONFIG_RTC_DRV_M48T59 is not set
1110# CONFIG_RTC_DRV_BQ4802 is not set
1023# CONFIG_RTC_DRV_V3020 is not set 1111# CONFIG_RTC_DRV_V3020 is not set
1024 1112
1025# 1113#
@@ -1028,6 +1116,7 @@ CONFIG_RTC_INTF_DEV=y
1028CONFIG_RTC_DRV_PPC=m 1116CONFIG_RTC_DRV_PPC=m
1029# CONFIG_DMADEVICES is not set 1117# CONFIG_DMADEVICES is not set
1030# CONFIG_UIO is not set 1118# CONFIG_UIO is not set
1119# CONFIG_STAGING is not set
1031 1120
1032# 1121#
1033# File systems 1122# File systems
@@ -1035,26 +1124,35 @@ CONFIG_RTC_DRV_PPC=m
1035CONFIG_EXT2_FS=m 1124CONFIG_EXT2_FS=m
1036# CONFIG_EXT2_FS_XATTR is not set 1125# CONFIG_EXT2_FS_XATTR is not set
1037# CONFIG_EXT2_FS_XIP is not set 1126# CONFIG_EXT2_FS_XIP is not set
1038CONFIG_EXT3_FS=y 1127CONFIG_EXT3_FS=m
1039CONFIG_EXT3_FS_XATTR=y 1128CONFIG_EXT3_FS_XATTR=y
1040# CONFIG_EXT3_FS_POSIX_ACL is not set 1129# CONFIG_EXT3_FS_POSIX_ACL is not set
1041# CONFIG_EXT3_FS_SECURITY is not set 1130# CONFIG_EXT3_FS_SECURITY is not set
1042# CONFIG_EXT4DEV_FS is not set 1131CONFIG_EXT4_FS=y
1043CONFIG_JBD=y 1132# CONFIG_EXT4DEV_COMPAT is not set
1133CONFIG_EXT4_FS_XATTR=y
1134# CONFIG_EXT4_FS_POSIX_ACL is not set
1135# CONFIG_EXT4_FS_SECURITY is not set
1136CONFIG_JBD=m
1044# CONFIG_JBD_DEBUG is not set 1137# CONFIG_JBD_DEBUG is not set
1138CONFIG_JBD2=y
1139# CONFIG_JBD2_DEBUG is not set
1045CONFIG_FS_MBCACHE=y 1140CONFIG_FS_MBCACHE=y
1046# CONFIG_REISERFS_FS is not set 1141# CONFIG_REISERFS_FS is not set
1047# CONFIG_JFS_FS is not set 1142# CONFIG_JFS_FS is not set
1048# CONFIG_FS_POSIX_ACL is not set 1143# CONFIG_FS_POSIX_ACL is not set
1144CONFIG_FILE_LOCKING=y
1049# CONFIG_XFS_FS is not set 1145# CONFIG_XFS_FS is not set
1050# CONFIG_GFS2_FS is not set 1146# CONFIG_GFS2_FS is not set
1051# CONFIG_OCFS2_FS is not set 1147# CONFIG_OCFS2_FS is not set
1148# CONFIG_BTRFS_FS is not set
1052CONFIG_DNOTIFY=y 1149CONFIG_DNOTIFY=y
1053CONFIG_INOTIFY=y 1150CONFIG_INOTIFY=y
1054CONFIG_INOTIFY_USER=y 1151CONFIG_INOTIFY_USER=y
1055CONFIG_QUOTA=y 1152CONFIG_QUOTA=y
1056# CONFIG_QUOTA_NETLINK_INTERFACE is not set 1153# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1057CONFIG_PRINT_QUOTA_WARNING=y 1154CONFIG_PRINT_QUOTA_WARNING=y
1155CONFIG_QUOTA_TREE=y
1058# CONFIG_QFMT_V1 is not set 1156# CONFIG_QFMT_V1 is not set
1059CONFIG_QFMT_V2=y 1157CONFIG_QFMT_V2=y
1060CONFIG_QUOTACTL=y 1158CONFIG_QUOTACTL=y
@@ -1087,16 +1185,14 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1087CONFIG_PROC_FS=y 1185CONFIG_PROC_FS=y
1088CONFIG_PROC_KCORE=y 1186CONFIG_PROC_KCORE=y
1089CONFIG_PROC_SYSCTL=y 1187CONFIG_PROC_SYSCTL=y
1188CONFIG_PROC_PAGE_MONITOR=y
1090CONFIG_SYSFS=y 1189CONFIG_SYSFS=y
1091CONFIG_TMPFS=y 1190CONFIG_TMPFS=y
1092# CONFIG_TMPFS_POSIX_ACL is not set 1191# CONFIG_TMPFS_POSIX_ACL is not set
1093CONFIG_HUGETLBFS=y 1192CONFIG_HUGETLBFS=y
1094CONFIG_HUGETLB_PAGE=y 1193CONFIG_HUGETLB_PAGE=y
1095# CONFIG_CONFIGFS_FS is not set 1194# CONFIG_CONFIGFS_FS is not set
1096 1195CONFIG_MISC_FILESYSTEMS=y
1097#
1098# Miscellaneous filesystems
1099#
1100# CONFIG_ADFS_FS is not set 1196# CONFIG_ADFS_FS is not set
1101# CONFIG_AFFS_FS is not set 1197# CONFIG_AFFS_FS is not set
1102# CONFIG_HFS_FS is not set 1198# CONFIG_HFS_FS is not set
@@ -1106,6 +1202,7 @@ CONFIG_HUGETLB_PAGE=y
1106# CONFIG_EFS_FS is not set 1202# CONFIG_EFS_FS is not set
1107# CONFIG_JFFS2_FS is not set 1203# CONFIG_JFFS2_FS is not set
1108# CONFIG_CRAMFS is not set 1204# CONFIG_CRAMFS is not set
1205# CONFIG_SQUASHFS is not set
1109# CONFIG_VXFS_FS is not set 1206# CONFIG_VXFS_FS is not set
1110# CONFIG_MINIX_FS is not set 1207# CONFIG_MINIX_FS is not set
1111# CONFIG_OMFS_FS is not set 1208# CONFIG_OMFS_FS is not set
@@ -1126,6 +1223,7 @@ CONFIG_LOCKD_V4=y
1126CONFIG_NFS_COMMON=y 1223CONFIG_NFS_COMMON=y
1127CONFIG_SUNRPC=y 1224CONFIG_SUNRPC=y
1128CONFIG_SUNRPC_GSS=y 1225CONFIG_SUNRPC_GSS=y
1226# CONFIG_SUNRPC_REGISTER_V4 is not set
1129CONFIG_RPCSEC_GSS_KRB5=y 1227CONFIG_RPCSEC_GSS_KRB5=y
1130# CONFIG_RPCSEC_GSS_SPKM3 is not set 1228# CONFIG_RPCSEC_GSS_SPKM3 is not set
1131# CONFIG_SMB_FS is not set 1229# CONFIG_SMB_FS is not set
@@ -1190,9 +1288,9 @@ CONFIG_NLS_ISO8859_1=y
1190# Library routines 1288# Library routines
1191# 1289#
1192CONFIG_BITREVERSE=y 1290CONFIG_BITREVERSE=y
1193# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1291CONFIG_GENERIC_FIND_LAST_BIT=y
1194CONFIG_CRC_CCITT=m 1292CONFIG_CRC_CCITT=m
1195# CONFIG_CRC16 is not set 1293CONFIG_CRC16=y
1196CONFIG_CRC_T10DIF=y 1294CONFIG_CRC_T10DIF=y
1197CONFIG_CRC_ITU_T=m 1295CONFIG_CRC_ITU_T=m
1198CONFIG_CRC32=y 1296CONFIG_CRC32=y
@@ -1250,27 +1348,44 @@ CONFIG_DEBUG_WRITECOUNT=y
1250CONFIG_DEBUG_MEMORY_INIT=y 1348CONFIG_DEBUG_MEMORY_INIT=y
1251CONFIG_DEBUG_LIST=y 1349CONFIG_DEBUG_LIST=y
1252# CONFIG_DEBUG_SG is not set 1350# CONFIG_DEBUG_SG is not set
1253CONFIG_FRAME_POINTER=y 1351# CONFIG_DEBUG_NOTIFIERS is not set
1254# CONFIG_BOOT_PRINTK_DELAY is not set 1352# CONFIG_BOOT_PRINTK_DELAY is not set
1255# CONFIG_RCU_TORTURE_TEST is not set 1353# CONFIG_RCU_TORTURE_TEST is not set
1354# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1256# CONFIG_BACKTRACE_SELF_TEST is not set 1355# CONFIG_BACKTRACE_SELF_TEST is not set
1356# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1257# CONFIG_FAULT_INJECTION is not set 1357# CONFIG_FAULT_INJECTION is not set
1258# CONFIG_LATENCYTOP is not set 1358# CONFIG_LATENCYTOP is not set
1259CONFIG_SYSCTL_SYSCALL_CHECK=y 1359CONFIG_SYSCTL_SYSCALL_CHECK=y
1260CONFIG_HAVE_FTRACE=y 1360CONFIG_NOP_TRACER=y
1361CONFIG_HAVE_FUNCTION_TRACER=y
1261CONFIG_HAVE_DYNAMIC_FTRACE=y 1362CONFIG_HAVE_DYNAMIC_FTRACE=y
1262# CONFIG_FTRACE is not set 1363CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1364CONFIG_RING_BUFFER=y
1365CONFIG_TRACING=y
1366
1367#
1368# Tracers
1369#
1370# CONFIG_FUNCTION_TRACER is not set
1263# CONFIG_IRQSOFF_TRACER is not set 1371# CONFIG_IRQSOFF_TRACER is not set
1264# CONFIG_SCHED_TRACER is not set 1372# CONFIG_SCHED_TRACER is not set
1265# CONFIG_CONTEXT_SWITCH_TRACER is not set 1373# CONFIG_CONTEXT_SWITCH_TRACER is not set
1374# CONFIG_BOOT_TRACER is not set
1375# CONFIG_TRACE_BRANCH_PROFILING is not set
1376# CONFIG_STACK_TRACER is not set
1377# CONFIG_FTRACE_STARTUP_TEST is not set
1378# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1266# CONFIG_SAMPLES is not set 1379# CONFIG_SAMPLES is not set
1267CONFIG_HAVE_ARCH_KGDB=y 1380CONFIG_HAVE_ARCH_KGDB=y
1268# CONFIG_KGDB is not set 1381# CONFIG_KGDB is not set
1382CONFIG_PRINT_STACK_DEPTH=64
1269CONFIG_DEBUG_STACKOVERFLOW=y 1383CONFIG_DEBUG_STACKOVERFLOW=y
1270# CONFIG_DEBUG_STACK_USAGE is not set 1384# CONFIG_DEBUG_STACK_USAGE is not set
1271# CONFIG_DEBUG_PAGEALLOC is not set 1385# CONFIG_DEBUG_PAGEALLOC is not set
1272# CONFIG_CODE_PATCHING_SELFTEST is not set 1386# CONFIG_CODE_PATCHING_SELFTEST is not set
1273# CONFIG_FTR_FIXUP_SELFTEST is not set 1387# CONFIG_FTR_FIXUP_SELFTEST is not set
1388# CONFIG_MSI_BITMAP_SELFTEST is not set
1274# CONFIG_XMON is not set 1389# CONFIG_XMON is not set
1275CONFIG_IRQSTACKS=y 1390CONFIG_IRQSTACKS=y
1276# CONFIG_VIRQ_DEBUG is not set 1391# CONFIG_VIRQ_DEBUG is not set
@@ -1282,16 +1397,26 @@ CONFIG_IRQSTACKS=y
1282# 1397#
1283# CONFIG_KEYS is not set 1398# CONFIG_KEYS is not set
1284# CONFIG_SECURITY is not set 1399# CONFIG_SECURITY is not set
1400# CONFIG_SECURITYFS is not set
1285# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1401# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1286CONFIG_CRYPTO=y 1402CONFIG_CRYPTO=y
1287 1403
1288# 1404#
1289# Crypto core or helper 1405# Crypto core or helper
1290# 1406#
1407# CONFIG_CRYPTO_FIPS is not set
1291CONFIG_CRYPTO_ALGAPI=y 1408CONFIG_CRYPTO_ALGAPI=y
1409CONFIG_CRYPTO_ALGAPI2=y
1292CONFIG_CRYPTO_AEAD=m 1410CONFIG_CRYPTO_AEAD=m
1411CONFIG_CRYPTO_AEAD2=y
1293CONFIG_CRYPTO_BLKCIPHER=y 1412CONFIG_CRYPTO_BLKCIPHER=y
1413CONFIG_CRYPTO_BLKCIPHER2=y
1414CONFIG_CRYPTO_HASH=y
1415CONFIG_CRYPTO_HASH2=y
1416CONFIG_CRYPTO_RNG=m
1417CONFIG_CRYPTO_RNG2=y
1294CONFIG_CRYPTO_MANAGER=y 1418CONFIG_CRYPTO_MANAGER=y
1419CONFIG_CRYPTO_MANAGER2=y
1295CONFIG_CRYPTO_GF128MUL=m 1420CONFIG_CRYPTO_GF128MUL=m
1296# CONFIG_CRYPTO_NULL is not set 1421# CONFIG_CRYPTO_NULL is not set
1297# CONFIG_CRYPTO_CRYPTD is not set 1422# CONFIG_CRYPTO_CRYPTD is not set
@@ -1363,6 +1488,11 @@ CONFIG_CRYPTO_SALSA20=m
1363# 1488#
1364# CONFIG_CRYPTO_DEFLATE is not set 1489# CONFIG_CRYPTO_DEFLATE is not set
1365CONFIG_CRYPTO_LZO=m 1490CONFIG_CRYPTO_LZO=m
1491
1492#
1493# Random Number Generation
1494#
1495# CONFIG_CRYPTO_ANSI_CPRNG is not set
1366CONFIG_CRYPTO_HW=y 1496CONFIG_CRYPTO_HW=y
1367# CONFIG_PPC_CLOCK is not set 1497# CONFIG_PPC_CLOCK is not set
1368# CONFIG_VIRTUALIZATION is not set 1498# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
index 4911104791c3..21172badd708 100644
--- a/arch/powerpc/include/asm/cputable.h
+++ b/arch/powerpc/include/asm/cputable.h
@@ -241,9 +241,11 @@ extern const char *powerpc_base_platform;
241/* We need to mark all pages as being coherent if we're SMP or we have a 241/* We need to mark all pages as being coherent if we're SMP or we have a
242 * 74[45]x and an MPC107 host bridge. Also 83xx and PowerQUICC II 242 * 74[45]x and an MPC107 host bridge. Also 83xx and PowerQUICC II
243 * require it for PCI "streaming/prefetch" to work properly. 243 * require it for PCI "streaming/prefetch" to work properly.
244 * This is also required by 52xx family.
244 */ 245 */
245#if defined(CONFIG_SMP) || defined(CONFIG_MPC10X_BRIDGE) \ 246#if defined(CONFIG_SMP) || defined(CONFIG_MPC10X_BRIDGE) \
246 || defined(CONFIG_PPC_83xx) || defined(CONFIG_8260) 247 || defined(CONFIG_PPC_83xx) || defined(CONFIG_8260) \
248 || defined(CONFIG_PPC_MPC52xx)
247#define CPU_FTR_COMMON CPU_FTR_NEED_COHERENT 249#define CPU_FTR_COMMON CPU_FTR_NEED_COHERENT
248#else 250#else
249#define CPU_FTR_COMMON 0 251#define CPU_FTR_COMMON 0
diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S
index a1c4cfd25ded..7db2e42d97a2 100644
--- a/arch/powerpc/kernel/head_32.S
+++ b/arch/powerpc/kernel/head_32.S
@@ -511,7 +511,7 @@ InstructionTLBMiss:
511 and r1,r1,r2 /* writable if _RW and _DIRTY */ 511 and r1,r1,r2 /* writable if _RW and _DIRTY */
512 rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ 512 rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
513 rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ 513 rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
514 ori r1,r1,0xe14 /* clear out reserved bits and M */ 514 ori r1,r1,0xe04 /* clear out reserved bits */
515 andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ 515 andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
516 mtspr SPRN_RPA,r1 516 mtspr SPRN_RPA,r1
517 mfspr r3,SPRN_IMISS 517 mfspr r3,SPRN_IMISS
@@ -585,7 +585,7 @@ DataLoadTLBMiss:
585 and r1,r1,r2 /* writable if _RW and _DIRTY */ 585 and r1,r1,r2 /* writable if _RW and _DIRTY */
586 rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ 586 rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
587 rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */ 587 rlwimi r3,r3,32-1,31,31 /* _PAGE_USER -> PP lsb */
588 ori r1,r1,0xe14 /* clear out reserved bits and M */ 588 ori r1,r1,0xe04 /* clear out reserved bits */
589 andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ 589 andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */
590 mtspr SPRN_RPA,r1 590 mtspr SPRN_RPA,r1
591 mfspr r3,SPRN_DMISS 591 mfspr r3,SPRN_DMISS
@@ -653,7 +653,7 @@ DataStoreTLBMiss:
653 stw r3,0(r2) /* update PTE (accessed/dirty bits) */ 653 stw r3,0(r2) /* update PTE (accessed/dirty bits) */
654 /* Convert linux-style PTE to low word of PPC-style PTE */ 654 /* Convert linux-style PTE to low word of PPC-style PTE */
655 rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */ 655 rlwimi r3,r3,32-1,30,30 /* _PAGE_USER -> PP msb */
656 li r1,0xe15 /* clear out reserved bits and M */ 656 li r1,0xe05 /* clear out reserved bits & PP lsb */
657 andc r1,r3,r1 /* PP = user? 2: 0 */ 657 andc r1,r3,r1 /* PP = user? 2: 0 */
658 mtspr SPRN_RPA,r1 658 mtspr SPRN_RPA,r1
659 mfspr r3,SPRN_DMISS 659 mfspr r3,SPRN_DMISS
diff --git a/arch/powerpc/platforms/ps3/Kconfig b/arch/powerpc/platforms/ps3/Kconfig
index 920cf7a454b1..740ef56a1550 100644
--- a/arch/powerpc/platforms/ps3/Kconfig
+++ b/arch/powerpc/platforms/ps3/Kconfig
@@ -128,6 +128,13 @@ config PS3_FLASH
128 be disabled on the kernel command line using "ps3flash=off", to 128 be disabled on the kernel command line using "ps3flash=off", to
129 not allocate this fixed buffer. 129 not allocate this fixed buffer.
130 130
131config PS3_VRAM
132 tristate "PS3 Video RAM Storage Driver"
133 depends on FB_PS3=y && BLOCK && m
134 help
135 This driver allows you to use excess PS3 video RAM as volatile
136 storage or system swap.
137
131config PS3_LPM 138config PS3_LPM
132 tristate "PS3 Logical Performance Monitor support" 139 tristate "PS3 Logical Performance Monitor support"
133 depends on PPC_PS3 140 depends on PPC_PS3
diff --git a/arch/s390/include/asm/mman.h b/arch/s390/include/asm/mman.h
index 7839767d837e..da01432e8f44 100644
--- a/arch/s390/include/asm/mman.h
+++ b/arch/s390/include/asm/mman.h
@@ -22,4 +22,9 @@
22#define MCL_CURRENT 1 /* lock all current mappings */ 22#define MCL_CURRENT 1 /* lock all current mappings */
23#define MCL_FUTURE 2 /* lock all future mappings */ 23#define MCL_FUTURE 2 /* lock all future mappings */
24 24
25#if defined(__KERNEL__) && !defined(__ASSEMBLY__) && defined(CONFIG_64BIT)
26int s390_mmap_check(unsigned long addr, unsigned long len);
27#define arch_mmap_check(addr,len,flags) s390_mmap_check(addr,len)
28#endif
29
25#endif /* __S390_MMAN_H__ */ 30#endif /* __S390_MMAN_H__ */
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
index 066b99502e09..db4523fe38ac 100644
--- a/arch/s390/include/asm/processor.h
+++ b/arch/s390/include/asm/processor.h
@@ -61,7 +61,7 @@ extern void print_cpu_info(struct cpuinfo_S390 *);
61extern int get_cpu_capability(unsigned int *); 61extern int get_cpu_capability(unsigned int *);
62 62
63/* 63/*
64 * User space process size: 2GB for 31 bit, 4TB for 64 bit. 64 * User space process size: 2GB for 31 bit, 4TB or 8PT for 64 bit.
65 */ 65 */
66#ifndef __s390x__ 66#ifndef __s390x__
67 67
@@ -70,8 +70,7 @@ extern int get_cpu_capability(unsigned int *);
70 70
71#else /* __s390x__ */ 71#else /* __s390x__ */
72 72
73#define TASK_SIZE_OF(tsk) (test_tsk_thread_flag(tsk,TIF_31BIT) ? \ 73#define TASK_SIZE_OF(tsk) ((tsk)->mm->context.asce_limit)
74 (1UL << 31) : (1UL << 53))
75#define TASK_UNMAPPED_BASE (test_thread_flag(TIF_31BIT) ? \ 74#define TASK_UNMAPPED_BASE (test_thread_flag(TIF_31BIT) ? \
76 (1UL << 30) : (1UL << 41)) 75 (1UL << 30) : (1UL << 41))
77#define TASK_SIZE TASK_SIZE_OF(current) 76#define TASK_SIZE TASK_SIZE_OF(current)
diff --git a/arch/s390/include/asm/topology.h b/arch/s390/include/asm/topology.h
index c93eb50e1d09..c979c3b56ab0 100644
--- a/arch/s390/include/asm/topology.h
+++ b/arch/s390/include/asm/topology.h
@@ -30,6 +30,8 @@ static inline void s390_init_cpu_topology(void)
30}; 30};
31#endif 31#endif
32 32
33#define SD_MC_INIT SD_CPU_INIT
34
33#include <asm-generic/topology.h> 35#include <asm-generic/topology.h>
34 36
35#endif /* _ASM_S390_TOPOLOGY_H */ 37#endif /* _ASM_S390_TOPOLOGY_H */
diff --git a/arch/s390/kernel/mcount.S b/arch/s390/kernel/mcount.S
index 397d131a345f..80641224a095 100644
--- a/arch/s390/kernel/mcount.S
+++ b/arch/s390/kernel/mcount.S
@@ -5,6 +5,8 @@
5 * 5 *
6 */ 6 */
7 7
8#include <asm/asm-offsets.h>
9
8#ifndef CONFIG_64BIT 10#ifndef CONFIG_64BIT
9.globl _mcount 11.globl _mcount
10_mcount: 12_mcount:
@@ -14,7 +16,7 @@ _mcount:
14 ahi %r15,-96 16 ahi %r15,-96
15 l %r3,100(%r15) 17 l %r3,100(%r15)
16 la %r2,0(%r14) 18 la %r2,0(%r14)
17 st %r1,0(%r15) 19 st %r1,__SF_BACKCHAIN(%r15)
18 la %r3,0(%r3) 20 la %r3,0(%r3)
19 bras %r14,0f 21 bras %r14,0f
20 .long ftrace_trace_function 22 .long ftrace_trace_function
@@ -38,7 +40,7 @@ _mcount:
38 stg %r14,112(%r15) 40 stg %r14,112(%r15)
39 lgr %r1,%r15 41 lgr %r1,%r15
40 aghi %r15,-160 42 aghi %r15,-160
41 stg %r1,0(%r15) 43 stg %r1,__SF_BACKCHAIN(%r15)
42 lgr %r2,%r14 44 lgr %r2,%r14
43 lg %r3,168(%r15) 45 lg %r3,168(%r15)
44 larl %r14,ftrace_trace_function 46 larl %r14,ftrace_trace_function
diff --git a/arch/s390/lib/div64.c b/arch/s390/lib/div64.c
index a5f8300bf3ee..d9e62c0b576a 100644
--- a/arch/s390/lib/div64.c
+++ b/arch/s390/lib/div64.c
@@ -61,7 +61,7 @@ static uint32_t __div64_31(uint64_t *n, uint32_t base)
61 " clr %0,%3\n" 61 " clr %0,%3\n"
62 " jl 0f\n" 62 " jl 0f\n"
63 " slr %0,%3\n" 63 " slr %0,%3\n"
64 " alr %1,%2\n" 64 " ahi %1,1\n"
65 "0:\n" 65 "0:\n"
66 : "+d" (reg2), "+d" (reg3), "=d" (tmp) 66 : "+d" (reg2), "+d" (reg3), "=d" (tmp)
67 : "d" (base), "2" (1UL) : "cc" ); 67 : "d" (base), "2" (1UL) : "cc" );
diff --git a/arch/s390/lib/uaccess_pt.c b/arch/s390/lib/uaccess_pt.c
index d66215b0fde9..b0b84c35b0ad 100644
--- a/arch/s390/lib/uaccess_pt.c
+++ b/arch/s390/lib/uaccess_pt.c
@@ -119,8 +119,6 @@ retry:
119 goto fault; 119 goto fault;
120 120
121 pfn = pte_pfn(*pte); 121 pfn = pte_pfn(*pte);
122 if (!pfn_valid(pfn))
123 goto out;
124 122
125 offset = uaddr & (PAGE_SIZE - 1); 123 offset = uaddr & (PAGE_SIZE - 1);
126 size = min(n - done, PAGE_SIZE - offset); 124 size = min(n - done, PAGE_SIZE - offset);
@@ -135,7 +133,6 @@ retry:
135 done += size; 133 done += size;
136 uaddr += size; 134 uaddr += size;
137 } while (done < n); 135 } while (done < n);
138out:
139 spin_unlock(&mm->page_table_lock); 136 spin_unlock(&mm->page_table_lock);
140 return n - done; 137 return n - done;
141fault: 138fault:
@@ -163,9 +160,6 @@ retry:
163 goto fault; 160 goto fault;
164 161
165 pfn = pte_pfn(*pte); 162 pfn = pte_pfn(*pte);
166 if (!pfn_valid(pfn))
167 goto out;
168
169 ret = (pfn << PAGE_SHIFT) + (uaddr & (PAGE_SIZE - 1)); 163 ret = (pfn << PAGE_SHIFT) + (uaddr & (PAGE_SIZE - 1));
170out: 164out:
171 return ret; 165 return ret;
@@ -244,11 +238,6 @@ retry:
244 goto fault; 238 goto fault;
245 239
246 pfn = pte_pfn(*pte); 240 pfn = pte_pfn(*pte);
247 if (!pfn_valid(pfn)) {
248 done = -1;
249 goto out;
250 }
251
252 offset = uaddr & (PAGE_SIZE-1); 241 offset = uaddr & (PAGE_SIZE-1);
253 addr = (char *)(pfn << PAGE_SHIFT) + offset; 242 addr = (char *)(pfn << PAGE_SHIFT) + offset;
254 len = min(count - done, PAGE_SIZE - offset); 243 len = min(count - done, PAGE_SIZE - offset);
@@ -256,7 +245,6 @@ retry:
256 done += len_str; 245 done += len_str;
257 uaddr += len_str; 246 uaddr += len_str;
258 } while ((len_str == len) && (done < count)); 247 } while ((len_str == len) && (done < count));
259out:
260 spin_unlock(&mm->page_table_lock); 248 spin_unlock(&mm->page_table_lock);
261 return done + 1; 249 return done + 1;
262fault: 250fault:
@@ -325,12 +313,7 @@ retry:
325 } 313 }
326 314
327 pfn_from = pte_pfn(*pte_from); 315 pfn_from = pte_pfn(*pte_from);
328 if (!pfn_valid(pfn_from))
329 goto out;
330 pfn_to = pte_pfn(*pte_to); 316 pfn_to = pte_pfn(*pte_to);
331 if (!pfn_valid(pfn_to))
332 goto out;
333
334 offset_from = uaddr_from & (PAGE_SIZE-1); 317 offset_from = uaddr_from & (PAGE_SIZE-1);
335 offset_to = uaddr_from & (PAGE_SIZE-1); 318 offset_to = uaddr_from & (PAGE_SIZE-1);
336 offset_max = max(offset_from, offset_to); 319 offset_max = max(offset_from, offset_to);
@@ -342,7 +325,6 @@ retry:
342 uaddr_from += size; 325 uaddr_from += size;
343 uaddr_to += size; 326 uaddr_to += size;
344 } while (done < n); 327 } while (done < n);
345out:
346 spin_unlock(&mm->page_table_lock); 328 spin_unlock(&mm->page_table_lock);
347 return n - done; 329 return n - done;
348fault: 330fault:
diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
index 5932a824547a..e008d236cc15 100644
--- a/arch/s390/mm/mmap.c
+++ b/arch/s390/mm/mmap.c
@@ -35,7 +35,7 @@
35 * Leave an at least ~128 MB hole. 35 * Leave an at least ~128 MB hole.
36 */ 36 */
37#define MIN_GAP (128*1024*1024) 37#define MIN_GAP (128*1024*1024)
38#define MAX_GAP (TASK_SIZE/6*5) 38#define MAX_GAP (STACK_TOP/6*5)
39 39
40static inline unsigned long mmap_base(void) 40static inline unsigned long mmap_base(void)
41{ 41{
@@ -46,7 +46,7 @@ static inline unsigned long mmap_base(void)
46 else if (gap > MAX_GAP) 46 else if (gap > MAX_GAP)
47 gap = MAX_GAP; 47 gap = MAX_GAP;
48 48
49 return TASK_SIZE - (gap & PAGE_MASK); 49 return STACK_TOP - (gap & PAGE_MASK);
50} 50}
51 51
52static inline int mmap_is_legacy(void) 52static inline int mmap_is_legacy(void)
@@ -89,42 +89,58 @@ EXPORT_SYMBOL_GPL(arch_pick_mmap_layout);
89 89
90#else 90#else
91 91
92int s390_mmap_check(unsigned long addr, unsigned long len)
93{
94 if (!test_thread_flag(TIF_31BIT) &&
95 len >= TASK_SIZE && TASK_SIZE < (1UL << 53))
96 return crst_table_upgrade(current->mm, 1UL << 53);
97 return 0;
98}
99
92static unsigned long 100static unsigned long
93s390_get_unmapped_area(struct file *filp, unsigned long addr, 101s390_get_unmapped_area(struct file *filp, unsigned long addr,
94 unsigned long len, unsigned long pgoff, unsigned long flags) 102 unsigned long len, unsigned long pgoff, unsigned long flags)
95{ 103{
96 struct mm_struct *mm = current->mm; 104 struct mm_struct *mm = current->mm;
105 unsigned long area;
97 int rc; 106 int rc;
98 107
99 addr = arch_get_unmapped_area(filp, addr, len, pgoff, flags); 108 area = arch_get_unmapped_area(filp, addr, len, pgoff, flags);
100 if (addr & ~PAGE_MASK) 109 if (!(area & ~PAGE_MASK))
101 return addr; 110 return area;
102 if (unlikely(mm->context.asce_limit < addr + len)) { 111 if (area == -ENOMEM &&
103 rc = crst_table_upgrade(mm, addr + len); 112 !test_thread_flag(TIF_31BIT) && TASK_SIZE < (1UL << 53)) {
113 /* Upgrade the page table to 4 levels and retry. */
114 rc = crst_table_upgrade(mm, 1UL << 53);
104 if (rc) 115 if (rc)
105 return (unsigned long) rc; 116 return (unsigned long) rc;
117 area = arch_get_unmapped_area(filp, addr, len, pgoff, flags);
106 } 118 }
107 return addr; 119 return area;
108} 120}
109 121
110static unsigned long 122static unsigned long
111s390_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, 123s390_get_unmapped_area_topdown(struct file *filp, const unsigned long addr,
112 const unsigned long len, const unsigned long pgoff, 124 const unsigned long len, const unsigned long pgoff,
113 const unsigned long flags) 125 const unsigned long flags)
114{ 126{
115 struct mm_struct *mm = current->mm; 127 struct mm_struct *mm = current->mm;
116 unsigned long addr = addr0; 128 unsigned long area;
117 int rc; 129 int rc;
118 130
119 addr = arch_get_unmapped_area_topdown(filp, addr, len, pgoff, flags); 131 area = arch_get_unmapped_area_topdown(filp, addr, len, pgoff, flags);
120 if (addr & ~PAGE_MASK) 132 if (!(area & ~PAGE_MASK))
121 return addr; 133 return area;
122 if (unlikely(mm->context.asce_limit < addr + len)) { 134 if (area == -ENOMEM &&
123 rc = crst_table_upgrade(mm, addr + len); 135 !test_thread_flag(TIF_31BIT) && TASK_SIZE < (1UL << 53)) {
136 /* Upgrade the page table to 4 levels and retry. */
137 rc = crst_table_upgrade(mm, 1UL << 53);
124 if (rc) 138 if (rc)
125 return (unsigned long) rc; 139 return (unsigned long) rc;
140 area = arch_get_unmapped_area_topdown(filp, addr, len,
141 pgoff, flags);
126 } 142 }
127 return addr; 143 return area;
128} 144}
129/* 145/*
130 * This function, called very early during the creation of a new 146 * This function, called very early during the creation of a new
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 0767827540b1..6b6ddc4ea02b 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -117,6 +117,7 @@ repeat:
117 crst_table_init(table, entry); 117 crst_table_init(table, entry);
118 pgd_populate(mm, (pgd_t *) table, (pud_t *) pgd); 118 pgd_populate(mm, (pgd_t *) table, (pud_t *) pgd);
119 mm->pgd = (pgd_t *) table; 119 mm->pgd = (pgd_t *) table;
120 mm->task_size = mm->context.asce_limit;
120 table = NULL; 121 table = NULL;
121 } 122 }
122 spin_unlock(&mm->page_table_lock); 123 spin_unlock(&mm->page_table_lock);
@@ -154,6 +155,7 @@ void crst_table_downgrade(struct mm_struct *mm, unsigned long limit)
154 BUG(); 155 BUG();
155 } 156 }
156 mm->pgd = (pgd_t *) (pgd_val(*pgd) & _REGION_ENTRY_ORIGIN); 157 mm->pgd = (pgd_t *) (pgd_val(*pgd) & _REGION_ENTRY_ORIGIN);
158 mm->task_size = mm->context.asce_limit;
157 crst_table_free(mm, (unsigned long *) pgd); 159 crst_table_free(mm, (unsigned long *) pgd);
158 } 160 }
159 update_mm(mm, current); 161 update_mm(mm, current);
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index a95eaf0e582a..924e156a85ab 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -456,24 +456,9 @@ config CPU_SUP_AMD
456 456
457 If unsure, say N. 457 If unsure, say N.
458 458
459config CPU_SUP_CENTAUR_32 459config CPU_SUP_CENTAUR
460 default y 460 default y
461 bool "Support Centaur processors" if PROCESSOR_SELECT 461 bool "Support Centaur processors" if PROCESSOR_SELECT
462 depends on !64BIT
463 ---help---
464 This enables detection, tunings and quirks for Centaur processors
465
466 You need this enabled if you want your kernel to run on a
467 Centaur CPU. Disabling this option on other types of CPUs
468 makes the kernel a tiny bit smaller. Disabling it on a Centaur
469 CPU might render the kernel unbootable.
470
471 If unsure, say N.
472
473config CPU_SUP_CENTAUR_64
474 default y
475 bool "Support Centaur processors" if PROCESSOR_SELECT
476 depends on 64BIT
477 ---help--- 462 ---help---
478 This enables detection, tunings and quirks for Centaur processors 463 This enables detection, tunings and quirks for Centaur processors
479 464
diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
index 394d177d721b..00f5962d82d0 100644
--- a/arch/x86/include/asm/apic.h
+++ b/arch/x86/include/asm/apic.h
@@ -108,6 +108,16 @@ extern void native_apic_icr_write(u32 low, u32 id);
108extern u64 native_apic_icr_read(void); 108extern u64 native_apic_icr_read(void);
109 109
110#ifdef CONFIG_X86_X2APIC 110#ifdef CONFIG_X86_X2APIC
111/*
112 * Make previous memory operations globally visible before
113 * sending the IPI through x2apic wrmsr. We need a serializing instruction or
114 * mfence for this.
115 */
116static inline void x2apic_wrmsr_fence(void)
117{
118 asm volatile("mfence" : : : "memory");
119}
120
111static inline void native_apic_msr_write(u32 reg, u32 v) 121static inline void native_apic_msr_write(u32 reg, u32 v)
112{ 122{
113 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR || 123 if (reg == APIC_DFR || reg == APIC_ID || reg == APIC_LDR ||
@@ -184,6 +194,9 @@ static inline int x2apic_enabled(void)
184{ 194{
185 return 0; 195 return 0;
186} 196}
197
198#define x2apic 0
199
187#endif 200#endif
188 201
189extern int get_physical_broadcast(void); 202extern int get_physical_broadcast(void);
diff --git a/arch/x86/include/asm/cpu_debug.h b/arch/x86/include/asm/cpu_debug.h
index 56f1635e4617..222802029fa6 100755
--- a/arch/x86/include/asm/cpu_debug.h
+++ b/arch/x86/include/asm/cpu_debug.h
@@ -33,6 +33,8 @@ enum cpu_debug_bit {
33 CPU_VMX_BIT, /* VMX */ 33 CPU_VMX_BIT, /* VMX */
34 CPU_CALL_BIT, /* System Call */ 34 CPU_CALL_BIT, /* System Call */
35 CPU_BASE_BIT, /* BASE Address */ 35 CPU_BASE_BIT, /* BASE Address */
36 CPU_VER_BIT, /* Version ID */
37 CPU_CONF_BIT, /* Configuration */
36 CPU_SMM_BIT, /* System mgmt mode */ 38 CPU_SMM_BIT, /* System mgmt mode */
37 CPU_SVM_BIT, /*Secure Virtual Machine*/ 39 CPU_SVM_BIT, /*Secure Virtual Machine*/
38 CPU_OSVM_BIT, /* OS-Visible Workaround*/ 40 CPU_OSVM_BIT, /* OS-Visible Workaround*/
@@ -69,6 +71,8 @@ enum cpu_debug_bit {
69#define CPU_VMX (1 << CPU_VMX_BIT) 71#define CPU_VMX (1 << CPU_VMX_BIT)
70#define CPU_CALL (1 << CPU_CALL_BIT) 72#define CPU_CALL (1 << CPU_CALL_BIT)
71#define CPU_BASE (1 << CPU_BASE_BIT) 73#define CPU_BASE (1 << CPU_BASE_BIT)
74#define CPU_VER (1 << CPU_VER_BIT)
75#define CPU_CONF (1 << CPU_CONF_BIT)
72#define CPU_SMM (1 << CPU_SMM_BIT) 76#define CPU_SMM (1 << CPU_SMM_BIT)
73#define CPU_SVM (1 << CPU_SVM_BIT) 77#define CPU_SVM (1 << CPU_SVM_BIT)
74#define CPU_OSVM (1 << CPU_OSVM_BIT) 78#define CPU_OSVM (1 << CPU_OSVM_BIT)
@@ -123,10 +127,15 @@ enum cpu_processor_bit {
123 CPU_INTEL_ATOM_BIT, 127 CPU_INTEL_ATOM_BIT,
124 CPU_INTEL_XEON_P4_BIT, 128 CPU_INTEL_XEON_P4_BIT,
125 CPU_INTEL_XEON_MP_BIT, 129 CPU_INTEL_XEON_MP_BIT,
130/* AMD */
131 CPU_AMD_K6_BIT,
132 CPU_AMD_K7_BIT,
133 CPU_AMD_K8_BIT,
134 CPU_AMD_0F_BIT,
135 CPU_AMD_10_BIT,
136 CPU_AMD_11_BIT,
126}; 137};
127 138
128#define CPU_ALL (~0) /* Select all CPUs */
129
130#define CPU_INTEL_PENTIUM (1 << CPU_INTEL_PENTIUM_BIT) 139#define CPU_INTEL_PENTIUM (1 << CPU_INTEL_PENTIUM_BIT)
131#define CPU_INTEL_P6 (1 << CPU_INTEL_P6_BIT) 140#define CPU_INTEL_P6 (1 << CPU_INTEL_P6_BIT)
132#define CPU_INTEL_PENTIUM_M (1 << CPU_INTEL_PENTIUM_M_BIT) 141#define CPU_INTEL_PENTIUM_M (1 << CPU_INTEL_PENTIUM_M_BIT)
@@ -156,9 +165,27 @@ enum cpu_processor_bit {
156#define CPU_PX_CX_AT (CPU_INTEL_PX | CPU_CX_AT) 165#define CPU_PX_CX_AT (CPU_INTEL_PX | CPU_CX_AT)
157#define CPU_PX_CX_AT_XE (CPU_INTEL_PX | CPU_CX_AT_XE) 166#define CPU_PX_CX_AT_XE (CPU_INTEL_PX | CPU_CX_AT_XE)
158 167
159/* Select all Intel CPUs*/ 168/* Select all supported Intel CPUs */
160#define CPU_INTEL_ALL (CPU_INTEL_PENTIUM | CPU_PX_CX_AT_XE) 169#define CPU_INTEL_ALL (CPU_INTEL_PENTIUM | CPU_PX_CX_AT_XE)
161 170
171#define CPU_AMD_K6 (1 << CPU_AMD_K6_BIT)
172#define CPU_AMD_K7 (1 << CPU_AMD_K7_BIT)
173#define CPU_AMD_K8 (1 << CPU_AMD_K8_BIT)
174#define CPU_AMD_0F (1 << CPU_AMD_0F_BIT)
175#define CPU_AMD_10 (1 << CPU_AMD_10_BIT)
176#define CPU_AMD_11 (1 << CPU_AMD_11_BIT)
177
178#define CPU_K10_PLUS (CPU_AMD_10 | CPU_AMD_11)
179#define CPU_K0F_PLUS (CPU_AMD_0F | CPU_K10_PLUS)
180#define CPU_K8_PLUS (CPU_AMD_K8 | CPU_K0F_PLUS)
181#define CPU_K7_PLUS (CPU_AMD_K7 | CPU_K8_PLUS)
182
183/* Select all supported AMD CPUs */
184#define CPU_AMD_ALL (CPU_AMD_K6 | CPU_K7_PLUS)
185
186/* Select all supported CPUs */
187#define CPU_ALL (CPU_INTEL_ALL | CPU_AMD_ALL)
188
162#define MAX_CPU_FILES 512 189#define MAX_CPU_FILES 512
163 190
164struct cpu_private { 191struct cpu_private {
diff --git a/arch/x86/include/asm/dmi.h b/arch/x86/include/asm/dmi.h
index bc68212c6bc0..aa32f7e6c197 100644
--- a/arch/x86/include/asm/dmi.h
+++ b/arch/x86/include/asm/dmi.h
@@ -2,21 +2,11 @@
2#define _ASM_X86_DMI_H 2#define _ASM_X86_DMI_H
3 3
4#include <asm/io.h> 4#include <asm/io.h>
5#include <asm/setup.h>
5 6
6#define DMI_MAX_DATA 2048
7
8extern int dmi_alloc_index;
9extern char dmi_alloc_data[DMI_MAX_DATA];
10
11/* This is so early that there is no good way to allocate dynamic memory.
12 Allocate data in an BSS array. */
13static inline void *dmi_alloc(unsigned len) 7static inline void *dmi_alloc(unsigned len)
14{ 8{
15 int idx = dmi_alloc_index; 9 return extend_brk(len, sizeof(int));
16 if ((dmi_alloc_index + len) > DMI_MAX_DATA)
17 return NULL;
18 dmi_alloc_index += len;
19 return dmi_alloc_data + idx;
20} 10}
21 11
22/* Use early IO mappings for DMI because it's initialized early */ 12/* Use early IO mappings for DMI because it's initialized early */
diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h
index 59cb4a1317b7..373cc2bbcad2 100644
--- a/arch/x86/include/asm/io_apic.h
+++ b/arch/x86/include/asm/io_apic.h
@@ -162,7 +162,8 @@ extern int (*ioapic_renumber_irq)(int ioapic, int irq);
162extern void ioapic_init_mappings(void); 162extern void ioapic_init_mappings(void);
163 163
164#ifdef CONFIG_X86_64 164#ifdef CONFIG_X86_64
165extern int save_mask_IO_APIC_setup(void); 165extern int save_IO_APIC_setup(void);
166extern void mask_IO_APIC_setup(void);
166extern void restore_IO_APIC_setup(void); 167extern void restore_IO_APIC_setup(void);
167extern void reinit_intr_remapped_IO_APIC(int); 168extern void reinit_intr_remapped_IO_APIC(int);
168#endif 169#endif
@@ -172,7 +173,7 @@ extern void probe_nr_irqs_gsi(void);
172extern int setup_ioapic_entry(int apic, int irq, 173extern int setup_ioapic_entry(int apic, int irq,
173 struct IO_APIC_route_entry *entry, 174 struct IO_APIC_route_entry *entry,
174 unsigned int destination, int trigger, 175 unsigned int destination, int trigger,
175 int polarity, int vector); 176 int polarity, int vector, int pin);
176extern void ioapic_write_entry(int apic, int pin, 177extern void ioapic_write_entry(int apic, int pin,
177 struct IO_APIC_route_entry e); 178 struct IO_APIC_route_entry e);
178#else /* !CONFIG_X86_IO_APIC */ 179#else /* !CONFIG_X86_IO_APIC */
diff --git a/arch/x86/include/asm/irq_remapping.h b/arch/x86/include/asm/irq_remapping.h
index 20e1fd588dbf..0396760fccb8 100644
--- a/arch/x86/include/asm/irq_remapping.h
+++ b/arch/x86/include/asm/irq_remapping.h
@@ -1,8 +1,6 @@
1#ifndef _ASM_X86_IRQ_REMAPPING_H 1#ifndef _ASM_X86_IRQ_REMAPPING_H
2#define _ASM_X86_IRQ_REMAPPING_H 2#define _ASM_X86_IRQ_REMAPPING_H
3 3
4extern int x2apic;
5
6#define IRTE_DEST(dest) ((x2apic) ? dest : dest << 8) 4#define IRTE_DEST(dest) ((x2apic) ? dest : dest << 8)
7 5
8#endif /* _ASM_X86_IRQ_REMAPPING_H */ 6#endif /* _ASM_X86_IRQ_REMAPPING_H */
diff --git a/arch/x86/include/asm/msidef.h b/arch/x86/include/asm/msidef.h
index 6706b3006f13..4cc48af23fef 100644
--- a/arch/x86/include/asm/msidef.h
+++ b/arch/x86/include/asm/msidef.h
@@ -47,6 +47,7 @@
47#define MSI_ADDR_DEST_ID_MASK 0x00ffff0 47#define MSI_ADDR_DEST_ID_MASK 0x00ffff0
48#define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \ 48#define MSI_ADDR_DEST_ID(dest) (((dest) << MSI_ADDR_DEST_ID_SHIFT) & \
49 MSI_ADDR_DEST_ID_MASK) 49 MSI_ADDR_DEST_ID_MASK)
50#define MSI_ADDR_EXT_DEST_ID(dest) ((dest) & 0xffffff00)
50 51
51#define MSI_ADDR_IR_EXT_INT (1 << 4) 52#define MSI_ADDR_IR_EXT_INT (1 << 4)
52#define MSI_ADDR_IR_SHV (1 << 3) 53#define MSI_ADDR_IR_SHV (1 << 3)
diff --git a/arch/x86/include/asm/page_32_types.h b/arch/x86/include/asm/page_32_types.h
index f1e4a79a6e41..0f915ae649a7 100644
--- a/arch/x86/include/asm/page_32_types.h
+++ b/arch/x86/include/asm/page_32_types.h
@@ -39,6 +39,11 @@
39#define __VIRTUAL_MASK_SHIFT 32 39#define __VIRTUAL_MASK_SHIFT 32
40#endif /* CONFIG_X86_PAE */ 40#endif /* CONFIG_X86_PAE */
41 41
42/*
43 * Kernel image size is limited to 512 MB (see in arch/x86/kernel/head_32.S)
44 */
45#define KERNEL_IMAGE_SIZE (512 * 1024 * 1024)
46
42#ifndef __ASSEMBLY__ 47#ifndef __ASSEMBLY__
43 48
44/* 49/*
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 0617d5cc9712..7727aa8b7dda 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -317,8 +317,6 @@ struct pv_mmu_ops {
317#if PAGETABLE_LEVELS >= 3 317#if PAGETABLE_LEVELS >= 3
318#ifdef CONFIG_X86_PAE 318#ifdef CONFIG_X86_PAE
319 void (*set_pte_atomic)(pte_t *ptep, pte_t pteval); 319 void (*set_pte_atomic)(pte_t *ptep, pte_t pteval);
320 void (*set_pte_present)(struct mm_struct *mm, unsigned long addr,
321 pte_t *ptep, pte_t pte);
322 void (*pte_clear)(struct mm_struct *mm, unsigned long addr, 320 void (*pte_clear)(struct mm_struct *mm, unsigned long addr,
323 pte_t *ptep); 321 pte_t *ptep);
324 void (*pmd_clear)(pmd_t *pmdp); 322 void (*pmd_clear)(pmd_t *pmdp);
@@ -389,7 +387,7 @@ extern struct pv_lock_ops pv_lock_ops;
389 387
390#define paravirt_type(op) \ 388#define paravirt_type(op) \
391 [paravirt_typenum] "i" (PARAVIRT_PATCH(op)), \ 389 [paravirt_typenum] "i" (PARAVIRT_PATCH(op)), \
392 [paravirt_opptr] "m" (op) 390 [paravirt_opptr] "i" (&(op))
393#define paravirt_clobber(clobber) \ 391#define paravirt_clobber(clobber) \
394 [paravirt_clobber] "i" (clobber) 392 [paravirt_clobber] "i" (clobber)
395 393
@@ -443,7 +441,7 @@ int paravirt_disable_iospace(void);
443 * offset into the paravirt_patch_template structure, and can therefore be 441 * offset into the paravirt_patch_template structure, and can therefore be
444 * freely converted back into a structure offset. 442 * freely converted back into a structure offset.
445 */ 443 */
446#define PARAVIRT_CALL "call *%[paravirt_opptr];" 444#define PARAVIRT_CALL "call *%c[paravirt_opptr];"
447 445
448/* 446/*
449 * These macros are intended to wrap calls through one of the paravirt 447 * These macros are intended to wrap calls through one of the paravirt
@@ -1365,13 +1363,6 @@ static inline void set_pte_atomic(pte_t *ptep, pte_t pte)
1365 pte.pte, pte.pte >> 32); 1363 pte.pte, pte.pte >> 32);
1366} 1364}
1367 1365
1368static inline void set_pte_present(struct mm_struct *mm, unsigned long addr,
1369 pte_t *ptep, pte_t pte)
1370{
1371 /* 5 arg words */
1372 pv_mmu_ops.set_pte_present(mm, addr, ptep, pte);
1373}
1374
1375static inline void pte_clear(struct mm_struct *mm, unsigned long addr, 1366static inline void pte_clear(struct mm_struct *mm, unsigned long addr,
1376 pte_t *ptep) 1367 pte_t *ptep)
1377{ 1368{
@@ -1388,12 +1379,6 @@ static inline void set_pte_atomic(pte_t *ptep, pte_t pte)
1388 set_pte(ptep, pte); 1379 set_pte(ptep, pte);
1389} 1380}
1390 1381
1391static inline void set_pte_present(struct mm_struct *mm, unsigned long addr,
1392 pte_t *ptep, pte_t pte)
1393{
1394 set_pte(ptep, pte);
1395}
1396
1397static inline void pte_clear(struct mm_struct *mm, unsigned long addr, 1382static inline void pte_clear(struct mm_struct *mm, unsigned long addr,
1398 pte_t *ptep) 1383 pte_t *ptep)
1399{ 1384{
diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
index c1774ac9da7a..2334982b339e 100644
--- a/arch/x86/include/asm/pgtable-2level.h
+++ b/arch/x86/include/asm/pgtable-2level.h
@@ -26,13 +26,6 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
26 native_set_pte(ptep, pte); 26 native_set_pte(ptep, pte);
27} 27}
28 28
29static inline void native_set_pte_present(struct mm_struct *mm,
30 unsigned long addr,
31 pte_t *ptep, pte_t pte)
32{
33 native_set_pte(ptep, pte);
34}
35
36static inline void native_pmd_clear(pmd_t *pmdp) 29static inline void native_pmd_clear(pmd_t *pmdp)
37{ 30{
38 native_set_pmd(pmdp, __pmd(0)); 31 native_set_pmd(pmdp, __pmd(0));
diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
index 3f13cdf61156..177b0165ea01 100644
--- a/arch/x86/include/asm/pgtable-3level.h
+++ b/arch/x86/include/asm/pgtable-3level.h
@@ -31,23 +31,6 @@ static inline void native_set_pte(pte_t *ptep, pte_t pte)
31 ptep->pte_low = pte.pte_low; 31 ptep->pte_low = pte.pte_low;
32} 32}
33 33
34/*
35 * Since this is only called on user PTEs, and the page fault handler
36 * must handle the already racy situation of simultaneous page faults,
37 * we are justified in merely clearing the PTE present bit, followed
38 * by a set. The ordering here is important.
39 */
40static inline void native_set_pte_present(struct mm_struct *mm,
41 unsigned long addr,
42 pte_t *ptep, pte_t pte)
43{
44 ptep->pte_low = 0;
45 smp_wmb();
46 ptep->pte_high = pte.pte_high;
47 smp_wmb();
48 ptep->pte_low = pte.pte_low;
49}
50
51static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte) 34static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
52{ 35{
53 set_64bit((unsigned long long *)(ptep), native_pte_val(pte)); 36 set_64bit((unsigned long long *)(ptep), native_pte_val(pte));
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index d0812e155f1d..29d96d168bc0 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -31,8 +31,6 @@ extern struct list_head pgd_list;
31#define set_pte(ptep, pte) native_set_pte(ptep, pte) 31#define set_pte(ptep, pte) native_set_pte(ptep, pte)
32#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte) 32#define set_pte_at(mm, addr, ptep, pte) native_set_pte_at(mm, addr, ptep, pte)
33 33
34#define set_pte_present(mm, addr, ptep, pte) \
35 native_set_pte_present(mm, addr, ptep, pte)
36#define set_pte_atomic(ptep, pte) \ 34#define set_pte_atomic(ptep, pte) \
37 native_set_pte_atomic(ptep, pte) 35 native_set_pte_atomic(ptep, pte)
38 36
diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
index 97612fc7632f..31bd120cf2a2 100644
--- a/arch/x86/include/asm/pgtable_32.h
+++ b/arch/x86/include/asm/pgtable_32.h
@@ -42,9 +42,6 @@ extern void set_pmd_pfn(unsigned long, unsigned long, pgprot_t);
42 */ 42 */
43#undef TEST_ACCESS_OK 43#undef TEST_ACCESS_OK
44 44
45/* The boot page tables (all created as a single array) */
46extern unsigned long pg0[];
47
48#ifdef CONFIG_X86_PAE 45#ifdef CONFIG_X86_PAE
49# include <asm/pgtable-3level.h> 46# include <asm/pgtable-3level.h>
50#else 47#else
diff --git a/arch/x86/include/asm/sections.h b/arch/x86/include/asm/sections.h
index 2b8c5160388f..1b7ee5d673c2 100644
--- a/arch/x86/include/asm/sections.h
+++ b/arch/x86/include/asm/sections.h
@@ -1 +1,8 @@
1#ifndef _ASM_X86_SECTIONS_H
2#define _ASM_X86_SECTIONS_H
3
1#include <asm-generic/sections.h> 4#include <asm-generic/sections.h>
5
6extern char __brk_base[], __brk_limit[];
7
8#endif /* _ASM_X86_SECTIONS_H */
diff --git a/arch/x86/include/asm/setup.h b/arch/x86/include/asm/setup.h
index 05c6f6b11fd5..fbf0521eeed8 100644
--- a/arch/x86/include/asm/setup.h
+++ b/arch/x86/include/asm/setup.h
@@ -100,20 +100,51 @@ extern struct boot_params boot_params;
100 */ 100 */
101#define LOWMEMSIZE() (0x9f000) 101#define LOWMEMSIZE() (0x9f000)
102 102
103/* exceedingly early brk-like allocator */
104extern unsigned long _brk_end;
105void *extend_brk(size_t size, size_t align);
106
107/*
108 * Reserve space in the brk section. The name must be unique within
109 * the file, and somewhat descriptive. The size is in bytes. Must be
110 * used at file scope.
111 *
112 * (This uses a temp function to wrap the asm so we can pass it the
113 * size parameter; otherwise we wouldn't be able to. We can't use a
114 * "section" attribute on a normal variable because it always ends up
115 * being @progbits, which ends up allocating space in the vmlinux
116 * executable.)
117 */
118#define RESERVE_BRK(name,sz) \
119 static void __section(.discard) __used \
120 __brk_reservation_fn_##name##__(void) { \
121 asm volatile ( \
122 ".pushsection .brk_reservation,\"aw\",@nobits;" \
123 ".brk." #name ":" \
124 " 1:.skip %c0;" \
125 " .size .brk." #name ", . - 1b;" \
126 " .popsection" \
127 : : "i" (sz)); \
128 }
129
103#ifdef __i386__ 130#ifdef __i386__
104 131
105void __init i386_start_kernel(void); 132void __init i386_start_kernel(void);
106extern void probe_roms(void); 133extern void probe_roms(void);
107 134
108extern unsigned long init_pg_tables_start;
109extern unsigned long init_pg_tables_end;
110
111#else 135#else
112void __init x86_64_start_kernel(char *real_mode); 136void __init x86_64_start_kernel(char *real_mode);
113void __init x86_64_start_reservations(char *real_mode_data); 137void __init x86_64_start_reservations(char *real_mode_data);
114 138
115#endif /* __i386__ */ 139#endif /* __i386__ */
116#endif /* _SETUP */ 140#endif /* _SETUP */
141#else
142#define RESERVE_BRK(name,sz) \
143 .pushsection .brk_reservation,"aw",@nobits; \
144.brk.name: \
1451: .skip sz; \
146 .size .brk.name,.-1b; \
147 .popsection
117#endif /* __ASSEMBLY__ */ 148#endif /* __ASSEMBLY__ */
118#endif /* __KERNEL__ */ 149#endif /* __KERNEL__ */
119 150
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 30909a258d0f..85eb8e100818 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -809,7 +809,7 @@ void clear_local_APIC(void)
809 u32 v; 809 u32 v;
810 810
811 /* APIC hasn't been mapped yet */ 811 /* APIC hasn't been mapped yet */
812 if (!apic_phys) 812 if (!x2apic && !apic_phys)
813 return; 813 return;
814 814
815 maxlvt = lapic_get_maxlvt(); 815 maxlvt = lapic_get_maxlvt();
@@ -1334,15 +1334,16 @@ void __init enable_IR_x2apic(void)
1334 return; 1334 return;
1335 } 1335 }
1336 1336
1337 local_irq_save(flags); 1337 ret = save_IO_APIC_setup();
1338 mask_8259A();
1339
1340 ret = save_mask_IO_APIC_setup();
1341 if (ret) { 1338 if (ret) {
1342 pr_info("Saving IO-APIC state failed: %d\n", ret); 1339 pr_info("Saving IO-APIC state failed: %d\n", ret);
1343 goto end; 1340 goto end;
1344 } 1341 }
1345 1342
1343 local_irq_save(flags);
1344 mask_IO_APIC_setup();
1345 mask_8259A();
1346
1346 ret = enable_intr_remapping(1); 1347 ret = enable_intr_remapping(1);
1347 1348
1348 if (ret && x2apic_preenabled) { 1349 if (ret && x2apic_preenabled) {
@@ -1367,10 +1368,10 @@ end_restore:
1367 else 1368 else
1368 reinit_intr_remapped_IO_APIC(x2apic_preenabled); 1369 reinit_intr_remapped_IO_APIC(x2apic_preenabled);
1369 1370
1370end:
1371 unmask_8259A(); 1371 unmask_8259A();
1372 local_irq_restore(flags); 1372 local_irq_restore(flags);
1373 1373
1374end:
1374 if (!ret) { 1375 if (!ret) {
1375 if (!x2apic_preenabled) 1376 if (!x2apic_preenabled)
1376 pr_info("Enabled x2apic and interrupt-remapping\n"); 1377 pr_info("Enabled x2apic and interrupt-remapping\n");
@@ -1523,12 +1524,10 @@ void __init early_init_lapic_mapping(void)
1523 */ 1524 */
1524void __init init_apic_mappings(void) 1525void __init init_apic_mappings(void)
1525{ 1526{
1526#ifdef CONFIG_X86_X2APIC
1527 if (x2apic) { 1527 if (x2apic) {
1528 boot_cpu_physical_apicid = read_apic_id(); 1528 boot_cpu_physical_apicid = read_apic_id();
1529 return; 1529 return;
1530 } 1530 }
1531#endif
1532 1531
1533 /* 1532 /*
1534 * If no local APIC can be found then set up a fake all 1533 * If no local APIC can be found then set up a fake all
@@ -1972,12 +1971,9 @@ static int lapic_resume(struct sys_device *dev)
1972 1971
1973 local_irq_save(flags); 1972 local_irq_save(flags);
1974 1973
1975#ifdef CONFIG_X86_X2APIC
1976 if (x2apic) 1974 if (x2apic)
1977 enable_x2apic(); 1975 enable_x2apic();
1978 else 1976 else {
1979#endif
1980 {
1981 /* 1977 /*
1982 * Make sure the APICBASE points to the right address 1978 * Make sure the APICBASE points to the right address
1983 * 1979 *
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 00e6071cefc4..42cdc78427a2 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -389,6 +389,8 @@ struct io_apic {
389 unsigned int index; 389 unsigned int index;
390 unsigned int unused[3]; 390 unsigned int unused[3];
391 unsigned int data; 391 unsigned int data;
392 unsigned int unused2[11];
393 unsigned int eoi;
392}; 394};
393 395
394static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx) 396static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx)
@@ -397,6 +399,12 @@ static __attribute_const__ struct io_apic __iomem *io_apic_base(int idx)
397 + (mp_ioapics[idx].apicaddr & ~PAGE_MASK); 399 + (mp_ioapics[idx].apicaddr & ~PAGE_MASK);
398} 400}
399 401
402static inline void io_apic_eoi(unsigned int apic, unsigned int vector)
403{
404 struct io_apic __iomem *io_apic = io_apic_base(apic);
405 writel(vector, &io_apic->eoi);
406}
407
400static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg) 408static inline unsigned int io_apic_read(unsigned int apic, unsigned int reg)
401{ 409{
402 struct io_apic __iomem *io_apic = io_apic_base(apic); 410 struct io_apic __iomem *io_apic = io_apic_base(apic);
@@ -546,16 +554,12 @@ static void __target_IO_APIC_irq(unsigned int irq, unsigned int dest, struct irq
546 554
547 apic = entry->apic; 555 apic = entry->apic;
548 pin = entry->pin; 556 pin = entry->pin;
549#ifdef CONFIG_INTR_REMAP
550 /* 557 /*
551 * With interrupt-remapping, destination information comes 558 * With interrupt-remapping, destination information comes
552 * from interrupt-remapping table entry. 559 * from interrupt-remapping table entry.
553 */ 560 */
554 if (!irq_remapped(irq)) 561 if (!irq_remapped(irq))
555 io_apic_write(apic, 0x11 + pin*2, dest); 562 io_apic_write(apic, 0x11 + pin*2, dest);
556#else
557 io_apic_write(apic, 0x11 + pin*2, dest);
558#endif
559 reg = io_apic_read(apic, 0x10 + pin*2); 563 reg = io_apic_read(apic, 0x10 + pin*2);
560 reg &= ~IO_APIC_REDIR_VECTOR_MASK; 564 reg &= ~IO_APIC_REDIR_VECTOR_MASK;
561 reg |= vector; 565 reg |= vector;
@@ -849,9 +853,9 @@ __setup("pirq=", ioapic_pirq_setup);
849static struct IO_APIC_route_entry *early_ioapic_entries[MAX_IO_APICS]; 853static struct IO_APIC_route_entry *early_ioapic_entries[MAX_IO_APICS];
850 854
851/* 855/*
852 * Saves and masks all the unmasked IO-APIC RTE's 856 * Saves all the IO-APIC RTE's
853 */ 857 */
854int save_mask_IO_APIC_setup(void) 858int save_IO_APIC_setup(void)
855{ 859{
856 union IO_APIC_reg_01 reg_01; 860 union IO_APIC_reg_01 reg_01;
857 unsigned long flags; 861 unsigned long flags;
@@ -876,16 +880,9 @@ int save_mask_IO_APIC_setup(void)
876 } 880 }
877 881
878 for (apic = 0; apic < nr_ioapics; apic++) 882 for (apic = 0; apic < nr_ioapics; apic++)
879 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) { 883 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++)
880 struct IO_APIC_route_entry entry; 884 early_ioapic_entries[apic][pin] =
881
882 entry = early_ioapic_entries[apic][pin] =
883 ioapic_read_entry(apic, pin); 885 ioapic_read_entry(apic, pin);
884 if (!entry.mask) {
885 entry.mask = 1;
886 ioapic_write_entry(apic, pin, entry);
887 }
888 }
889 886
890 return 0; 887 return 0;
891 888
@@ -898,6 +895,25 @@ nomem:
898 return -ENOMEM; 895 return -ENOMEM;
899} 896}
900 897
898void mask_IO_APIC_setup(void)
899{
900 int apic, pin;
901
902 for (apic = 0; apic < nr_ioapics; apic++) {
903 if (!early_ioapic_entries[apic])
904 break;
905 for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) {
906 struct IO_APIC_route_entry entry;
907
908 entry = early_ioapic_entries[apic][pin];
909 if (!entry.mask) {
910 entry.mask = 1;
911 ioapic_write_entry(apic, pin, entry);
912 }
913 }
914 }
915}
916
901void restore_IO_APIC_setup(void) 917void restore_IO_APIC_setup(void)
902{ 918{
903 int apic, pin; 919 int apic, pin;
@@ -1411,9 +1427,8 @@ void __setup_vector_irq(int cpu)
1411} 1427}
1412 1428
1413static struct irq_chip ioapic_chip; 1429static struct irq_chip ioapic_chip;
1414#ifdef CONFIG_INTR_REMAP
1415static struct irq_chip ir_ioapic_chip; 1430static struct irq_chip ir_ioapic_chip;
1416#endif 1431static struct irq_chip msi_ir_chip;
1417 1432
1418#define IOAPIC_AUTO -1 1433#define IOAPIC_AUTO -1
1419#define IOAPIC_EDGE 0 1434#define IOAPIC_EDGE 0
@@ -1452,7 +1467,6 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1452 else 1467 else
1453 desc->status &= ~IRQ_LEVEL; 1468 desc->status &= ~IRQ_LEVEL;
1454 1469
1455#ifdef CONFIG_INTR_REMAP
1456 if (irq_remapped(irq)) { 1470 if (irq_remapped(irq)) {
1457 desc->status |= IRQ_MOVE_PCNTXT; 1471 desc->status |= IRQ_MOVE_PCNTXT;
1458 if (trigger) 1472 if (trigger)
@@ -1464,7 +1478,7 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1464 handle_edge_irq, "edge"); 1478 handle_edge_irq, "edge");
1465 return; 1479 return;
1466 } 1480 }
1467#endif 1481
1468 if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) || 1482 if ((trigger == IOAPIC_AUTO && IO_APIC_irq_trigger(irq)) ||
1469 trigger == IOAPIC_LEVEL) 1483 trigger == IOAPIC_LEVEL)
1470 set_irq_chip_and_handler_name(irq, &ioapic_chip, 1484 set_irq_chip_and_handler_name(irq, &ioapic_chip,
@@ -1478,14 +1492,13 @@ static void ioapic_register_intr(int irq, struct irq_desc *desc, unsigned long t
1478int setup_ioapic_entry(int apic_id, int irq, 1492int setup_ioapic_entry(int apic_id, int irq,
1479 struct IO_APIC_route_entry *entry, 1493 struct IO_APIC_route_entry *entry,
1480 unsigned int destination, int trigger, 1494 unsigned int destination, int trigger,
1481 int polarity, int vector) 1495 int polarity, int vector, int pin)
1482{ 1496{
1483 /* 1497 /*
1484 * add it to the IO-APIC irq-routing table: 1498 * add it to the IO-APIC irq-routing table:
1485 */ 1499 */
1486 memset(entry,0,sizeof(*entry)); 1500 memset(entry,0,sizeof(*entry));
1487 1501
1488#ifdef CONFIG_INTR_REMAP
1489 if (intr_remapping_enabled) { 1502 if (intr_remapping_enabled) {
1490 struct intel_iommu *iommu = map_ioapic_to_ir(apic_id); 1503 struct intel_iommu *iommu = map_ioapic_to_ir(apic_id);
1491 struct irte irte; 1504 struct irte irte;
@@ -1504,7 +1517,14 @@ int setup_ioapic_entry(int apic_id, int irq,
1504 1517
1505 irte.present = 1; 1518 irte.present = 1;
1506 irte.dst_mode = apic->irq_dest_mode; 1519 irte.dst_mode = apic->irq_dest_mode;
1507 irte.trigger_mode = trigger; 1520 /*
1521 * Trigger mode in the IRTE will always be edge, and the
1522 * actual level or edge trigger will be setup in the IO-APIC
1523 * RTE. This will help simplify level triggered irq migration.
1524 * For more details, see the comments above explainig IO-APIC
1525 * irq migration in the presence of interrupt-remapping.
1526 */
1527 irte.trigger_mode = 0;
1508 irte.dlvry_mode = apic->irq_delivery_mode; 1528 irte.dlvry_mode = apic->irq_delivery_mode;
1509 irte.vector = vector; 1529 irte.vector = vector;
1510 irte.dest_id = IRTE_DEST(destination); 1530 irte.dest_id = IRTE_DEST(destination);
@@ -1515,18 +1535,21 @@ int setup_ioapic_entry(int apic_id, int irq,
1515 ir_entry->zero = 0; 1535 ir_entry->zero = 0;
1516 ir_entry->format = 1; 1536 ir_entry->format = 1;
1517 ir_entry->index = (index & 0x7fff); 1537 ir_entry->index = (index & 0x7fff);
1518 } else 1538 /*
1519#endif 1539 * IO-APIC RTE will be configured with virtual vector.
1520 { 1540 * irq handler will do the explicit EOI to the io-apic.
1541 */
1542 ir_entry->vector = pin;
1543 } else {
1521 entry->delivery_mode = apic->irq_delivery_mode; 1544 entry->delivery_mode = apic->irq_delivery_mode;
1522 entry->dest_mode = apic->irq_dest_mode; 1545 entry->dest_mode = apic->irq_dest_mode;
1523 entry->dest = destination; 1546 entry->dest = destination;
1547 entry->vector = vector;
1524 } 1548 }
1525 1549
1526 entry->mask = 0; /* enable IRQ */ 1550 entry->mask = 0; /* enable IRQ */
1527 entry->trigger = trigger; 1551 entry->trigger = trigger;
1528 entry->polarity = polarity; 1552 entry->polarity = polarity;
1529 entry->vector = vector;
1530 1553
1531 /* Mask level triggered irqs. 1554 /* Mask level triggered irqs.
1532 * Use IRQ_DELAYED_DISABLE for edge triggered irqs. 1555 * Use IRQ_DELAYED_DISABLE for edge triggered irqs.
@@ -1561,7 +1584,7 @@ static void setup_IO_APIC_irq(int apic_id, int pin, unsigned int irq, struct irq
1561 1584
1562 1585
1563 if (setup_ioapic_entry(mp_ioapics[apic_id].apicid, irq, &entry, 1586 if (setup_ioapic_entry(mp_ioapics[apic_id].apicid, irq, &entry,
1564 dest, trigger, polarity, cfg->vector)) { 1587 dest, trigger, polarity, cfg->vector, pin)) {
1565 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n", 1588 printk("Failed to setup ioapic entry for ioapic %d, pin %d\n",
1566 mp_ioapics[apic_id].apicid, pin); 1589 mp_ioapics[apic_id].apicid, pin);
1567 __clear_irq_vector(irq, cfg); 1590 __clear_irq_vector(irq, cfg);
@@ -1642,10 +1665,8 @@ static void __init setup_timer_IRQ0_pin(unsigned int apic_id, unsigned int pin,
1642{ 1665{
1643 struct IO_APIC_route_entry entry; 1666 struct IO_APIC_route_entry entry;
1644 1667
1645#ifdef CONFIG_INTR_REMAP
1646 if (intr_remapping_enabled) 1668 if (intr_remapping_enabled)
1647 return; 1669 return;
1648#endif
1649 1670
1650 memset(&entry, 0, sizeof(entry)); 1671 memset(&entry, 0, sizeof(entry));
1651 1672
@@ -2040,8 +2061,13 @@ void disable_IO_APIC(void)
2040 * If the i8259 is routed through an IOAPIC 2061 * If the i8259 is routed through an IOAPIC
2041 * Put that IOAPIC in virtual wire mode 2062 * Put that IOAPIC in virtual wire mode
2042 * so legacy interrupts can be delivered. 2063 * so legacy interrupts can be delivered.
2064 *
2065 * With interrupt-remapping, for now we will use virtual wire A mode,
2066 * as virtual wire B is little complex (need to configure both
2067 * IOAPIC RTE aswell as interrupt-remapping table entry).
2068 * As this gets called during crash dump, keep this simple for now.
2043 */ 2069 */
2044 if (ioapic_i8259.pin != -1) { 2070 if (ioapic_i8259.pin != -1 && !intr_remapping_enabled) {
2045 struct IO_APIC_route_entry entry; 2071 struct IO_APIC_route_entry entry;
2046 2072
2047 memset(&entry, 0, sizeof(entry)); 2073 memset(&entry, 0, sizeof(entry));
@@ -2061,7 +2087,10 @@ void disable_IO_APIC(void)
2061 ioapic_write_entry(ioapic_i8259.apic, ioapic_i8259.pin, entry); 2087 ioapic_write_entry(ioapic_i8259.apic, ioapic_i8259.pin, entry);
2062 } 2088 }
2063 2089
2064 disconnect_bsp_APIC(ioapic_i8259.pin != -1); 2090 /*
2091 * Use virtual wire A mode when interrupt remapping is enabled.
2092 */
2093 disconnect_bsp_APIC(!intr_remapping_enabled && ioapic_i8259.pin != -1);
2065} 2094}
2066 2095
2067#ifdef CONFIG_X86_32 2096#ifdef CONFIG_X86_32
@@ -2303,37 +2332,24 @@ static int ioapic_retrigger_irq(unsigned int irq)
2303#ifdef CONFIG_SMP 2332#ifdef CONFIG_SMP
2304 2333
2305#ifdef CONFIG_INTR_REMAP 2334#ifdef CONFIG_INTR_REMAP
2306static void ir_irq_migration(struct work_struct *work);
2307
2308static DECLARE_DELAYED_WORK(ir_migration_work, ir_irq_migration);
2309 2335
2310/* 2336/*
2311 * Migrate the IO-APIC irq in the presence of intr-remapping. 2337 * Migrate the IO-APIC irq in the presence of intr-remapping.
2312 * 2338 *
2313 * For edge triggered, irq migration is a simple atomic update(of vector 2339 * For both level and edge triggered, irq migration is a simple atomic
2314 * and cpu destination) of IRTE and flush the hardware cache. 2340 * update(of vector and cpu destination) of IRTE and flush the hardware cache.
2315 *
2316 * For level triggered, we need to modify the io-apic RTE aswell with the update
2317 * vector information, along with modifying IRTE with vector and destination.
2318 * So irq migration for level triggered is little bit more complex compared to
2319 * edge triggered migration. But the good news is, we use the same algorithm
2320 * for level triggered migration as we have today, only difference being,
2321 * we now initiate the irq migration from process context instead of the
2322 * interrupt context.
2323 * 2341 *
2324 * In future, when we do a directed EOI (combined with cpu EOI broadcast 2342 * For level triggered, we eliminate the io-apic RTE modification (with the
2325 * suppression) to the IO-APIC, level triggered irq migration will also be 2343 * updated vector information), by using a virtual vector (io-apic pin number).
2326 * as simple as edge triggered migration and we can do the irq migration 2344 * Real vector that is used for interrupting cpu will be coming from
2327 * with a simple atomic update to IO-APIC RTE. 2345 * the interrupt-remapping table entry.
2328 */ 2346 */
2329static void 2347static void
2330migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask) 2348migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2331{ 2349{
2332 struct irq_cfg *cfg; 2350 struct irq_cfg *cfg;
2333 struct irte irte; 2351 struct irte irte;
2334 int modify_ioapic_rte;
2335 unsigned int dest; 2352 unsigned int dest;
2336 unsigned long flags;
2337 unsigned int irq; 2353 unsigned int irq;
2338 2354
2339 if (!cpumask_intersects(mask, cpu_online_mask)) 2355 if (!cpumask_intersects(mask, cpu_online_mask))
@@ -2351,13 +2367,6 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2351 2367
2352 dest = apic->cpu_mask_to_apicid_and(cfg->domain, mask); 2368 dest = apic->cpu_mask_to_apicid_and(cfg->domain, mask);
2353 2369
2354 modify_ioapic_rte = desc->status & IRQ_LEVEL;
2355 if (modify_ioapic_rte) {
2356 spin_lock_irqsave(&ioapic_lock, flags);
2357 __target_IO_APIC_irq(irq, dest, cfg);
2358 spin_unlock_irqrestore(&ioapic_lock, flags);
2359 }
2360
2361 irte.vector = cfg->vector; 2370 irte.vector = cfg->vector;
2362 irte.dest_id = IRTE_DEST(dest); 2371 irte.dest_id = IRTE_DEST(dest);
2363 2372
@@ -2372,73 +2381,12 @@ migrate_ioapic_irq_desc(struct irq_desc *desc, const struct cpumask *mask)
2372 cpumask_copy(desc->affinity, mask); 2381 cpumask_copy(desc->affinity, mask);
2373} 2382}
2374 2383
2375static int migrate_irq_remapped_level_desc(struct irq_desc *desc)
2376{
2377 int ret = -1;
2378 struct irq_cfg *cfg = desc->chip_data;
2379
2380 mask_IO_APIC_irq_desc(desc);
2381
2382 if (io_apic_level_ack_pending(cfg)) {
2383 /*
2384 * Interrupt in progress. Migrating irq now will change the
2385 * vector information in the IO-APIC RTE and that will confuse
2386 * the EOI broadcast performed by cpu.
2387 * So, delay the irq migration to the next instance.
2388 */
2389 schedule_delayed_work(&ir_migration_work, 1);
2390 goto unmask;
2391 }
2392
2393 /* everthing is clear. we have right of way */
2394 migrate_ioapic_irq_desc(desc, desc->pending_mask);
2395
2396 ret = 0;
2397 desc->status &= ~IRQ_MOVE_PENDING;
2398 cpumask_clear(desc->pending_mask);
2399
2400unmask:
2401 unmask_IO_APIC_irq_desc(desc);
2402
2403 return ret;
2404}
2405
2406static void ir_irq_migration(struct work_struct *work)
2407{
2408 unsigned int irq;
2409 struct irq_desc *desc;
2410
2411 for_each_irq_desc(irq, desc) {
2412 if (desc->status & IRQ_MOVE_PENDING) {
2413 unsigned long flags;
2414
2415 spin_lock_irqsave(&desc->lock, flags);
2416 if (!desc->chip->set_affinity ||
2417 !(desc->status & IRQ_MOVE_PENDING)) {
2418 desc->status &= ~IRQ_MOVE_PENDING;
2419 spin_unlock_irqrestore(&desc->lock, flags);
2420 continue;
2421 }
2422
2423 desc->chip->set_affinity(irq, desc->pending_mask);
2424 spin_unlock_irqrestore(&desc->lock, flags);
2425 }
2426 }
2427}
2428
2429/* 2384/*
2430 * Migrates the IRQ destination in the process context. 2385 * Migrates the IRQ destination in the process context.
2431 */ 2386 */
2432static void set_ir_ioapic_affinity_irq_desc(struct irq_desc *desc, 2387static void set_ir_ioapic_affinity_irq_desc(struct irq_desc *desc,
2433 const struct cpumask *mask) 2388 const struct cpumask *mask)
2434{ 2389{
2435 if (desc->status & IRQ_LEVEL) {
2436 desc->status |= IRQ_MOVE_PENDING;
2437 cpumask_copy(desc->pending_mask, mask);
2438 migrate_irq_remapped_level_desc(desc);
2439 return;
2440 }
2441
2442 migrate_ioapic_irq_desc(desc, mask); 2390 migrate_ioapic_irq_desc(desc, mask);
2443} 2391}
2444static void set_ir_ioapic_affinity_irq(unsigned int irq, 2392static void set_ir_ioapic_affinity_irq(unsigned int irq,
@@ -2448,6 +2396,11 @@ static void set_ir_ioapic_affinity_irq(unsigned int irq,
2448 2396
2449 set_ir_ioapic_affinity_irq_desc(desc, mask); 2397 set_ir_ioapic_affinity_irq_desc(desc, mask);
2450} 2398}
2399#else
2400static inline void set_ir_ioapic_affinity_irq_desc(struct irq_desc *desc,
2401 const struct cpumask *mask)
2402{
2403}
2451#endif 2404#endif
2452 2405
2453asmlinkage void smp_irq_move_cleanup_interrupt(void) 2406asmlinkage void smp_irq_move_cleanup_interrupt(void)
@@ -2461,6 +2414,7 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
2461 me = smp_processor_id(); 2414 me = smp_processor_id();
2462 for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) { 2415 for (vector = FIRST_EXTERNAL_VECTOR; vector < NR_VECTORS; vector++) {
2463 unsigned int irq; 2416 unsigned int irq;
2417 unsigned int irr;
2464 struct irq_desc *desc; 2418 struct irq_desc *desc;
2465 struct irq_cfg *cfg; 2419 struct irq_cfg *cfg;
2466 irq = __get_cpu_var(vector_irq)[vector]; 2420 irq = __get_cpu_var(vector_irq)[vector];
@@ -2480,6 +2434,18 @@ asmlinkage void smp_irq_move_cleanup_interrupt(void)
2480 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain)) 2434 if (vector == cfg->vector && cpumask_test_cpu(me, cfg->domain))
2481 goto unlock; 2435 goto unlock;
2482 2436
2437 irr = apic_read(APIC_IRR + (vector / 32 * 0x10));
2438 /*
2439 * Check if the vector that needs to be cleanedup is
2440 * registered at the cpu's IRR. If so, then this is not
2441 * the best time to clean it up. Lets clean it up in the
2442 * next attempt by sending another IRQ_MOVE_CLEANUP_VECTOR
2443 * to myself.
2444 */
2445 if (irr & (1 << (vector % 32))) {
2446 apic->send_IPI_self(IRQ_MOVE_CLEANUP_VECTOR);
2447 goto unlock;
2448 }
2483 __get_cpu_var(vector_irq)[vector] = -1; 2449 __get_cpu_var(vector_irq)[vector] = -1;
2484 cfg->move_cleanup_count--; 2450 cfg->move_cleanup_count--;
2485unlock: 2451unlock:
@@ -2529,9 +2495,44 @@ static inline void irq_complete_move(struct irq_desc **descp) {}
2529#endif 2495#endif
2530 2496
2531#ifdef CONFIG_INTR_REMAP 2497#ifdef CONFIG_INTR_REMAP
2498static void __eoi_ioapic_irq(unsigned int irq, struct irq_cfg *cfg)
2499{
2500 int apic, pin;
2501 struct irq_pin_list *entry;
2502
2503 entry = cfg->irq_2_pin;
2504 for (;;) {
2505
2506 if (!entry)
2507 break;
2508
2509 apic = entry->apic;
2510 pin = entry->pin;
2511 io_apic_eoi(apic, pin);
2512 entry = entry->next;
2513 }
2514}
2515
2516static void
2517eoi_ioapic_irq(struct irq_desc *desc)
2518{
2519 struct irq_cfg *cfg;
2520 unsigned long flags;
2521 unsigned int irq;
2522
2523 irq = desc->irq;
2524 cfg = desc->chip_data;
2525
2526 spin_lock_irqsave(&ioapic_lock, flags);
2527 __eoi_ioapic_irq(irq, cfg);
2528 spin_unlock_irqrestore(&ioapic_lock, flags);
2529}
2530
2532static void ack_x2apic_level(unsigned int irq) 2531static void ack_x2apic_level(unsigned int irq)
2533{ 2532{
2533 struct irq_desc *desc = irq_to_desc(irq);
2534 ack_x2APIC_irq(); 2534 ack_x2APIC_irq();
2535 eoi_ioapic_irq(desc);
2535} 2536}
2536 2537
2537static void ack_x2apic_edge(unsigned int irq) 2538static void ack_x2apic_edge(unsigned int irq)
@@ -2901,10 +2902,8 @@ static inline void __init check_timer(void)
2901 * 8259A. 2902 * 8259A.
2902 */ 2903 */
2903 if (pin1 == -1) { 2904 if (pin1 == -1) {
2904#ifdef CONFIG_INTR_REMAP
2905 if (intr_remapping_enabled) 2905 if (intr_remapping_enabled)
2906 panic("BIOS bug: timer not connected to IO-APIC"); 2906 panic("BIOS bug: timer not connected to IO-APIC");
2907#endif
2908 pin1 = pin2; 2907 pin1 = pin2;
2909 apic1 = apic2; 2908 apic1 = apic2;
2910 no_pin1 = 1; 2909 no_pin1 = 1;
@@ -2940,10 +2939,8 @@ static inline void __init check_timer(void)
2940 clear_IO_APIC_pin(0, pin1); 2939 clear_IO_APIC_pin(0, pin1);
2941 goto out; 2940 goto out;
2942 } 2941 }
2943#ifdef CONFIG_INTR_REMAP
2944 if (intr_remapping_enabled) 2942 if (intr_remapping_enabled)
2945 panic("timer doesn't work through Interrupt-remapped IO-APIC"); 2943 panic("timer doesn't work through Interrupt-remapped IO-APIC");
2946#endif
2947 local_irq_disable(); 2944 local_irq_disable();
2948 clear_IO_APIC_pin(apic1, pin1); 2945 clear_IO_APIC_pin(apic1, pin1);
2949 if (!no_pin1) 2946 if (!no_pin1)
@@ -3237,9 +3234,7 @@ void destroy_irq(unsigned int irq)
3237 if (desc) 3234 if (desc)
3238 desc->chip_data = cfg; 3235 desc->chip_data = cfg;
3239 3236
3240#ifdef CONFIG_INTR_REMAP
3241 free_irte(irq); 3237 free_irte(irq);
3242#endif
3243 spin_lock_irqsave(&vector_lock, flags); 3238 spin_lock_irqsave(&vector_lock, flags);
3244 __clear_irq_vector(irq, cfg); 3239 __clear_irq_vector(irq, cfg);
3245 spin_unlock_irqrestore(&vector_lock, flags); 3240 spin_unlock_irqrestore(&vector_lock, flags);
@@ -3265,7 +3260,6 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3265 3260
3266 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus()); 3261 dest = apic->cpu_mask_to_apicid_and(cfg->domain, apic->target_cpus());
3267 3262
3268#ifdef CONFIG_INTR_REMAP
3269 if (irq_remapped(irq)) { 3263 if (irq_remapped(irq)) {
3270 struct irte irte; 3264 struct irte irte;
3271 int ir_index; 3265 int ir_index;
@@ -3291,10 +3285,13 @@ static int msi_compose_msg(struct pci_dev *pdev, unsigned int irq, struct msi_ms
3291 MSI_ADDR_IR_SHV | 3285 MSI_ADDR_IR_SHV |
3292 MSI_ADDR_IR_INDEX1(ir_index) | 3286 MSI_ADDR_IR_INDEX1(ir_index) |
3293 MSI_ADDR_IR_INDEX2(ir_index); 3287 MSI_ADDR_IR_INDEX2(ir_index);
3294 } else 3288 } else {
3295#endif 3289 if (x2apic_enabled())
3296 { 3290 msg->address_hi = MSI_ADDR_BASE_HI |
3297 msg->address_hi = MSI_ADDR_BASE_HI; 3291 MSI_ADDR_EXT_DEST_ID(dest);
3292 else
3293 msg->address_hi = MSI_ADDR_BASE_HI;
3294
3298 msg->address_lo = 3295 msg->address_lo =
3299 MSI_ADDR_BASE_LO | 3296 MSI_ADDR_BASE_LO |
3300 ((apic->irq_dest_mode == 0) ? 3297 ((apic->irq_dest_mode == 0) ?
@@ -3405,6 +3402,7 @@ static struct irq_chip msi_ir_chip = {
3405#endif 3402#endif
3406 .retrigger = ioapic_retrigger_irq, 3403 .retrigger = ioapic_retrigger_irq,
3407}; 3404};
3405#endif
3408 3406
3409/* 3407/*
3410 * Map the PCI dev to the corresponding remapping hardware unit 3408 * Map the PCI dev to the corresponding remapping hardware unit
@@ -3432,7 +3430,6 @@ static int msi_alloc_irte(struct pci_dev *dev, int irq, int nvec)
3432 } 3430 }
3433 return index; 3431 return index;
3434} 3432}
3435#endif
3436 3433
3437static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq) 3434static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3438{ 3435{
@@ -3446,7 +3443,6 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3446 set_irq_msi(irq, msidesc); 3443 set_irq_msi(irq, msidesc);
3447 write_msi_msg(irq, &msg); 3444 write_msi_msg(irq, &msg);
3448 3445
3449#ifdef CONFIG_INTR_REMAP
3450 if (irq_remapped(irq)) { 3446 if (irq_remapped(irq)) {
3451 struct irq_desc *desc = irq_to_desc(irq); 3447 struct irq_desc *desc = irq_to_desc(irq);
3452 /* 3448 /*
@@ -3455,7 +3451,6 @@ static int setup_msi_irq(struct pci_dev *dev, struct msi_desc *msidesc, int irq)
3455 desc->status |= IRQ_MOVE_PCNTXT; 3451 desc->status |= IRQ_MOVE_PCNTXT;
3456 set_irq_chip_and_handler_name(irq, &msi_ir_chip, handle_edge_irq, "edge"); 3452 set_irq_chip_and_handler_name(irq, &msi_ir_chip, handle_edge_irq, "edge");
3457 } else 3453 } else
3458#endif
3459 set_irq_chip_and_handler_name(irq, &msi_chip, handle_edge_irq, "edge"); 3454 set_irq_chip_and_handler_name(irq, &msi_chip, handle_edge_irq, "edge");
3460 3455
3461 dev_printk(KERN_DEBUG, &dev->dev, "irq %d for MSI/MSI-X\n", irq); 3456 dev_printk(KERN_DEBUG, &dev->dev, "irq %d for MSI/MSI-X\n", irq);
@@ -3469,11 +3464,8 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3469 int ret, sub_handle; 3464 int ret, sub_handle;
3470 struct msi_desc *msidesc; 3465 struct msi_desc *msidesc;
3471 unsigned int irq_want; 3466 unsigned int irq_want;
3472
3473#ifdef CONFIG_INTR_REMAP
3474 struct intel_iommu *iommu = 0; 3467 struct intel_iommu *iommu = 0;
3475 int index = 0; 3468 int index = 0;
3476#endif
3477 3469
3478 irq_want = nr_irqs_gsi; 3470 irq_want = nr_irqs_gsi;
3479 sub_handle = 0; 3471 sub_handle = 0;
@@ -3482,7 +3474,6 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3482 if (irq == 0) 3474 if (irq == 0)
3483 return -1; 3475 return -1;
3484 irq_want = irq + 1; 3476 irq_want = irq + 1;
3485#ifdef CONFIG_INTR_REMAP
3486 if (!intr_remapping_enabled) 3477 if (!intr_remapping_enabled)
3487 goto no_ir; 3478 goto no_ir;
3488 3479
@@ -3510,7 +3501,6 @@ int arch_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
3510 set_irte_irq(irq, iommu, index, sub_handle); 3501 set_irte_irq(irq, iommu, index, sub_handle);
3511 } 3502 }
3512no_ir: 3503no_ir:
3513#endif
3514 ret = setup_msi_irq(dev, msidesc, irq); 3504 ret = setup_msi_irq(dev, msidesc, irq);
3515 if (ret < 0) 3505 if (ret < 0)
3516 goto error; 3506 goto error;
@@ -3528,7 +3518,7 @@ void arch_teardown_msi_irq(unsigned int irq)
3528 destroy_irq(irq); 3518 destroy_irq(irq);
3529} 3519}
3530 3520
3531#ifdef CONFIG_DMAR 3521#if defined (CONFIG_DMAR) || defined (CONFIG_INTR_REMAP)
3532#ifdef CONFIG_SMP 3522#ifdef CONFIG_SMP
3533static void dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask) 3523static void dmar_msi_set_affinity(unsigned int irq, const struct cpumask *mask)
3534{ 3524{
@@ -4045,11 +4035,9 @@ void __init setup_ioapic_dest(void)
4045 else 4035 else
4046 mask = apic->target_cpus(); 4036 mask = apic->target_cpus();
4047 4037
4048#ifdef CONFIG_INTR_REMAP
4049 if (intr_remapping_enabled) 4038 if (intr_remapping_enabled)
4050 set_ir_ioapic_affinity_irq_desc(desc, mask); 4039 set_ir_ioapic_affinity_irq_desc(desc, mask);
4051 else 4040 else
4052#endif
4053 set_ioapic_affinity_irq_desc(desc, mask); 4041 set_ioapic_affinity_irq_desc(desc, mask);
4054 } 4042 }
4055 4043
diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c
index 8d7748efe6a8..1783652bb0e5 100644
--- a/arch/x86/kernel/apic/probe_64.c
+++ b/arch/x86/kernel/apic/probe_64.c
@@ -68,6 +68,13 @@ void __init default_setup_apic_routing(void)
68 apic = &apic_physflat; 68 apic = &apic_physflat;
69 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name); 69 printk(KERN_INFO "Setting APIC routing to %s\n", apic->name);
70 } 70 }
71
72 /*
73 * Now that apic routing model is selected, configure the
74 * fault handling for intr remapping.
75 */
76 if (intr_remapping_enabled)
77 enable_drhd_fault_handling();
71} 78}
72 79
73/* Same for both flat and physical. */ 80/* Same for both flat and physical. */
diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
index 8fb87b6dd633..4a903e2f0d17 100644
--- a/arch/x86/kernel/apic/x2apic_cluster.c
+++ b/arch/x86/kernel/apic/x2apic_cluster.c
@@ -57,6 +57,8 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
57 unsigned long query_cpu; 57 unsigned long query_cpu;
58 unsigned long flags; 58 unsigned long flags;
59 59
60 x2apic_wrmsr_fence();
61
60 local_irq_save(flags); 62 local_irq_save(flags);
61 for_each_cpu(query_cpu, mask) { 63 for_each_cpu(query_cpu, mask) {
62 __x2apic_send_IPI_dest( 64 __x2apic_send_IPI_dest(
@@ -73,6 +75,8 @@ static void
73 unsigned long query_cpu; 75 unsigned long query_cpu;
74 unsigned long flags; 76 unsigned long flags;
75 77
78 x2apic_wrmsr_fence();
79
76 local_irq_save(flags); 80 local_irq_save(flags);
77 for_each_cpu(query_cpu, mask) { 81 for_each_cpu(query_cpu, mask) {
78 if (query_cpu == this_cpu) 82 if (query_cpu == this_cpu)
@@ -90,6 +94,8 @@ static void x2apic_send_IPI_allbutself(int vector)
90 unsigned long query_cpu; 94 unsigned long query_cpu;
91 unsigned long flags; 95 unsigned long flags;
92 96
97 x2apic_wrmsr_fence();
98
93 local_irq_save(flags); 99 local_irq_save(flags);
94 for_each_online_cpu(query_cpu) { 100 for_each_online_cpu(query_cpu) {
95 if (query_cpu == this_cpu) 101 if (query_cpu == this_cpu)
diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
index 23625b9f98b2..a284359627e7 100644
--- a/arch/x86/kernel/apic/x2apic_phys.c
+++ b/arch/x86/kernel/apic/x2apic_phys.c
@@ -58,6 +58,8 @@ static void x2apic_send_IPI_mask(const struct cpumask *mask, int vector)
58 unsigned long query_cpu; 58 unsigned long query_cpu;
59 unsigned long flags; 59 unsigned long flags;
60 60
61 x2apic_wrmsr_fence();
62
61 local_irq_save(flags); 63 local_irq_save(flags);
62 for_each_cpu(query_cpu, mask) { 64 for_each_cpu(query_cpu, mask) {
63 __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu), 65 __x2apic_send_IPI_dest(per_cpu(x86_cpu_to_apicid, query_cpu),
@@ -73,6 +75,8 @@ static void
73 unsigned long query_cpu; 75 unsigned long query_cpu;
74 unsigned long flags; 76 unsigned long flags;
75 77
78 x2apic_wrmsr_fence();
79
76 local_irq_save(flags); 80 local_irq_save(flags);
77 for_each_cpu(query_cpu, mask) { 81 for_each_cpu(query_cpu, mask) {
78 if (query_cpu != this_cpu) 82 if (query_cpu != this_cpu)
@@ -89,6 +93,8 @@ static void x2apic_send_IPI_allbutself(int vector)
89 unsigned long query_cpu; 93 unsigned long query_cpu;
90 unsigned long flags; 94 unsigned long flags;
91 95
96 x2apic_wrmsr_fence();
97
92 local_irq_save(flags); 98 local_irq_save(flags);
93 for_each_online_cpu(query_cpu) { 99 for_each_online_cpu(query_cpu) {
94 if (query_cpu == this_cpu) 100 if (query_cpu == this_cpu)
diff --git a/arch/x86/kernel/check.c b/arch/x86/kernel/check.c
index b617b1164f1e..fc999e6fc46a 100644
--- a/arch/x86/kernel/check.c
+++ b/arch/x86/kernel/check.c
@@ -86,12 +86,12 @@ void __init setup_bios_corruption_check(void)
86 if (!(addr + 1)) 86 if (!(addr + 1))
87 break; 87 break;
88 88
89 if (addr >= corruption_check_size)
90 break;
91
89 if ((addr + size) > corruption_check_size) 92 if ((addr + size) > corruption_check_size)
90 size = corruption_check_size - addr; 93 size = corruption_check_size - addr;
91 94
92 if (size == 0)
93 break;
94
95 e820_update_range(addr, size, E820_RAM, E820_RESERVED); 95 e820_update_range(addr, size, E820_RAM, E820_RESERVED);
96 scan_areas[num_scan_areas].addr = addr; 96 scan_areas[num_scan_areas].addr = addr;
97 scan_areas[num_scan_areas].size = size; 97 scan_areas[num_scan_areas].size = size;
diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
index d4356f8b7522..4e242f9a06e4 100644
--- a/arch/x86/kernel/cpu/Makefile
+++ b/arch/x86/kernel/cpu/Makefile
@@ -19,8 +19,7 @@ obj-$(CONFIG_X86_CPU_DEBUG) += cpu_debug.o
19obj-$(CONFIG_CPU_SUP_INTEL) += intel.o 19obj-$(CONFIG_CPU_SUP_INTEL) += intel.o
20obj-$(CONFIG_CPU_SUP_AMD) += amd.o 20obj-$(CONFIG_CPU_SUP_AMD) += amd.o
21obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o 21obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o
22obj-$(CONFIG_CPU_SUP_CENTAUR_32) += centaur.o 22obj-$(CONFIG_CPU_SUP_CENTAUR) += centaur.o
23obj-$(CONFIG_CPU_SUP_CENTAUR_64) += centaur_64.o
24obj-$(CONFIG_CPU_SUP_TRANSMETA_32) += transmeta.o 23obj-$(CONFIG_CPU_SUP_TRANSMETA_32) += transmeta.o
25obj-$(CONFIG_CPU_SUP_UMC_32) += umc.o 24obj-$(CONFIG_CPU_SUP_UMC_32) += umc.o
26 25
diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index 983e0830f0da..c95e831bb095 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -1,11 +1,11 @@
1#include <linux/bitops.h>
1#include <linux/kernel.h> 2#include <linux/kernel.h>
2#include <linux/init.h> 3#include <linux/init.h>
3#include <linux/bitops.h>
4 4
5#include <asm/processor.h> 5#include <asm/processor.h>
6#include <asm/msr.h>
7#include <asm/e820.h> 6#include <asm/e820.h>
8#include <asm/mtrr.h> 7#include <asm/mtrr.h>
8#include <asm/msr.h>
9 9
10#include "cpu.h" 10#include "cpu.h"
11 11
@@ -276,7 +276,7 @@ static void __cpuinit init_c3(struct cpuinfo_x86 *c)
276 */ 276 */
277 c->x86_capability[5] = cpuid_edx(0xC0000001); 277 c->x86_capability[5] = cpuid_edx(0xC0000001);
278 } 278 }
279 279#ifdef CONFIG_X86_32
280 /* Cyrix III family needs CX8 & PGE explicitly enabled. */ 280 /* Cyrix III family needs CX8 & PGE explicitly enabled. */
281 if (c->x86_model >= 6 && c->x86_model <= 9) { 281 if (c->x86_model >= 6 && c->x86_model <= 9) {
282 rdmsr(MSR_VIA_FCR, lo, hi); 282 rdmsr(MSR_VIA_FCR, lo, hi);
@@ -288,6 +288,11 @@ static void __cpuinit init_c3(struct cpuinfo_x86 *c)
288 /* Before Nehemiah, the C3's had 3dNOW! */ 288 /* Before Nehemiah, the C3's had 3dNOW! */
289 if (c->x86_model >= 6 && c->x86_model < 9) 289 if (c->x86_model >= 6 && c->x86_model < 9)
290 set_cpu_cap(c, X86_FEATURE_3DNOW); 290 set_cpu_cap(c, X86_FEATURE_3DNOW);
291#endif
292 if (c->x86 == 0x6 && c->x86_model >= 0xf) {
293 c->x86_cache_alignment = c->x86_clflush_size * 2;
294 set_cpu_cap(c, X86_FEATURE_REP_GOOD);
295 }
291 296
292 display_cacheinfo(c); 297 display_cacheinfo(c);
293} 298}
@@ -316,16 +321,25 @@ enum {
316static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c) 321static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
317{ 322{
318 switch (c->x86) { 323 switch (c->x86) {
324#ifdef CONFIG_X86_32
319 case 5: 325 case 5:
320 /* Emulate MTRRs using Centaur's MCR. */ 326 /* Emulate MTRRs using Centaur's MCR. */
321 set_cpu_cap(c, X86_FEATURE_CENTAUR_MCR); 327 set_cpu_cap(c, X86_FEATURE_CENTAUR_MCR);
322 break; 328 break;
329#endif
330 case 6:
331 if (c->x86_model >= 0xf)
332 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
333 break;
323 } 334 }
335#ifdef CONFIG_X86_64
336 set_cpu_cap(c, X86_FEATURE_SYSENTER32);
337#endif
324} 338}
325 339
326static void __cpuinit init_centaur(struct cpuinfo_x86 *c) 340static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
327{ 341{
328 342#ifdef CONFIG_X86_32
329 char *name; 343 char *name;
330 u32 fcr_set = 0; 344 u32 fcr_set = 0;
331 u32 fcr_clr = 0; 345 u32 fcr_clr = 0;
@@ -337,8 +351,10 @@ static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
337 * 3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway 351 * 3DNow is IDd by bit 31 in extended CPUID (1*32+31) anyway
338 */ 352 */
339 clear_cpu_cap(c, 0*32+31); 353 clear_cpu_cap(c, 0*32+31);
340 354#endif
355 early_init_centaur(c);
341 switch (c->x86) { 356 switch (c->x86) {
357#ifdef CONFIG_X86_32
342 case 5: 358 case 5:
343 switch (c->x86_model) { 359 switch (c->x86_model) {
344 case 4: 360 case 4:
@@ -442,16 +458,20 @@ static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
442 } 458 }
443 sprintf(c->x86_model_id, "WinChip %s", name); 459 sprintf(c->x86_model_id, "WinChip %s", name);
444 break; 460 break;
445 461#endif
446 case 6: 462 case 6:
447 init_c3(c); 463 init_c3(c);
448 break; 464 break;
449 } 465 }
466#ifdef CONFIG_X86_64
467 set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
468#endif
450} 469}
451 470
452static unsigned int __cpuinit 471static unsigned int __cpuinit
453centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size) 472centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
454{ 473{
474#ifdef CONFIG_X86_32
455 /* VIA C3 CPUs (670-68F) need further shifting. */ 475 /* VIA C3 CPUs (670-68F) need further shifting. */
456 if ((c->x86 == 6) && ((c->x86_model == 7) || (c->x86_model == 8))) 476 if ((c->x86 == 6) && ((c->x86_model == 7) || (c->x86_model == 8)))
457 size >>= 8; 477 size >>= 8;
@@ -464,7 +484,7 @@ centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
464 if ((c->x86 == 6) && (c->x86_model == 9) && 484 if ((c->x86 == 6) && (c->x86_model == 9) &&
465 (c->x86_mask == 1) && (size == 65)) 485 (c->x86_mask == 1) && (size == 65))
466 size -= 1; 486 size -= 1;
467 487#endif
468 return size; 488 return size;
469} 489}
470 490
diff --git a/arch/x86/kernel/cpu/centaur_64.c b/arch/x86/kernel/cpu/centaur_64.c
deleted file mode 100644
index 51b09c48c9c7..000000000000
--- a/arch/x86/kernel/cpu/centaur_64.c
+++ /dev/null
@@ -1,37 +0,0 @@
1#include <linux/init.h>
2#include <linux/smp.h>
3
4#include <asm/cpufeature.h>
5#include <asm/processor.h>
6
7#include "cpu.h"
8
9static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
10{
11 if (c->x86 == 0x6 && c->x86_model >= 0xf)
12 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
13
14 set_cpu_cap(c, X86_FEATURE_SYSENTER32);
15}
16
17static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
18{
19 early_init_centaur(c);
20
21 if (c->x86 == 0x6 && c->x86_model >= 0xf) {
22 c->x86_cache_alignment = c->x86_clflush_size * 2;
23 set_cpu_cap(c, X86_FEATURE_REP_GOOD);
24 }
25 set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC);
26}
27
28static const struct cpu_dev centaur_cpu_dev __cpuinitconst = {
29 .c_vendor = "Centaur",
30 .c_ident = { "CentaurHauls" },
31 .c_early_init = early_init_centaur,
32 .c_init = init_centaur,
33 .c_x86_vendor = X86_VENDOR_CENTAUR,
34};
35
36cpu_dev_register(centaur_cpu_dev);
37
diff --git a/arch/x86/kernel/cpu/cpu_debug.c b/arch/x86/kernel/cpu/cpu_debug.c
index 21c0cf8ced18..46e29ab96c6a 100755
--- a/arch/x86/kernel/cpu/cpu_debug.c
+++ b/arch/x86/kernel/cpu/cpu_debug.c
@@ -64,6 +64,8 @@ static struct cpu_debug_base cpu_base[] = {
64 { "vmx", CPU_VMX, 0 }, 64 { "vmx", CPU_VMX, 0 },
65 { "call", CPU_CALL, 0 }, 65 { "call", CPU_CALL, 0 },
66 { "base", CPU_BASE, 0 }, 66 { "base", CPU_BASE, 0 },
67 { "ver", CPU_VER, 0 },
68 { "conf", CPU_CONF, 0 },
67 { "smm", CPU_SMM, 0 }, 69 { "smm", CPU_SMM, 0 },
68 { "svm", CPU_SVM, 0 }, 70 { "svm", CPU_SVM, 0 },
69 { "osvm", CPU_OSVM, 0 }, 71 { "osvm", CPU_OSVM, 0 },
@@ -177,54 +179,59 @@ static struct cpu_debug_range cpu_intel_range[] = {
177 179
178/* AMD Registers Range */ 180/* AMD Registers Range */
179static struct cpu_debug_range cpu_amd_range[] = { 181static struct cpu_debug_range cpu_amd_range[] = {
180 { 0x00000010, 0x00000010, CPU_TIME, CPU_ALL, }, 182 { 0x00000000, 0x00000001, CPU_MC, CPU_K10_PLUS, },
181 { 0x0000001B, 0x0000001B, CPU_APIC, CPU_ALL, }, 183 { 0x00000010, 0x00000010, CPU_TIME, CPU_K8_PLUS, },
182 { 0x000000FE, 0x000000FE, CPU_MTRR, CPU_ALL, }, 184 { 0x0000001B, 0x0000001B, CPU_APIC, CPU_K8_PLUS, },
183 185 { 0x0000002A, 0x0000002A, CPU_POWERON, CPU_K7_PLUS },
184 { 0x00000174, 0x00000176, CPU_SYSENTER, CPU_ALL, }, 186 { 0x0000008B, 0x0000008B, CPU_VER, CPU_K8_PLUS },
185 { 0x00000179, 0x0000017A, CPU_MC, CPU_ALL, }, 187 { 0x000000FE, 0x000000FE, CPU_MTRR, CPU_K8_PLUS, },
186 { 0x0000017B, 0x0000017B, CPU_MC, CPU_ALL, }, 188
187 { 0x000001D9, 0x000001D9, CPU_DEBUG, CPU_ALL, }, 189 { 0x00000174, 0x00000176, CPU_SYSENTER, CPU_K8_PLUS, },
188 { 0x000001DB, 0x000001DE, CPU_LBRANCH, CPU_ALL, }, 190 { 0x00000179, 0x0000017B, CPU_MC, CPU_K8_PLUS, },
189 191 { 0x000001D9, 0x000001D9, CPU_DEBUG, CPU_K8_PLUS, },
190 { 0x00000200, 0x0000020F, CPU_MTRR, CPU_ALL, }, 192 { 0x000001DB, 0x000001DE, CPU_LBRANCH, CPU_K8_PLUS, },
191 { 0x00000250, 0x00000250, CPU_MTRR, CPU_ALL, }, 193
192 { 0x00000258, 0x00000259, CPU_MTRR, CPU_ALL, }, 194 { 0x00000200, 0x0000020F, CPU_MTRR, CPU_K8_PLUS, },
193 { 0x00000268, 0x0000026F, CPU_MTRR, CPU_ALL, }, 195 { 0x00000250, 0x00000250, CPU_MTRR, CPU_K8_PLUS, },
194 { 0x00000277, 0x00000277, CPU_PAT, CPU_ALL, }, 196 { 0x00000258, 0x00000259, CPU_MTRR, CPU_K8_PLUS, },
195 { 0x000002FF, 0x000002FF, CPU_MTRR, CPU_ALL, }, 197 { 0x00000268, 0x0000026F, CPU_MTRR, CPU_K8_PLUS, },
196 198 { 0x00000277, 0x00000277, CPU_PAT, CPU_K8_PLUS, },
197 { 0x00000400, 0x00000417, CPU_MC, CPU_ALL, }, 199 { 0x000002FF, 0x000002FF, CPU_MTRR, CPU_K8_PLUS, },
198 200
199 { 0xC0000080, 0xC0000080, CPU_FEATURES, CPU_ALL, }, 201 { 0x00000400, 0x00000413, CPU_MC, CPU_K8_PLUS, },
200 { 0xC0000081, 0xC0000084, CPU_CALL, CPU_ALL, }, 202
201 { 0xC0000100, 0xC0000102, CPU_BASE, CPU_ALL, }, 203 { 0xC0000080, 0xC0000080, CPU_FEATURES, CPU_AMD_ALL, },
202 { 0xC0000103, 0xC0000103, CPU_TIME, CPU_ALL, }, 204 { 0xC0000081, 0xC0000084, CPU_CALL, CPU_K8_PLUS, },
203 205 { 0xC0000100, 0xC0000102, CPU_BASE, CPU_K8_PLUS, },
204 { 0xC0000408, 0xC000040A, CPU_MC, CPU_ALL, }, 206 { 0xC0000103, 0xC0000103, CPU_TIME, CPU_K10_PLUS, },
205 207
206 { 0xc0010000, 0xc0010007, CPU_PMC, CPU_ALL, }, 208 { 0xC0010000, 0xC0010007, CPU_PMC, CPU_K8_PLUS, },
207 { 0xc0010010, 0xc0010010, CPU_MTRR, CPU_ALL, }, 209 { 0xC0010010, 0xC0010010, CPU_CONF, CPU_K7_PLUS, },
208 { 0xc0010016, 0xc001001A, CPU_MTRR, CPU_ALL, }, 210 { 0xC0010015, 0xC0010015, CPU_CONF, CPU_K7_PLUS, },
209 { 0xc001001D, 0xc001001D, CPU_MTRR, CPU_ALL, }, 211 { 0xC0010016, 0xC001001A, CPU_MTRR, CPU_K8_PLUS, },
210 { 0xc0010030, 0xc0010035, CPU_BIOS, CPU_ALL, }, 212 { 0xC001001D, 0xC001001D, CPU_MTRR, CPU_K8_PLUS, },
211 { 0xc0010056, 0xc0010056, CPU_SMM, CPU_ALL, }, 213 { 0xC001001F, 0xC001001F, CPU_CONF, CPU_K8_PLUS, },
212 { 0xc0010061, 0xc0010063, CPU_SMM, CPU_ALL, }, 214 { 0xC0010030, 0xC0010035, CPU_BIOS, CPU_K8_PLUS, },
213 { 0xc0010074, 0xc0010074, CPU_MC, CPU_ALL, }, 215 { 0xC0010044, 0xC0010048, CPU_MC, CPU_K8_PLUS, },
214 { 0xc0010111, 0xc0010113, CPU_SMM, CPU_ALL, }, 216 { 0xC0010050, 0xC0010056, CPU_SMM, CPU_K0F_PLUS, },
215 { 0xc0010114, 0xc0010118, CPU_SVM, CPU_ALL, }, 217 { 0xC0010058, 0xC0010058, CPU_CONF, CPU_K10_PLUS, },
216 { 0xc0010119, 0xc001011A, CPU_SMM, CPU_ALL, }, 218 { 0xC0010060, 0xC0010060, CPU_CACHE, CPU_AMD_11, },
217 { 0xc0010140, 0xc0010141, CPU_OSVM, CPU_ALL, }, 219 { 0xC0010061, 0xC0010068, CPU_SMM, CPU_K10_PLUS, },
218 { 0xc0010156, 0xc0010156, CPU_SMM, CPU_ALL, }, 220 { 0xC0010069, 0xC001006B, CPU_SMM, CPU_AMD_11, },
221 { 0xC0010070, 0xC0010071, CPU_SMM, CPU_K10_PLUS, },
222 { 0xC0010111, 0xC0010113, CPU_SMM, CPU_K8_PLUS, },
223 { 0xC0010114, 0xC0010118, CPU_SVM, CPU_K10_PLUS, },
224 { 0xC0010140, 0xC0010141, CPU_OSVM, CPU_K10_PLUS, },
225 { 0xC0011022, 0xC0011023, CPU_CONF, CPU_K10_PLUS, },
219}; 226};
220 227
221 228
222static int get_cpu_modelflag(unsigned cpu) 229/* Intel */
230static int get_intel_modelflag(unsigned model)
223{ 231{
224 int flag; 232 int flag;
225 233
226 switch (per_cpu(cpu_model, cpu)) { 234 switch (model) {
227 /* Intel */
228 case 0x0501: 235 case 0x0501:
229 case 0x0502: 236 case 0x0502:
230 case 0x0504: 237 case 0x0504:
@@ -271,6 +278,59 @@ static int get_cpu_modelflag(unsigned cpu)
271 return flag; 278 return flag;
272} 279}
273 280
281/* AMD */
282static int get_amd_modelflag(unsigned model)
283{
284 int flag;
285
286 switch (model >> 8) {
287 case 0x6:
288 flag = CPU_AMD_K6;
289 break;
290 case 0x7:
291 flag = CPU_AMD_K7;
292 break;
293 case 0x8:
294 flag = CPU_AMD_K8;
295 break;
296 case 0xf:
297 flag = CPU_AMD_0F;
298 break;
299 case 0x10:
300 flag = CPU_AMD_10;
301 break;
302 case 0x11:
303 flag = CPU_AMD_11;
304 break;
305 default:
306 flag = CPU_NONE;
307 break;
308 }
309
310 return flag;
311}
312
313static int get_cpu_modelflag(unsigned cpu)
314{
315 int flag;
316
317 flag = per_cpu(cpu_model, cpu);
318
319 switch (flag >> 16) {
320 case X86_VENDOR_INTEL:
321 flag = get_intel_modelflag(flag);
322 break;
323 case X86_VENDOR_AMD:
324 flag = get_amd_modelflag(flag & 0xffff);
325 break;
326 default:
327 flag = CPU_NONE;
328 break;
329 }
330
331 return flag;
332}
333
274static int get_cpu_range_count(unsigned cpu) 334static int get_cpu_range_count(unsigned cpu)
275{ 335{
276 int index; 336 int index;
@@ -311,7 +371,8 @@ static int is_typeflag_valid(unsigned cpu, unsigned flag)
311 return 1; 371 return 1;
312 break; 372 break;
313 case X86_VENDOR_AMD: 373 case X86_VENDOR_AMD:
314 if (cpu_amd_range[i].flag & flag) 374 if ((cpu_amd_range[i].model & modelflag) &&
375 (cpu_amd_range[i].flag & flag))
315 return 1; 376 return 1;
316 break; 377 break;
317 } 378 }
@@ -337,7 +398,8 @@ static unsigned get_cpu_range(unsigned cpu, unsigned *min, unsigned *max,
337 } 398 }
338 break; 399 break;
339 case X86_VENDOR_AMD: 400 case X86_VENDOR_AMD:
340 if (cpu_amd_range[index].flag & flag) { 401 if ((cpu_amd_range[index].model & modelflag) &&
402 (cpu_amd_range[index].flag & flag)) {
341 *min = cpu_amd_range[index].min; 403 *min = cpu_amd_range[index].min;
342 *max = cpu_amd_range[index].max; 404 *max = cpu_amd_range[index].max;
343 } 405 }
diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
index c5a32f92d07e..7d01be868870 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_amd_64.c
@@ -92,7 +92,8 @@ struct thresh_restart {
92}; 92};
93 93
94/* must be called with correct cpu affinity */ 94/* must be called with correct cpu affinity */
95static long threshold_restart_bank(void *_tr) 95/* Called via smp_call_function_single() */
96static void threshold_restart_bank(void *_tr)
96{ 97{
97 struct thresh_restart *tr = _tr; 98 struct thresh_restart *tr = _tr;
98 u32 mci_misc_hi, mci_misc_lo; 99 u32 mci_misc_hi, mci_misc_lo;
@@ -119,7 +120,6 @@ static long threshold_restart_bank(void *_tr)
119 120
120 mci_misc_hi |= MASK_COUNT_EN_HI; 121 mci_misc_hi |= MASK_COUNT_EN_HI;
121 wrmsr(tr->b->address, mci_misc_lo, mci_misc_hi); 122 wrmsr(tr->b->address, mci_misc_lo, mci_misc_hi);
122 return 0;
123} 123}
124 124
125/* cpu init entry point, called from mce.c with preempt off */ 125/* cpu init entry point, called from mce.c with preempt off */
@@ -279,7 +279,7 @@ static ssize_t store_interrupt_enable(struct threshold_block *b,
279 tr.b = b; 279 tr.b = b;
280 tr.reset = 0; 280 tr.reset = 0;
281 tr.old_limit = 0; 281 tr.old_limit = 0;
282 work_on_cpu(b->cpu, threshold_restart_bank, &tr); 282 smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
283 283
284 return end - buf; 284 return end - buf;
285} 285}
@@ -301,23 +301,32 @@ static ssize_t store_threshold_limit(struct threshold_block *b,
301 tr.b = b; 301 tr.b = b;
302 tr.reset = 0; 302 tr.reset = 0;
303 303
304 work_on_cpu(b->cpu, threshold_restart_bank, &tr); 304 smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
305 305
306 return end - buf; 306 return end - buf;
307} 307}
308 308
309static long local_error_count(void *_b) 309struct threshold_block_cross_cpu {
310 struct threshold_block *tb;
311 long retval;
312};
313
314static void local_error_count_handler(void *_tbcc)
310{ 315{
311 struct threshold_block *b = _b; 316 struct threshold_block_cross_cpu *tbcc = _tbcc;
317 struct threshold_block *b = tbcc->tb;
312 u32 low, high; 318 u32 low, high;
313 319
314 rdmsr(b->address, low, high); 320 rdmsr(b->address, low, high);
315 return (high & 0xFFF) - (THRESHOLD_MAX - b->threshold_limit); 321 tbcc->retval = (high & 0xFFF) - (THRESHOLD_MAX - b->threshold_limit);
316} 322}
317 323
318static ssize_t show_error_count(struct threshold_block *b, char *buf) 324static ssize_t show_error_count(struct threshold_block *b, char *buf)
319{ 325{
320 return sprintf(buf, "%lx\n", work_on_cpu(b->cpu, local_error_count, b)); 326 struct threshold_block_cross_cpu tbcc = { .tb = b, };
327
328 smp_call_function_single(b->cpu, local_error_count_handler, &tbcc, 1);
329 return sprintf(buf, "%lx\n", tbcc.retval);
321} 330}
322 331
323static ssize_t store_error_count(struct threshold_block *b, 332static ssize_t store_error_count(struct threshold_block *b,
@@ -325,7 +334,7 @@ static ssize_t store_error_count(struct threshold_block *b,
325{ 334{
326 struct thresh_restart tr = { .b = b, .reset = 1, .old_limit = 0 }; 335 struct thresh_restart tr = { .b = b, .reset = 1, .old_limit = 0 };
327 336
328 work_on_cpu(b->cpu, threshold_restart_bank, &tr); 337 smp_call_function_single(b->cpu, threshold_restart_bank, &tr, 1);
329 return 1; 338 return 1;
330} 339}
331 340
@@ -394,7 +403,7 @@ static __cpuinit int allocate_threshold_blocks(unsigned int cpu,
394 if ((bank >= NR_BANKS) || (block >= NR_BLOCKS)) 403 if ((bank >= NR_BANKS) || (block >= NR_BLOCKS))
395 return 0; 404 return 0;
396 405
397 if (rdmsr_safe(address, &low, &high)) 406 if (rdmsr_safe_on_cpu(cpu, address, &low, &high))
398 return 0; 407 return 0;
399 408
400 if (!(high & MASK_VALID_HI)) { 409 if (!(high & MASK_VALID_HI)) {
@@ -458,12 +467,11 @@ out_free:
458 return err; 467 return err;
459} 468}
460 469
461static __cpuinit long local_allocate_threshold_blocks(void *_bank) 470static __cpuinit long
471local_allocate_threshold_blocks(int cpu, unsigned int bank)
462{ 472{
463 unsigned int *bank = _bank; 473 return allocate_threshold_blocks(cpu, bank, 0,
464 474 MSR_IA32_MC0_MISC + bank * 4);
465 return allocate_threshold_blocks(smp_processor_id(), *bank, 0,
466 MSR_IA32_MC0_MISC + *bank * 4);
467} 475}
468 476
469/* symlinks sibling shared banks to first core. first core owns dir/files. */ 477/* symlinks sibling shared banks to first core. first core owns dir/files. */
@@ -526,7 +534,7 @@ static __cpuinit int threshold_create_bank(unsigned int cpu, unsigned int bank)
526 534
527 per_cpu(threshold_banks, cpu)[bank] = b; 535 per_cpu(threshold_banks, cpu)[bank] = b;
528 536
529 err = work_on_cpu(cpu, local_allocate_threshold_blocks, &bank); 537 err = local_allocate_threshold_blocks(cpu, bank);
530 if (err) 538 if (err)
531 goto out_free; 539 goto out_free;
532 540
diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
index aaa7d9730938..57df3d383470 100644
--- a/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
+++ b/arch/x86/kernel/cpu/mcheck/mce_intel_64.c
@@ -270,7 +270,7 @@ void cmci_reenable(void)
270 cmci_discover(banks, 0); 270 cmci_discover(banks, 0);
271} 271}
272 272
273static __cpuinit void intel_init_cmci(void) 273static void intel_init_cmci(void)
274{ 274{
275 int banks; 275 int banks;
276 276
diff --git a/arch/x86/kernel/cpu/mtrr/Makefile b/arch/x86/kernel/cpu/mtrr/Makefile
index 191fc0533649..f4361b56f8e9 100644
--- a/arch/x86/kernel/cpu/mtrr/Makefile
+++ b/arch/x86/kernel/cpu/mtrr/Makefile
@@ -1,3 +1,3 @@
1obj-y := main.o if.o generic.o state.o 1obj-y := main.o if.o generic.o state.o cleanup.o
2obj-$(CONFIG_X86_32) += amd.o cyrix.o centaur.o 2obj-$(CONFIG_X86_32) += amd.o cyrix.o centaur.o
3 3
diff --git a/arch/x86/kernel/cpu/mtrr/cleanup.c b/arch/x86/kernel/cpu/mtrr/cleanup.c
new file mode 100644
index 000000000000..ce0fe4b5c04f
--- /dev/null
+++ b/arch/x86/kernel/cpu/mtrr/cleanup.c
@@ -0,0 +1,1101 @@
1/* MTRR (Memory Type Range Register) cleanup
2
3 Copyright (C) 2009 Yinghai Lu
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the Free
17 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18*/
19
20#include <linux/module.h>
21#include <linux/init.h>
22#include <linux/pci.h>
23#include <linux/smp.h>
24#include <linux/cpu.h>
25#include <linux/mutex.h>
26#include <linux/sort.h>
27
28#include <asm/e820.h>
29#include <asm/mtrr.h>
30#include <asm/uaccess.h>
31#include <asm/processor.h>
32#include <asm/msr.h>
33#include <asm/kvm_para.h>
34#include "mtrr.h"
35
36/* should be related to MTRR_VAR_RANGES nums */
37#define RANGE_NUM 256
38
39struct res_range {
40 unsigned long start;
41 unsigned long end;
42};
43
44static int __init
45add_range(struct res_range *range, int nr_range, unsigned long start,
46 unsigned long end)
47{
48 /* out of slots */
49 if (nr_range >= RANGE_NUM)
50 return nr_range;
51
52 range[nr_range].start = start;
53 range[nr_range].end = end;
54
55 nr_range++;
56
57 return nr_range;
58}
59
60static int __init
61add_range_with_merge(struct res_range *range, int nr_range, unsigned long start,
62 unsigned long end)
63{
64 int i;
65
66 /* try to merge it with old one */
67 for (i = 0; i < nr_range; i++) {
68 unsigned long final_start, final_end;
69 unsigned long common_start, common_end;
70
71 if (!range[i].end)
72 continue;
73
74 common_start = max(range[i].start, start);
75 common_end = min(range[i].end, end);
76 if (common_start > common_end + 1)
77 continue;
78
79 final_start = min(range[i].start, start);
80 final_end = max(range[i].end, end);
81
82 range[i].start = final_start;
83 range[i].end = final_end;
84 return nr_range;
85 }
86
87 /* need to add that */
88 return add_range(range, nr_range, start, end);
89}
90
91static void __init
92subtract_range(struct res_range *range, unsigned long start, unsigned long end)
93{
94 int i, j;
95
96 for (j = 0; j < RANGE_NUM; j++) {
97 if (!range[j].end)
98 continue;
99
100 if (start <= range[j].start && end >= range[j].end) {
101 range[j].start = 0;
102 range[j].end = 0;
103 continue;
104 }
105
106 if (start <= range[j].start && end < range[j].end &&
107 range[j].start < end + 1) {
108 range[j].start = end + 1;
109 continue;
110 }
111
112
113 if (start > range[j].start && end >= range[j].end &&
114 range[j].end > start - 1) {
115 range[j].end = start - 1;
116 continue;
117 }
118
119 if (start > range[j].start && end < range[j].end) {
120 /* find the new spare */
121 for (i = 0; i < RANGE_NUM; i++) {
122 if (range[i].end == 0)
123 break;
124 }
125 if (i < RANGE_NUM) {
126 range[i].end = range[j].end;
127 range[i].start = end + 1;
128 } else {
129 printk(KERN_ERR "run of slot in ranges\n");
130 }
131 range[j].end = start - 1;
132 continue;
133 }
134 }
135}
136
137static int __init cmp_range(const void *x1, const void *x2)
138{
139 const struct res_range *r1 = x1;
140 const struct res_range *r2 = x2;
141 long start1, start2;
142
143 start1 = r1->start;
144 start2 = r2->start;
145
146 return start1 - start2;
147}
148
149struct var_mtrr_range_state {
150 unsigned long base_pfn;
151 unsigned long size_pfn;
152 mtrr_type type;
153};
154
155static struct var_mtrr_range_state __initdata range_state[RANGE_NUM];
156static int __initdata debug_print;
157
158static int __init
159x86_get_mtrr_mem_range(struct res_range *range, int nr_range,
160 unsigned long extra_remove_base,
161 unsigned long extra_remove_size)
162{
163 unsigned long base, size;
164 mtrr_type type;
165 int i;
166
167 for (i = 0; i < num_var_ranges; i++) {
168 type = range_state[i].type;
169 if (type != MTRR_TYPE_WRBACK)
170 continue;
171 base = range_state[i].base_pfn;
172 size = range_state[i].size_pfn;
173 nr_range = add_range_with_merge(range, nr_range, base,
174 base + size - 1);
175 }
176 if (debug_print) {
177 printk(KERN_DEBUG "After WB checking\n");
178 for (i = 0; i < nr_range; i++)
179 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
180 range[i].start, range[i].end + 1);
181 }
182
183 /* take out UC ranges */
184 for (i = 0; i < num_var_ranges; i++) {
185 type = range_state[i].type;
186 if (type != MTRR_TYPE_UNCACHABLE &&
187 type != MTRR_TYPE_WRPROT)
188 continue;
189 size = range_state[i].size_pfn;
190 if (!size)
191 continue;
192 base = range_state[i].base_pfn;
193 if (base < (1<<(20-PAGE_SHIFT)) && mtrr_state.have_fixed &&
194 (mtrr_state.enabled & 1)) {
195 /* Var MTRR contains UC entry below 1M? Skip it: */
196 printk(KERN_WARNING "WARNING: BIOS bug: VAR MTRR %d "
197 "contains strange UC entry under 1M, check "
198 "with your system vendor!\n", i);
199 if (base + size <= (1<<(20-PAGE_SHIFT)))
200 continue;
201 size -= (1<<(20-PAGE_SHIFT)) - base;
202 base = 1<<(20-PAGE_SHIFT);
203 }
204 subtract_range(range, base, base + size - 1);
205 }
206 if (extra_remove_size)
207 subtract_range(range, extra_remove_base,
208 extra_remove_base + extra_remove_size - 1);
209
210 /* get new range num */
211 nr_range = 0;
212 for (i = 0; i < RANGE_NUM; i++) {
213 if (!range[i].end)
214 continue;
215 nr_range++;
216 }
217 if (debug_print) {
218 printk(KERN_DEBUG "After UC checking\n");
219 for (i = 0; i < nr_range; i++)
220 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
221 range[i].start, range[i].end + 1);
222 }
223
224 /* sort the ranges */
225 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
226 if (debug_print) {
227 printk(KERN_DEBUG "After sorting\n");
228 for (i = 0; i < nr_range; i++)
229 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
230 range[i].start, range[i].end + 1);
231 }
232
233 /* clear those is not used */
234 for (i = nr_range; i < RANGE_NUM; i++)
235 memset(&range[i], 0, sizeof(range[i]));
236
237 return nr_range;
238}
239
240static struct res_range __initdata range[RANGE_NUM];
241static int __initdata nr_range;
242
243#ifdef CONFIG_MTRR_SANITIZER
244
245static unsigned long __init sum_ranges(struct res_range *range, int nr_range)
246{
247 unsigned long sum;
248 int i;
249
250 sum = 0;
251 for (i = 0; i < nr_range; i++)
252 sum += range[i].end + 1 - range[i].start;
253
254 return sum;
255}
256
257static int enable_mtrr_cleanup __initdata =
258 CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT;
259
260static int __init disable_mtrr_cleanup_setup(char *str)
261{
262 enable_mtrr_cleanup = 0;
263 return 0;
264}
265early_param("disable_mtrr_cleanup", disable_mtrr_cleanup_setup);
266
267static int __init enable_mtrr_cleanup_setup(char *str)
268{
269 enable_mtrr_cleanup = 1;
270 return 0;
271}
272early_param("enable_mtrr_cleanup", enable_mtrr_cleanup_setup);
273
274static int __init mtrr_cleanup_debug_setup(char *str)
275{
276 debug_print = 1;
277 return 0;
278}
279early_param("mtrr_cleanup_debug", mtrr_cleanup_debug_setup);
280
281struct var_mtrr_state {
282 unsigned long range_startk;
283 unsigned long range_sizek;
284 unsigned long chunk_sizek;
285 unsigned long gran_sizek;
286 unsigned int reg;
287};
288
289static void __init
290set_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
291 unsigned char type, unsigned int address_bits)
292{
293 u32 base_lo, base_hi, mask_lo, mask_hi;
294 u64 base, mask;
295
296 if (!sizek) {
297 fill_mtrr_var_range(reg, 0, 0, 0, 0);
298 return;
299 }
300
301 mask = (1ULL << address_bits) - 1;
302 mask &= ~((((u64)sizek) << 10) - 1);
303
304 base = ((u64)basek) << 10;
305
306 base |= type;
307 mask |= 0x800;
308
309 base_lo = base & ((1ULL<<32) - 1);
310 base_hi = base >> 32;
311
312 mask_lo = mask & ((1ULL<<32) - 1);
313 mask_hi = mask >> 32;
314
315 fill_mtrr_var_range(reg, base_lo, base_hi, mask_lo, mask_hi);
316}
317
318static void __init
319save_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
320 unsigned char type)
321{
322 range_state[reg].base_pfn = basek >> (PAGE_SHIFT - 10);
323 range_state[reg].size_pfn = sizek >> (PAGE_SHIFT - 10);
324 range_state[reg].type = type;
325}
326
327static void __init
328set_var_mtrr_all(unsigned int address_bits)
329{
330 unsigned long basek, sizek;
331 unsigned char type;
332 unsigned int reg;
333
334 for (reg = 0; reg < num_var_ranges; reg++) {
335 basek = range_state[reg].base_pfn << (PAGE_SHIFT - 10);
336 sizek = range_state[reg].size_pfn << (PAGE_SHIFT - 10);
337 type = range_state[reg].type;
338
339 set_var_mtrr(reg, basek, sizek, type, address_bits);
340 }
341}
342
343static unsigned long to_size_factor(unsigned long sizek, char *factorp)
344{
345 char factor;
346 unsigned long base = sizek;
347
348 if (base & ((1<<10) - 1)) {
349 /* not MB alignment */
350 factor = 'K';
351 } else if (base & ((1<<20) - 1)) {
352 factor = 'M';
353 base >>= 10;
354 } else {
355 factor = 'G';
356 base >>= 20;
357 }
358
359 *factorp = factor;
360
361 return base;
362}
363
364static unsigned int __init
365range_to_mtrr(unsigned int reg, unsigned long range_startk,
366 unsigned long range_sizek, unsigned char type)
367{
368 if (!range_sizek || (reg >= num_var_ranges))
369 return reg;
370
371 while (range_sizek) {
372 unsigned long max_align, align;
373 unsigned long sizek;
374
375 /* Compute the maximum size I can make a range */
376 if (range_startk)
377 max_align = ffs(range_startk) - 1;
378 else
379 max_align = 32;
380 align = fls(range_sizek) - 1;
381 if (align > max_align)
382 align = max_align;
383
384 sizek = 1 << align;
385 if (debug_print) {
386 char start_factor = 'K', size_factor = 'K';
387 unsigned long start_base, size_base;
388
389 start_base = to_size_factor(range_startk,
390 &start_factor),
391 size_base = to_size_factor(sizek, &size_factor),
392
393 printk(KERN_DEBUG "Setting variable MTRR %d, "
394 "base: %ld%cB, range: %ld%cB, type %s\n",
395 reg, start_base, start_factor,
396 size_base, size_factor,
397 (type == MTRR_TYPE_UNCACHABLE) ? "UC" :
398 ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other")
399 );
400 }
401 save_var_mtrr(reg++, range_startk, sizek, type);
402 range_startk += sizek;
403 range_sizek -= sizek;
404 if (reg >= num_var_ranges)
405 break;
406 }
407 return reg;
408}
409
410static unsigned __init
411range_to_mtrr_with_hole(struct var_mtrr_state *state, unsigned long basek,
412 unsigned long sizek)
413{
414 unsigned long hole_basek, hole_sizek;
415 unsigned long second_basek, second_sizek;
416 unsigned long range0_basek, range0_sizek;
417 unsigned long range_basek, range_sizek;
418 unsigned long chunk_sizek;
419 unsigned long gran_sizek;
420
421 hole_basek = 0;
422 hole_sizek = 0;
423 second_basek = 0;
424 second_sizek = 0;
425 chunk_sizek = state->chunk_sizek;
426 gran_sizek = state->gran_sizek;
427
428 /* align with gran size, prevent small block used up MTRRs */
429 range_basek = ALIGN(state->range_startk, gran_sizek);
430 if ((range_basek > basek) && basek)
431 return second_sizek;
432 state->range_sizek -= (range_basek - state->range_startk);
433 range_sizek = ALIGN(state->range_sizek, gran_sizek);
434
435 while (range_sizek > state->range_sizek) {
436 range_sizek -= gran_sizek;
437 if (!range_sizek)
438 return 0;
439 }
440 state->range_sizek = range_sizek;
441
442 /* try to append some small hole */
443 range0_basek = state->range_startk;
444 range0_sizek = ALIGN(state->range_sizek, chunk_sizek);
445
446 /* no increase */
447 if (range0_sizek == state->range_sizek) {
448 if (debug_print)
449 printk(KERN_DEBUG "rangeX: %016lx - %016lx\n",
450 range0_basek<<10,
451 (range0_basek + state->range_sizek)<<10);
452 state->reg = range_to_mtrr(state->reg, range0_basek,
453 state->range_sizek, MTRR_TYPE_WRBACK);
454 return 0;
455 }
456
457 /* only cut back, when it is not the last */
458 if (sizek) {
459 while (range0_basek + range0_sizek > (basek + sizek)) {
460 if (range0_sizek >= chunk_sizek)
461 range0_sizek -= chunk_sizek;
462 else
463 range0_sizek = 0;
464
465 if (!range0_sizek)
466 break;
467 }
468 }
469
470second_try:
471 range_basek = range0_basek + range0_sizek;
472
473 /* one hole in the middle */
474 if (range_basek > basek && range_basek <= (basek + sizek))
475 second_sizek = range_basek - basek;
476
477 if (range0_sizek > state->range_sizek) {
478
479 /* one hole in middle or at end */
480 hole_sizek = range0_sizek - state->range_sizek - second_sizek;
481
482 /* hole size should be less than half of range0 size */
483 if (hole_sizek >= (range0_sizek >> 1) &&
484 range0_sizek >= chunk_sizek) {
485 range0_sizek -= chunk_sizek;
486 second_sizek = 0;
487 hole_sizek = 0;
488
489 goto second_try;
490 }
491 }
492
493 if (range0_sizek) {
494 if (debug_print)
495 printk(KERN_DEBUG "range0: %016lx - %016lx\n",
496 range0_basek<<10,
497 (range0_basek + range0_sizek)<<10);
498 state->reg = range_to_mtrr(state->reg, range0_basek,
499 range0_sizek, MTRR_TYPE_WRBACK);
500 }
501
502 if (range0_sizek < state->range_sizek) {
503 /* need to handle left over */
504 range_sizek = state->range_sizek - range0_sizek;
505
506 if (debug_print)
507 printk(KERN_DEBUG "range: %016lx - %016lx\n",
508 range_basek<<10,
509 (range_basek + range_sizek)<<10);
510 state->reg = range_to_mtrr(state->reg, range_basek,
511 range_sizek, MTRR_TYPE_WRBACK);
512 }
513
514 if (hole_sizek) {
515 hole_basek = range_basek - hole_sizek - second_sizek;
516 if (debug_print)
517 printk(KERN_DEBUG "hole: %016lx - %016lx\n",
518 hole_basek<<10,
519 (hole_basek + hole_sizek)<<10);
520 state->reg = range_to_mtrr(state->reg, hole_basek,
521 hole_sizek, MTRR_TYPE_UNCACHABLE);
522 }
523
524 return second_sizek;
525}
526
527static void __init
528set_var_mtrr_range(struct var_mtrr_state *state, unsigned long base_pfn,
529 unsigned long size_pfn)
530{
531 unsigned long basek, sizek;
532 unsigned long second_sizek = 0;
533
534 if (state->reg >= num_var_ranges)
535 return;
536
537 basek = base_pfn << (PAGE_SHIFT - 10);
538 sizek = size_pfn << (PAGE_SHIFT - 10);
539
540 /* See if I can merge with the last range */
541 if ((basek <= 1024) ||
542 (state->range_startk + state->range_sizek == basek)) {
543 unsigned long endk = basek + sizek;
544 state->range_sizek = endk - state->range_startk;
545 return;
546 }
547 /* Write the range mtrrs */
548 if (state->range_sizek != 0)
549 second_sizek = range_to_mtrr_with_hole(state, basek, sizek);
550
551 /* Allocate an msr */
552 state->range_startk = basek + second_sizek;
553 state->range_sizek = sizek - second_sizek;
554}
555
556/* mininum size of mtrr block that can take hole */
557static u64 mtrr_chunk_size __initdata = (256ULL<<20);
558
559static int __init parse_mtrr_chunk_size_opt(char *p)
560{
561 if (!p)
562 return -EINVAL;
563 mtrr_chunk_size = memparse(p, &p);
564 return 0;
565}
566early_param("mtrr_chunk_size", parse_mtrr_chunk_size_opt);
567
568/* granity of mtrr of block */
569static u64 mtrr_gran_size __initdata;
570
571static int __init parse_mtrr_gran_size_opt(char *p)
572{
573 if (!p)
574 return -EINVAL;
575 mtrr_gran_size = memparse(p, &p);
576 return 0;
577}
578early_param("mtrr_gran_size", parse_mtrr_gran_size_opt);
579
580static int nr_mtrr_spare_reg __initdata =
581 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT;
582
583static int __init parse_mtrr_spare_reg(char *arg)
584{
585 if (arg)
586 nr_mtrr_spare_reg = simple_strtoul(arg, NULL, 0);
587 return 0;
588}
589
590early_param("mtrr_spare_reg_nr", parse_mtrr_spare_reg);
591
592static int __init
593x86_setup_var_mtrrs(struct res_range *range, int nr_range,
594 u64 chunk_size, u64 gran_size)
595{
596 struct var_mtrr_state var_state;
597 int i;
598 int num_reg;
599
600 var_state.range_startk = 0;
601 var_state.range_sizek = 0;
602 var_state.reg = 0;
603 var_state.chunk_sizek = chunk_size >> 10;
604 var_state.gran_sizek = gran_size >> 10;
605
606 memset(range_state, 0, sizeof(range_state));
607
608 /* Write the range etc */
609 for (i = 0; i < nr_range; i++)
610 set_var_mtrr_range(&var_state, range[i].start,
611 range[i].end - range[i].start + 1);
612
613 /* Write the last range */
614 if (var_state.range_sizek != 0)
615 range_to_mtrr_with_hole(&var_state, 0, 0);
616
617 num_reg = var_state.reg;
618 /* Clear out the extra MTRR's */
619 while (var_state.reg < num_var_ranges) {
620 save_var_mtrr(var_state.reg, 0, 0, 0);
621 var_state.reg++;
622 }
623
624 return num_reg;
625}
626
627struct mtrr_cleanup_result {
628 unsigned long gran_sizek;
629 unsigned long chunk_sizek;
630 unsigned long lose_cover_sizek;
631 unsigned int num_reg;
632 int bad;
633};
634
635/*
636 * gran_size: 64K, 128K, 256K, 512K, 1M, 2M, ..., 2G
637 * chunk size: gran_size, ..., 2G
638 * so we need (1+16)*8
639 */
640#define NUM_RESULT 136
641#define PSHIFT (PAGE_SHIFT - 10)
642
643static struct mtrr_cleanup_result __initdata result[NUM_RESULT];
644static unsigned long __initdata min_loss_pfn[RANGE_NUM];
645
646static void __init print_out_mtrr_range_state(void)
647{
648 int i;
649 char start_factor = 'K', size_factor = 'K';
650 unsigned long start_base, size_base;
651 mtrr_type type;
652
653 for (i = 0; i < num_var_ranges; i++) {
654
655 size_base = range_state[i].size_pfn << (PAGE_SHIFT - 10);
656 if (!size_base)
657 continue;
658
659 size_base = to_size_factor(size_base, &size_factor),
660 start_base = range_state[i].base_pfn << (PAGE_SHIFT - 10);
661 start_base = to_size_factor(start_base, &start_factor),
662 type = range_state[i].type;
663
664 printk(KERN_DEBUG "reg %d, base: %ld%cB, range: %ld%cB, type %s\n",
665 i, start_base, start_factor,
666 size_base, size_factor,
667 (type == MTRR_TYPE_UNCACHABLE) ? "UC" :
668 ((type == MTRR_TYPE_WRPROT) ? "WP" :
669 ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other"))
670 );
671 }
672}
673
674static int __init mtrr_need_cleanup(void)
675{
676 int i;
677 mtrr_type type;
678 unsigned long size;
679 /* extra one for all 0 */
680 int num[MTRR_NUM_TYPES + 1];
681
682 /* check entries number */
683 memset(num, 0, sizeof(num));
684 for (i = 0; i < num_var_ranges; i++) {
685 type = range_state[i].type;
686 size = range_state[i].size_pfn;
687 if (type >= MTRR_NUM_TYPES)
688 continue;
689 if (!size)
690 type = MTRR_NUM_TYPES;
691 if (type == MTRR_TYPE_WRPROT)
692 type = MTRR_TYPE_UNCACHABLE;
693 num[type]++;
694 }
695
696 /* check if we got UC entries */
697 if (!num[MTRR_TYPE_UNCACHABLE])
698 return 0;
699
700 /* check if we only had WB and UC */
701 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
702 num_var_ranges - num[MTRR_NUM_TYPES])
703 return 0;
704
705 return 1;
706}
707
708static unsigned long __initdata range_sums;
709static void __init mtrr_calc_range_state(u64 chunk_size, u64 gran_size,
710 unsigned long extra_remove_base,
711 unsigned long extra_remove_size,
712 int i)
713{
714 int num_reg;
715 static struct res_range range_new[RANGE_NUM];
716 static int nr_range_new;
717 unsigned long range_sums_new;
718
719 /* convert ranges to var ranges state */
720 num_reg = x86_setup_var_mtrrs(range, nr_range,
721 chunk_size, gran_size);
722
723 /* we got new setting in range_state, check it */
724 memset(range_new, 0, sizeof(range_new));
725 nr_range_new = x86_get_mtrr_mem_range(range_new, 0,
726 extra_remove_base, extra_remove_size);
727 range_sums_new = sum_ranges(range_new, nr_range_new);
728
729 result[i].chunk_sizek = chunk_size >> 10;
730 result[i].gran_sizek = gran_size >> 10;
731 result[i].num_reg = num_reg;
732 if (range_sums < range_sums_new) {
733 result[i].lose_cover_sizek =
734 (range_sums_new - range_sums) << PSHIFT;
735 result[i].bad = 1;
736 } else
737 result[i].lose_cover_sizek =
738 (range_sums - range_sums_new) << PSHIFT;
739
740 /* double check it */
741 if (!result[i].bad && !result[i].lose_cover_sizek) {
742 if (nr_range_new != nr_range ||
743 memcmp(range, range_new, sizeof(range)))
744 result[i].bad = 1;
745 }
746
747 if (!result[i].bad && (range_sums - range_sums_new <
748 min_loss_pfn[num_reg])) {
749 min_loss_pfn[num_reg] =
750 range_sums - range_sums_new;
751 }
752}
753
754static void __init mtrr_print_out_one_result(int i)
755{
756 char gran_factor, chunk_factor, lose_factor;
757 unsigned long gran_base, chunk_base, lose_base;
758
759 gran_base = to_size_factor(result[i].gran_sizek, &gran_factor),
760 chunk_base = to_size_factor(result[i].chunk_sizek, &chunk_factor),
761 lose_base = to_size_factor(result[i].lose_cover_sizek, &lose_factor),
762 printk(KERN_INFO "%sgran_size: %ld%c \tchunk_size: %ld%c \t",
763 result[i].bad ? "*BAD*" : " ",
764 gran_base, gran_factor, chunk_base, chunk_factor);
765 printk(KERN_CONT "num_reg: %d \tlose cover RAM: %s%ld%c\n",
766 result[i].num_reg, result[i].bad ? "-" : "",
767 lose_base, lose_factor);
768}
769
770static int __init mtrr_search_optimal_index(void)
771{
772 int i;
773 int num_reg_good;
774 int index_good;
775
776 if (nr_mtrr_spare_reg >= num_var_ranges)
777 nr_mtrr_spare_reg = num_var_ranges - 1;
778 num_reg_good = -1;
779 for (i = num_var_ranges - nr_mtrr_spare_reg; i > 0; i--) {
780 if (!min_loss_pfn[i])
781 num_reg_good = i;
782 }
783
784 index_good = -1;
785 if (num_reg_good != -1) {
786 for (i = 0; i < NUM_RESULT; i++) {
787 if (!result[i].bad &&
788 result[i].num_reg == num_reg_good &&
789 !result[i].lose_cover_sizek) {
790 index_good = i;
791 break;
792 }
793 }
794 }
795
796 return index_good;
797}
798
799
800int __init mtrr_cleanup(unsigned address_bits)
801{
802 unsigned long extra_remove_base, extra_remove_size;
803 unsigned long base, size, def, dummy;
804 mtrr_type type;
805 u64 chunk_size, gran_size;
806 int index_good;
807 int i;
808
809 if (!is_cpu(INTEL) || enable_mtrr_cleanup < 1)
810 return 0;
811 rdmsr(MTRRdefType_MSR, def, dummy);
812 def &= 0xff;
813 if (def != MTRR_TYPE_UNCACHABLE)
814 return 0;
815
816 /* get it and store it aside */
817 memset(range_state, 0, sizeof(range_state));
818 for (i = 0; i < num_var_ranges; i++) {
819 mtrr_if->get(i, &base, &size, &type);
820 range_state[i].base_pfn = base;
821 range_state[i].size_pfn = size;
822 range_state[i].type = type;
823 }
824
825 /* check if we need handle it and can handle it */
826 if (!mtrr_need_cleanup())
827 return 0;
828
829 /* print original var MTRRs at first, for debugging: */
830 printk(KERN_DEBUG "original variable MTRRs\n");
831 print_out_mtrr_range_state();
832
833 memset(range, 0, sizeof(range));
834 extra_remove_size = 0;
835 extra_remove_base = 1 << (32 - PAGE_SHIFT);
836 if (mtrr_tom2)
837 extra_remove_size =
838 (mtrr_tom2 >> PAGE_SHIFT) - extra_remove_base;
839 nr_range = x86_get_mtrr_mem_range(range, 0, extra_remove_base,
840 extra_remove_size);
841 /*
842 * [0, 1M) should always be coverred by var mtrr with WB
843 * and fixed mtrrs should take effective before var mtrr for it
844 */
845 nr_range = add_range_with_merge(range, nr_range, 0,
846 (1ULL<<(20 - PAGE_SHIFT)) - 1);
847 /* sort the ranges */
848 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
849
850 range_sums = sum_ranges(range, nr_range);
851 printk(KERN_INFO "total RAM coverred: %ldM\n",
852 range_sums >> (20 - PAGE_SHIFT));
853
854 if (mtrr_chunk_size && mtrr_gran_size) {
855 i = 0;
856 mtrr_calc_range_state(mtrr_chunk_size, mtrr_gran_size,
857 extra_remove_base, extra_remove_size, i);
858
859 mtrr_print_out_one_result(i);
860
861 if (!result[i].bad) {
862 set_var_mtrr_all(address_bits);
863 printk(KERN_DEBUG "New variable MTRRs\n");
864 print_out_mtrr_range_state();
865 return 1;
866 }
867 printk(KERN_INFO "invalid mtrr_gran_size or mtrr_chunk_size, "
868 "will find optimal one\n");
869 }
870
871 i = 0;
872 memset(min_loss_pfn, 0xff, sizeof(min_loss_pfn));
873 memset(result, 0, sizeof(result));
874 for (gran_size = (1ULL<<16); gran_size < (1ULL<<32); gran_size <<= 1) {
875
876 for (chunk_size = gran_size; chunk_size < (1ULL<<32);
877 chunk_size <<= 1) {
878
879 if (i >= NUM_RESULT)
880 continue;
881
882 mtrr_calc_range_state(chunk_size, gran_size,
883 extra_remove_base, extra_remove_size, i);
884 if (debug_print) {
885 mtrr_print_out_one_result(i);
886 printk(KERN_INFO "\n");
887 }
888
889 i++;
890 }
891 }
892
893 /* try to find the optimal index */
894 index_good = mtrr_search_optimal_index();
895
896 if (index_good != -1) {
897 printk(KERN_INFO "Found optimal setting for mtrr clean up\n");
898 i = index_good;
899 mtrr_print_out_one_result(i);
900
901 /* convert ranges to var ranges state */
902 chunk_size = result[i].chunk_sizek;
903 chunk_size <<= 10;
904 gran_size = result[i].gran_sizek;
905 gran_size <<= 10;
906 x86_setup_var_mtrrs(range, nr_range, chunk_size, gran_size);
907 set_var_mtrr_all(address_bits);
908 printk(KERN_DEBUG "New variable MTRRs\n");
909 print_out_mtrr_range_state();
910 return 1;
911 } else {
912 /* print out all */
913 for (i = 0; i < NUM_RESULT; i++)
914 mtrr_print_out_one_result(i);
915 }
916
917 printk(KERN_INFO "mtrr_cleanup: can not find optimal value\n");
918 printk(KERN_INFO "please specify mtrr_gran_size/mtrr_chunk_size\n");
919
920 return 0;
921}
922#else
923int __init mtrr_cleanup(unsigned address_bits)
924{
925 return 0;
926}
927#endif
928
929static int disable_mtrr_trim;
930
931static int __init disable_mtrr_trim_setup(char *str)
932{
933 disable_mtrr_trim = 1;
934 return 0;
935}
936early_param("disable_mtrr_trim", disable_mtrr_trim_setup);
937
938/*
939 * Newer AMD K8s and later CPUs have a special magic MSR way to force WB
940 * for memory >4GB. Check for that here.
941 * Note this won't check if the MTRRs < 4GB where the magic bit doesn't
942 * apply to are wrong, but so far we don't know of any such case in the wild.
943 */
944#define Tom2Enabled (1U << 21)
945#define Tom2ForceMemTypeWB (1U << 22)
946
947int __init amd_special_default_mtrr(void)
948{
949 u32 l, h;
950
951 if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
952 return 0;
953 if (boot_cpu_data.x86 < 0xf || boot_cpu_data.x86 > 0x11)
954 return 0;
955 /* In case some hypervisor doesn't pass SYSCFG through */
956 if (rdmsr_safe(MSR_K8_SYSCFG, &l, &h) < 0)
957 return 0;
958 /*
959 * Memory between 4GB and top of mem is forced WB by this magic bit.
960 * Reserved before K8RevF, but should be zero there.
961 */
962 if ((l & (Tom2Enabled | Tom2ForceMemTypeWB)) ==
963 (Tom2Enabled | Tom2ForceMemTypeWB))
964 return 1;
965 return 0;
966}
967
968static u64 __init real_trim_memory(unsigned long start_pfn,
969 unsigned long limit_pfn)
970{
971 u64 trim_start, trim_size;
972 trim_start = start_pfn;
973 trim_start <<= PAGE_SHIFT;
974 trim_size = limit_pfn;
975 trim_size <<= PAGE_SHIFT;
976 trim_size -= trim_start;
977
978 return e820_update_range(trim_start, trim_size, E820_RAM,
979 E820_RESERVED);
980}
981/**
982 * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs
983 * @end_pfn: ending page frame number
984 *
985 * Some buggy BIOSes don't setup the MTRRs properly for systems with certain
986 * memory configurations. This routine checks that the highest MTRR matches
987 * the end of memory, to make sure the MTRRs having a write back type cover
988 * all of the memory the kernel is intending to use. If not, it'll trim any
989 * memory off the end by adjusting end_pfn, removing it from the kernel's
990 * allocation pools, warning the user with an obnoxious message.
991 */
992int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
993{
994 unsigned long i, base, size, highest_pfn = 0, def, dummy;
995 mtrr_type type;
996 u64 total_trim_size;
997
998 /* extra one for all 0 */
999 int num[MTRR_NUM_TYPES + 1];
1000 /*
1001 * Make sure we only trim uncachable memory on machines that
1002 * support the Intel MTRR architecture:
1003 */
1004 if (!is_cpu(INTEL) || disable_mtrr_trim)
1005 return 0;
1006 rdmsr(MTRRdefType_MSR, def, dummy);
1007 def &= 0xff;
1008 if (def != MTRR_TYPE_UNCACHABLE)
1009 return 0;
1010
1011 /* get it and store it aside */
1012 memset(range_state, 0, sizeof(range_state));
1013 for (i = 0; i < num_var_ranges; i++) {
1014 mtrr_if->get(i, &base, &size, &type);
1015 range_state[i].base_pfn = base;
1016 range_state[i].size_pfn = size;
1017 range_state[i].type = type;
1018 }
1019
1020 /* Find highest cached pfn */
1021 for (i = 0; i < num_var_ranges; i++) {
1022 type = range_state[i].type;
1023 if (type != MTRR_TYPE_WRBACK)
1024 continue;
1025 base = range_state[i].base_pfn;
1026 size = range_state[i].size_pfn;
1027 if (highest_pfn < base + size)
1028 highest_pfn = base + size;
1029 }
1030
1031 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
1032 if (!highest_pfn) {
1033 printk(KERN_INFO "CPU MTRRs all blank - virtualized system.\n");
1034 return 0;
1035 }
1036
1037 /* check entries number */
1038 memset(num, 0, sizeof(num));
1039 for (i = 0; i < num_var_ranges; i++) {
1040 type = range_state[i].type;
1041 if (type >= MTRR_NUM_TYPES)
1042 continue;
1043 size = range_state[i].size_pfn;
1044 if (!size)
1045 type = MTRR_NUM_TYPES;
1046 num[type]++;
1047 }
1048
1049 /* no entry for WB? */
1050 if (!num[MTRR_TYPE_WRBACK])
1051 return 0;
1052
1053 /* check if we only had WB and UC */
1054 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
1055 num_var_ranges - num[MTRR_NUM_TYPES])
1056 return 0;
1057
1058 memset(range, 0, sizeof(range));
1059 nr_range = 0;
1060 if (mtrr_tom2) {
1061 range[nr_range].start = (1ULL<<(32 - PAGE_SHIFT));
1062 range[nr_range].end = (mtrr_tom2 >> PAGE_SHIFT) - 1;
1063 if (highest_pfn < range[nr_range].end + 1)
1064 highest_pfn = range[nr_range].end + 1;
1065 nr_range++;
1066 }
1067 nr_range = x86_get_mtrr_mem_range(range, nr_range, 0, 0);
1068
1069 total_trim_size = 0;
1070 /* check the head */
1071 if (range[0].start)
1072 total_trim_size += real_trim_memory(0, range[0].start);
1073 /* check the holes */
1074 for (i = 0; i < nr_range - 1; i++) {
1075 if (range[i].end + 1 < range[i+1].start)
1076 total_trim_size += real_trim_memory(range[i].end + 1,
1077 range[i+1].start);
1078 }
1079 /* check the top */
1080 i = nr_range - 1;
1081 if (range[i].end + 1 < end_pfn)
1082 total_trim_size += real_trim_memory(range[i].end + 1,
1083 end_pfn);
1084
1085 if (total_trim_size) {
1086 printk(KERN_WARNING "WARNING: BIOS bug: CPU MTRRs don't cover"
1087 " all of memory, losing %lluMB of RAM.\n",
1088 total_trim_size >> 20);
1089
1090 if (!changed_by_mtrr_cleanup)
1091 WARN_ON(1);
1092
1093 printk(KERN_INFO "update e820 for mtrr\n");
1094 update_e820();
1095
1096 return 1;
1097 }
1098
1099 return 0;
1100}
1101
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 0c0a455fe95c..37f28fc7cf95 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -33,13 +33,31 @@ u64 mtrr_tom2;
33struct mtrr_state_type mtrr_state = {}; 33struct mtrr_state_type mtrr_state = {};
34EXPORT_SYMBOL_GPL(mtrr_state); 34EXPORT_SYMBOL_GPL(mtrr_state);
35 35
36static int __initdata mtrr_show; 36/**
37static int __init mtrr_debug(char *opt) 37 * BIOS is expected to clear MtrrFixDramModEn bit, see for example
38 * "BIOS and Kernel Developer's Guide for the AMD Athlon 64 and AMD
39 * Opteron Processors" (26094 Rev. 3.30 February 2006), section
40 * "13.2.1.2 SYSCFG Register": "The MtrrFixDramModEn bit should be set
41 * to 1 during BIOS initalization of the fixed MTRRs, then cleared to
42 * 0 for operation."
43 */
44static inline void k8_check_syscfg_dram_mod_en(void)
38{ 45{
39 mtrr_show = 1; 46 u32 lo, hi;
40 return 0; 47
48 if (!((boot_cpu_data.x86_vendor == X86_VENDOR_AMD) &&
49 (boot_cpu_data.x86 >= 0x0f)))
50 return;
51
52 rdmsr(MSR_K8_SYSCFG, lo, hi);
53 if (lo & K8_MTRRFIXRANGE_DRAM_MODIFY) {
54 printk(KERN_ERR FW_WARN "MTRR: CPU %u: SYSCFG[MtrrFixDramModEn]"
55 " not cleared by BIOS, clearing this bit\n",
56 smp_processor_id());
57 lo &= ~K8_MTRRFIXRANGE_DRAM_MODIFY;
58 mtrr_wrmsr(MSR_K8_SYSCFG, lo, hi);
59 }
41} 60}
42early_param("mtrr.show", mtrr_debug);
43 61
44/* 62/*
45 * Returns the effective MTRR type for the region 63 * Returns the effective MTRR type for the region
@@ -174,6 +192,8 @@ get_fixed_ranges(mtrr_type * frs)
174 unsigned int *p = (unsigned int *) frs; 192 unsigned int *p = (unsigned int *) frs;
175 int i; 193 int i;
176 194
195 k8_check_syscfg_dram_mod_en();
196
177 rdmsr(MTRRfix64K_00000_MSR, p[0], p[1]); 197 rdmsr(MTRRfix64K_00000_MSR, p[0], p[1]);
178 198
179 for (i = 0; i < 2; i++) 199 for (i = 0; i < 2; i++)
@@ -188,18 +208,94 @@ void mtrr_save_fixed_ranges(void *info)
188 get_fixed_ranges(mtrr_state.fixed_ranges); 208 get_fixed_ranges(mtrr_state.fixed_ranges);
189} 209}
190 210
191static void print_fixed(unsigned base, unsigned step, const mtrr_type*types) 211static unsigned __initdata last_fixed_start;
212static unsigned __initdata last_fixed_end;
213static mtrr_type __initdata last_fixed_type;
214
215static void __init print_fixed_last(void)
216{
217 if (!last_fixed_end)
218 return;
219
220 printk(KERN_DEBUG " %05X-%05X %s\n", last_fixed_start,
221 last_fixed_end - 1, mtrr_attrib_to_str(last_fixed_type));
222
223 last_fixed_end = 0;
224}
225
226static void __init update_fixed_last(unsigned base, unsigned end,
227 mtrr_type type)
228{
229 last_fixed_start = base;
230 last_fixed_end = end;
231 last_fixed_type = type;
232}
233
234static void __init print_fixed(unsigned base, unsigned step,
235 const mtrr_type *types)
192{ 236{
193 unsigned i; 237 unsigned i;
194 238
195 for (i = 0; i < 8; ++i, ++types, base += step) 239 for (i = 0; i < 8; ++i, ++types, base += step) {
196 printk(KERN_INFO "MTRR %05X-%05X %s\n", 240 if (last_fixed_end == 0) {
197 base, base + step - 1, mtrr_attrib_to_str(*types)); 241 update_fixed_last(base, base + step, *types);
242 continue;
243 }
244 if (last_fixed_end == base && last_fixed_type == *types) {
245 last_fixed_end = base + step;
246 continue;
247 }
248 /* new segments: gap or different type */
249 print_fixed_last();
250 update_fixed_last(base, base + step, *types);
251 }
198} 252}
199 253
200static void prepare_set(void); 254static void prepare_set(void);
201static void post_set(void); 255static void post_set(void);
202 256
257static void __init print_mtrr_state(void)
258{
259 unsigned int i;
260 int high_width;
261
262 printk(KERN_DEBUG "MTRR default type: %s\n",
263 mtrr_attrib_to_str(mtrr_state.def_type));
264 if (mtrr_state.have_fixed) {
265 printk(KERN_DEBUG "MTRR fixed ranges %sabled:\n",
266 mtrr_state.enabled & 1 ? "en" : "dis");
267 print_fixed(0x00000, 0x10000, mtrr_state.fixed_ranges + 0);
268 for (i = 0; i < 2; ++i)
269 print_fixed(0x80000 + i * 0x20000, 0x04000, mtrr_state.fixed_ranges + (i + 1) * 8);
270 for (i = 0; i < 8; ++i)
271 print_fixed(0xC0000 + i * 0x08000, 0x01000, mtrr_state.fixed_ranges + (i + 3) * 8);
272
273 /* tail */
274 print_fixed_last();
275 }
276 printk(KERN_DEBUG "MTRR variable ranges %sabled:\n",
277 mtrr_state.enabled & 2 ? "en" : "dis");
278 high_width = ((size_or_mask ? ffs(size_or_mask) - 1 : 32) - (32 - PAGE_SHIFT) + 3) / 4;
279 for (i = 0; i < num_var_ranges; ++i) {
280 if (mtrr_state.var_ranges[i].mask_lo & (1 << 11))
281 printk(KERN_DEBUG " %u base %0*X%05X000 mask %0*X%05X000 %s\n",
282 i,
283 high_width,
284 mtrr_state.var_ranges[i].base_hi,
285 mtrr_state.var_ranges[i].base_lo >> 12,
286 high_width,
287 mtrr_state.var_ranges[i].mask_hi,
288 mtrr_state.var_ranges[i].mask_lo >> 12,
289 mtrr_attrib_to_str(mtrr_state.var_ranges[i].base_lo & 0xff));
290 else
291 printk(KERN_DEBUG " %u disabled\n", i);
292 }
293 if (mtrr_tom2) {
294 printk(KERN_DEBUG "TOM2: %016llx aka %lldM\n",
295 mtrr_tom2, mtrr_tom2>>20);
296 }
297}
298
203/* Grab all of the MTRR state for this CPU into *state */ 299/* Grab all of the MTRR state for this CPU into *state */
204void __init get_mtrr_state(void) 300void __init get_mtrr_state(void)
205{ 301{
@@ -231,41 +327,9 @@ void __init get_mtrr_state(void)
231 mtrr_tom2 |= low; 327 mtrr_tom2 |= low;
232 mtrr_tom2 &= 0xffffff800000ULL; 328 mtrr_tom2 &= 0xffffff800000ULL;
233 } 329 }
234 if (mtrr_show) { 330
235 int high_width; 331 print_mtrr_state();
236 332
237 printk(KERN_INFO "MTRR default type: %s\n", mtrr_attrib_to_str(mtrr_state.def_type));
238 if (mtrr_state.have_fixed) {
239 printk(KERN_INFO "MTRR fixed ranges %sabled:\n",
240 mtrr_state.enabled & 1 ? "en" : "dis");
241 print_fixed(0x00000, 0x10000, mtrr_state.fixed_ranges + 0);
242 for (i = 0; i < 2; ++i)
243 print_fixed(0x80000 + i * 0x20000, 0x04000, mtrr_state.fixed_ranges + (i + 1) * 8);
244 for (i = 0; i < 8; ++i)
245 print_fixed(0xC0000 + i * 0x08000, 0x01000, mtrr_state.fixed_ranges + (i + 3) * 8);
246 }
247 printk(KERN_INFO "MTRR variable ranges %sabled:\n",
248 mtrr_state.enabled & 2 ? "en" : "dis");
249 high_width = ((size_or_mask ? ffs(size_or_mask) - 1 : 32) - (32 - PAGE_SHIFT) + 3) / 4;
250 for (i = 0; i < num_var_ranges; ++i) {
251 if (mtrr_state.var_ranges[i].mask_lo & (1 << 11))
252 printk(KERN_INFO "MTRR %u base %0*X%05X000 mask %0*X%05X000 %s\n",
253 i,
254 high_width,
255 mtrr_state.var_ranges[i].base_hi,
256 mtrr_state.var_ranges[i].base_lo >> 12,
257 high_width,
258 mtrr_state.var_ranges[i].mask_hi,
259 mtrr_state.var_ranges[i].mask_lo >> 12,
260 mtrr_attrib_to_str(mtrr_state.var_ranges[i].base_lo & 0xff));
261 else
262 printk(KERN_INFO "MTRR %u disabled\n", i);
263 }
264 if (mtrr_tom2) {
265 printk(KERN_INFO "TOM2: %016llx aka %lldM\n",
266 mtrr_tom2, mtrr_tom2>>20);
267 }
268 }
269 mtrr_state_set = 1; 333 mtrr_state_set = 1;
270 334
271 /* PAT setup for BP. We need to go through sync steps here */ 335 /* PAT setup for BP. We need to go through sync steps here */
@@ -308,27 +372,10 @@ void mtrr_wrmsr(unsigned msr, unsigned a, unsigned b)
308} 372}
309 373
310/** 374/**
311 * Enable and allow read/write of extended fixed-range MTRR bits on K8 CPUs
312 * see AMD publication no. 24593, chapter 3.2.1 for more information
313 */
314static inline void k8_enable_fixed_iorrs(void)
315{
316 unsigned lo, hi;
317
318 rdmsr(MSR_K8_SYSCFG, lo, hi);
319 mtrr_wrmsr(MSR_K8_SYSCFG, lo
320 | K8_MTRRFIXRANGE_DRAM_ENABLE
321 | K8_MTRRFIXRANGE_DRAM_MODIFY, hi);
322}
323
324/**
325 * set_fixed_range - checks & updates a fixed-range MTRR if it differs from the value it should have 375 * set_fixed_range - checks & updates a fixed-range MTRR if it differs from the value it should have
326 * @msr: MSR address of the MTTR which should be checked and updated 376 * @msr: MSR address of the MTTR which should be checked and updated
327 * @changed: pointer which indicates whether the MTRR needed to be changed 377 * @changed: pointer which indicates whether the MTRR needed to be changed
328 * @msrwords: pointer to the MSR values which the MSR should have 378 * @msrwords: pointer to the MSR values which the MSR should have
329 *
330 * If K8 extentions are wanted, update the K8 SYSCFG MSR also.
331 * See AMD publication no. 24593, chapter 7.8.1, page 233 for more information.
332 */ 379 */
333static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords) 380static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
334{ 381{
@@ -337,10 +384,6 @@ static void set_fixed_range(int msr, bool *changed, unsigned int *msrwords)
337 rdmsr(msr, lo, hi); 384 rdmsr(msr, lo, hi);
338 385
339 if (lo != msrwords[0] || hi != msrwords[1]) { 386 if (lo != msrwords[0] || hi != msrwords[1]) {
340 if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
341 (boot_cpu_data.x86 >= 0x0f && boot_cpu_data.x86 <= 0x11) &&
342 ((msrwords[0] | msrwords[1]) & K8_MTRR_RDMEM_WRMEM_MASK))
343 k8_enable_fixed_iorrs();
344 mtrr_wrmsr(msr, msrwords[0], msrwords[1]); 387 mtrr_wrmsr(msr, msrwords[0], msrwords[1]);
345 *changed = true; 388 *changed = true;
346 } 389 }
@@ -376,22 +419,31 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
376{ 419{
377 unsigned int mask_lo, mask_hi, base_lo, base_hi; 420 unsigned int mask_lo, mask_hi, base_lo, base_hi;
378 unsigned int tmp, hi; 421 unsigned int tmp, hi;
422 int cpu;
423
424 /*
425 * get_mtrr doesn't need to update mtrr_state, also it could be called
426 * from any cpu, so try to print it out directly.
427 */
428 cpu = get_cpu();
379 429
380 rdmsr(MTRRphysMask_MSR(reg), mask_lo, mask_hi); 430 rdmsr(MTRRphysMask_MSR(reg), mask_lo, mask_hi);
431
381 if ((mask_lo & 0x800) == 0) { 432 if ((mask_lo & 0x800) == 0) {
382 /* Invalid (i.e. free) range */ 433 /* Invalid (i.e. free) range */
383 *base = 0; 434 *base = 0;
384 *size = 0; 435 *size = 0;
385 *type = 0; 436 *type = 0;
386 return; 437 goto out_put_cpu;
387 } 438 }
388 439
389 rdmsr(MTRRphysBase_MSR(reg), base_lo, base_hi); 440 rdmsr(MTRRphysBase_MSR(reg), base_lo, base_hi);
390 441
391 /* Work out the shifted address mask. */ 442 /* Work out the shifted address mask: */
392 tmp = mask_hi << (32 - PAGE_SHIFT) | mask_lo >> PAGE_SHIFT; 443 tmp = mask_hi << (32 - PAGE_SHIFT) | mask_lo >> PAGE_SHIFT;
393 mask_lo = size_or_mask | tmp; 444 mask_lo = size_or_mask | tmp;
394 /* Expand tmp with high bits to all 1s*/ 445
446 /* Expand tmp with high bits to all 1s: */
395 hi = fls(tmp); 447 hi = fls(tmp);
396 if (hi > 0) { 448 if (hi > 0) {
397 tmp |= ~((1<<(hi - 1)) - 1); 449 tmp |= ~((1<<(hi - 1)) - 1);
@@ -402,11 +454,19 @@ static void generic_get_mtrr(unsigned int reg, unsigned long *base,
402 } 454 }
403 } 455 }
404 456
405 /* This works correctly if size is a power of two, i.e. a 457 /*
406 contiguous range. */ 458 * This works correctly if size is a power of two, i.e. a
459 * contiguous range:
460 */
407 *size = -mask_lo; 461 *size = -mask_lo;
408 *base = base_hi << (32 - PAGE_SHIFT) | base_lo >> PAGE_SHIFT; 462 *base = base_hi << (32 - PAGE_SHIFT) | base_lo >> PAGE_SHIFT;
409 *type = base_lo & 0xff; 463 *type = base_lo & 0xff;
464
465 printk(KERN_DEBUG " get_mtrr: cpu%d reg%02d base=%010lx size=%010lx %s\n",
466 cpu, reg, *base, *size,
467 mtrr_attrib_to_str(*type & 0xff));
468out_put_cpu:
469 put_cpu();
410} 470}
411 471
412/** 472/**
@@ -419,6 +479,8 @@ static int set_fixed_ranges(mtrr_type * frs)
419 bool changed = false; 479 bool changed = false;
420 int block=-1, range; 480 int block=-1, range;
421 481
482 k8_check_syscfg_dram_mod_en();
483
422 while (fixed_range_blocks[++block].ranges) 484 while (fixed_range_blocks[++block].ranges)
423 for (range=0; range < fixed_range_blocks[block].ranges; range++) 485 for (range=0; range < fixed_range_blocks[block].ranges; range++)
424 set_fixed_range(fixed_range_blocks[block].base_msr + range, 486 set_fixed_range(fixed_range_blocks[block].base_msr + range,
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index 236a401b8259..03cda01f57c7 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -574,7 +574,7 @@ struct mtrr_value {
574 unsigned long lsize; 574 unsigned long lsize;
575}; 575};
576 576
577static struct mtrr_value mtrr_state[MTRR_MAX_VAR_RANGES]; 577static struct mtrr_value mtrr_value[MTRR_MAX_VAR_RANGES];
578 578
579static int mtrr_save(struct sys_device * sysdev, pm_message_t state) 579static int mtrr_save(struct sys_device * sysdev, pm_message_t state)
580{ 580{
@@ -582,9 +582,9 @@ static int mtrr_save(struct sys_device * sysdev, pm_message_t state)
582 582
583 for (i = 0; i < num_var_ranges; i++) { 583 for (i = 0; i < num_var_ranges; i++) {
584 mtrr_if->get(i, 584 mtrr_if->get(i,
585 &mtrr_state[i].lbase, 585 &mtrr_value[i].lbase,
586 &mtrr_state[i].lsize, 586 &mtrr_value[i].lsize,
587 &mtrr_state[i].ltype); 587 &mtrr_value[i].ltype);
588 } 588 }
589 return 0; 589 return 0;
590} 590}
@@ -594,11 +594,11 @@ static int mtrr_restore(struct sys_device * sysdev)
594 int i; 594 int i;
595 595
596 for (i = 0; i < num_var_ranges; i++) { 596 for (i = 0; i < num_var_ranges; i++) {
597 if (mtrr_state[i].lsize) 597 if (mtrr_value[i].lsize)
598 set_mtrr(i, 598 set_mtrr(i,
599 mtrr_state[i].lbase, 599 mtrr_value[i].lbase,
600 mtrr_state[i].lsize, 600 mtrr_value[i].lsize,
601 mtrr_state[i].ltype); 601 mtrr_value[i].ltype);
602 } 602 }
603 return 0; 603 return 0;
604} 604}
@@ -610,1058 +610,7 @@ static struct sysdev_driver mtrr_sysdev_driver = {
610 .resume = mtrr_restore, 610 .resume = mtrr_restore,
611}; 611};
612 612
613/* should be related to MTRR_VAR_RANGES nums */ 613int __initdata changed_by_mtrr_cleanup;
614#define RANGE_NUM 256
615
616struct res_range {
617 unsigned long start;
618 unsigned long end;
619};
620
621static int __init
622add_range(struct res_range *range, int nr_range, unsigned long start,
623 unsigned long end)
624{
625 /* out of slots */
626 if (nr_range >= RANGE_NUM)
627 return nr_range;
628
629 range[nr_range].start = start;
630 range[nr_range].end = end;
631
632 nr_range++;
633
634 return nr_range;
635}
636
637static int __init
638add_range_with_merge(struct res_range *range, int nr_range, unsigned long start,
639 unsigned long end)
640{
641 int i;
642
643 /* try to merge it with old one */
644 for (i = 0; i < nr_range; i++) {
645 unsigned long final_start, final_end;
646 unsigned long common_start, common_end;
647
648 if (!range[i].end)
649 continue;
650
651 common_start = max(range[i].start, start);
652 common_end = min(range[i].end, end);
653 if (common_start > common_end + 1)
654 continue;
655
656 final_start = min(range[i].start, start);
657 final_end = max(range[i].end, end);
658
659 range[i].start = final_start;
660 range[i].end = final_end;
661 return nr_range;
662 }
663
664 /* need to add that */
665 return add_range(range, nr_range, start, end);
666}
667
668static void __init
669subtract_range(struct res_range *range, unsigned long start, unsigned long end)
670{
671 int i, j;
672
673 for (j = 0; j < RANGE_NUM; j++) {
674 if (!range[j].end)
675 continue;
676
677 if (start <= range[j].start && end >= range[j].end) {
678 range[j].start = 0;
679 range[j].end = 0;
680 continue;
681 }
682
683 if (start <= range[j].start && end < range[j].end &&
684 range[j].start < end + 1) {
685 range[j].start = end + 1;
686 continue;
687 }
688
689
690 if (start > range[j].start && end >= range[j].end &&
691 range[j].end > start - 1) {
692 range[j].end = start - 1;
693 continue;
694 }
695
696 if (start > range[j].start && end < range[j].end) {
697 /* find the new spare */
698 for (i = 0; i < RANGE_NUM; i++) {
699 if (range[i].end == 0)
700 break;
701 }
702 if (i < RANGE_NUM) {
703 range[i].end = range[j].end;
704 range[i].start = end + 1;
705 } else {
706 printk(KERN_ERR "run of slot in ranges\n");
707 }
708 range[j].end = start - 1;
709 continue;
710 }
711 }
712}
713
714static int __init cmp_range(const void *x1, const void *x2)
715{
716 const struct res_range *r1 = x1;
717 const struct res_range *r2 = x2;
718 long start1, start2;
719
720 start1 = r1->start;
721 start2 = r2->start;
722
723 return start1 - start2;
724}
725
726struct var_mtrr_range_state {
727 unsigned long base_pfn;
728 unsigned long size_pfn;
729 mtrr_type type;
730};
731
732static struct var_mtrr_range_state __initdata range_state[RANGE_NUM];
733static int __initdata debug_print;
734
735static int __init
736x86_get_mtrr_mem_range(struct res_range *range, int nr_range,
737 unsigned long extra_remove_base,
738 unsigned long extra_remove_size)
739{
740 unsigned long i, base, size;
741 mtrr_type type;
742
743 for (i = 0; i < num_var_ranges; i++) {
744 type = range_state[i].type;
745 if (type != MTRR_TYPE_WRBACK)
746 continue;
747 base = range_state[i].base_pfn;
748 size = range_state[i].size_pfn;
749 nr_range = add_range_with_merge(range, nr_range, base,
750 base + size - 1);
751 }
752 if (debug_print) {
753 printk(KERN_DEBUG "After WB checking\n");
754 for (i = 0; i < nr_range; i++)
755 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
756 range[i].start, range[i].end + 1);
757 }
758
759 /* take out UC ranges */
760 for (i = 0; i < num_var_ranges; i++) {
761 type = range_state[i].type;
762 if (type != MTRR_TYPE_UNCACHABLE &&
763 type != MTRR_TYPE_WRPROT)
764 continue;
765 size = range_state[i].size_pfn;
766 if (!size)
767 continue;
768 base = range_state[i].base_pfn;
769 subtract_range(range, base, base + size - 1);
770 }
771 if (extra_remove_size)
772 subtract_range(range, extra_remove_base,
773 extra_remove_base + extra_remove_size - 1);
774
775 /* get new range num */
776 nr_range = 0;
777 for (i = 0; i < RANGE_NUM; i++) {
778 if (!range[i].end)
779 continue;
780 nr_range++;
781 }
782 if (debug_print) {
783 printk(KERN_DEBUG "After UC checking\n");
784 for (i = 0; i < nr_range; i++)
785 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
786 range[i].start, range[i].end + 1);
787 }
788
789 /* sort the ranges */
790 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
791 if (debug_print) {
792 printk(KERN_DEBUG "After sorting\n");
793 for (i = 0; i < nr_range; i++)
794 printk(KERN_DEBUG "MTRR MAP PFN: %016lx - %016lx\n",
795 range[i].start, range[i].end + 1);
796 }
797
798 /* clear those is not used */
799 for (i = nr_range; i < RANGE_NUM; i++)
800 memset(&range[i], 0, sizeof(range[i]));
801
802 return nr_range;
803}
804
805static struct res_range __initdata range[RANGE_NUM];
806static int __initdata nr_range;
807
808#ifdef CONFIG_MTRR_SANITIZER
809
810static unsigned long __init sum_ranges(struct res_range *range, int nr_range)
811{
812 unsigned long sum;
813 int i;
814
815 sum = 0;
816 for (i = 0; i < nr_range; i++)
817 sum += range[i].end + 1 - range[i].start;
818
819 return sum;
820}
821
822static int enable_mtrr_cleanup __initdata =
823 CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT;
824
825static int __init disable_mtrr_cleanup_setup(char *str)
826{
827 enable_mtrr_cleanup = 0;
828 return 0;
829}
830early_param("disable_mtrr_cleanup", disable_mtrr_cleanup_setup);
831
832static int __init enable_mtrr_cleanup_setup(char *str)
833{
834 enable_mtrr_cleanup = 1;
835 return 0;
836}
837early_param("enable_mtrr_cleanup", enable_mtrr_cleanup_setup);
838
839static int __init mtrr_cleanup_debug_setup(char *str)
840{
841 debug_print = 1;
842 return 0;
843}
844early_param("mtrr_cleanup_debug", mtrr_cleanup_debug_setup);
845
846struct var_mtrr_state {
847 unsigned long range_startk;
848 unsigned long range_sizek;
849 unsigned long chunk_sizek;
850 unsigned long gran_sizek;
851 unsigned int reg;
852};
853
854static void __init
855set_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
856 unsigned char type, unsigned int address_bits)
857{
858 u32 base_lo, base_hi, mask_lo, mask_hi;
859 u64 base, mask;
860
861 if (!sizek) {
862 fill_mtrr_var_range(reg, 0, 0, 0, 0);
863 return;
864 }
865
866 mask = (1ULL << address_bits) - 1;
867 mask &= ~((((u64)sizek) << 10) - 1);
868
869 base = ((u64)basek) << 10;
870
871 base |= type;
872 mask |= 0x800;
873
874 base_lo = base & ((1ULL<<32) - 1);
875 base_hi = base >> 32;
876
877 mask_lo = mask & ((1ULL<<32) - 1);
878 mask_hi = mask >> 32;
879
880 fill_mtrr_var_range(reg, base_lo, base_hi, mask_lo, mask_hi);
881}
882
883static void __init
884save_var_mtrr(unsigned int reg, unsigned long basek, unsigned long sizek,
885 unsigned char type)
886{
887 range_state[reg].base_pfn = basek >> (PAGE_SHIFT - 10);
888 range_state[reg].size_pfn = sizek >> (PAGE_SHIFT - 10);
889 range_state[reg].type = type;
890}
891
892static void __init
893set_var_mtrr_all(unsigned int address_bits)
894{
895 unsigned long basek, sizek;
896 unsigned char type;
897 unsigned int reg;
898
899 for (reg = 0; reg < num_var_ranges; reg++) {
900 basek = range_state[reg].base_pfn << (PAGE_SHIFT - 10);
901 sizek = range_state[reg].size_pfn << (PAGE_SHIFT - 10);
902 type = range_state[reg].type;
903
904 set_var_mtrr(reg, basek, sizek, type, address_bits);
905 }
906}
907
908static unsigned long to_size_factor(unsigned long sizek, char *factorp)
909{
910 char factor;
911 unsigned long base = sizek;
912
913 if (base & ((1<<10) - 1)) {
914 /* not MB alignment */
915 factor = 'K';
916 } else if (base & ((1<<20) - 1)){
917 factor = 'M';
918 base >>= 10;
919 } else {
920 factor = 'G';
921 base >>= 20;
922 }
923
924 *factorp = factor;
925
926 return base;
927}
928
929static unsigned int __init
930range_to_mtrr(unsigned int reg, unsigned long range_startk,
931 unsigned long range_sizek, unsigned char type)
932{
933 if (!range_sizek || (reg >= num_var_ranges))
934 return reg;
935
936 while (range_sizek) {
937 unsigned long max_align, align;
938 unsigned long sizek;
939
940 /* Compute the maximum size I can make a range */
941 if (range_startk)
942 max_align = ffs(range_startk) - 1;
943 else
944 max_align = 32;
945 align = fls(range_sizek) - 1;
946 if (align > max_align)
947 align = max_align;
948
949 sizek = 1 << align;
950 if (debug_print) {
951 char start_factor = 'K', size_factor = 'K';
952 unsigned long start_base, size_base;
953
954 start_base = to_size_factor(range_startk, &start_factor),
955 size_base = to_size_factor(sizek, &size_factor),
956
957 printk(KERN_DEBUG "Setting variable MTRR %d, "
958 "base: %ld%cB, range: %ld%cB, type %s\n",
959 reg, start_base, start_factor,
960 size_base, size_factor,
961 (type == MTRR_TYPE_UNCACHABLE)?"UC":
962 ((type == MTRR_TYPE_WRBACK)?"WB":"Other")
963 );
964 }
965 save_var_mtrr(reg++, range_startk, sizek, type);
966 range_startk += sizek;
967 range_sizek -= sizek;
968 if (reg >= num_var_ranges)
969 break;
970 }
971 return reg;
972}
973
974static unsigned __init
975range_to_mtrr_with_hole(struct var_mtrr_state *state, unsigned long basek,
976 unsigned long sizek)
977{
978 unsigned long hole_basek, hole_sizek;
979 unsigned long second_basek, second_sizek;
980 unsigned long range0_basek, range0_sizek;
981 unsigned long range_basek, range_sizek;
982 unsigned long chunk_sizek;
983 unsigned long gran_sizek;
984
985 hole_basek = 0;
986 hole_sizek = 0;
987 second_basek = 0;
988 second_sizek = 0;
989 chunk_sizek = state->chunk_sizek;
990 gran_sizek = state->gran_sizek;
991
992 /* align with gran size, prevent small block used up MTRRs */
993 range_basek = ALIGN(state->range_startk, gran_sizek);
994 if ((range_basek > basek) && basek)
995 return second_sizek;
996 state->range_sizek -= (range_basek - state->range_startk);
997 range_sizek = ALIGN(state->range_sizek, gran_sizek);
998
999 while (range_sizek > state->range_sizek) {
1000 range_sizek -= gran_sizek;
1001 if (!range_sizek)
1002 return 0;
1003 }
1004 state->range_sizek = range_sizek;
1005
1006 /* try to append some small hole */
1007 range0_basek = state->range_startk;
1008 range0_sizek = ALIGN(state->range_sizek, chunk_sizek);
1009
1010 /* no increase */
1011 if (range0_sizek == state->range_sizek) {
1012 if (debug_print)
1013 printk(KERN_DEBUG "rangeX: %016lx - %016lx\n",
1014 range0_basek<<10,
1015 (range0_basek + state->range_sizek)<<10);
1016 state->reg = range_to_mtrr(state->reg, range0_basek,
1017 state->range_sizek, MTRR_TYPE_WRBACK);
1018 return 0;
1019 }
1020
1021 /* only cut back, when it is not the last */
1022 if (sizek) {
1023 while (range0_basek + range0_sizek > (basek + sizek)) {
1024 if (range0_sizek >= chunk_sizek)
1025 range0_sizek -= chunk_sizek;
1026 else
1027 range0_sizek = 0;
1028
1029 if (!range0_sizek)
1030 break;
1031 }
1032 }
1033
1034second_try:
1035 range_basek = range0_basek + range0_sizek;
1036
1037 /* one hole in the middle */
1038 if (range_basek > basek && range_basek <= (basek + sizek))
1039 second_sizek = range_basek - basek;
1040
1041 if (range0_sizek > state->range_sizek) {
1042
1043 /* one hole in middle or at end */
1044 hole_sizek = range0_sizek - state->range_sizek - second_sizek;
1045
1046 /* hole size should be less than half of range0 size */
1047 if (hole_sizek >= (range0_sizek >> 1) &&
1048 range0_sizek >= chunk_sizek) {
1049 range0_sizek -= chunk_sizek;
1050 second_sizek = 0;
1051 hole_sizek = 0;
1052
1053 goto second_try;
1054 }
1055 }
1056
1057 if (range0_sizek) {
1058 if (debug_print)
1059 printk(KERN_DEBUG "range0: %016lx - %016lx\n",
1060 range0_basek<<10,
1061 (range0_basek + range0_sizek)<<10);
1062 state->reg = range_to_mtrr(state->reg, range0_basek,
1063 range0_sizek, MTRR_TYPE_WRBACK);
1064 }
1065
1066 if (range0_sizek < state->range_sizek) {
1067 /* need to handle left over */
1068 range_sizek = state->range_sizek - range0_sizek;
1069
1070 if (debug_print)
1071 printk(KERN_DEBUG "range: %016lx - %016lx\n",
1072 range_basek<<10,
1073 (range_basek + range_sizek)<<10);
1074 state->reg = range_to_mtrr(state->reg, range_basek,
1075 range_sizek, MTRR_TYPE_WRBACK);
1076 }
1077
1078 if (hole_sizek) {
1079 hole_basek = range_basek - hole_sizek - second_sizek;
1080 if (debug_print)
1081 printk(KERN_DEBUG "hole: %016lx - %016lx\n",
1082 hole_basek<<10,
1083 (hole_basek + hole_sizek)<<10);
1084 state->reg = range_to_mtrr(state->reg, hole_basek,
1085 hole_sizek, MTRR_TYPE_UNCACHABLE);
1086 }
1087
1088 return second_sizek;
1089}
1090
1091static void __init
1092set_var_mtrr_range(struct var_mtrr_state *state, unsigned long base_pfn,
1093 unsigned long size_pfn)
1094{
1095 unsigned long basek, sizek;
1096 unsigned long second_sizek = 0;
1097
1098 if (state->reg >= num_var_ranges)
1099 return;
1100
1101 basek = base_pfn << (PAGE_SHIFT - 10);
1102 sizek = size_pfn << (PAGE_SHIFT - 10);
1103
1104 /* See if I can merge with the last range */
1105 if ((basek <= 1024) ||
1106 (state->range_startk + state->range_sizek == basek)) {
1107 unsigned long endk = basek + sizek;
1108 state->range_sizek = endk - state->range_startk;
1109 return;
1110 }
1111 /* Write the range mtrrs */
1112 if (state->range_sizek != 0)
1113 second_sizek = range_to_mtrr_with_hole(state, basek, sizek);
1114
1115 /* Allocate an msr */
1116 state->range_startk = basek + second_sizek;
1117 state->range_sizek = sizek - second_sizek;
1118}
1119
1120/* mininum size of mtrr block that can take hole */
1121static u64 mtrr_chunk_size __initdata = (256ULL<<20);
1122
1123static int __init parse_mtrr_chunk_size_opt(char *p)
1124{
1125 if (!p)
1126 return -EINVAL;
1127 mtrr_chunk_size = memparse(p, &p);
1128 return 0;
1129}
1130early_param("mtrr_chunk_size", parse_mtrr_chunk_size_opt);
1131
1132/* granity of mtrr of block */
1133static u64 mtrr_gran_size __initdata;
1134
1135static int __init parse_mtrr_gran_size_opt(char *p)
1136{
1137 if (!p)
1138 return -EINVAL;
1139 mtrr_gran_size = memparse(p, &p);
1140 return 0;
1141}
1142early_param("mtrr_gran_size", parse_mtrr_gran_size_opt);
1143
1144static int nr_mtrr_spare_reg __initdata =
1145 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT;
1146
1147static int __init parse_mtrr_spare_reg(char *arg)
1148{
1149 if (arg)
1150 nr_mtrr_spare_reg = simple_strtoul(arg, NULL, 0);
1151 return 0;
1152}
1153
1154early_param("mtrr_spare_reg_nr", parse_mtrr_spare_reg);
1155
1156static int __init
1157x86_setup_var_mtrrs(struct res_range *range, int nr_range,
1158 u64 chunk_size, u64 gran_size)
1159{
1160 struct var_mtrr_state var_state;
1161 int i;
1162 int num_reg;
1163
1164 var_state.range_startk = 0;
1165 var_state.range_sizek = 0;
1166 var_state.reg = 0;
1167 var_state.chunk_sizek = chunk_size >> 10;
1168 var_state.gran_sizek = gran_size >> 10;
1169
1170 memset(range_state, 0, sizeof(range_state));
1171
1172 /* Write the range etc */
1173 for (i = 0; i < nr_range; i++)
1174 set_var_mtrr_range(&var_state, range[i].start,
1175 range[i].end - range[i].start + 1);
1176
1177 /* Write the last range */
1178 if (var_state.range_sizek != 0)
1179 range_to_mtrr_with_hole(&var_state, 0, 0);
1180
1181 num_reg = var_state.reg;
1182 /* Clear out the extra MTRR's */
1183 while (var_state.reg < num_var_ranges) {
1184 save_var_mtrr(var_state.reg, 0, 0, 0);
1185 var_state.reg++;
1186 }
1187
1188 return num_reg;
1189}
1190
1191struct mtrr_cleanup_result {
1192 unsigned long gran_sizek;
1193 unsigned long chunk_sizek;
1194 unsigned long lose_cover_sizek;
1195 unsigned int num_reg;
1196 int bad;
1197};
1198
1199/*
1200 * gran_size: 64K, 128K, 256K, 512K, 1M, 2M, ..., 2G
1201 * chunk size: gran_size, ..., 2G
1202 * so we need (1+16)*8
1203 */
1204#define NUM_RESULT 136
1205#define PSHIFT (PAGE_SHIFT - 10)
1206
1207static struct mtrr_cleanup_result __initdata result[NUM_RESULT];
1208static unsigned long __initdata min_loss_pfn[RANGE_NUM];
1209
1210static void __init print_out_mtrr_range_state(void)
1211{
1212 int i;
1213 char start_factor = 'K', size_factor = 'K';
1214 unsigned long start_base, size_base;
1215 mtrr_type type;
1216
1217 for (i = 0; i < num_var_ranges; i++) {
1218
1219 size_base = range_state[i].size_pfn << (PAGE_SHIFT - 10);
1220 if (!size_base)
1221 continue;
1222
1223 size_base = to_size_factor(size_base, &size_factor),
1224 start_base = range_state[i].base_pfn << (PAGE_SHIFT - 10);
1225 start_base = to_size_factor(start_base, &start_factor),
1226 type = range_state[i].type;
1227
1228 printk(KERN_DEBUG "reg %d, base: %ld%cB, range: %ld%cB, type %s\n",
1229 i, start_base, start_factor,
1230 size_base, size_factor,
1231 (type == MTRR_TYPE_UNCACHABLE) ? "UC" :
1232 ((type == MTRR_TYPE_WRPROT) ? "WP" :
1233 ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other"))
1234 );
1235 }
1236}
1237
1238static int __init mtrr_need_cleanup(void)
1239{
1240 int i;
1241 mtrr_type type;
1242 unsigned long size;
1243 /* extra one for all 0 */
1244 int num[MTRR_NUM_TYPES + 1];
1245
1246 /* check entries number */
1247 memset(num, 0, sizeof(num));
1248 for (i = 0; i < num_var_ranges; i++) {
1249 type = range_state[i].type;
1250 size = range_state[i].size_pfn;
1251 if (type >= MTRR_NUM_TYPES)
1252 continue;
1253 if (!size)
1254 type = MTRR_NUM_TYPES;
1255 if (type == MTRR_TYPE_WRPROT)
1256 type = MTRR_TYPE_UNCACHABLE;
1257 num[type]++;
1258 }
1259
1260 /* check if we got UC entries */
1261 if (!num[MTRR_TYPE_UNCACHABLE])
1262 return 0;
1263
1264 /* check if we only had WB and UC */
1265 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
1266 num_var_ranges - num[MTRR_NUM_TYPES])
1267 return 0;
1268
1269 return 1;
1270}
1271
1272static unsigned long __initdata range_sums;
1273static void __init mtrr_calc_range_state(u64 chunk_size, u64 gran_size,
1274 unsigned long extra_remove_base,
1275 unsigned long extra_remove_size,
1276 int i)
1277{
1278 int num_reg;
1279 static struct res_range range_new[RANGE_NUM];
1280 static int nr_range_new;
1281 unsigned long range_sums_new;
1282
1283 /* convert ranges to var ranges state */
1284 num_reg = x86_setup_var_mtrrs(range, nr_range,
1285 chunk_size, gran_size);
1286
1287 /* we got new setting in range_state, check it */
1288 memset(range_new, 0, sizeof(range_new));
1289 nr_range_new = x86_get_mtrr_mem_range(range_new, 0,
1290 extra_remove_base, extra_remove_size);
1291 range_sums_new = sum_ranges(range_new, nr_range_new);
1292
1293 result[i].chunk_sizek = chunk_size >> 10;
1294 result[i].gran_sizek = gran_size >> 10;
1295 result[i].num_reg = num_reg;
1296 if (range_sums < range_sums_new) {
1297 result[i].lose_cover_sizek =
1298 (range_sums_new - range_sums) << PSHIFT;
1299 result[i].bad = 1;
1300 } else
1301 result[i].lose_cover_sizek =
1302 (range_sums - range_sums_new) << PSHIFT;
1303
1304 /* double check it */
1305 if (!result[i].bad && !result[i].lose_cover_sizek) {
1306 if (nr_range_new != nr_range ||
1307 memcmp(range, range_new, sizeof(range)))
1308 result[i].bad = 1;
1309 }
1310
1311 if (!result[i].bad && (range_sums - range_sums_new <
1312 min_loss_pfn[num_reg])) {
1313 min_loss_pfn[num_reg] =
1314 range_sums - range_sums_new;
1315 }
1316}
1317
1318static void __init mtrr_print_out_one_result(int i)
1319{
1320 char gran_factor, chunk_factor, lose_factor;
1321 unsigned long gran_base, chunk_base, lose_base;
1322
1323 gran_base = to_size_factor(result[i].gran_sizek, &gran_factor),
1324 chunk_base = to_size_factor(result[i].chunk_sizek, &chunk_factor),
1325 lose_base = to_size_factor(result[i].lose_cover_sizek, &lose_factor),
1326 printk(KERN_INFO "%sgran_size: %ld%c \tchunk_size: %ld%c \t",
1327 result[i].bad ? "*BAD*" : " ",
1328 gran_base, gran_factor, chunk_base, chunk_factor);
1329 printk(KERN_CONT "num_reg: %d \tlose cover RAM: %s%ld%c\n",
1330 result[i].num_reg, result[i].bad ? "-" : "",
1331 lose_base, lose_factor);
1332}
1333
1334static int __init mtrr_search_optimal_index(void)
1335{
1336 int i;
1337 int num_reg_good;
1338 int index_good;
1339
1340 if (nr_mtrr_spare_reg >= num_var_ranges)
1341 nr_mtrr_spare_reg = num_var_ranges - 1;
1342 num_reg_good = -1;
1343 for (i = num_var_ranges - nr_mtrr_spare_reg; i > 0; i--) {
1344 if (!min_loss_pfn[i])
1345 num_reg_good = i;
1346 }
1347
1348 index_good = -1;
1349 if (num_reg_good != -1) {
1350 for (i = 0; i < NUM_RESULT; i++) {
1351 if (!result[i].bad &&
1352 result[i].num_reg == num_reg_good &&
1353 !result[i].lose_cover_sizek) {
1354 index_good = i;
1355 break;
1356 }
1357 }
1358 }
1359
1360 return index_good;
1361}
1362
1363
1364static int __init mtrr_cleanup(unsigned address_bits)
1365{
1366 unsigned long extra_remove_base, extra_remove_size;
1367 unsigned long base, size, def, dummy;
1368 mtrr_type type;
1369 u64 chunk_size, gran_size;
1370 int index_good;
1371 int i;
1372
1373 if (!is_cpu(INTEL) || enable_mtrr_cleanup < 1)
1374 return 0;
1375 rdmsr(MTRRdefType_MSR, def, dummy);
1376 def &= 0xff;
1377 if (def != MTRR_TYPE_UNCACHABLE)
1378 return 0;
1379
1380 /* get it and store it aside */
1381 memset(range_state, 0, sizeof(range_state));
1382 for (i = 0; i < num_var_ranges; i++) {
1383 mtrr_if->get(i, &base, &size, &type);
1384 range_state[i].base_pfn = base;
1385 range_state[i].size_pfn = size;
1386 range_state[i].type = type;
1387 }
1388
1389 /* check if we need handle it and can handle it */
1390 if (!mtrr_need_cleanup())
1391 return 0;
1392
1393 /* print original var MTRRs at first, for debugging: */
1394 printk(KERN_DEBUG "original variable MTRRs\n");
1395 print_out_mtrr_range_state();
1396
1397 memset(range, 0, sizeof(range));
1398 extra_remove_size = 0;
1399 extra_remove_base = 1 << (32 - PAGE_SHIFT);
1400 if (mtrr_tom2)
1401 extra_remove_size =
1402 (mtrr_tom2 >> PAGE_SHIFT) - extra_remove_base;
1403 nr_range = x86_get_mtrr_mem_range(range, 0, extra_remove_base,
1404 extra_remove_size);
1405 /*
1406 * [0, 1M) should always be coverred by var mtrr with WB
1407 * and fixed mtrrs should take effective before var mtrr for it
1408 */
1409 nr_range = add_range_with_merge(range, nr_range, 0,
1410 (1ULL<<(20 - PAGE_SHIFT)) - 1);
1411 /* sort the ranges */
1412 sort(range, nr_range, sizeof(struct res_range), cmp_range, NULL);
1413
1414 range_sums = sum_ranges(range, nr_range);
1415 printk(KERN_INFO "total RAM coverred: %ldM\n",
1416 range_sums >> (20 - PAGE_SHIFT));
1417
1418 if (mtrr_chunk_size && mtrr_gran_size) {
1419 i = 0;
1420 mtrr_calc_range_state(mtrr_chunk_size, mtrr_gran_size,
1421 extra_remove_base, extra_remove_size, i);
1422
1423 mtrr_print_out_one_result(i);
1424
1425 if (!result[i].bad) {
1426 set_var_mtrr_all(address_bits);
1427 return 1;
1428 }
1429 printk(KERN_INFO "invalid mtrr_gran_size or mtrr_chunk_size, "
1430 "will find optimal one\n");
1431 }
1432
1433 i = 0;
1434 memset(min_loss_pfn, 0xff, sizeof(min_loss_pfn));
1435 memset(result, 0, sizeof(result));
1436 for (gran_size = (1ULL<<16); gran_size < (1ULL<<32); gran_size <<= 1) {
1437
1438 for (chunk_size = gran_size; chunk_size < (1ULL<<32);
1439 chunk_size <<= 1) {
1440
1441 if (i >= NUM_RESULT)
1442 continue;
1443
1444 mtrr_calc_range_state(chunk_size, gran_size,
1445 extra_remove_base, extra_remove_size, i);
1446 if (debug_print) {
1447 mtrr_print_out_one_result(i);
1448 printk(KERN_INFO "\n");
1449 }
1450
1451 i++;
1452 }
1453 }
1454
1455 /* try to find the optimal index */
1456 index_good = mtrr_search_optimal_index();
1457
1458 if (index_good != -1) {
1459 printk(KERN_INFO "Found optimal setting for mtrr clean up\n");
1460 i = index_good;
1461 mtrr_print_out_one_result(i);
1462
1463 /* convert ranges to var ranges state */
1464 chunk_size = result[i].chunk_sizek;
1465 chunk_size <<= 10;
1466 gran_size = result[i].gran_sizek;
1467 gran_size <<= 10;
1468 x86_setup_var_mtrrs(range, nr_range, chunk_size, gran_size);
1469 set_var_mtrr_all(address_bits);
1470 printk(KERN_DEBUG "New variable MTRRs\n");
1471 print_out_mtrr_range_state();
1472 return 1;
1473 } else {
1474 /* print out all */
1475 for (i = 0; i < NUM_RESULT; i++)
1476 mtrr_print_out_one_result(i);
1477 }
1478
1479 printk(KERN_INFO "mtrr_cleanup: can not find optimal value\n");
1480 printk(KERN_INFO "please specify mtrr_gran_size/mtrr_chunk_size\n");
1481
1482 return 0;
1483}
1484#else
1485static int __init mtrr_cleanup(unsigned address_bits)
1486{
1487 return 0;
1488}
1489#endif
1490
1491static int __initdata changed_by_mtrr_cleanup;
1492
1493static int disable_mtrr_trim;
1494
1495static int __init disable_mtrr_trim_setup(char *str)
1496{
1497 disable_mtrr_trim = 1;
1498 return 0;
1499}
1500early_param("disable_mtrr_trim", disable_mtrr_trim_setup);
1501
1502/*
1503 * Newer AMD K8s and later CPUs have a special magic MSR way to force WB
1504 * for memory >4GB. Check for that here.
1505 * Note this won't check if the MTRRs < 4GB where the magic bit doesn't
1506 * apply to are wrong, but so far we don't know of any such case in the wild.
1507 */
1508#define Tom2Enabled (1U << 21)
1509#define Tom2ForceMemTypeWB (1U << 22)
1510
1511int __init amd_special_default_mtrr(void)
1512{
1513 u32 l, h;
1514
1515 if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
1516 return 0;
1517 if (boot_cpu_data.x86 < 0xf || boot_cpu_data.x86 > 0x11)
1518 return 0;
1519 /* In case some hypervisor doesn't pass SYSCFG through */
1520 if (rdmsr_safe(MSR_K8_SYSCFG, &l, &h) < 0)
1521 return 0;
1522 /*
1523 * Memory between 4GB and top of mem is forced WB by this magic bit.
1524 * Reserved before K8RevF, but should be zero there.
1525 */
1526 if ((l & (Tom2Enabled | Tom2ForceMemTypeWB)) ==
1527 (Tom2Enabled | Tom2ForceMemTypeWB))
1528 return 1;
1529 return 0;
1530}
1531
1532static u64 __init real_trim_memory(unsigned long start_pfn,
1533 unsigned long limit_pfn)
1534{
1535 u64 trim_start, trim_size;
1536 trim_start = start_pfn;
1537 trim_start <<= PAGE_SHIFT;
1538 trim_size = limit_pfn;
1539 trim_size <<= PAGE_SHIFT;
1540 trim_size -= trim_start;
1541
1542 return e820_update_range(trim_start, trim_size, E820_RAM,
1543 E820_RESERVED);
1544}
1545/**
1546 * mtrr_trim_uncached_memory - trim RAM not covered by MTRRs
1547 * @end_pfn: ending page frame number
1548 *
1549 * Some buggy BIOSes don't setup the MTRRs properly for systems with certain
1550 * memory configurations. This routine checks that the highest MTRR matches
1551 * the end of memory, to make sure the MTRRs having a write back type cover
1552 * all of the memory the kernel is intending to use. If not, it'll trim any
1553 * memory off the end by adjusting end_pfn, removing it from the kernel's
1554 * allocation pools, warning the user with an obnoxious message.
1555 */
1556int __init mtrr_trim_uncached_memory(unsigned long end_pfn)
1557{
1558 unsigned long i, base, size, highest_pfn = 0, def, dummy;
1559 mtrr_type type;
1560 u64 total_trim_size;
1561
1562 /* extra one for all 0 */
1563 int num[MTRR_NUM_TYPES + 1];
1564 /*
1565 * Make sure we only trim uncachable memory on machines that
1566 * support the Intel MTRR architecture:
1567 */
1568 if (!is_cpu(INTEL) || disable_mtrr_trim)
1569 return 0;
1570 rdmsr(MTRRdefType_MSR, def, dummy);
1571 def &= 0xff;
1572 if (def != MTRR_TYPE_UNCACHABLE)
1573 return 0;
1574
1575 /* get it and store it aside */
1576 memset(range_state, 0, sizeof(range_state));
1577 for (i = 0; i < num_var_ranges; i++) {
1578 mtrr_if->get(i, &base, &size, &type);
1579 range_state[i].base_pfn = base;
1580 range_state[i].size_pfn = size;
1581 range_state[i].type = type;
1582 }
1583
1584 /* Find highest cached pfn */
1585 for (i = 0; i < num_var_ranges; i++) {
1586 type = range_state[i].type;
1587 if (type != MTRR_TYPE_WRBACK)
1588 continue;
1589 base = range_state[i].base_pfn;
1590 size = range_state[i].size_pfn;
1591 if (highest_pfn < base + size)
1592 highest_pfn = base + size;
1593 }
1594
1595 /* kvm/qemu doesn't have mtrr set right, don't trim them all */
1596 if (!highest_pfn) {
1597 printk(KERN_INFO "CPU MTRRs all blank - virtualized system.\n");
1598 return 0;
1599 }
1600
1601 /* check entries number */
1602 memset(num, 0, sizeof(num));
1603 for (i = 0; i < num_var_ranges; i++) {
1604 type = range_state[i].type;
1605 if (type >= MTRR_NUM_TYPES)
1606 continue;
1607 size = range_state[i].size_pfn;
1608 if (!size)
1609 type = MTRR_NUM_TYPES;
1610 num[type]++;
1611 }
1612
1613 /* no entry for WB? */
1614 if (!num[MTRR_TYPE_WRBACK])
1615 return 0;
1616
1617 /* check if we only had WB and UC */
1618 if (num[MTRR_TYPE_WRBACK] + num[MTRR_TYPE_UNCACHABLE] !=
1619 num_var_ranges - num[MTRR_NUM_TYPES])
1620 return 0;
1621
1622 memset(range, 0, sizeof(range));
1623 nr_range = 0;
1624 if (mtrr_tom2) {
1625 range[nr_range].start = (1ULL<<(32 - PAGE_SHIFT));
1626 range[nr_range].end = (mtrr_tom2 >> PAGE_SHIFT) - 1;
1627 if (highest_pfn < range[nr_range].end + 1)
1628 highest_pfn = range[nr_range].end + 1;
1629 nr_range++;
1630 }
1631 nr_range = x86_get_mtrr_mem_range(range, nr_range, 0, 0);
1632
1633 total_trim_size = 0;
1634 /* check the head */
1635 if (range[0].start)
1636 total_trim_size += real_trim_memory(0, range[0].start);
1637 /* check the holes */
1638 for (i = 0; i < nr_range - 1; i++) {
1639 if (range[i].end + 1 < range[i+1].start)
1640 total_trim_size += real_trim_memory(range[i].end + 1,
1641 range[i+1].start);
1642 }
1643 /* check the top */
1644 i = nr_range - 1;
1645 if (range[i].end + 1 < end_pfn)
1646 total_trim_size += real_trim_memory(range[i].end + 1,
1647 end_pfn);
1648
1649 if (total_trim_size) {
1650 printk(KERN_WARNING "WARNING: BIOS bug: CPU MTRRs don't cover"
1651 " all of memory, losing %lluMB of RAM.\n",
1652 total_trim_size >> 20);
1653
1654 if (!changed_by_mtrr_cleanup)
1655 WARN_ON(1);
1656
1657 printk(KERN_INFO "update e820 for mtrr\n");
1658 update_e820();
1659
1660 return 1;
1661 }
1662
1663 return 0;
1664}
1665 614
1666/** 615/**
1667 * mtrr_bp_init - initialize mtrrs on the boot CPU 616 * mtrr_bp_init - initialize mtrrs on the boot CPU
diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.h b/arch/x86/kernel/cpu/mtrr/mtrr.h
index ffd60409cc6d..77f67f7b347a 100644
--- a/arch/x86/kernel/cpu/mtrr/mtrr.h
+++ b/arch/x86/kernel/cpu/mtrr/mtrr.h
@@ -79,6 +79,7 @@ extern struct mtrr_ops * mtrr_if;
79 79
80extern unsigned int num_var_ranges; 80extern unsigned int num_var_ranges;
81extern u64 mtrr_tom2; 81extern u64 mtrr_tom2;
82extern struct mtrr_state_type mtrr_state;
82 83
83void mtrr_state_warn(void); 84void mtrr_state_warn(void);
84const char *mtrr_attrib_to_str(int x); 85const char *mtrr_attrib_to_str(int x);
@@ -88,3 +89,6 @@ void mtrr_wrmsr(unsigned, unsigned, unsigned);
88int amd_init_mtrr(void); 89int amd_init_mtrr(void);
89int cyrix_init_mtrr(void); 90int cyrix_init_mtrr(void);
90int centaur_init_mtrr(void); 91int centaur_init_mtrr(void);
92
93extern int changed_by_mtrr_cleanup;
94extern int mtrr_cleanup(unsigned address_bits);
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 95b81c18b6bc..fb638d9ce6d2 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -131,6 +131,31 @@ void __init e820_add_region(u64 start, u64 size, int type)
131 __e820_add_region(&e820, start, size, type); 131 __e820_add_region(&e820, start, size, type);
132} 132}
133 133
134static void __init e820_print_type(u32 type)
135{
136 switch (type) {
137 case E820_RAM:
138 case E820_RESERVED_KERN:
139 printk(KERN_CONT "(usable)");
140 break;
141 case E820_RESERVED:
142 printk(KERN_CONT "(reserved)");
143 break;
144 case E820_ACPI:
145 printk(KERN_CONT "(ACPI data)");
146 break;
147 case E820_NVS:
148 printk(KERN_CONT "(ACPI NVS)");
149 break;
150 case E820_UNUSABLE:
151 printk(KERN_CONT "(unusable)");
152 break;
153 default:
154 printk(KERN_CONT "type %u", type);
155 break;
156 }
157}
158
134void __init e820_print_map(char *who) 159void __init e820_print_map(char *who)
135{ 160{
136 int i; 161 int i;
@@ -140,27 +165,8 @@ void __init e820_print_map(char *who)
140 (unsigned long long) e820.map[i].addr, 165 (unsigned long long) e820.map[i].addr,
141 (unsigned long long) 166 (unsigned long long)
142 (e820.map[i].addr + e820.map[i].size)); 167 (e820.map[i].addr + e820.map[i].size));
143 switch (e820.map[i].type) { 168 e820_print_type(e820.map[i].type);
144 case E820_RAM: 169 printk(KERN_CONT "\n");
145 case E820_RESERVED_KERN:
146 printk(KERN_CONT "(usable)\n");
147 break;
148 case E820_RESERVED:
149 printk(KERN_CONT "(reserved)\n");
150 break;
151 case E820_ACPI:
152 printk(KERN_CONT "(ACPI data)\n");
153 break;
154 case E820_NVS:
155 printk(KERN_CONT "(ACPI NVS)\n");
156 break;
157 case E820_UNUSABLE:
158 printk("(unusable)\n");
159 break;
160 default:
161 printk(KERN_CONT "type %u\n", e820.map[i].type);
162 break;
163 }
164 } 170 }
165} 171}
166 172
@@ -427,6 +433,7 @@ static u64 __init __e820_update_range(struct e820map *e820x, u64 start,
427 u64 size, unsigned old_type, 433 u64 size, unsigned old_type,
428 unsigned new_type) 434 unsigned new_type)
429{ 435{
436 u64 end;
430 unsigned int i; 437 unsigned int i;
431 u64 real_updated_size = 0; 438 u64 real_updated_size = 0;
432 439
@@ -435,21 +442,43 @@ static u64 __init __e820_update_range(struct e820map *e820x, u64 start,
435 if (size > (ULLONG_MAX - start)) 442 if (size > (ULLONG_MAX - start))
436 size = ULLONG_MAX - start; 443 size = ULLONG_MAX - start;
437 444
445 end = start + size;
446 printk(KERN_DEBUG "e820 update range: %016Lx - %016Lx ",
447 (unsigned long long) start,
448 (unsigned long long) end);
449 e820_print_type(old_type);
450 printk(KERN_CONT " ==> ");
451 e820_print_type(new_type);
452 printk(KERN_CONT "\n");
453
438 for (i = 0; i < e820x->nr_map; i++) { 454 for (i = 0; i < e820x->nr_map; i++) {
439 struct e820entry *ei = &e820x->map[i]; 455 struct e820entry *ei = &e820x->map[i];
440 u64 final_start, final_end; 456 u64 final_start, final_end;
457 u64 ei_end;
458
441 if (ei->type != old_type) 459 if (ei->type != old_type)
442 continue; 460 continue;
443 /* totally covered? */ 461
444 if (ei->addr >= start && 462 ei_end = ei->addr + ei->size;
445 (ei->addr + ei->size) <= (start + size)) { 463 /* totally covered by new range? */
464 if (ei->addr >= start && ei_end <= end) {
446 ei->type = new_type; 465 ei->type = new_type;
447 real_updated_size += ei->size; 466 real_updated_size += ei->size;
448 continue; 467 continue;
449 } 468 }
469
470 /* new range is totally covered? */
471 if (ei->addr < start && ei_end > end) {
472 __e820_add_region(e820x, start, size, new_type);
473 __e820_add_region(e820x, end, ei_end - end, ei->type);
474 ei->size = start - ei->addr;
475 real_updated_size += size;
476 continue;
477 }
478
450 /* partially covered */ 479 /* partially covered */
451 final_start = max(start, ei->addr); 480 final_start = max(start, ei->addr);
452 final_end = min(start + size, ei->addr + ei->size); 481 final_end = min(end, ei_end);
453 if (final_start >= final_end) 482 if (final_start >= final_end)
454 continue; 483 continue;
455 484
diff --git a/arch/x86/kernel/head32.c b/arch/x86/kernel/head32.c
index ac108d1fe182..3f8579f8d42c 100644
--- a/arch/x86/kernel/head32.c
+++ b/arch/x86/kernel/head32.c
@@ -18,7 +18,7 @@ void __init i386_start_kernel(void)
18{ 18{
19 reserve_trampoline_memory(); 19 reserve_trampoline_memory();
20 20
21 reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS"); 21 reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
22 22
23#ifdef CONFIG_BLK_DEV_INITRD 23#ifdef CONFIG_BLK_DEV_INITRD
24 /* Reserve INITRD */ 24 /* Reserve INITRD */
@@ -29,9 +29,6 @@ void __init i386_start_kernel(void)
29 reserve_early(ramdisk_image, ramdisk_end, "RAMDISK"); 29 reserve_early(ramdisk_image, ramdisk_end, "RAMDISK");
30 } 30 }
31#endif 31#endif
32 reserve_early(init_pg_tables_start, init_pg_tables_end,
33 "INIT_PG_TABLE");
34
35 reserve_ebda_region(); 32 reserve_ebda_region();
36 33
37 /* 34 /*
diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index f5b272247690..70eaa852c732 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -100,7 +100,7 @@ void __init x86_64_start_reservations(char *real_mode_data)
100 100
101 reserve_trampoline_memory(); 101 reserve_trampoline_memory();
102 102
103 reserve_early(__pa_symbol(&_text), __pa_symbol(&_end), "TEXT DATA BSS"); 103 reserve_early(__pa_symbol(&_text), __pa_symbol(&__bss_stop), "TEXT DATA BSS");
104 104
105#ifdef CONFIG_BLK_DEV_INITRD 105#ifdef CONFIG_BLK_DEV_INITRD
106 /* Reserve INITRD */ 106 /* Reserve INITRD */
diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
index c32ca19d591a..30683883e0cd 100644
--- a/arch/x86/kernel/head_32.S
+++ b/arch/x86/kernel/head_32.S
@@ -38,42 +38,40 @@
38#define X86_VENDOR_ID new_cpu_data+CPUINFO_x86_vendor_id 38#define X86_VENDOR_ID new_cpu_data+CPUINFO_x86_vendor_id
39 39
40/* 40/*
41 * This is how much memory *in addition to the memory covered up to 41 * This is how much memory in addition to the memory covered up to
42 * and including _end* we need mapped initially. 42 * and including _end we need mapped initially.
43 * We need: 43 * We need:
44 * - one bit for each possible page, but only in low memory, which means 44 * (KERNEL_IMAGE_SIZE/4096) / 1024 pages (worst case, non PAE)
45 * 2^32/4096/8 = 128K worst case (4G/4G split.) 45 * (KERNEL_IMAGE_SIZE/4096) / 512 + 4 pages (worst case for PAE)
46 * - enough space to map all low memory, which means
47 * (2^32/4096) / 1024 pages (worst case, non PAE)
48 * (2^32/4096) / 512 + 4 pages (worst case for PAE)
49 * - a few pages for allocator use before the kernel pagetable has
50 * been set up
51 * 46 *
52 * Modulo rounding, each megabyte assigned here requires a kilobyte of 47 * Modulo rounding, each megabyte assigned here requires a kilobyte of
53 * memory, which is currently unreclaimed. 48 * memory, which is currently unreclaimed.
54 * 49 *
55 * This should be a multiple of a page. 50 * This should be a multiple of a page.
51 *
52 * KERNEL_IMAGE_SIZE should be greater than pa(_end)
53 * and small than max_low_pfn, otherwise will waste some page table entries
56 */ 54 */
57LOW_PAGES = 1<<(32-PAGE_SHIFT_asm)
58
59/*
60 * To preserve the DMA pool in PAGEALLOC kernels, we'll allocate
61 * pagetables from above the 16MB DMA limit, so we'll have to set
62 * up pagetables 16MB more (worst-case):
63 */
64#ifdef CONFIG_DEBUG_PAGEALLOC
65LOW_PAGES = LOW_PAGES + 0x1000000
66#endif
67 55
68#if PTRS_PER_PMD > 1 56#if PTRS_PER_PMD > 1
69PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PMD) + PTRS_PER_PGD 57#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
70#else 58#else
71PAGE_TABLE_SIZE = (LOW_PAGES / PTRS_PER_PGD) 59#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
72#endif 60#endif
73BOOTBITMAP_SIZE = LOW_PAGES / 8
74ALLOCATOR_SLOP = 4
75 61
76INIT_MAP_BEYOND_END = BOOTBITMAP_SIZE + (PAGE_TABLE_SIZE + ALLOCATOR_SLOP)*PAGE_SIZE_asm 62/* Enough space to fit pagetables for the low memory linear map */
63MAPPING_BEYOND_END = \
64 PAGE_TABLE_SIZE(((1<<32) - __PAGE_OFFSET) >> PAGE_SHIFT) << PAGE_SHIFT
65
66/*
67 * Worst-case size of the kernel mapping we need to make:
68 * the worst-case size of the kernel itself, plus the extra we need
69 * to map for the linear map.
70 */
71KERNEL_PAGES = (KERNEL_IMAGE_SIZE + MAPPING_BEYOND_END)>>PAGE_SHIFT
72
73INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE_asm
74RESERVE_BRK(pagetables, INIT_MAP_SIZE)
77 75
78/* 76/*
79 * 32-bit kernel entrypoint; only used by the boot CPU. On entry, 77 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
@@ -166,10 +164,10 @@ num_subarch_entries = (. - subarch_entries) / 4
166 164
167/* 165/*
168 * Initialize page tables. This creates a PDE and a set of page 166 * Initialize page tables. This creates a PDE and a set of page
169 * tables, which are located immediately beyond _end. The variable 167 * tables, which are located immediately beyond __brk_base. The variable
170 * init_pg_tables_end is set up to point to the first "safe" location. 168 * _brk_end is set up to point to the first "safe" location.
171 * Mappings are created both at virtual address 0 (identity mapping) 169 * Mappings are created both at virtual address 0 (identity mapping)
172 * and PAGE_OFFSET for up to _end+sizeof(page tables)+INIT_MAP_BEYOND_END. 170 * and PAGE_OFFSET for up to _end.
173 * 171 *
174 * Note that the stack is not yet set up! 172 * Note that the stack is not yet set up!
175 */ 173 */
@@ -190,8 +188,7 @@ default_entry:
190 188
191 xorl %ebx,%ebx /* %ebx is kept at zero */ 189 xorl %ebx,%ebx /* %ebx is kept at zero */
192 190
193 movl $pa(pg0), %edi 191 movl $pa(__brk_base), %edi
194 movl %edi, pa(init_pg_tables_start)
195 movl $pa(swapper_pg_pmd), %edx 192 movl $pa(swapper_pg_pmd), %edx
196 movl $PTE_IDENT_ATTR, %eax 193 movl $PTE_IDENT_ATTR, %eax
19710: 19410:
@@ -209,14 +206,14 @@ default_entry:
209 loop 11b 206 loop 11b
210 207
211 /* 208 /*
212 * End condition: we must map up to and including INIT_MAP_BEYOND_END 209 * End condition: we must map up to the end + MAPPING_BEYOND_END.
213 * bytes beyond the end of our own page tables.
214 */ 210 */
215 leal (INIT_MAP_BEYOND_END+PTE_IDENT_ATTR)(%edi),%ebp 211 movl $pa(_end) + MAPPING_BEYOND_END + PTE_IDENT_ATTR, %ebp
216 cmpl %ebp,%eax 212 cmpl %ebp,%eax
217 jb 10b 213 jb 10b
2181: 2141:
219 movl %edi,pa(init_pg_tables_end) 215 addl $__PAGE_OFFSET, %edi
216 movl %edi, pa(_brk_end)
220 shrl $12, %eax 217 shrl $12, %eax
221 movl %eax, pa(max_pfn_mapped) 218 movl %eax, pa(max_pfn_mapped)
222 219
@@ -227,8 +224,7 @@ default_entry:
227 224
228page_pde_offset = (__PAGE_OFFSET >> 20); 225page_pde_offset = (__PAGE_OFFSET >> 20);
229 226
230 movl $pa(pg0), %edi 227 movl $pa(__brk_base), %edi
231 movl %edi, pa(init_pg_tables_start)
232 movl $pa(swapper_pg_dir), %edx 228 movl $pa(swapper_pg_dir), %edx
233 movl $PTE_IDENT_ATTR, %eax 229 movl $PTE_IDENT_ATTR, %eax
23410: 23010:
@@ -242,14 +238,13 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
242 addl $0x1000,%eax 238 addl $0x1000,%eax
243 loop 11b 239 loop 11b
244 /* 240 /*
245 * End condition: we must map up to and including INIT_MAP_BEYOND_END 241 * End condition: we must map up to the end + MAPPING_BEYOND_END.
246 * bytes beyond the end of our own page tables; the +0x007 is
247 * the attribute bits
248 */ 242 */
249 leal (INIT_MAP_BEYOND_END+PTE_IDENT_ATTR)(%edi),%ebp 243 movl $pa(_end) + MAPPING_BEYOND_END + PTE_IDENT_ATTR, %ebp
250 cmpl %ebp,%eax 244 cmpl %ebp,%eax
251 jb 10b 245 jb 10b
252 movl %edi,pa(init_pg_tables_end) 246 addl $__PAGE_OFFSET, %edi
247 movl %edi, pa(_brk_end)
253 shrl $12, %eax 248 shrl $12, %eax
254 movl %eax, pa(max_pfn_mapped) 249 movl %eax, pa(max_pfn_mapped)
255 250
@@ -636,6 +631,7 @@ swapper_pg_fixmap:
636 .fill 1024,4,0 631 .fill 1024,4,0
637ENTRY(empty_zero_page) 632ENTRY(empty_zero_page)
638 .fill 4096,1,0 633 .fill 4096,1,0
634
639/* 635/*
640 * This starts the data section. 636 * This starts the data section.
641 */ 637 */
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index e948b28a5a9a..55b94614e348 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -193,6 +193,9 @@ static int __kprobes can_boost(kprobe_opcode_t *opcodes)
193 kprobe_opcode_t opcode; 193 kprobe_opcode_t opcode;
194 kprobe_opcode_t *orig_opcodes = opcodes; 194 kprobe_opcode_t *orig_opcodes = opcodes;
195 195
196 if (search_exception_tables((unsigned long)opcodes))
197 return 0; /* Page fault may occur on this address. */
198
196retry: 199retry:
197 if (opcodes - orig_opcodes > MAX_INSN_SIZE - 1) 200 if (opcodes - orig_opcodes > MAX_INSN_SIZE - 1)
198 return 0; 201 return 0;
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 478bca986eca..33019ddb56b4 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -138,12 +138,6 @@ static void kvm_set_pte_atomic(pte_t *ptep, pte_t pte)
138 kvm_mmu_write(ptep, pte_val(pte)); 138 kvm_mmu_write(ptep, pte_val(pte));
139} 139}
140 140
141static void kvm_set_pte_present(struct mm_struct *mm, unsigned long addr,
142 pte_t *ptep, pte_t pte)
143{
144 kvm_mmu_write(ptep, pte_val(pte));
145}
146
147static void kvm_pte_clear(struct mm_struct *mm, 141static void kvm_pte_clear(struct mm_struct *mm,
148 unsigned long addr, pte_t *ptep) 142 unsigned long addr, pte_t *ptep)
149{ 143{
@@ -220,7 +214,6 @@ static void paravirt_ops_setup(void)
220#if PAGETABLE_LEVELS >= 3 214#if PAGETABLE_LEVELS >= 3
221#ifdef CONFIG_X86_PAE 215#ifdef CONFIG_X86_PAE
222 pv_mmu_ops.set_pte_atomic = kvm_set_pte_atomic; 216 pv_mmu_ops.set_pte_atomic = kvm_set_pte_atomic;
223 pv_mmu_ops.set_pte_present = kvm_set_pte_present;
224 pv_mmu_ops.pte_clear = kvm_pte_clear; 217 pv_mmu_ops.pte_clear = kvm_pte_clear;
225 pv_mmu_ops.pmd_clear = kvm_pmd_clear; 218 pv_mmu_ops.pmd_clear = kvm_pmd_clear;
226#endif 219#endif
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index 47673e02ae58..290cb57f4697 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -109,9 +109,6 @@ static void __init MP_bus_info(struct mpc_bus *m)
109 } else 109 } else
110 printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str); 110 printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str);
111} 111}
112#endif
113
114#ifdef CONFIG_X86_IO_APIC
115 112
116static int bad_ioapic(unsigned long address) 113static int bad_ioapic(unsigned long address)
117{ 114{
@@ -224,8 +221,12 @@ static void __init MP_intsrc_info(struct mpc_intsrc *m)
224 if (++mp_irq_entries == MAX_IRQ_SOURCES) 221 if (++mp_irq_entries == MAX_IRQ_SOURCES)
225 panic("Max # of irq sources exceeded!!\n"); 222 panic("Max # of irq sources exceeded!!\n");
226} 223}
224#else /* CONFIG_X86_IO_APIC */
225static inline void __init MP_bus_info(struct mpc_bus *m) {}
226static inline void __init MP_ioapic_info(struct mpc_ioapic *m) {}
227static inline void __init MP_intsrc_info(struct mpc_intsrc *m) {}
228#endif /* CONFIG_X86_IO_APIC */
227 229
228#endif
229 230
230static void __init MP_lintsrc_info(struct mpc_lintsrc *m) 231static void __init MP_lintsrc_info(struct mpc_lintsrc *m)
231{ 232{
@@ -275,6 +276,12 @@ static int __init smp_check_mpc(struct mpc_table *mpc, char *oem, char *str)
275 return 1; 276 return 1;
276} 277}
277 278
279static void skip_entry(unsigned char **ptr, int *count, int size)
280{
281 *ptr += size;
282 *count += size;
283}
284
278static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) 285static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
279{ 286{
280 char str[16]; 287 char str[16];
@@ -310,55 +317,27 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
310 while (count < mpc->length) { 317 while (count < mpc->length) {
311 switch (*mpt) { 318 switch (*mpt) {
312 case MP_PROCESSOR: 319 case MP_PROCESSOR:
313 { 320 /* ACPI may have already provided this data */
314 struct mpc_cpu *m = (struct mpc_cpu *)mpt; 321 if (!acpi_lapic)
315 /* ACPI may have already provided this data */ 322 MP_processor_info((struct mpc_cpu *)mpt);
316 if (!acpi_lapic) 323 skip_entry(&mpt, &count, sizeof(struct mpc_cpu));
317 MP_processor_info(m); 324 break;
318 mpt += sizeof(*m);
319 count += sizeof(*m);
320 break;
321 }
322 case MP_BUS: 325 case MP_BUS:
323 { 326 MP_bus_info((struct mpc_bus *)mpt);
324 struct mpc_bus *m = (struct mpc_bus *)mpt; 327 skip_entry(&mpt, &count, sizeof(struct mpc_bus));
325#ifdef CONFIG_X86_IO_APIC 328 break;
326 MP_bus_info(m);
327#endif
328 mpt += sizeof(*m);
329 count += sizeof(*m);
330 break;
331 }
332 case MP_IOAPIC: 329 case MP_IOAPIC:
333 { 330 MP_ioapic_info((struct mpc_ioapic *)mpt);
334#ifdef CONFIG_X86_IO_APIC 331 skip_entry(&mpt, &count, sizeof(struct mpc_ioapic));
335 struct mpc_ioapic *m = (struct mpc_ioapic *)mpt; 332 break;
336 MP_ioapic_info(m);
337#endif
338 mpt += sizeof(struct mpc_ioapic);
339 count += sizeof(struct mpc_ioapic);
340 break;
341 }
342 case MP_INTSRC: 333 case MP_INTSRC:
343 { 334 MP_intsrc_info((struct mpc_intsrc *)mpt);
344#ifdef CONFIG_X86_IO_APIC 335 skip_entry(&mpt, &count, sizeof(struct mpc_intsrc));
345 struct mpc_intsrc *m = (struct mpc_intsrc *)mpt; 336 break;
346
347 MP_intsrc_info(m);
348#endif
349 mpt += sizeof(struct mpc_intsrc);
350 count += sizeof(struct mpc_intsrc);
351 break;
352 }
353 case MP_LINTSRC: 337 case MP_LINTSRC:
354 { 338 MP_lintsrc_info((struct mpc_lintsrc *)mpt);
355 struct mpc_lintsrc *m = 339 skip_entry(&mpt, &count, sizeof(struct mpc_lintsrc));
356 (struct mpc_lintsrc *)mpt; 340 break;
357 MP_lintsrc_info(m);
358 mpt += sizeof(*m);
359 count += sizeof(*m);
360 break;
361 }
362 default: 341 default:
363 /* wrong mptable */ 342 /* wrong mptable */
364 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); 343 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n");
@@ -689,6 +668,31 @@ void __init get_smp_config(void)
689 __get_smp_config(0); 668 __get_smp_config(0);
690} 669}
691 670
671static void smp_reserve_bootmem(struct mpf_intel *mpf)
672{
673 unsigned long size = get_mpc_size(mpf->physptr);
674#ifdef CONFIG_X86_32
675 /*
676 * We cannot access to MPC table to compute table size yet,
677 * as only few megabytes from the bottom is mapped now.
678 * PC-9800's MPC table places on the very last of physical
679 * memory; so that simply reserving PAGE_SIZE from mpf->physptr
680 * yields BUG() in reserve_bootmem.
681 * also need to make sure physptr is below than max_low_pfn
682 * we don't need reserve the area above max_low_pfn
683 */
684 unsigned long end = max_low_pfn * PAGE_SIZE;
685
686 if (mpf->physptr < end) {
687 if (mpf->physptr + size > end)
688 size = end - mpf->physptr;
689 reserve_bootmem_generic(mpf->physptr, size, BOOTMEM_DEFAULT);
690 }
691#else
692 reserve_bootmem_generic(mpf->physptr, size, BOOTMEM_DEFAULT);
693#endif
694}
695
692static int __init smp_scan_config(unsigned long base, unsigned long length, 696static int __init smp_scan_config(unsigned long base, unsigned long length,
693 unsigned reserve) 697 unsigned reserve)
694{ 698{
@@ -717,35 +721,9 @@ static int __init smp_scan_config(unsigned long base, unsigned long length,
717 if (!reserve) 721 if (!reserve)
718 return 1; 722 return 1;
719 reserve_bootmem_generic(virt_to_phys(mpf), sizeof(*mpf), 723 reserve_bootmem_generic(virt_to_phys(mpf), sizeof(*mpf),
720 BOOTMEM_DEFAULT);
721 if (mpf->physptr) {
722 unsigned long size = get_mpc_size(mpf->physptr);
723#ifdef CONFIG_X86_32
724 /*
725 * We cannot access to MPC table to compute
726 * table size yet, as only few megabytes from
727 * the bottom is mapped now.
728 * PC-9800's MPC table places on the very last
729 * of physical memory; so that simply reserving
730 * PAGE_SIZE from mpf->physptr yields BUG()
731 * in reserve_bootmem.
732 * also need to make sure physptr is below than
733 * max_low_pfn
734 * we don't need reserve the area above max_low_pfn
735 */
736 unsigned long end = max_low_pfn * PAGE_SIZE;
737
738 if (mpf->physptr < end) {
739 if (mpf->physptr + size > end)
740 size = end - mpf->physptr;
741 reserve_bootmem_generic(mpf->physptr, size,
742 BOOTMEM_DEFAULT);
743 }
744#else
745 reserve_bootmem_generic(mpf->physptr, size,
746 BOOTMEM_DEFAULT); 724 BOOTMEM_DEFAULT);
747#endif 725 if (mpf->physptr)
748 } 726 smp_reserve_bootmem(mpf);
749 727
750 return 1; 728 return 1;
751 } 729 }
@@ -848,7 +826,57 @@ static int __init get_MP_intsrc_index(struct mpc_intsrc *m)
848#define SPARE_SLOT_NUM 20 826#define SPARE_SLOT_NUM 20
849 827
850static struct mpc_intsrc __initdata *m_spare[SPARE_SLOT_NUM]; 828static struct mpc_intsrc __initdata *m_spare[SPARE_SLOT_NUM];
851#endif 829
830static void check_irq_src(struct mpc_intsrc *m, int *nr_m_spare)
831{
832 int i;
833
834 apic_printk(APIC_VERBOSE, "OLD ");
835 print_MP_intsrc_info(m);
836
837 i = get_MP_intsrc_index(m);
838 if (i > 0) {
839 assign_to_mpc_intsrc(&mp_irqs[i], m);
840 apic_printk(APIC_VERBOSE, "NEW ");
841 print_mp_irq_info(&mp_irqs[i]);
842 return;
843 }
844 if (!i) {
845 /* legacy, do nothing */
846 return;
847 }
848 if (*nr_m_spare < SPARE_SLOT_NUM) {
849 /*
850 * not found (-1), or duplicated (-2) are invalid entries,
851 * we need to use the slot later
852 */
853 m_spare[*nr_m_spare] = m;
854 *nr_m_spare += 1;
855 }
856}
857#else /* CONFIG_X86_IO_APIC */
858static inline void check_irq_src(struct mpc_intsrc *m, int *nr_m_spare) {}
859#endif /* CONFIG_X86_IO_APIC */
860
861static int check_slot(unsigned long mpc_new_phys, unsigned long mpc_new_length,
862 int count)
863{
864 if (!mpc_new_phys) {
865 pr_info("No spare slots, try to append...take your risk, "
866 "new mpc_length %x\n", count);
867 } else {
868 if (count <= mpc_new_length)
869 pr_info("No spare slots, try to append..., "
870 "new mpc_length %x\n", count);
871 else {
872 pr_err("mpc_new_length %lx is too small\n",
873 mpc_new_length);
874 return -1;
875 }
876 }
877
878 return 0;
879}
852 880
853static int __init replace_intsrc_all(struct mpc_table *mpc, 881static int __init replace_intsrc_all(struct mpc_table *mpc,
854 unsigned long mpc_new_phys, 882 unsigned long mpc_new_phys,
@@ -856,71 +884,30 @@ static int __init replace_intsrc_all(struct mpc_table *mpc,
856{ 884{
857#ifdef CONFIG_X86_IO_APIC 885#ifdef CONFIG_X86_IO_APIC
858 int i; 886 int i;
859 int nr_m_spare = 0;
860#endif 887#endif
861
862 int count = sizeof(*mpc); 888 int count = sizeof(*mpc);
889 int nr_m_spare = 0;
863 unsigned char *mpt = ((unsigned char *)mpc) + count; 890 unsigned char *mpt = ((unsigned char *)mpc) + count;
864 891
865 printk(KERN_INFO "mpc_length %x\n", mpc->length); 892 printk(KERN_INFO "mpc_length %x\n", mpc->length);
866 while (count < mpc->length) { 893 while (count < mpc->length) {
867 switch (*mpt) { 894 switch (*mpt) {
868 case MP_PROCESSOR: 895 case MP_PROCESSOR:
869 { 896 skip_entry(&mpt, &count, sizeof(struct mpc_cpu));
870 struct mpc_cpu *m = (struct mpc_cpu *)mpt; 897 break;
871 mpt += sizeof(*m);
872 count += sizeof(*m);
873 break;
874 }
875 case MP_BUS: 898 case MP_BUS:
876 { 899 skip_entry(&mpt, &count, sizeof(struct mpc_bus));
877 struct mpc_bus *m = (struct mpc_bus *)mpt; 900 break;
878 mpt += sizeof(*m);
879 count += sizeof(*m);
880 break;
881 }
882 case MP_IOAPIC: 901 case MP_IOAPIC:
883 { 902 skip_entry(&mpt, &count, sizeof(struct mpc_ioapic));
884 mpt += sizeof(struct mpc_ioapic); 903 break;
885 count += sizeof(struct mpc_ioapic);
886 break;
887 }
888 case MP_INTSRC: 904 case MP_INTSRC:
889 { 905 check_irq_src((struct mpc_intsrc *)mpt, &nr_m_spare);
890#ifdef CONFIG_X86_IO_APIC 906 skip_entry(&mpt, &count, sizeof(struct mpc_intsrc));
891 struct mpc_intsrc *m = (struct mpc_intsrc *)mpt; 907 break;
892
893 apic_printk(APIC_VERBOSE, "OLD ");
894 print_MP_intsrc_info(m);
895 i = get_MP_intsrc_index(m);
896 if (i > 0) {
897 assign_to_mpc_intsrc(&mp_irqs[i], m);
898 apic_printk(APIC_VERBOSE, "NEW ");
899 print_mp_irq_info(&mp_irqs[i]);
900 } else if (!i) {
901 /* legacy, do nothing */
902 } else if (nr_m_spare < SPARE_SLOT_NUM) {
903 /*
904 * not found (-1), or duplicated (-2)
905 * are invalid entries,
906 * we need to use the slot later
907 */
908 m_spare[nr_m_spare] = m;
909 nr_m_spare++;
910 }
911#endif
912 mpt += sizeof(struct mpc_intsrc);
913 count += sizeof(struct mpc_intsrc);
914 break;
915 }
916 case MP_LINTSRC: 908 case MP_LINTSRC:
917 { 909 skip_entry(&mpt, &count, sizeof(struct mpc_lintsrc));
918 struct mpc_lintsrc *m = 910 break;
919 (struct mpc_lintsrc *)mpt;
920 mpt += sizeof(*m);
921 count += sizeof(*m);
922 break;
923 }
924 default: 911 default:
925 /* wrong mptable */ 912 /* wrong mptable */
926 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); 913 printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n");
@@ -950,16 +937,8 @@ static int __init replace_intsrc_all(struct mpc_table *mpc,
950 } else { 937 } else {
951 struct mpc_intsrc *m = (struct mpc_intsrc *)mpt; 938 struct mpc_intsrc *m = (struct mpc_intsrc *)mpt;
952 count += sizeof(struct mpc_intsrc); 939 count += sizeof(struct mpc_intsrc);
953 if (!mpc_new_phys) { 940 if (!check_slot(mpc_new_phys, mpc_new_length, count))
954 printk(KERN_INFO "No spare slots, try to append...take your risk, new mpc_length %x\n", count); 941 goto out;
955 } else {
956 if (count <= mpc_new_length)
957 printk(KERN_INFO "No spare slots, try to append..., new mpc_length %x\n", count);
958 else {
959 printk(KERN_ERR "mpc_new_length %lx is too small\n", mpc_new_length);
960 goto out;
961 }
962 }
963 assign_to_mpc_intsrc(&mp_irqs[i], m); 942 assign_to_mpc_intsrc(&mp_irqs[i], m);
964 mpc->length = count; 943 mpc->length = count;
965 mpt += sizeof(struct mpc_intsrc); 944 mpt += sizeof(struct mpc_intsrc);
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 63dd358d8ee1..8e45f4464880 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -470,7 +470,6 @@ struct pv_mmu_ops pv_mmu_ops = {
470#if PAGETABLE_LEVELS >= 3 470#if PAGETABLE_LEVELS >= 3
471#ifdef CONFIG_X86_PAE 471#ifdef CONFIG_X86_PAE
472 .set_pte_atomic = native_set_pte_atomic, 472 .set_pte_atomic = native_set_pte_atomic,
473 .set_pte_present = native_set_pte_present,
474 .pte_clear = native_pte_clear, 473 .pte_clear = native_pte_clear,
475 .pmd_clear = native_pmd_clear, 474 .pmd_clear = native_pmd_clear,
476#endif 475#endif
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index 6afa5232dbb7..156f87582c6c 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -65,11 +65,11 @@ void exit_thread(void)
65{ 65{
66 struct task_struct *me = current; 66 struct task_struct *me = current;
67 struct thread_struct *t = &me->thread; 67 struct thread_struct *t = &me->thread;
68 unsigned long *bp = t->io_bitmap_ptr;
68 69
69 if (me->thread.io_bitmap_ptr) { 70 if (bp) {
70 struct tss_struct *tss = &per_cpu(init_tss, get_cpu()); 71 struct tss_struct *tss = &per_cpu(init_tss, get_cpu());
71 72
72 kfree(t->io_bitmap_ptr);
73 t->io_bitmap_ptr = NULL; 73 t->io_bitmap_ptr = NULL;
74 clear_thread_flag(TIF_IO_BITMAP); 74 clear_thread_flag(TIF_IO_BITMAP);
75 /* 75 /*
@@ -78,6 +78,7 @@ void exit_thread(void)
78 memset(tss->io_bitmap, 0xff, t->io_bitmap_max); 78 memset(tss->io_bitmap, 0xff, t->io_bitmap_max);
79 t->io_bitmap_max = 0; 79 t->io_bitmap_max = 0;
80 put_cpu(); 80 put_cpu();
81 kfree(bp);
81 } 82 }
82 83
83 ds_exit_thread(current); 84 ds_exit_thread(current);
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index f28c56e6bf94..a0d26237d7cf 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -112,8 +112,13 @@
112#define ARCH_SETUP 112#define ARCH_SETUP
113#endif 113#endif
114 114
115RESERVE_BRK(dmi_alloc, 65536);
116
115unsigned int boot_cpu_id __read_mostly; 117unsigned int boot_cpu_id __read_mostly;
116 118
119static __initdata unsigned long _brk_start = (unsigned long)__brk_base;
120unsigned long _brk_end = (unsigned long)__brk_base;
121
117#ifdef CONFIG_X86_64 122#ifdef CONFIG_X86_64
118int default_cpu_present_to_apicid(int mps_cpu) 123int default_cpu_present_to_apicid(int mps_cpu)
119{ 124{
@@ -158,12 +163,6 @@ static struct resource bss_resource = {
158 163
159 164
160#ifdef CONFIG_X86_32 165#ifdef CONFIG_X86_32
161/* This value is set up by the early boot code to point to the value
162 immediately after the boot time page tables. It contains a *physical*
163 address, and must not be in the .bss segment! */
164unsigned long init_pg_tables_start __initdata = ~0UL;
165unsigned long init_pg_tables_end __initdata = ~0UL;
166
167static struct resource video_ram_resource = { 166static struct resource video_ram_resource = {
168 .name = "Video RAM area", 167 .name = "Video RAM area",
169 .start = 0xa0000, 168 .start = 0xa0000,
@@ -219,12 +218,6 @@ unsigned long mmu_cr4_features = X86_CR4_PAE;
219int bootloader_type; 218int bootloader_type;
220 219
221/* 220/*
222 * Early DMI memory
223 */
224int dmi_alloc_index;
225char dmi_alloc_data[DMI_MAX_DATA];
226
227/*
228 * Setup options 221 * Setup options
229 */ 222 */
230struct screen_info screen_info; 223struct screen_info screen_info;
@@ -269,6 +262,35 @@ static inline void copy_edd(void)
269} 262}
270#endif 263#endif
271 264
265void * __init extend_brk(size_t size, size_t align)
266{
267 size_t mask = align - 1;
268 void *ret;
269
270 BUG_ON(_brk_start == 0);
271 BUG_ON(align & mask);
272
273 _brk_end = (_brk_end + mask) & ~mask;
274 BUG_ON((char *)(_brk_end + size) > __brk_limit);
275
276 ret = (void *)_brk_end;
277 _brk_end += size;
278
279 memset(ret, 0, size);
280
281 return ret;
282}
283
284static void __init reserve_brk(void)
285{
286 if (_brk_end > _brk_start)
287 reserve_early(__pa(_brk_start), __pa(_brk_end), "BRK");
288
289 /* Mark brk area as locked down and no longer taking any
290 new allocations */
291 _brk_start = 0;
292}
293
272#ifdef CONFIG_BLK_DEV_INITRD 294#ifdef CONFIG_BLK_DEV_INITRD
273 295
274#ifdef CONFIG_X86_32 296#ifdef CONFIG_X86_32
@@ -717,11 +739,7 @@ void __init setup_arch(char **cmdline_p)
717 init_mm.start_code = (unsigned long) _text; 739 init_mm.start_code = (unsigned long) _text;
718 init_mm.end_code = (unsigned long) _etext; 740 init_mm.end_code = (unsigned long) _etext;
719 init_mm.end_data = (unsigned long) _edata; 741 init_mm.end_data = (unsigned long) _edata;
720#ifdef CONFIG_X86_32 742 init_mm.brk = _brk_end;
721 init_mm.brk = init_pg_tables_end + PAGE_OFFSET;
722#else
723 init_mm.brk = (unsigned long) &_end;
724#endif
725 743
726 code_resource.start = virt_to_phys(_text); 744 code_resource.start = virt_to_phys(_text);
727 code_resource.end = virt_to_phys(_etext)-1; 745 code_resource.end = virt_to_phys(_etext)-1;
@@ -842,6 +860,8 @@ void __init setup_arch(char **cmdline_p)
842 setup_bios_corruption_check(); 860 setup_bios_corruption_check();
843#endif 861#endif
844 862
863 reserve_brk();
864
845 /* max_pfn_mapped is updated here */ 865 /* max_pfn_mapped is updated here */
846 max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT); 866 max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<<PAGE_SHIFT);
847 max_pfn_mapped = max_low_pfn_mapped; 867 max_pfn_mapped = max_low_pfn_mapped;
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index d038b9c45cf8..79c073247284 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -750,7 +750,7 @@ static int __init uv_bau_init(void)
750 int node; 750 int node;
751 int nblades; 751 int nblades;
752 int last_blade; 752 int last_blade;
753 int cur_cpu = 0; 753 int cur_cpu;
754 754
755 if (!is_uv_system()) 755 if (!is_uv_system())
756 return 0; 756 return 0;
@@ -760,6 +760,7 @@ static int __init uv_bau_init(void)
760 uv_mmask = (1UL << uv_hub_info->n_val) - 1; 760 uv_mmask = (1UL << uv_hub_info->n_val) - 1;
761 nblades = 0; 761 nblades = 0;
762 last_blade = -1; 762 last_blade = -1;
763 cur_cpu = 0;
763 for_each_online_node(node) { 764 for_each_online_node(node) {
764 blade = uv_node_to_blade_id(node); 765 blade = uv_node_to_blade_id(node);
765 if (blade == last_blade) 766 if (blade == last_blade)
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 83d53ce5d4c4..462b9ba67e92 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -273,30 +273,43 @@ static unsigned long pit_calibrate_tsc(u32 latch, unsigned long ms, int loopmin)
273 * use the TSC value at the transitions to calculate a pretty 273 * use the TSC value at the transitions to calculate a pretty
274 * good value for the TSC frequencty. 274 * good value for the TSC frequencty.
275 */ 275 */
276static inline int pit_expect_msb(unsigned char val) 276static inline int pit_expect_msb(unsigned char val, u64 *tscp, unsigned long *deltap)
277{ 277{
278 int count = 0; 278 int count;
279 u64 tsc = 0;
279 280
280 for (count = 0; count < 50000; count++) { 281 for (count = 0; count < 50000; count++) {
281 /* Ignore LSB */ 282 /* Ignore LSB */
282 inb(0x42); 283 inb(0x42);
283 if (inb(0x42) != val) 284 if (inb(0x42) != val)
284 break; 285 break;
286 tsc = get_cycles();
285 } 287 }
286 return count > 50; 288 *deltap = get_cycles() - tsc;
289 *tscp = tsc;
290
291 /*
292 * We require _some_ success, but the quality control
293 * will be based on the error terms on the TSC values.
294 */
295 return count > 5;
287} 296}
288 297
289/* 298/*
290 * How many MSB values do we want to see? We aim for a 299 * How many MSB values do we want to see? We aim for
291 * 15ms calibration, which assuming a 2us counter read 300 * a maximum error rate of 500ppm (in practice the
292 * error should give us roughly 150 ppm precision for 301 * real error is much smaller), but refuse to spend
293 * the calibration. 302 * more than 25ms on it.
294 */ 303 */
295#define QUICK_PIT_MS 15 304#define MAX_QUICK_PIT_MS 25
296#define QUICK_PIT_ITERATIONS (QUICK_PIT_MS * PIT_TICK_RATE / 1000 / 256) 305#define MAX_QUICK_PIT_ITERATIONS (MAX_QUICK_PIT_MS * PIT_TICK_RATE / 1000 / 256)
297 306
298static unsigned long quick_pit_calibrate(void) 307static unsigned long quick_pit_calibrate(void)
299{ 308{
309 int i;
310 u64 tsc, delta;
311 unsigned long d1, d2;
312
300 /* Set the Gate high, disable speaker */ 313 /* Set the Gate high, disable speaker */
301 outb((inb(0x61) & ~0x02) | 0x01, 0x61); 314 outb((inb(0x61) & ~0x02) | 0x01, 0x61);
302 315
@@ -315,45 +328,52 @@ static unsigned long quick_pit_calibrate(void)
315 outb(0xff, 0x42); 328 outb(0xff, 0x42);
316 outb(0xff, 0x42); 329 outb(0xff, 0x42);
317 330
318 if (pit_expect_msb(0xff)) { 331 /*
319 int i; 332 * The PIT starts counting at the next edge, so we
320 u64 t1, t2, delta; 333 * need to delay for a microsecond. The easiest way
321 unsigned char expect = 0xfe; 334 * to do that is to just read back the 16-bit counter
322 335 * once from the PIT.
323 t1 = get_cycles(); 336 */
324 for (i = 0; i < QUICK_PIT_ITERATIONS; i++, expect--) { 337 inb(0x42);
325 if (!pit_expect_msb(expect)) 338 inb(0x42);
326 goto failed; 339
340 if (pit_expect_msb(0xff, &tsc, &d1)) {
341 for (i = 1; i <= MAX_QUICK_PIT_ITERATIONS; i++) {
342 if (!pit_expect_msb(0xff-i, &delta, &d2))
343 break;
344
345 /*
346 * Iterate until the error is less than 500 ppm
347 */
348 delta -= tsc;
349 if (d1+d2 < delta >> 11)
350 goto success;
327 } 351 }
328 t2 = get_cycles();
329
330 /*
331 * Make sure we can rely on the second TSC timestamp:
332 */
333 if (!pit_expect_msb(expect))
334 goto failed;
335
336 /*
337 * Ok, if we get here, then we've seen the
338 * MSB of the PIT decrement QUICK_PIT_ITERATIONS
339 * times, and each MSB had many hits, so we never
340 * had any sudden jumps.
341 *
342 * As a result, we can depend on there not being
343 * any odd delays anywhere, and the TSC reads are
344 * reliable.
345 *
346 * kHz = ticks / time-in-seconds / 1000;
347 * kHz = (t2 - t1) / (QPI * 256 / PIT_TICK_RATE) / 1000
348 * kHz = ((t2 - t1) * PIT_TICK_RATE) / (QPI * 256 * 1000)
349 */
350 delta = (t2 - t1)*PIT_TICK_RATE;
351 do_div(delta, QUICK_PIT_ITERATIONS*256*1000);
352 printk("Fast TSC calibration using PIT\n");
353 return delta;
354 } 352 }
355failed: 353 printk("Fast TSC calibration failed\n");
356 return 0; 354 return 0;
355
356success:
357 /*
358 * Ok, if we get here, then we've seen the
359 * MSB of the PIT decrement 'i' times, and the
360 * error has shrunk to less than 500 ppm.
361 *
362 * As a result, we can depend on there not being
363 * any odd delays anywhere, and the TSC reads are
364 * reliable (within the error). We also adjust the
365 * delta to the middle of the error bars, just
366 * because it looks nicer.
367 *
368 * kHz = ticks / time-in-seconds / 1000;
369 * kHz = (t2 - t1) / (I * 256 / PIT_TICK_RATE) / 1000
370 * kHz = ((t2 - t1) * PIT_TICK_RATE) / (I * 256 * 1000)
371 */
372 delta += (long)(d2 - d1)/2;
373 delta *= PIT_TICK_RATE;
374 do_div(delta, i*256*1000);
375 printk("Fast TSC calibration using PIT\n");
376 return delta;
357} 377}
358 378
359/** 379/**
diff --git a/arch/x86/kernel/vmi_32.c b/arch/x86/kernel/vmi_32.c
index 2cc4a90e2cb3..95deb9f2211e 100644
--- a/arch/x86/kernel/vmi_32.c
+++ b/arch/x86/kernel/vmi_32.c
@@ -395,11 +395,6 @@ static void vmi_set_pte_atomic(pte_t *ptep, pte_t pteval)
395 vmi_ops.update_pte(ptep, VMI_PAGE_PT); 395 vmi_ops.update_pte(ptep, VMI_PAGE_PT);
396} 396}
397 397
398static void vmi_set_pte_present(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte)
399{
400 vmi_ops.set_pte(pte, ptep, vmi_flags_addr_defer(mm, addr, VMI_PAGE_PT, 1));
401}
402
403static void vmi_set_pud(pud_t *pudp, pud_t pudval) 398static void vmi_set_pud(pud_t *pudp, pud_t pudval)
404{ 399{
405 /* Um, eww */ 400 /* Um, eww */
@@ -750,7 +745,6 @@ static inline int __init activate_vmi(void)
750 pv_mmu_ops.set_pmd = vmi_set_pmd; 745 pv_mmu_ops.set_pmd = vmi_set_pmd;
751#ifdef CONFIG_X86_PAE 746#ifdef CONFIG_X86_PAE
752 pv_mmu_ops.set_pte_atomic = vmi_set_pte_atomic; 747 pv_mmu_ops.set_pte_atomic = vmi_set_pte_atomic;
753 pv_mmu_ops.set_pte_present = vmi_set_pte_present;
754 pv_mmu_ops.set_pud = vmi_set_pud; 748 pv_mmu_ops.set_pud = vmi_set_pud;
755 pv_mmu_ops.pte_clear = vmi_pte_clear; 749 pv_mmu_ops.pte_clear = vmi_pte_clear;
756 pv_mmu_ops.pmd_clear = vmi_pmd_clear; 750 pv_mmu_ops.pmd_clear = vmi_pmd_clear;
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S
index 0d860963f268..62ad500d55f3 100644
--- a/arch/x86/kernel/vmlinux_32.lds.S
+++ b/arch/x86/kernel/vmlinux_32.lds.S
@@ -189,15 +189,24 @@ SECTIONS
189 *(.bss) 189 *(.bss)
190 . = ALIGN(4); 190 . = ALIGN(4);
191 __bss_stop = .; 191 __bss_stop = .;
192 _end = . ; 192 }
193 /* This is where the kernel creates the early boot page tables */ 193
194 .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
194 . = ALIGN(PAGE_SIZE); 195 . = ALIGN(PAGE_SIZE);
195 pg0 = . ; 196 __brk_base = . ;
197 . += 64 * 1024 ; /* 64k alignment slop space */
198 *(.brk_reservation) /* areas brk users have reserved */
199 __brk_limit = . ;
200 }
201
202 .end : AT(ADDR(.end) - LOAD_OFFSET) {
203 _end = . ;
196 } 204 }
197 205
198 /* Sections to be discarded */ 206 /* Sections to be discarded */
199 /DISCARD/ : { 207 /DISCARD/ : {
200 *(.exitcall.exit) 208 *(.exitcall.exit)
209 *(.discard)
201 } 210 }
202 211
203 STABS_DEBUG 212 STABS_DEBUG
@@ -205,6 +214,12 @@ SECTIONS
205 DWARF_DEBUG 214 DWARF_DEBUG
206} 215}
207 216
217/*
218 * Build-time check on the image size:
219 */
220ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE),
221 "kernel image bigger than KERNEL_IMAGE_SIZE")
222
208#ifdef CONFIG_KEXEC 223#ifdef CONFIG_KEXEC
209/* Link time checks */ 224/* Link time checks */
210#include <asm/kexec.h> 225#include <asm/kexec.h>
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 5bf54e40c6ef..c8742507b030 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -29,8 +29,8 @@ SECTIONS
29{ 29{
30 . = __START_KERNEL; 30 . = __START_KERNEL;
31 phys_startup_64 = startup_64 - LOAD_OFFSET; 31 phys_startup_64 = startup_64 - LOAD_OFFSET;
32 _text = .; /* Text and read-only data */
33 .text : AT(ADDR(.text) - LOAD_OFFSET) { 32 .text : AT(ADDR(.text) - LOAD_OFFSET) {
33 _text = .; /* Text and read-only data */
34 /* First the code that has to be first for bootstrapping */ 34 /* First the code that has to be first for bootstrapping */
35 *(.text.head) 35 *(.text.head)
36 _stext = .; 36 _stext = .;
@@ -61,13 +61,13 @@ SECTIONS
61 .data : AT(ADDR(.data) - LOAD_OFFSET) { 61 .data : AT(ADDR(.data) - LOAD_OFFSET) {
62 DATA_DATA 62 DATA_DATA
63 CONSTRUCTORS 63 CONSTRUCTORS
64 _edata = .; /* End of data section */
64 } :data 65 } :data
65 66
66 _edata = .; /* End of data section */
67 67
68 . = ALIGN(PAGE_SIZE);
69 . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
70 .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) { 68 .data.cacheline_aligned : AT(ADDR(.data.cacheline_aligned) - LOAD_OFFSET) {
69 . = ALIGN(PAGE_SIZE);
70 . = ALIGN(CONFIG_X86_L1_CACHE_BYTES);
71 *(.data.cacheline_aligned) 71 *(.data.cacheline_aligned)
72 } 72 }
73 . = ALIGN(CONFIG_X86_INTERNODE_CACHE_BYTES); 73 . = ALIGN(CONFIG_X86_INTERNODE_CACHE_BYTES);
@@ -125,29 +125,29 @@ SECTIONS
125#undef VVIRT_OFFSET 125#undef VVIRT_OFFSET
126#undef VVIRT 126#undef VVIRT
127 127
128 . = ALIGN(THREAD_SIZE); /* init_task */
129 .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) { 128 .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
129 . = ALIGN(THREAD_SIZE); /* init_task */
130 *(.data.init_task) 130 *(.data.init_task)
131 }:data.init 131 }:data.init
132 132
133 . = ALIGN(PAGE_SIZE);
134 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) { 133 .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
134 . = ALIGN(PAGE_SIZE);
135 *(.data.page_aligned) 135 *(.data.page_aligned)
136 } 136 }
137 137
138 /* might get freed after init */
139 . = ALIGN(PAGE_SIZE);
140 __smp_alt_begin = .;
141 __smp_locks = .;
142 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { 138 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
139 /* might get freed after init */
140 . = ALIGN(PAGE_SIZE);
141 __smp_alt_begin = .;
142 __smp_locks = .;
143 *(.smp_locks) 143 *(.smp_locks)
144 __smp_locks_end = .;
145 . = ALIGN(PAGE_SIZE);
146 __smp_alt_end = .;
144 } 147 }
145 __smp_locks_end = .;
146 . = ALIGN(PAGE_SIZE);
147 __smp_alt_end = .;
148 148
149 . = ALIGN(PAGE_SIZE); /* Init code and data */ 149 . = ALIGN(PAGE_SIZE); /* Init code and data */
150 __init_begin = .; 150 __init_begin = .; /* paired with __init_end */
151 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { 151 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
152 _sinittext = .; 152 _sinittext = .;
153 INIT_TEXT 153 INIT_TEXT
@@ -159,40 +159,42 @@ SECTIONS
159 __initdata_end = .; 159 __initdata_end = .;
160 } 160 }
161 161
162 . = ALIGN(16); 162 .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) {
163 __setup_start = .; 163 . = ALIGN(16);
164 .init.setup : AT(ADDR(.init.setup) - LOAD_OFFSET) { *(.init.setup) } 164 __setup_start = .;
165 __setup_end = .; 165 *(.init.setup)
166 __initcall_start = .; 166 __setup_end = .;
167 }
167 .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) { 168 .initcall.init : AT(ADDR(.initcall.init) - LOAD_OFFSET) {
169 __initcall_start = .;
168 INITCALLS 170 INITCALLS
171 __initcall_end = .;
169 } 172 }
170 __initcall_end = .;
171 __con_initcall_start = .;
172 .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { 173 .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) {
174 __con_initcall_start = .;
173 *(.con_initcall.init) 175 *(.con_initcall.init)
176 __con_initcall_end = .;
174 } 177 }
175 __con_initcall_end = .;
176 __x86_cpu_dev_start = .;
177 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { 178 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
179 __x86_cpu_dev_start = .;
178 *(.x86_cpu_dev.init) 180 *(.x86_cpu_dev.init)
181 __x86_cpu_dev_end = .;
179 } 182 }
180 __x86_cpu_dev_end = .;
181 SECURITY_INIT 183 SECURITY_INIT
182 184
183 . = ALIGN(8); 185 . = ALIGN(8);
184 .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { 186 .parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) {
185 __parainstructions = .; 187 __parainstructions = .;
186 *(.parainstructions) 188 *(.parainstructions)
187 __parainstructions_end = .; 189 __parainstructions_end = .;
188 } 190 }
189 191
190 . = ALIGN(8);
191 __alt_instructions = .;
192 .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { 192 .altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) {
193 . = ALIGN(8);
194 __alt_instructions = .;
193 *(.altinstructions) 195 *(.altinstructions)
196 __alt_instructions_end = .;
194 } 197 }
195 __alt_instructions_end = .;
196 .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { 198 .altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) {
197 *(.altinstr_replacement) 199 *(.altinstr_replacement)
198 } 200 }
@@ -207,9 +209,11 @@ SECTIONS
207 209
208#ifdef CONFIG_BLK_DEV_INITRD 210#ifdef CONFIG_BLK_DEV_INITRD
209 . = ALIGN(PAGE_SIZE); 211 . = ALIGN(PAGE_SIZE);
210 __initramfs_start = .; 212 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) {
211 .init.ramfs : AT(ADDR(.init.ramfs) - LOAD_OFFSET) { *(.init.ramfs) } 213 __initramfs_start = .;
212 __initramfs_end = .; 214 *(.init.ramfs)
215 __initramfs_end = .;
216 }
213#endif 217#endif
214 218
215#ifdef CONFIG_SMP 219#ifdef CONFIG_SMP
@@ -229,20 +233,29 @@ SECTIONS
229 . = ALIGN(PAGE_SIZE); 233 . = ALIGN(PAGE_SIZE);
230 __init_end = .; 234 __init_end = .;
231 235
232 . = ALIGN(PAGE_SIZE);
233 __nosave_begin = .;
234 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { 236 .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
235 *(.data.nosave) 237 . = ALIGN(PAGE_SIZE);
238 __nosave_begin = .;
239 *(.data.nosave)
240 . = ALIGN(PAGE_SIZE);
241 __nosave_end = .;
236 } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */ 242 } :data.init2 /* use another section data.init2, see PERCPU_VADDR() above */
237 . = ALIGN(PAGE_SIZE);
238 __nosave_end = .;
239 243
240 __bss_start = .; /* BSS */
241 .bss : AT(ADDR(.bss) - LOAD_OFFSET) { 244 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
245 . = ALIGN(PAGE_SIZE);
246 __bss_start = .; /* BSS */
242 *(.bss.page_aligned) 247 *(.bss.page_aligned)
243 *(.bss) 248 *(.bss)
244 } 249 __bss_stop = .;
245 __bss_stop = .; 250 }
251
252 .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
253 . = ALIGN(PAGE_SIZE);
254 __brk_base = . ;
255 . += 64 * 1024 ; /* 64k alignment slop space */
256 *(.brk_reservation) /* areas brk users have reserved */
257 __brk_limit = . ;
258 }
246 259
247 _end = . ; 260 _end = . ;
248 261
@@ -250,6 +263,7 @@ SECTIONS
250 /DISCARD/ : { 263 /DISCARD/ : {
251 *(.exitcall.exit) 264 *(.exitcall.exit)
252 *(.eh_frame) 265 *(.eh_frame)
266 *(.discard)
253 } 267 }
254 268
255 STABS_DEBUG 269 STABS_DEBUG
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
index 9fe4ddaa8f6f..90e44a10e68a 100644
--- a/arch/x86/lguest/boot.c
+++ b/arch/x86/lguest/boot.c
@@ -1058,14 +1058,6 @@ __init void lguest_init(void)
1058 * lguest_init() where the rest of the fairly chaotic boot setup 1058 * lguest_init() where the rest of the fairly chaotic boot setup
1059 * occurs. */ 1059 * occurs. */
1060 1060
1061 /* The native boot code sets up initial page tables immediately after
1062 * the kernel itself, and sets init_pg_tables_end so they're not
1063 * clobbered. The Launcher places our initial pagetables somewhere at
1064 * the top of our physical memory, so we don't need extra space: set
1065 * init_pg_tables_end to the end of the kernel. */
1066 init_pg_tables_start = __pa(pg0);
1067 init_pg_tables_end = __pa(pg0);
1068
1069 /* As described in head_32.S, we map the first 128M of memory. */ 1061 /* As described in head_32.S, we map the first 128M of memory. */
1070 max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT; 1062 max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT;
1071 1063
diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
index 6e60ba698cee..699c9b2895ae 100644
--- a/arch/x86/mm/iomap_32.c
+++ b/arch/x86/mm/iomap_32.c
@@ -18,7 +18,6 @@
18 18
19#include <asm/iomap.h> 19#include <asm/iomap.h>
20#include <asm/pat.h> 20#include <asm/pat.h>
21#include <asm/highmem.h>
22#include <linux/module.h> 21#include <linux/module.h>
23 22
24int is_io_mapping_possible(resource_size_t base, unsigned long size) 23int is_io_mapping_possible(resource_size_t base, unsigned long size)
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
index 9c4294986af7..1280565670e4 100644
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -16,6 +16,7 @@
16#include <asm/processor.h> 16#include <asm/processor.h>
17#include <asm/tlbflush.h> 17#include <asm/tlbflush.h>
18#include <asm/sections.h> 18#include <asm/sections.h>
19#include <asm/setup.h>
19#include <asm/uaccess.h> 20#include <asm/uaccess.h>
20#include <asm/pgalloc.h> 21#include <asm/pgalloc.h>
21#include <asm/proto.h> 22#include <asm/proto.h>
@@ -95,7 +96,7 @@ static inline unsigned long highmap_start_pfn(void)
95 96
96static inline unsigned long highmap_end_pfn(void) 97static inline unsigned long highmap_end_pfn(void)
97{ 98{
98 return __pa(roundup((unsigned long)_end, PMD_SIZE)) >> PAGE_SHIFT; 99 return __pa(roundup(_brk_end, PMD_SIZE)) >> PAGE_SHIFT;
99} 100}
100 101
101#endif 102#endif
@@ -711,7 +712,7 @@ static int cpa_process_alias(struct cpa_data *cpa)
711 * No need to redo, when the primary call touched the high 712 * No need to redo, when the primary call touched the high
712 * mapping already: 713 * mapping already:
713 */ 714 */
714 if (within(vaddr, (unsigned long) _text, (unsigned long) _end)) 715 if (within(vaddr, (unsigned long) _text, _brk_end))
715 return 0; 716 return 0;
716 717
717 /* 718 /*
diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
index f2e477c91c1b..46c8834aedc0 100644
--- a/arch/x86/mm/pgtable_32.c
+++ b/arch/x86/mm/pgtable_32.c
@@ -50,7 +50,7 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
50 } 50 }
51 pte = pte_offset_kernel(pmd, vaddr); 51 pte = pte_offset_kernel(pmd, vaddr);
52 if (pte_val(pteval)) 52 if (pte_val(pteval))
53 set_pte_present(&init_mm, vaddr, pte, pteval); 53 set_pte_at(&init_mm, vaddr, pte, pteval);
54 else 54 else
55 pte_clear(&init_mm, vaddr, pte); 55 pte_clear(&init_mm, vaddr, pte);
56 56
diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
index a654d59e4483..821e97017e95 100644
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -187,11 +187,6 @@ static void flush_tlb_others_ipi(const struct cpumask *cpumask,
187 cpumask, cpumask_of(smp_processor_id())); 187 cpumask, cpumask_of(smp_processor_id()));
188 188
189 /* 189 /*
190 * Make the above memory operations globally visible before
191 * sending the IPI.
192 */
193 smp_mb();
194 /*
195 * We have to send the IPI only to 190 * We have to send the IPI only to
196 * CPUs affected. 191 * CPUs affected.
197 */ 192 */
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index cb6afa4ec95c..db3802fb7b84 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -1723,9 +1723,9 @@ __init pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd,
1723{ 1723{
1724 pmd_t *kernel_pmd; 1724 pmd_t *kernel_pmd;
1725 1725
1726 init_pg_tables_start = __pa(pgd); 1726 max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->pt_base) +
1727 init_pg_tables_end = __pa(pgd) + xen_start_info->nr_pt_frames*PAGE_SIZE; 1727 xen_start_info->nr_pt_frames * PAGE_SIZE +
1728 max_pfn_mapped = PFN_DOWN(init_pg_tables_end + 512*1024); 1728 512*1024);
1729 1729
1730 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd); 1730 kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
1731 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD); 1731 memcpy(level2_kernel_pgt, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);
@@ -1870,7 +1870,6 @@ const struct pv_mmu_ops xen_mmu_ops __initdata = {
1870 1870
1871#ifdef CONFIG_X86_PAE 1871#ifdef CONFIG_X86_PAE
1872 .set_pte_atomic = xen_set_pte_atomic, 1872 .set_pte_atomic = xen_set_pte_atomic,
1873 .set_pte_present = xen_set_pte_at,
1874 .pte_clear = xen_pte_clear, 1873 .pte_clear = xen_pte_clear,
1875 .pmd_clear = xen_pmd_clear, 1874 .pmd_clear = xen_pmd_clear,
1876#endif /* CONFIG_X86_PAE */ 1875#endif /* CONFIG_X86_PAE */