diff options
286 files changed, 5470 insertions, 2612 deletions
diff --git a/Documentation/DMA-API.txt b/Documentation/DMA-API.txt index b8e86460046e..b462bb149543 100644 --- a/Documentation/DMA-API.txt +++ b/Documentation/DMA-API.txt | |||
@@ -316,12 +316,10 @@ reduce current DMA mapping usage or delay and try again later). | |||
316 | pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, | 316 | pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg, |
317 | int nents, int direction) | 317 | int nents, int direction) |
318 | 318 | ||
319 | Maps a scatter gather list from the block layer. | ||
320 | |||
321 | Returns: the number of physical segments mapped (this may be shorter | 319 | Returns: the number of physical segments mapped (this may be shorter |
322 | than <nents> passed in if the block layer determines that some | 320 | than <nents> passed in if some elements of the scatter/gather list are |
323 | elements of the scatter/gather list are physically adjacent and thus | 321 | physically or virtually adjacent and an IOMMU maps them with a single |
324 | may be mapped with a single entry). | 322 | entry). |
325 | 323 | ||
326 | Please note that the sg cannot be mapped again if it has been mapped once. | 324 | Please note that the sg cannot be mapped again if it has been mapped once. |
327 | The mapping process is allowed to destroy information in the sg. | 325 | The mapping process is allowed to destroy information in the sg. |
diff --git a/Documentation/cpu-freq/user-guide.txt b/Documentation/cpu-freq/user-guide.txt index 6c442d8426b5..4f3f3840320e 100644 --- a/Documentation/cpu-freq/user-guide.txt +++ b/Documentation/cpu-freq/user-guide.txt | |||
@@ -23,6 +23,7 @@ Contents: | |||
23 | 1.3 sparc64 | 23 | 1.3 sparc64 |
24 | 1.4 ppc | 24 | 1.4 ppc |
25 | 1.5 SuperH | 25 | 1.5 SuperH |
26 | 1.6 Blackfin | ||
26 | 27 | ||
27 | 2. "Policy" / "Governor"? | 28 | 2. "Policy" / "Governor"? |
28 | 2.1 Policy | 29 | 2.1 Policy |
@@ -97,6 +98,17 @@ The following SuperH processors are supported by cpufreq: | |||
97 | SH-3 | 98 | SH-3 |
98 | SH-4 | 99 | SH-4 |
99 | 100 | ||
101 | 1.6 Blackfin | ||
102 | ------------ | ||
103 | |||
104 | The following Blackfin processors are supported by cpufreq: | ||
105 | |||
106 | BF522, BF523, BF524, BF525, BF526, BF527, Rev 0.1 or higher | ||
107 | BF531, BF532, BF533, Rev 0.3 or higher | ||
108 | BF534, BF536, BF537, Rev 0.2 or higher | ||
109 | BF561, Rev 0.3 or higher | ||
110 | BF542, BF544, BF547, BF548, BF549, Rev 0.1 or higher | ||
111 | |||
100 | 112 | ||
101 | 2. "Policy" / "Governor" ? | 113 | 2. "Policy" / "Governor" ? |
102 | ========================== | 114 | ========================== |
diff --git a/Documentation/filesystems/ocfs2.txt b/Documentation/filesystems/ocfs2.txt index 4340cc825796..67310fbbb7df 100644 --- a/Documentation/filesystems/ocfs2.txt +++ b/Documentation/filesystems/ocfs2.txt | |||
@@ -28,10 +28,7 @@ Manish Singh <manish.singh@oracle.com> | |||
28 | Caveats | 28 | Caveats |
29 | ======= | 29 | ======= |
30 | Features which OCFS2 does not support yet: | 30 | Features which OCFS2 does not support yet: |
31 | - extended attributes | ||
32 | - quotas | 31 | - quotas |
33 | - cluster aware flock | ||
34 | - cluster aware lockf | ||
35 | - Directory change notification (F_NOTIFY) | 32 | - Directory change notification (F_NOTIFY) |
36 | - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) | 33 | - Distributed Caching (F_SETLEASE/F_GETLEASE/break_lease) |
37 | - POSIX ACLs | 34 | - POSIX ACLs |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index bcceb99b81dd..bb1b0dd3bfcb 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -44,6 +44,7 @@ Table of Contents | |||
44 | 2.14 /proc/<pid>/io - Display the IO accounting fields | 44 | 2.14 /proc/<pid>/io - Display the IO accounting fields |
45 | 2.15 /proc/<pid>/coredump_filter - Core dump filtering settings | 45 | 2.15 /proc/<pid>/coredump_filter - Core dump filtering settings |
46 | 2.16 /proc/<pid>/mountinfo - Information about mounts | 46 | 2.16 /proc/<pid>/mountinfo - Information about mounts |
47 | 2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface | ||
47 | 48 | ||
48 | ------------------------------------------------------------------------------ | 49 | ------------------------------------------------------------------------------ |
49 | Preface | 50 | Preface |
@@ -2483,4 +2484,30 @@ For more information on mount propagation see: | |||
2483 | 2484 | ||
2484 | Documentation/filesystems/sharedsubtree.txt | 2485 | Documentation/filesystems/sharedsubtree.txt |
2485 | 2486 | ||
2487 | 2.17 /proc/sys/fs/epoll - Configuration options for the epoll interface | ||
2488 | -------------------------------------------------------- | ||
2489 | |||
2490 | This directory contains configuration options for the epoll(7) interface. | ||
2491 | |||
2492 | max_user_instances | ||
2493 | ------------------ | ||
2494 | |||
2495 | This is the maximum number of epoll file descriptors that a single user can | ||
2496 | have open at a given time. The default value is 128, and should be enough | ||
2497 | for normal users. | ||
2498 | |||
2499 | max_user_watches | ||
2500 | ---------------- | ||
2501 | |||
2502 | Every epoll file descriptor can store a number of files to be monitored | ||
2503 | for event readiness. Each one of these monitored files constitutes a "watch". | ||
2504 | This configuration option sets the maximum number of "watches" that are | ||
2505 | allowed for each user. | ||
2506 | Each "watch" costs roughly 90 bytes on a 32bit kernel, and roughly 160 bytes | ||
2507 | on a 64bit one. | ||
2508 | The current default value for max_user_watches is the 1/32 of the available | ||
2509 | low memory, divided for the "watch" cost in bytes. | ||
2510 | |||
2511 | |||
2486 | ------------------------------------------------------------------------------ | 2512 | ------------------------------------------------------------------------------ |
2513 | |||
diff --git a/Documentation/filesystems/ramfs-rootfs-initramfs.txt b/Documentation/filesystems/ramfs-rootfs-initramfs.txt index 62fe9b1e0890..a8273d5fad20 100644 --- a/Documentation/filesystems/ramfs-rootfs-initramfs.txt +++ b/Documentation/filesystems/ramfs-rootfs-initramfs.txt | |||
@@ -130,12 +130,12 @@ The 2.6 kernel build process always creates a gzipped cpio format initramfs | |||
130 | archive and links it into the resulting kernel binary. By default, this | 130 | archive and links it into the resulting kernel binary. By default, this |
131 | archive is empty (consuming 134 bytes on x86). | 131 | archive is empty (consuming 134 bytes on x86). |
132 | 132 | ||
133 | The config option CONFIG_INITRAMFS_SOURCE (for some reason buried under | 133 | The config option CONFIG_INITRAMFS_SOURCE (in General Setup in menuconfig, |
134 | devices->block devices in menuconfig, and living in usr/Kconfig) can be used | 134 | and living in usr/Kconfig) can be used to specify a source for the |
135 | to specify a source for the initramfs archive, which will automatically be | 135 | initramfs archive, which will automatically be incorporated into the |
136 | incorporated into the resulting binary. This option can point to an existing | 136 | resulting binary. This option can point to an existing gzipped cpio |
137 | gzipped cpio archive, a directory containing files to be archived, or a text | 137 | archive, a directory containing files to be archived, or a text file |
138 | file specification such as the following example: | 138 | specification such as the following example: |
139 | 139 | ||
140 | dir /dev 755 0 0 | 140 | dir /dev 755 0 0 |
141 | nod /dev/console 644 0 0 c 5 1 | 141 | nod /dev/console 644 0 0 c 5 1 |
diff --git a/Documentation/input/input-programming.txt b/Documentation/input/input-programming.txt index 81905e81585e..7f8b9d97bc47 100644 --- a/Documentation/input/input-programming.txt +++ b/Documentation/input/input-programming.txt | |||
@@ -20,10 +20,11 @@ pressed or released a BUTTON_IRQ happens. The driver could look like: | |||
20 | 20 | ||
21 | static struct input_dev *button_dev; | 21 | static struct input_dev *button_dev; |
22 | 22 | ||
23 | static void button_interrupt(int irq, void *dummy, struct pt_regs *fp) | 23 | static irqreturn_t button_interrupt(int irq, void *dummy) |
24 | { | 24 | { |
25 | input_report_key(button_dev, BTN_0, inb(BUTTON_PORT) & 1); | 25 | input_report_key(button_dev, BTN_0, inb(BUTTON_PORT) & 1); |
26 | input_sync(button_dev); | 26 | input_sync(button_dev); |
27 | return IRQ_HANDLED; | ||
27 | } | 28 | } |
28 | 29 | ||
29 | static int __init button_init(void) | 30 | static int __init button_init(void) |
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt index e0e54a27fc10..3cd2ad958176 100644 --- a/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/Documentation/sound/alsa/ALSA-Configuration.txt | |||
@@ -1072,10 +1072,13 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. | |||
1072 | ref Reference board | 1072 | ref Reference board |
1073 | dell-m4-1 Dell desktops | 1073 | dell-m4-1 Dell desktops |
1074 | dell-m4-2 Dell desktops | 1074 | dell-m4-2 Dell desktops |
1075 | dell-m4-3 Dell desktops | ||
1075 | 1076 | ||
1076 | STAC92HD73* | 1077 | STAC92HD73* |
1077 | ref Reference board | 1078 | ref Reference board |
1078 | dell-m6 Dell desktops | 1079 | dell-m6-amic Dell desktops/laptops with analog mics |
1080 | dell-m6-dmic Dell desktops/laptops with digital mics | ||
1081 | dell-m6 Dell desktops/laptops with both type of mics | ||
1079 | 1082 | ||
1080 | STAC9872 | 1083 | STAC9872 |
1081 | vaio Setup for VAIO FE550G/SZ110 | 1084 | vaio Setup for VAIO FE550G/SZ110 |
diff --git a/Documentation/spi/spi-summary b/Documentation/spi/spi-summary index 8bae2f018d34..0f5122eb282b 100644 --- a/Documentation/spi/spi-summary +++ b/Documentation/spi/spi-summary | |||
@@ -215,7 +215,7 @@ So for example arch/.../mach-*/board-*.c files might have code like: | |||
215 | /* if your mach-* infrastructure doesn't support kernels that can | 215 | /* if your mach-* infrastructure doesn't support kernels that can |
216 | * run on multiple boards, pdata wouldn't benefit from "__init". | 216 | * run on multiple boards, pdata wouldn't benefit from "__init". |
217 | */ | 217 | */ |
218 | static struct mysoc_spi_data __init pdata = { ... }; | 218 | static struct mysoc_spi_data __initdata pdata = { ... }; |
219 | 219 | ||
220 | static __init board_init(void) | 220 | static __init board_init(void) |
221 | { | 221 | { |
@@ -1,8 +1,8 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 28 | 3 | SUBLEVEL = 28 |
4 | EXTRAVERSION = -rc6 | 4 | EXTRAVERSION = -rc7 |
5 | NAME = Killer Bat of Doom | 5 | NAME = Erotic Pickled Herring |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
8 | # To see a list of typical targets execute "make help" | 8 | # To see a list of typical targets execute "make help" |
diff --git a/arch/Kconfig b/arch/Kconfig index 8977d99987cb..471e72dbaf8b 100644 --- a/arch/Kconfig +++ b/arch/Kconfig | |||
@@ -79,8 +79,6 @@ config HAVE_KRETPROBES | |||
79 | # task_pt_regs() in asm/processor.h or asm/ptrace.h | 79 | # task_pt_regs() in asm/processor.h or asm/ptrace.h |
80 | # arch_has_single_step() if there is hardware single-step support | 80 | # arch_has_single_step() if there is hardware single-step support |
81 | # arch_has_block_step() if there is hardware block-step support | 81 | # arch_has_block_step() if there is hardware block-step support |
82 | # arch_ptrace() and not #define __ARCH_SYS_PTRACE | ||
83 | # compat_arch_ptrace() and #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
84 | # asm/syscall.h supplying asm-generic/syscall.h interface | 82 | # asm/syscall.h supplying asm-generic/syscall.h interface |
85 | # linux/regset.h user_regset interfaces | 83 | # linux/regset.h user_regset interfaces |
86 | # CORE_DUMP_USE_REGSET #define'd in linux/elf.h | 84 | # CORE_DUMP_USE_REGSET #define'd in linux/elf.h |
diff --git a/arch/alpha/kernel/pci.c b/arch/alpha/kernel/pci.c index 5cf45fc51343..ff8cb638472e 100644 --- a/arch/alpha/kernel/pci.c +++ b/arch/alpha/kernel/pci.c | |||
@@ -338,7 +338,7 @@ common_swizzle(struct pci_dev *dev, u8 *pinp) | |||
338 | return PCI_SLOT(dev->devfn); | 338 | return PCI_SLOT(dev->devfn); |
339 | } | 339 | } |
340 | 340 | ||
341 | void __devinit | 341 | void |
342 | pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, | 342 | pcibios_resource_to_bus(struct pci_dev *dev, struct pci_bus_region *region, |
343 | struct resource *res) | 343 | struct resource *res) |
344 | { | 344 | { |
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index e657c45d91d2..cf7da10097bb 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c | |||
@@ -121,7 +121,7 @@ wait_boot_cpu_to_stop(int cpuid) | |||
121 | /* | 121 | /* |
122 | * Where secondaries begin a life of C. | 122 | * Where secondaries begin a life of C. |
123 | */ | 123 | */ |
124 | void __init | 124 | void __cpuinit |
125 | smp_callin(void) | 125 | smp_callin(void) |
126 | { | 126 | { |
127 | int cpuid = hard_smp_processor_id(); | 127 | int cpuid = hard_smp_processor_id(); |
@@ -198,7 +198,7 @@ wait_for_txrdy (unsigned long cpumask) | |||
198 | * Send a message to a secondary's console. "START" is one such | 198 | * Send a message to a secondary's console. "START" is one such |
199 | * interesting message. ;-) | 199 | * interesting message. ;-) |
200 | */ | 200 | */ |
201 | static void __init | 201 | static void __cpuinit |
202 | send_secondary_console_msg(char *str, int cpuid) | 202 | send_secondary_console_msg(char *str, int cpuid) |
203 | { | 203 | { |
204 | struct percpu_struct *cpu; | 204 | struct percpu_struct *cpu; |
@@ -289,7 +289,7 @@ recv_secondary_console_msg(void) | |||
289 | /* | 289 | /* |
290 | * Convince the console to have a secondary cpu begin execution. | 290 | * Convince the console to have a secondary cpu begin execution. |
291 | */ | 291 | */ |
292 | static int __init | 292 | static int __cpuinit |
293 | secondary_cpu_start(int cpuid, struct task_struct *idle) | 293 | secondary_cpu_start(int cpuid, struct task_struct *idle) |
294 | { | 294 | { |
295 | struct percpu_struct *cpu; | 295 | struct percpu_struct *cpu; |
diff --git a/arch/alpha/kernel/traps.c b/arch/alpha/kernel/traps.c index c778779007fc..cefc5a355ef9 100644 --- a/arch/alpha/kernel/traps.c +++ b/arch/alpha/kernel/traps.c | |||
@@ -31,7 +31,7 @@ | |||
31 | 31 | ||
32 | static int opDEC_fix; | 32 | static int opDEC_fix; |
33 | 33 | ||
34 | static void __init | 34 | static void __cpuinit |
35 | opDEC_check(void) | 35 | opDEC_check(void) |
36 | { | 36 | { |
37 | __asm__ __volatile__ ( | 37 | __asm__ __volatile__ ( |
@@ -1072,7 +1072,7 @@ give_sigbus: | |||
1072 | return; | 1072 | return; |
1073 | } | 1073 | } |
1074 | 1074 | ||
1075 | void __init | 1075 | void __cpuinit |
1076 | trap_init(void) | 1076 | trap_init(void) |
1077 | { | 1077 | { |
1078 | /* Tell PAL-code what global pointer we want in the kernel. */ | 1078 | /* Tell PAL-code what global pointer we want in the kernel. */ |
diff --git a/arch/arm/configs/corgi_defconfig b/arch/arm/configs/corgi_defconfig index f3af0b593eb0..98765438048d 100644 --- a/arch/arm/configs/corgi_defconfig +++ b/arch/arm/configs/corgi_defconfig | |||
@@ -179,7 +179,7 @@ CONFIG_MACH_HUSKY=y | |||
179 | # CONFIG_MACH_AKITA is not set | 179 | # CONFIG_MACH_AKITA is not set |
180 | # CONFIG_MACH_SPITZ is not set | 180 | # CONFIG_MACH_SPITZ is not set |
181 | # CONFIG_MACH_BORZOI is not set | 181 | # CONFIG_MACH_BORZOI is not set |
182 | CONFIG_MACH_TOSA=y | 182 | # CONFIG_MACH_TOSA is not set |
183 | # CONFIG_ARCH_VIPER is not set | 183 | # CONFIG_ARCH_VIPER is not set |
184 | # CONFIG_ARCH_PXA_ESERIES is not set | 184 | # CONFIG_ARCH_PXA_ESERIES is not set |
185 | # CONFIG_TRIZEPS_PXA is not set | 185 | # CONFIG_TRIZEPS_PXA is not set |
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index 0842c531ee4d..782903fe9c6c 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c | |||
@@ -565,7 +565,7 @@ static int mioa701_sys_suspend(struct sys_device *sysdev, pm_message_t state) | |||
565 | u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR); | 565 | u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR); |
566 | 566 | ||
567 | /* Devices prepare suspend */ | 567 | /* Devices prepare suspend */ |
568 | is_bt_on = gpio_get_value(GPIO83_BT_ON); | 568 | is_bt_on = !!gpio_get_value(GPIO83_BT_ON); |
569 | pxa2xx_mfp_set_lpm(GPIO83_BT_ON, | 569 | pxa2xx_mfp_set_lpm(GPIO83_BT_ON, |
570 | is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW); | 570 | is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW); |
571 | 571 | ||
diff --git a/arch/arm/mach-pxa/mioa701_bootresume.S b/arch/arm/mach-pxa/mioa701_bootresume.S index a647693d9856..324d25a48c85 100644 --- a/arch/arm/mach-pxa/mioa701_bootresume.S +++ b/arch/arm/mach-pxa/mioa701_bootresume.S | |||
@@ -24,6 +24,7 @@ ENTRY(mioa701_jumpaddr) | |||
24 | 1: | 24 | 1: |
25 | mov r0, #0xa0000000 @ Don't suppose memory access works | 25 | mov r0, #0xa0000000 @ Don't suppose memory access works |
26 | orr r0, r0, #0x00200000 @ even if it's supposed to | 26 | orr r0, r0, #0x00200000 @ even if it's supposed to |
27 | orr r0, r0, #0x0000b000 | ||
27 | mov r1, #0 | 28 | mov r1, #0 |
28 | str r1, [r0] @ Early disable resume for next boot | 29 | str r1, [r0] @ Early disable resume for next boot |
29 | ldr r0, mioa701_jumpaddr @ (Murphy's Law) | 30 | ldr r0, mioa701_jumpaddr @ (Murphy's Law) |
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c index 4447711c9fc6..a9d94f5dbec4 100644 --- a/arch/arm/mach-pxa/palmtx.c +++ b/arch/arm/mach-pxa/palmtx.c | |||
@@ -56,6 +56,9 @@ static unsigned long palmtx_pin_config[] __initdata = { | |||
56 | GPIO110_MMC_DAT_2, | 56 | GPIO110_MMC_DAT_2, |
57 | GPIO111_MMC_DAT_3, | 57 | GPIO111_MMC_DAT_3, |
58 | GPIO112_MMC_CMD, | 58 | GPIO112_MMC_CMD, |
59 | GPIO14_GPIO, /* SD detect */ | ||
60 | GPIO114_GPIO, /* SD power */ | ||
61 | GPIO115_GPIO, /* SD r/o switch */ | ||
59 | 62 | ||
60 | /* AC97 */ | 63 | /* AC97 */ |
61 | GPIO28_AC97_BITCLK, | 64 | GPIO28_AC97_BITCLK, |
@@ -64,6 +67,7 @@ static unsigned long palmtx_pin_config[] __initdata = { | |||
64 | GPIO31_AC97_SYNC, | 67 | GPIO31_AC97_SYNC, |
65 | 68 | ||
66 | /* IrDA */ | 69 | /* IrDA */ |
70 | GPIO40_GPIO, /* ir disable */ | ||
67 | GPIO46_FICP_RXD, | 71 | GPIO46_FICP_RXD, |
68 | GPIO47_FICP_TXD, | 72 | GPIO47_FICP_TXD, |
69 | 73 | ||
@@ -71,7 +75,8 @@ static unsigned long palmtx_pin_config[] __initdata = { | |||
71 | GPIO16_PWM0_OUT, | 75 | GPIO16_PWM0_OUT, |
72 | 76 | ||
73 | /* USB */ | 77 | /* USB */ |
74 | GPIO13_GPIO, | 78 | GPIO13_GPIO, /* usb detect */ |
79 | GPIO95_GPIO, /* usb power */ | ||
75 | 80 | ||
76 | /* PCMCIA */ | 81 | /* PCMCIA */ |
77 | GPIO48_nPOE, | 82 | GPIO48_nPOE, |
@@ -84,6 +89,45 @@ static unsigned long palmtx_pin_config[] __initdata = { | |||
84 | GPIO55_nPREG, | 89 | GPIO55_nPREG, |
85 | GPIO56_nPWAIT, | 90 | GPIO56_nPWAIT, |
86 | GPIO57_nIOIS16, | 91 | GPIO57_nIOIS16, |
92 | GPIO94_GPIO, /* wifi power 1 */ | ||
93 | GPIO108_GPIO, /* wifi power 2 */ | ||
94 | GPIO116_GPIO, /* wifi ready */ | ||
95 | |||
96 | /* MATRIX KEYPAD */ | ||
97 | GPIO100_KP_MKIN_0, | ||
98 | GPIO101_KP_MKIN_1, | ||
99 | GPIO102_KP_MKIN_2, | ||
100 | GPIO97_KP_MKIN_3, | ||
101 | GPIO103_KP_MKOUT_0, | ||
102 | GPIO104_KP_MKOUT_1, | ||
103 | GPIO105_KP_MKOUT_2, | ||
104 | |||
105 | /* LCD */ | ||
106 | GPIO58_LCD_LDD_0, | ||
107 | GPIO59_LCD_LDD_1, | ||
108 | GPIO60_LCD_LDD_2, | ||
109 | GPIO61_LCD_LDD_3, | ||
110 | GPIO62_LCD_LDD_4, | ||
111 | GPIO63_LCD_LDD_5, | ||
112 | GPIO64_LCD_LDD_6, | ||
113 | GPIO65_LCD_LDD_7, | ||
114 | GPIO66_LCD_LDD_8, | ||
115 | GPIO67_LCD_LDD_9, | ||
116 | GPIO68_LCD_LDD_10, | ||
117 | GPIO69_LCD_LDD_11, | ||
118 | GPIO70_LCD_LDD_12, | ||
119 | GPIO71_LCD_LDD_13, | ||
120 | GPIO72_LCD_LDD_14, | ||
121 | GPIO73_LCD_LDD_15, | ||
122 | GPIO74_LCD_FCLK, | ||
123 | GPIO75_LCD_LCLK, | ||
124 | GPIO76_LCD_PCLK, | ||
125 | GPIO77_LCD_BIAS, | ||
126 | |||
127 | /* MISC. */ | ||
128 | GPIO10_GPIO, /* hotsync button */ | ||
129 | GPIO12_GPIO, /* power detect */ | ||
130 | GPIO107_GPIO, /* earphone detect */ | ||
87 | }; | 131 | }; |
88 | 132 | ||
89 | /****************************************************************************** | 133 | /****************************************************************************** |
@@ -95,32 +139,49 @@ static int palmtx_mci_init(struct device *dev, irq_handler_t palmtx_detect_int, | |||
95 | int err = 0; | 139 | int err = 0; |
96 | 140 | ||
97 | /* Setup an interrupt for detecting card insert/remove events */ | 141 | /* Setup an interrupt for detecting card insert/remove events */ |
98 | err = request_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, palmtx_detect_int, | 142 | err = gpio_request(GPIO_NR_PALMTX_SD_DETECT_N, "SD IRQ"); |
99 | IRQF_DISABLED | IRQF_SAMPLE_RANDOM | | 143 | if (err) |
144 | goto err; | ||
145 | err = gpio_direction_input(GPIO_NR_PALMTX_SD_DETECT_N); | ||
146 | if (err) | ||
147 | goto err2; | ||
148 | err = request_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), | ||
149 | palmtx_detect_int, IRQF_DISABLED | IRQF_SAMPLE_RANDOM | | ||
100 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, | 150 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, |
101 | "SD/MMC card detect", data); | 151 | "SD/MMC card detect", data); |
102 | if (err) { | 152 | if (err) { |
103 | printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n", | 153 | printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n", |
104 | __func__); | 154 | __func__); |
105 | return err; | 155 | goto err2; |
106 | } | 156 | } |
107 | 157 | ||
108 | err = gpio_request(GPIO_NR_PALMTX_SD_POWER, "SD_POWER"); | 158 | err = gpio_request(GPIO_NR_PALMTX_SD_POWER, "SD_POWER"); |
109 | if (err) | 159 | if (err) |
110 | goto pwr_err; | 160 | goto err3; |
161 | err = gpio_direction_output(GPIO_NR_PALMTX_SD_POWER, 0); | ||
162 | if (err) | ||
163 | goto err4; | ||
111 | 164 | ||
112 | err = gpio_request(GPIO_NR_PALMTX_SD_READONLY, "SD_READONLY"); | 165 | err = gpio_request(GPIO_NR_PALMTX_SD_READONLY, "SD_READONLY"); |
113 | if (err) | 166 | if (err) |
114 | goto ro_err; | 167 | goto err4; |
168 | err = gpio_direction_input(GPIO_NR_PALMTX_SD_READONLY); | ||
169 | if (err) | ||
170 | goto err5; | ||
115 | 171 | ||
116 | printk(KERN_DEBUG "%s: irq registered\n", __func__); | 172 | printk(KERN_DEBUG "%s: irq registered\n", __func__); |
117 | 173 | ||
118 | return 0; | 174 | return 0; |
119 | 175 | ||
120 | ro_err: | 176 | err5: |
177 | gpio_free(GPIO_NR_PALMTX_SD_READONLY); | ||
178 | err4: | ||
121 | gpio_free(GPIO_NR_PALMTX_SD_POWER); | 179 | gpio_free(GPIO_NR_PALMTX_SD_POWER); |
122 | pwr_err: | 180 | err3: |
123 | free_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, data); | 181 | free_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), data); |
182 | err2: | ||
183 | gpio_free(GPIO_NR_PALMTX_SD_DETECT_N); | ||
184 | err: | ||
124 | return err; | 185 | return err; |
125 | } | 186 | } |
126 | 187 | ||
@@ -128,7 +189,8 @@ static void palmtx_mci_exit(struct device *dev, void *data) | |||
128 | { | 189 | { |
129 | gpio_free(GPIO_NR_PALMTX_SD_READONLY); | 190 | gpio_free(GPIO_NR_PALMTX_SD_READONLY); |
130 | gpio_free(GPIO_NR_PALMTX_SD_POWER); | 191 | gpio_free(GPIO_NR_PALMTX_SD_POWER); |
131 | free_irq(IRQ_GPIO_PALMTX_SD_DETECT_N, data); | 192 | free_irq(gpio_to_irq(GPIO_NR_PALMTX_SD_DETECT_N), data); |
193 | gpio_free(GPIO_NR_PALMTX_SD_DETECT_N); | ||
132 | } | 194 | } |
133 | 195 | ||
134 | static void palmtx_mci_power(struct device *dev, unsigned int vdd) | 196 | static void palmtx_mci_power(struct device *dev, unsigned int vdd) |
@@ -167,7 +229,6 @@ static unsigned int palmtx_matrix_keys[] = { | |||
167 | 229 | ||
168 | KEY(3, 0, KEY_RIGHT), | 230 | KEY(3, 0, KEY_RIGHT), |
169 | KEY(3, 2, KEY_LEFT), | 231 | KEY(3, 2, KEY_LEFT), |
170 | |||
171 | }; | 232 | }; |
172 | 233 | ||
173 | static struct pxa27x_keypad_platform_data palmtx_keypad_platform_data = { | 234 | static struct pxa27x_keypad_platform_data palmtx_keypad_platform_data = { |
@@ -209,11 +270,19 @@ static int palmtx_backlight_init(struct device *dev) | |||
209 | ret = gpio_request(GPIO_NR_PALMTX_BL_POWER, "BL POWER"); | 270 | ret = gpio_request(GPIO_NR_PALMTX_BL_POWER, "BL POWER"); |
210 | if (ret) | 271 | if (ret) |
211 | goto err; | 272 | goto err; |
273 | ret = gpio_direction_output(GPIO_NR_PALMTX_BL_POWER, 0); | ||
274 | if (ret) | ||
275 | goto err2; | ||
212 | ret = gpio_request(GPIO_NR_PALMTX_LCD_POWER, "LCD POWER"); | 276 | ret = gpio_request(GPIO_NR_PALMTX_LCD_POWER, "LCD POWER"); |
213 | if (ret) | 277 | if (ret) |
214 | goto err2; | 278 | goto err2; |
279 | ret = gpio_direction_output(GPIO_NR_PALMTX_LCD_POWER, 0); | ||
280 | if (ret) | ||
281 | goto err3; | ||
215 | 282 | ||
216 | return 0; | 283 | return 0; |
284 | err3: | ||
285 | gpio_free(GPIO_NR_PALMTX_LCD_POWER); | ||
217 | err2: | 286 | err2: |
218 | gpio_free(GPIO_NR_PALMTX_BL_POWER); | 287 | gpio_free(GPIO_NR_PALMTX_BL_POWER); |
219 | err: | 288 | err: |
@@ -254,6 +323,24 @@ static struct platform_device palmtx_backlight = { | |||
254 | /****************************************************************************** | 323 | /****************************************************************************** |
255 | * IrDA | 324 | * IrDA |
256 | ******************************************************************************/ | 325 | ******************************************************************************/ |
326 | static int palmtx_irda_startup(struct device *dev) | ||
327 | { | ||
328 | int err; | ||
329 | err = gpio_request(GPIO_NR_PALMTX_IR_DISABLE, "IR DISABLE"); | ||
330 | if (err) | ||
331 | goto err; | ||
332 | err = gpio_direction_output(GPIO_NR_PALMTX_IR_DISABLE, 1); | ||
333 | if (err) | ||
334 | gpio_free(GPIO_NR_PALMTX_IR_DISABLE); | ||
335 | err: | ||
336 | return err; | ||
337 | } | ||
338 | |||
339 | static void palmtx_irda_shutdown(struct device *dev) | ||
340 | { | ||
341 | gpio_free(GPIO_NR_PALMTX_IR_DISABLE); | ||
342 | } | ||
343 | |||
257 | static void palmtx_irda_transceiver_mode(struct device *dev, int mode) | 344 | static void palmtx_irda_transceiver_mode(struct device *dev, int mode) |
258 | { | 345 | { |
259 | gpio_set_value(GPIO_NR_PALMTX_IR_DISABLE, mode & IR_OFF); | 346 | gpio_set_value(GPIO_NR_PALMTX_IR_DISABLE, mode & IR_OFF); |
@@ -261,6 +348,8 @@ static void palmtx_irda_transceiver_mode(struct device *dev, int mode) | |||
261 | } | 348 | } |
262 | 349 | ||
263 | static struct pxaficp_platform_data palmtx_ficp_platform_data = { | 350 | static struct pxaficp_platform_data palmtx_ficp_platform_data = { |
351 | .startup = palmtx_irda_startup, | ||
352 | .shutdown = palmtx_irda_shutdown, | ||
264 | .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF, | 353 | .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF, |
265 | .transceiver_mode = palmtx_irda_transceiver_mode, | 354 | .transceiver_mode = palmtx_irda_transceiver_mode, |
266 | }; | 355 | }; |
@@ -268,17 +357,11 @@ static struct pxaficp_platform_data palmtx_ficp_platform_data = { | |||
268 | /****************************************************************************** | 357 | /****************************************************************************** |
269 | * UDC | 358 | * UDC |
270 | ******************************************************************************/ | 359 | ******************************************************************************/ |
271 | static void palmtx_udc_command(int cmd) | ||
272 | { | ||
273 | gpio_set_value(GPIO_NR_PALMTX_USB_POWER, !cmd); | ||
274 | udelay(50); | ||
275 | gpio_set_value(GPIO_NR_PALMTX_USB_PULLUP, !cmd); | ||
276 | } | ||
277 | |||
278 | static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = { | 360 | static struct pxa2xx_udc_mach_info palmtx_udc_info __initdata = { |
279 | .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N, | 361 | .gpio_vbus = GPIO_NR_PALMTX_USB_DETECT_N, |
280 | .gpio_vbus_inverted = 1, | 362 | .gpio_vbus_inverted = 1, |
281 | .udc_command = palmtx_udc_command, | 363 | .gpio_pullup = GPIO_NR_PALMTX_USB_POWER, |
364 | .gpio_pullup_inverted = 0, | ||
282 | }; | 365 | }; |
283 | 366 | ||
284 | /****************************************************************************** | 367 | /****************************************************************************** |
@@ -290,17 +373,16 @@ static int power_supply_init(struct device *dev) | |||
290 | 373 | ||
291 | ret = gpio_request(GPIO_NR_PALMTX_POWER_DETECT, "CABLE_STATE_AC"); | 374 | ret = gpio_request(GPIO_NR_PALMTX_POWER_DETECT, "CABLE_STATE_AC"); |
292 | if (ret) | 375 | if (ret) |
293 | goto err_cs_ac; | 376 | goto err1; |
294 | 377 | ret = gpio_direction_input(GPIO_NR_PALMTX_POWER_DETECT); | |
295 | ret = gpio_request(GPIO_NR_PALMTX_USB_DETECT_N, "CABLE_STATE_USB"); | ||
296 | if (ret) | 378 | if (ret) |
297 | goto err_cs_usb; | 379 | goto err2; |
298 | 380 | ||
299 | return 0; | 381 | return 0; |
300 | 382 | ||
301 | err_cs_usb: | 383 | err2: |
302 | gpio_free(GPIO_NR_PALMTX_POWER_DETECT); | 384 | gpio_free(GPIO_NR_PALMTX_POWER_DETECT); |
303 | err_cs_ac: | 385 | err1: |
304 | return ret; | 386 | return ret; |
305 | } | 387 | } |
306 | 388 | ||
@@ -309,14 +391,8 @@ static int palmtx_is_ac_online(void) | |||
309 | return gpio_get_value(GPIO_NR_PALMTX_POWER_DETECT); | 391 | return gpio_get_value(GPIO_NR_PALMTX_POWER_DETECT); |
310 | } | 392 | } |
311 | 393 | ||
312 | static int palmtx_is_usb_online(void) | ||
313 | { | ||
314 | return !gpio_get_value(GPIO_NR_PALMTX_USB_DETECT_N); | ||
315 | } | ||
316 | |||
317 | static void power_supply_exit(struct device *dev) | 394 | static void power_supply_exit(struct device *dev) |
318 | { | 395 | { |
319 | gpio_free(GPIO_NR_PALMTX_USB_DETECT_N); | ||
320 | gpio_free(GPIO_NR_PALMTX_POWER_DETECT); | 396 | gpio_free(GPIO_NR_PALMTX_POWER_DETECT); |
321 | } | 397 | } |
322 | 398 | ||
@@ -327,7 +403,6 @@ static char *palmtx_supplicants[] = { | |||
327 | static struct pda_power_pdata power_supply_info = { | 403 | static struct pda_power_pdata power_supply_info = { |
328 | .init = power_supply_init, | 404 | .init = power_supply_init, |
329 | .is_ac_online = palmtx_is_ac_online, | 405 | .is_ac_online = palmtx_is_ac_online, |
330 | .is_usb_online = palmtx_is_usb_online, | ||
331 | .exit = power_supply_exit, | 406 | .exit = power_supply_exit, |
332 | .supplied_to = palmtx_supplicants, | 407 | .supplied_to = palmtx_supplicants, |
333 | .num_supplicants = ARRAY_SIZE(palmtx_supplicants), | 408 | .num_supplicants = ARRAY_SIZE(palmtx_supplicants), |
@@ -410,12 +485,23 @@ static void __init palmtx_map_io(void) | |||
410 | iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc)); | 485 | iotable_init(palmtx_io_desc, ARRAY_SIZE(palmtx_io_desc)); |
411 | } | 486 | } |
412 | 487 | ||
488 | /* setup udc GPIOs initial state */ | ||
489 | static void __init palmtx_udc_init(void) | ||
490 | { | ||
491 | if (!gpio_request(GPIO_NR_PALMTX_USB_POWER, "UDC Vbus")) { | ||
492 | gpio_direction_output(GPIO_NR_PALMTX_USB_POWER, 1); | ||
493 | gpio_free(GPIO_NR_PALMTX_USB_POWER); | ||
494 | } | ||
495 | } | ||
496 | |||
497 | |||
413 | static void __init palmtx_init(void) | 498 | static void __init palmtx_init(void) |
414 | { | 499 | { |
415 | pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config)); | 500 | pxa2xx_mfp_config(ARRAY_AND_SIZE(palmtx_pin_config)); |
416 | 501 | ||
417 | set_pxa_fb_info(&palmtx_lcd_screen); | 502 | set_pxa_fb_info(&palmtx_lcd_screen); |
418 | pxa_set_mci_info(&palmtx_mci_platform_data); | 503 | pxa_set_mci_info(&palmtx_mci_platform_data); |
504 | palmtx_udc_init(); | ||
419 | pxa_set_udc_info(&palmtx_udc_info); | 505 | pxa_set_udc_info(&palmtx_udc_info); |
420 | pxa_set_ac97_info(NULL); | 506 | pxa_set_ac97_info(NULL); |
421 | pxa_set_ficp_info(&palmtx_ficp_platform_data); | 507 | pxa_set_ficp_info(&palmtx_ficp_platform_data); |
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c index f601425f1b1e..b36cec5c9eed 100644 --- a/arch/arm/mach-pxa/pcm990-baseboard.c +++ b/arch/arm/mach-pxa/pcm990-baseboard.c | |||
@@ -385,6 +385,7 @@ static struct soc_camera_link iclink[] = { | |||
385 | .gpio = NR_BUILTIN_GPIO + 1, | 385 | .gpio = NR_BUILTIN_GPIO + 1, |
386 | }, { | 386 | }, { |
387 | .bus_id = 0, /* Must match with the camera ID above */ | 387 | .bus_id = 0, /* Must match with the camera ID above */ |
388 | .gpio = -ENXIO, | ||
388 | } | 389 | } |
389 | }; | 390 | }; |
390 | 391 | ||
diff --git a/arch/arm/mach-s3c2410/include/mach/spi-gpio.h b/arch/arm/mach-s3c2410/include/mach/spi-gpio.h index 3fe8be9ca110..980a099e209c 100644 --- a/arch/arm/mach-s3c2410/include/mach/spi-gpio.h +++ b/arch/arm/mach-s3c2410/include/mach/spi-gpio.h | |||
@@ -18,6 +18,7 @@ struct s3c2410_spigpio_info { | |||
18 | unsigned long pin_mosi; | 18 | unsigned long pin_mosi; |
19 | unsigned long pin_miso; | 19 | unsigned long pin_miso; |
20 | 20 | ||
21 | int num_chipselect; | ||
21 | int bus_num; | 22 | int bus_num; |
22 | 23 | ||
23 | void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs); | 24 | void (*chip_select)(struct s3c2410_spigpio_info *spi, int cs); |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 8679fbca6bbe..424049d83fbe 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -101,6 +101,7 @@ | |||
101 | #define OMAP24XX_GPIO_IRQSTATUS2 0x0028 | 101 | #define OMAP24XX_GPIO_IRQSTATUS2 0x0028 |
102 | #define OMAP24XX_GPIO_IRQENABLE2 0x002c | 102 | #define OMAP24XX_GPIO_IRQENABLE2 0x002c |
103 | #define OMAP24XX_GPIO_IRQENABLE1 0x001c | 103 | #define OMAP24XX_GPIO_IRQENABLE1 0x001c |
104 | #define OMAP24XX_GPIO_WAKE_EN 0x0020 | ||
104 | #define OMAP24XX_GPIO_CTRL 0x0030 | 105 | #define OMAP24XX_GPIO_CTRL 0x0030 |
105 | #define OMAP24XX_GPIO_OE 0x0034 | 106 | #define OMAP24XX_GPIO_OE 0x0034 |
106 | #define OMAP24XX_GPIO_DATAIN 0x0038 | 107 | #define OMAP24XX_GPIO_DATAIN 0x0038 |
@@ -1551,7 +1552,7 @@ static int omap_gpio_suspend(struct sys_device *dev, pm_message_t mesg) | |||
1551 | #endif | 1552 | #endif |
1552 | #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) | 1553 | #if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX) |
1553 | case METHOD_GPIO_24XX: | 1554 | case METHOD_GPIO_24XX: |
1554 | wake_status = bank->base + OMAP24XX_GPIO_SETWKUENA; | 1555 | wake_status = bank->base + OMAP24XX_GPIO_WAKE_EN; |
1555 | wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA; | 1556 | wake_clear = bank->base + OMAP24XX_GPIO_CLEARWKUENA; |
1556 | wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA; | 1557 | wake_set = bank->base + OMAP24XX_GPIO_SETWKUENA; |
1557 | break; | 1558 | break; |
@@ -1574,7 +1575,7 @@ static int omap_gpio_resume(struct sys_device *dev) | |||
1574 | { | 1575 | { |
1575 | int i; | 1576 | int i; |
1576 | 1577 | ||
1577 | if (!cpu_is_omap24xx() && !cpu_is_omap16xx()) | 1578 | if (!cpu_class_is_omap2() && !cpu_is_omap16xx()) |
1578 | return 0; | 1579 | return 0; |
1579 | 1580 | ||
1580 | for (i = 0; i < gpio_bank_count; i++) { | 1581 | for (i = 0; i < gpio_bank_count; i++) { |
diff --git a/arch/arm/plat-omap/include/mach/pm.h b/arch/arm/plat-omap/include/mach/pm.h index 768eb6e7abcf..2a9c27ad4c37 100644 --- a/arch/arm/plat-omap/include/mach/pm.h +++ b/arch/arm/plat-omap/include/mach/pm.h | |||
@@ -128,7 +128,7 @@ void clk_deny_idle(struct clk *clk); | |||
128 | * clk_allow_idle - Counters previous clk_deny_idle | 128 | * clk_allow_idle - Counters previous clk_deny_idle |
129 | * @clk: clock signal handle | 129 | * @clk: clock signal handle |
130 | */ | 130 | */ |
131 | void clk_deny_idle(struct clk *clk); | 131 | void clk_allow_idle(struct clk *clk); |
132 | 132 | ||
133 | extern void omap_pm_idle(void); | 133 | extern void omap_pm_idle(void); |
134 | extern void omap_pm_suspend(void); | 134 | extern void omap_pm_suspend(void); |
diff --git a/arch/frv/kernel/sys_frv.c b/arch/frv/kernel/sys_frv.c index 49b2cf2c38f3..baadc97f8627 100644 --- a/arch/frv/kernel/sys_frv.c +++ b/arch/frv/kernel/sys_frv.c | |||
@@ -35,22 +35,21 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, | |||
35 | int error = -EBADF; | 35 | int error = -EBADF; |
36 | struct file * file = NULL; | 36 | struct file * file = NULL; |
37 | 37 | ||
38 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); | ||
39 | if (!(flags & MAP_ANONYMOUS)) { | ||
40 | file = fget(fd); | ||
41 | if (!file) | ||
42 | goto out; | ||
43 | } | ||
44 | |||
45 | /* As with sparc32, make sure the shift for mmap2 is constant | 38 | /* As with sparc32, make sure the shift for mmap2 is constant |
46 | (12), no matter what PAGE_SIZE we have.... */ | 39 | (12), no matter what PAGE_SIZE we have.... */ |
47 | 40 | ||
48 | /* But unlike sparc32, don't just silently break if we're | 41 | /* But unlike sparc32, don't just silently break if we're |
49 | trying to map something we can't */ | 42 | trying to map something we can't */ |
50 | if (pgoff & ((1<<(PAGE_SHIFT-12))-1)) | 43 | if (pgoff & ((1 << (PAGE_SHIFT - 12)) - 1)) |
51 | return -EINVAL; | 44 | return -EINVAL; |
45 | pgoff >>= PAGE_SHIFT - 12; | ||
52 | 46 | ||
53 | pgoff >>= (PAGE_SHIFT - 12); | 47 | flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE); |
48 | if (!(flags & MAP_ANONYMOUS)) { | ||
49 | file = fget(fd); | ||
50 | if (!file) | ||
51 | goto out; | ||
52 | } | ||
54 | 53 | ||
55 | down_write(¤t->mm->mmap_sem); | 54 | down_write(¤t->mm->mmap_sem); |
56 | error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); | 55 | error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff); |
diff --git a/arch/ia64/include/asm/ptrace.h b/arch/ia64/include/asm/ptrace.h index 6417c1ecb44e..14055c636adf 100644 --- a/arch/ia64/include/asm/ptrace.h +++ b/arch/ia64/include/asm/ptrace.h | |||
@@ -325,8 +325,6 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs) | |||
325 | #define arch_has_block_step() (1) | 325 | #define arch_has_block_step() (1) |
326 | extern void user_enable_block_step(struct task_struct *); | 326 | extern void user_enable_block_step(struct task_struct *); |
327 | 327 | ||
328 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
329 | |||
330 | #endif /* !__KERNEL__ */ | 328 | #endif /* !__KERNEL__ */ |
331 | 329 | ||
332 | /* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ | 330 | /* pt_all_user_regs is used for PTRACE_GETREGS PTRACE_SETREGS */ |
diff --git a/arch/ia64/sn/kernel/io_init.c b/arch/ia64/sn/kernel/io_init.c index c3aa851d1ca6..4e1801bad83a 100644 --- a/arch/ia64/sn/kernel/io_init.c +++ b/arch/ia64/sn/kernel/io_init.c | |||
@@ -292,7 +292,7 @@ EXPORT_SYMBOL(sn_io_slot_fixup); | |||
292 | * sn_pci_controller_fixup() - This routine sets up a bus's resources | 292 | * sn_pci_controller_fixup() - This routine sets up a bus's resources |
293 | * consistent with the Linux PCI abstraction layer. | 293 | * consistent with the Linux PCI abstraction layer. |
294 | */ | 294 | */ |
295 | static void | 295 | static void __init |
296 | sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus) | 296 | sn_pci_controller_fixup(int segment, int busnum, struct pci_bus *bus) |
297 | { | 297 | { |
298 | s64 status = 0; | 298 | s64 status = 0; |
diff --git a/arch/m32r/kernel/head.S b/arch/m32r/kernel/head.S index 40180778a5c7..90916067b9c1 100644 --- a/arch/m32r/kernel/head.S +++ b/arch/m32r/kernel/head.S | |||
@@ -23,7 +23,7 @@ __INITDATA | |||
23 | /* | 23 | /* |
24 | * References to members of the boot_cpu_data structure. | 24 | * References to members of the boot_cpu_data structure. |
25 | */ | 25 | */ |
26 | .text | 26 | .section .text.head, "ax" |
27 | .global start_kernel | 27 | .global start_kernel |
28 | .global __bss_start | 28 | .global __bss_start |
29 | .global _end | 29 | .global _end |
@@ -133,7 +133,6 @@ loop1: | |||
133 | /* | 133 | /* |
134 | * AP startup routine | 134 | * AP startup routine |
135 | */ | 135 | */ |
136 | .text | ||
137 | .global eit_vector | 136 | .global eit_vector |
138 | ENTRY(startup_AP) | 137 | ENTRY(startup_AP) |
139 | ;; setup EVB | 138 | ;; setup EVB |
@@ -230,6 +229,7 @@ ENTRY(startup_AP) | |||
230 | nop | 229 | nop |
231 | #endif /* CONFIG_SMP */ | 230 | #endif /* CONFIG_SMP */ |
232 | 231 | ||
232 | .text | ||
233 | ENTRY(stack_start) | 233 | ENTRY(stack_start) |
234 | .long init_thread_union+8192 | 234 | .long init_thread_union+8192 |
235 | .long __KERNEL_DS | 235 | .long __KERNEL_DS |
diff --git a/arch/m32r/kernel/vmlinux.lds.S b/arch/m32r/kernel/vmlinux.lds.S index 15a6f36c06db..9db05df20c0e 100644 --- a/arch/m32r/kernel/vmlinux.lds.S +++ b/arch/m32r/kernel/vmlinux.lds.S | |||
@@ -27,6 +27,7 @@ SECTIONS | |||
27 | _text = .; /* Text and read-only data */ | 27 | _text = .; /* Text and read-only data */ |
28 | .boot : { *(.boot) } = 0 | 28 | .boot : { *(.boot) } = 0 |
29 | .text : { | 29 | .text : { |
30 | *(.text.head) | ||
30 | TEXT_TEXT | 31 | TEXT_TEXT |
31 | SCHED_TEXT | 32 | SCHED_TEXT |
32 | LOCK_TEXT | 33 | LOCK_TEXT |
diff --git a/arch/mips/include/asm/bug.h b/arch/mips/include/asm/bug.h index 7eb63de808bc..08ea46863fe5 100644 --- a/arch/mips/include/asm/bug.h +++ b/arch/mips/include/asm/bug.h | |||
@@ -7,20 +7,31 @@ | |||
7 | 7 | ||
8 | #include <asm/break.h> | 8 | #include <asm/break.h> |
9 | 9 | ||
10 | #define BUG() \ | 10 | static inline void __noreturn BUG(void) |
11 | do { \ | 11 | { |
12 | __asm__ __volatile__("break %0" : : "i" (BRK_BUG)); \ | 12 | __asm__ __volatile__("break %0" : : "i" (BRK_BUG)); |
13 | } while (0) | 13 | /* Fool GCC into thinking the function doesn't return. */ |
14 | while (1) | ||
15 | ; | ||
16 | } | ||
14 | 17 | ||
15 | #define HAVE_ARCH_BUG | 18 | #define HAVE_ARCH_BUG |
16 | 19 | ||
17 | #if (_MIPS_ISA > _MIPS_ISA_MIPS1) | 20 | #if (_MIPS_ISA > _MIPS_ISA_MIPS1) |
18 | 21 | ||
19 | #define BUG_ON(condition) \ | 22 | static inline void __BUG_ON(unsigned long condition) |
20 | do { \ | 23 | { |
21 | __asm__ __volatile__("tne $0, %0, %1" \ | 24 | if (__builtin_constant_p(condition)) { |
22 | : : "r" (condition), "i" (BRK_BUG)); \ | 25 | if (condition) |
23 | } while (0) | 26 | BUG(); |
27 | else | ||
28 | return; | ||
29 | } | ||
30 | __asm__ __volatile__("tne $0, %0, %1" | ||
31 | : : "r" (condition), "i" (BRK_BUG)); | ||
32 | } | ||
33 | |||
34 | #define BUG_ON(C) __BUG_ON((unsigned long)(C)) | ||
24 | 35 | ||
25 | #define HAVE_ARCH_BUG_ON | 36 | #define HAVE_ARCH_BUG_ON |
26 | 37 | ||
diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h index 813abd16255d..c2c8bac43307 100644 --- a/arch/mips/include/asm/ptrace.h +++ b/arch/mips/include/asm/ptrace.h | |||
@@ -9,10 +9,6 @@ | |||
9 | #ifndef _ASM_PTRACE_H | 9 | #ifndef _ASM_PTRACE_H |
10 | #define _ASM_PTRACE_H | 10 | #define _ASM_PTRACE_H |
11 | 11 | ||
12 | #ifdef CONFIG_64BIT | ||
13 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
14 | #endif | ||
15 | |||
16 | /* 0 - 31 are integer registers, 32 - 63 are fp registers. */ | 12 | /* 0 - 31 are integer registers, 32 - 63 are fp registers. */ |
17 | #define FPR_BASE 32 | 13 | #define FPR_BASE 32 |
18 | #define PC 64 | 14 | #define PC 64 |
diff --git a/arch/mn10300/kernel/gdb-stub.c b/arch/mn10300/kernel/gdb-stub.c index 54be6afb5555..0ea7482c1522 100644 --- a/arch/mn10300/kernel/gdb-stub.c +++ b/arch/mn10300/kernel/gdb-stub.c | |||
@@ -522,17 +522,7 @@ static int gdbstub_single_step(struct pt_regs *regs) | |||
522 | } else { | 522 | } else { |
523 | switch (cur) { | 523 | switch (cur) { |
524 | /* Bxx (d8,PC) */ | 524 | /* Bxx (d8,PC) */ |
525 | case 0xc0: | 525 | case 0xc0 ... 0xca: |
526 | case 0xc1: | ||
527 | case 0xc2: | ||
528 | case 0xc3: | ||
529 | case 0xc4: | ||
530 | case 0xc5: | ||
531 | case 0xc6: | ||
532 | case 0xc7: | ||
533 | case 0xc8: | ||
534 | case 0xc9: | ||
535 | case 0xca: | ||
536 | if (gdbstub_read_byte(pc + 1, (u8 *) &x) < 0) | 526 | if (gdbstub_read_byte(pc + 1, (u8 *) &x) < 0) |
537 | goto fault; | 527 | goto fault; |
538 | if (!__gdbstub_mark_bp(pc + 2, 0)) | 528 | if (!__gdbstub_mark_bp(pc + 2, 0)) |
@@ -543,17 +533,7 @@ static int gdbstub_single_step(struct pt_regs *regs) | |||
543 | break; | 533 | break; |
544 | 534 | ||
545 | /* LXX (d8,PC) */ | 535 | /* LXX (d8,PC) */ |
546 | case 0xd0: | 536 | case 0xd0 ... 0xda: |
547 | case 0xd1: | ||
548 | case 0xd2: | ||
549 | case 0xd3: | ||
550 | case 0xd4: | ||
551 | case 0xd5: | ||
552 | case 0xd6: | ||
553 | case 0xd7: | ||
554 | case 0xd8: | ||
555 | case 0xd9: | ||
556 | case 0xda: | ||
557 | if (!__gdbstub_mark_bp(pc + 1, 0)) | 537 | if (!__gdbstub_mark_bp(pc + 1, 0)) |
558 | goto fault; | 538 | goto fault; |
559 | if (regs->pc != regs->lar && | 539 | if (regs->pc != regs->lar && |
diff --git a/arch/parisc/include/asm/parisc-device.h b/arch/parisc/include/asm/parisc-device.h index 7aa13f2add7a..9afdad6c2ffb 100644 --- a/arch/parisc/include/asm/parisc-device.h +++ b/arch/parisc/include/asm/parisc-device.h | |||
@@ -42,9 +42,9 @@ struct parisc_driver { | |||
42 | #define to_parisc_driver(d) container_of(d, struct parisc_driver, drv) | 42 | #define to_parisc_driver(d) container_of(d, struct parisc_driver, drv) |
43 | #define parisc_parent(d) to_parisc_device(d->dev.parent) | 43 | #define parisc_parent(d) to_parisc_device(d->dev.parent) |
44 | 44 | ||
45 | static inline char *parisc_pathname(struct parisc_device *d) | 45 | static inline const char *parisc_pathname(struct parisc_device *d) |
46 | { | 46 | { |
47 | return d->dev.bus_id; | 47 | return dev_name(&d->dev); |
48 | } | 48 | } |
49 | 49 | ||
50 | static inline void | 50 | static inline void |
diff --git a/arch/parisc/include/asm/posix_types.h b/arch/parisc/include/asm/posix_types.h index bb725a6630bb..00da29a340ba 100644 --- a/arch/parisc/include/asm/posix_types.h +++ b/arch/parisc/include/asm/posix_types.h | |||
@@ -24,13 +24,12 @@ typedef int __kernel_daddr_t; | |||
24 | typedef unsigned long __kernel_size_t; | 24 | typedef unsigned long __kernel_size_t; |
25 | typedef long __kernel_ssize_t; | 25 | typedef long __kernel_ssize_t; |
26 | typedef long __kernel_ptrdiff_t; | 26 | typedef long __kernel_ptrdiff_t; |
27 | typedef long __kernel_time_t; | ||
28 | #else | 27 | #else |
29 | typedef unsigned int __kernel_size_t; | 28 | typedef unsigned int __kernel_size_t; |
30 | typedef int __kernel_ssize_t; | 29 | typedef int __kernel_ssize_t; |
31 | typedef int __kernel_ptrdiff_t; | 30 | typedef int __kernel_ptrdiff_t; |
32 | typedef long __kernel_time_t; | ||
33 | #endif | 31 | #endif |
32 | typedef long __kernel_time_t; | ||
34 | typedef char * __kernel_caddr_t; | 33 | typedef char * __kernel_caddr_t; |
35 | 34 | ||
36 | typedef unsigned short __kernel_uid16_t; | 35 | typedef unsigned short __kernel_uid16_t; |
diff --git a/arch/parisc/include/asm/ptrace.h b/arch/parisc/include/asm/ptrace.h index afa5333187b4..302f68dc889c 100644 --- a/arch/parisc/include/asm/ptrace.h +++ b/arch/parisc/include/asm/ptrace.h | |||
@@ -47,8 +47,6 @@ struct pt_regs { | |||
47 | 47 | ||
48 | #define task_regs(task) ((struct pt_regs *) ((char *)(task) + TASK_REGS)) | 48 | #define task_regs(task) ((struct pt_regs *) ((char *)(task) + TASK_REGS)) |
49 | 49 | ||
50 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
51 | |||
52 | struct task_struct; | 50 | struct task_struct; |
53 | #define arch_has_single_step() 1 | 51 | #define arch_has_single_step() 1 |
54 | void user_disable_single_step(struct task_struct *task); | 52 | void user_disable_single_step(struct task_struct *task); |
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c index 2ca654bd6322..884b7ce16a3b 100644 --- a/arch/parisc/kernel/drivers.c +++ b/arch/parisc/kernel/drivers.c | |||
@@ -43,7 +43,7 @@ struct hppa_dma_ops *hppa_dma_ops __read_mostly; | |||
43 | EXPORT_SYMBOL(hppa_dma_ops); | 43 | EXPORT_SYMBOL(hppa_dma_ops); |
44 | 44 | ||
45 | static struct device root = { | 45 | static struct device root = { |
46 | .bus_id = "parisc", | 46 | .init_name = "parisc", |
47 | }; | 47 | }; |
48 | 48 | ||
49 | static inline int check_dev(struct device *dev) | 49 | static inline int check_dev(struct device *dev) |
@@ -393,7 +393,8 @@ EXPORT_SYMBOL(print_pci_hwpath); | |||
393 | static void setup_bus_id(struct parisc_device *padev) | 393 | static void setup_bus_id(struct parisc_device *padev) |
394 | { | 394 | { |
395 | struct hardware_path path; | 395 | struct hardware_path path; |
396 | char *output = padev->dev.bus_id; | 396 | char name[20]; |
397 | char *output = name; | ||
397 | int i; | 398 | int i; |
398 | 399 | ||
399 | get_node_path(padev->dev.parent, &path); | 400 | get_node_path(padev->dev.parent, &path); |
@@ -404,6 +405,7 @@ static void setup_bus_id(struct parisc_device *padev) | |||
404 | output += sprintf(output, "%u:", (unsigned char) path.bc[i]); | 405 | output += sprintf(output, "%u:", (unsigned char) path.bc[i]); |
405 | } | 406 | } |
406 | sprintf(output, "%u", (unsigned char) padev->hw_path); | 407 | sprintf(output, "%u", (unsigned char) padev->hw_path); |
408 | dev_set_name(&padev->dev, name); | ||
407 | } | 409 | } |
408 | 410 | ||
409 | struct parisc_device * create_tree_node(char id, struct device *parent) | 411 | struct parisc_device * create_tree_node(char id, struct device *parent) |
diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 675f1d098f05..4c771cd580ec 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
26 | #include <linux/console.h> | 26 | #include <linux/console.h> |
27 | #include <linux/kallsyms.h> | ||
28 | #include <linux/bug.h> | 27 | #include <linux/bug.h> |
29 | 28 | ||
30 | #include <asm/assembly.h> | 29 | #include <asm/assembly.h> |
@@ -51,7 +50,7 @@ | |||
51 | DEFINE_SPINLOCK(pa_dbit_lock); | 50 | DEFINE_SPINLOCK(pa_dbit_lock); |
52 | #endif | 51 | #endif |
53 | 52 | ||
54 | void parisc_show_stack(struct task_struct *t, unsigned long *sp, | 53 | static void parisc_show_stack(struct task_struct *task, unsigned long *sp, |
55 | struct pt_regs *regs); | 54 | struct pt_regs *regs); |
56 | 55 | ||
57 | static int printbinary(char *buf, unsigned long x, int nbits) | 56 | static int printbinary(char *buf, unsigned long x, int nbits) |
@@ -121,18 +120,19 @@ static void print_fr(char *level, struct pt_regs *regs) | |||
121 | 120 | ||
122 | void show_regs(struct pt_regs *regs) | 121 | void show_regs(struct pt_regs *regs) |
123 | { | 122 | { |
124 | int i; | 123 | int i, user; |
125 | char *level; | 124 | char *level; |
126 | unsigned long cr30, cr31; | 125 | unsigned long cr30, cr31; |
127 | 126 | ||
128 | level = user_mode(regs) ? KERN_DEBUG : KERN_CRIT; | 127 | user = user_mode(regs); |
128 | level = user ? KERN_DEBUG : KERN_CRIT; | ||
129 | 129 | ||
130 | print_gr(level, regs); | 130 | print_gr(level, regs); |
131 | 131 | ||
132 | for (i = 0; i < 8; i += 4) | 132 | for (i = 0; i < 8; i += 4) |
133 | PRINTREGS(level, regs->sr, "sr", RFMT, i); | 133 | PRINTREGS(level, regs->sr, "sr", RFMT, i); |
134 | 134 | ||
135 | if (user_mode(regs)) | 135 | if (user) |
136 | print_fr(level, regs); | 136 | print_fr(level, regs); |
137 | 137 | ||
138 | cr30 = mfctl(30); | 138 | cr30 = mfctl(30); |
@@ -145,14 +145,18 @@ void show_regs(struct pt_regs *regs) | |||
145 | printk("%s CPU: %8d CR30: " RFMT " CR31: " RFMT "\n", | 145 | printk("%s CPU: %8d CR30: " RFMT " CR31: " RFMT "\n", |
146 | level, current_thread_info()->cpu, cr30, cr31); | 146 | level, current_thread_info()->cpu, cr30, cr31); |
147 | printk("%s ORIG_R28: " RFMT "\n", level, regs->orig_r28); | 147 | printk("%s ORIG_R28: " RFMT "\n", level, regs->orig_r28); |
148 | printk(level); | 148 | |
149 | print_symbol(" IAOQ[0]: %s\n", regs->iaoq[0]); | 149 | if (user) { |
150 | printk(level); | 150 | printk("%s IAOQ[0]: " RFMT "\n", level, regs->iaoq[0]); |
151 | print_symbol(" IAOQ[1]: %s\n", regs->iaoq[1]); | 151 | printk("%s IAOQ[1]: " RFMT "\n", level, regs->iaoq[1]); |
152 | printk(level); | 152 | printk("%s RP(r2): " RFMT "\n", level, regs->gr[2]); |
153 | print_symbol(" RP(r2): %s\n", regs->gr[2]); | 153 | } else { |
154 | 154 | printk("%s IAOQ[0]: %pS\n", level, (void *) regs->iaoq[0]); | |
155 | parisc_show_stack(current, NULL, regs); | 155 | printk("%s IAOQ[1]: %pS\n", level, (void *) regs->iaoq[1]); |
156 | printk("%s RP(r2): %pS\n", level, (void *) regs->gr[2]); | ||
157 | |||
158 | parisc_show_stack(current, NULL, regs); | ||
159 | } | ||
156 | } | 160 | } |
157 | 161 | ||
158 | 162 | ||
@@ -173,20 +177,15 @@ static void do_show_stack(struct unwind_frame_info *info) | |||
173 | break; | 177 | break; |
174 | 178 | ||
175 | if (__kernel_text_address(info->ip)) { | 179 | if (__kernel_text_address(info->ip)) { |
176 | printk("%s [<" RFMT ">] ", (i&0x3)==1 ? KERN_CRIT : "", info->ip); | 180 | printk(KERN_CRIT " [<" RFMT ">] %pS\n", |
177 | #ifdef CONFIG_KALLSYMS | 181 | info->ip, (void *) info->ip); |
178 | print_symbol("%s\n", info->ip); | ||
179 | #else | ||
180 | if ((i & 0x03) == 0) | ||
181 | printk("\n"); | ||
182 | #endif | ||
183 | i++; | 182 | i++; |
184 | } | 183 | } |
185 | } | 184 | } |
186 | printk("\n"); | 185 | printk(KERN_CRIT "\n"); |
187 | } | 186 | } |
188 | 187 | ||
189 | void parisc_show_stack(struct task_struct *task, unsigned long *sp, | 188 | static void parisc_show_stack(struct task_struct *task, unsigned long *sp, |
190 | struct pt_regs *regs) | 189 | struct pt_regs *regs) |
191 | { | 190 | { |
192 | struct unwind_frame_info info; | 191 | struct unwind_frame_info info; |
diff --git a/arch/powerpc/boot/dts/mpc832x_rdb.dts b/arch/powerpc/boot/dts/mpc832x_rdb.dts index 226ff066652b..dea30910c136 100644 --- a/arch/powerpc/boot/dts/mpc832x_rdb.dts +++ b/arch/powerpc/boot/dts/mpc832x_rdb.dts | |||
@@ -18,8 +18,8 @@ | |||
18 | #size-cells = <1>; | 18 | #size-cells = <1>; |
19 | 19 | ||
20 | aliases { | 20 | aliases { |
21 | ethernet0 = &enet0; | 21 | ethernet0 = &enet1; |
22 | ethernet1 = &enet1; | 22 | ethernet1 = &enet0; |
23 | serial0 = &serial0; | 23 | serial0 = &serial0; |
24 | serial1 = &serial1; | 24 | serial1 = &serial1; |
25 | pci0 = &pci0; | 25 | pci0 = &pci0; |
diff --git a/arch/powerpc/boot/dts/mpc8572ds.dts b/arch/powerpc/boot/dts/mpc8572ds.dts index cadd4652a695..5c69b2fafd32 100644 --- a/arch/powerpc/boot/dts/mpc8572ds.dts +++ b/arch/powerpc/boot/dts/mpc8572ds.dts | |||
@@ -90,7 +90,7 @@ | |||
90 | compatible = "fsl,mpc8572-l2-cache-controller"; | 90 | compatible = "fsl,mpc8572-l2-cache-controller"; |
91 | reg = <0x20000 0x1000>; | 91 | reg = <0x20000 0x1000>; |
92 | cache-line-size = <32>; // 32 bytes | 92 | cache-line-size = <32>; // 32 bytes |
93 | cache-size = <0x80000>; // L2, 512K | 93 | cache-size = <0x100000>; // L2, 1M |
94 | interrupt-parent = <&mpic>; | 94 | interrupt-parent = <&mpic>; |
95 | interrupts = <16 2>; | 95 | interrupts = <16 2>; |
96 | }; | 96 | }; |
diff --git a/arch/powerpc/configs/40x/virtex_defconfig b/arch/powerpc/configs/40x/virtex_defconfig new file mode 100644 index 000000000000..9a9350ded292 --- /dev/null +++ b/arch/powerpc/configs/40x/virtex_defconfig | |||
@@ -0,0 +1,1176 @@ | |||
1 | # | ||
2 | # Automatically generated make config: don't edit | ||
3 | # Linux kernel version: 2.6.28-rc4 | ||
4 | # Fri Nov 14 10:49:16 2008 | ||
5 | # | ||
6 | # CONFIG_PPC64 is not set | ||
7 | |||
8 | # | ||
9 | # Processor support | ||
10 | # | ||
11 | # CONFIG_6xx is not set | ||
12 | # CONFIG_PPC_85xx is not set | ||
13 | # CONFIG_PPC_8xx is not set | ||
14 | CONFIG_40x=y | ||
15 | # CONFIG_44x is not set | ||
16 | # CONFIG_E200 is not set | ||
17 | CONFIG_4xx=y | ||
18 | # CONFIG_PPC_MM_SLICES is not set | ||
19 | CONFIG_NOT_COHERENT_CACHE=y | ||
20 | CONFIG_PPC32=y | ||
21 | CONFIG_WORD_SIZE=32 | ||
22 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set | ||
23 | CONFIG_MMU=y | ||
24 | CONFIG_GENERIC_CMOS_UPDATE=y | ||
25 | CONFIG_GENERIC_TIME=y | ||
26 | CONFIG_GENERIC_TIME_VSYSCALL=y | ||
27 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
28 | CONFIG_GENERIC_HARDIRQS=y | ||
29 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
30 | CONFIG_IRQ_PER_CPU=y | ||
31 | CONFIG_STACKTRACE_SUPPORT=y | ||
32 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
33 | CONFIG_LOCKDEP_SUPPORT=y | ||
34 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | ||
35 | CONFIG_ARCH_HAS_ILOG2_U32=y | ||
36 | CONFIG_GENERIC_HWEIGHT=y | ||
37 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
38 | CONFIG_GENERIC_FIND_NEXT_BIT=y | ||
39 | CONFIG_GENERIC_GPIO=y | ||
40 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | ||
41 | CONFIG_PPC=y | ||
42 | CONFIG_EARLY_PRINTK=y | ||
43 | CONFIG_GENERIC_NVRAM=y | ||
44 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | ||
45 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | ||
46 | CONFIG_PPC_OF=y | ||
47 | CONFIG_OF=y | ||
48 | CONFIG_PPC_UDBG_16550=y | ||
49 | # CONFIG_GENERIC_TBSYNC is not set | ||
50 | CONFIG_AUDIT_ARCH=y | ||
51 | CONFIG_GENERIC_BUG=y | ||
52 | # CONFIG_DEFAULT_UIMAGE is not set | ||
53 | CONFIG_PPC_DCR_NATIVE=y | ||
54 | # CONFIG_PPC_DCR_MMIO is not set | ||
55 | CONFIG_PPC_DCR=y | ||
56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | ||
57 | |||
58 | # | ||
59 | # General setup | ||
60 | # | ||
61 | CONFIG_EXPERIMENTAL=y | ||
62 | CONFIG_BROKEN_ON_SMP=y | ||
63 | CONFIG_LOCK_KERNEL=y | ||
64 | CONFIG_INIT_ENV_ARG_LIMIT=32 | ||
65 | CONFIG_LOCALVERSION="" | ||
66 | # CONFIG_LOCALVERSION_AUTO is not set | ||
67 | CONFIG_SWAP=y | ||
68 | CONFIG_SYSVIPC=y | ||
69 | CONFIG_SYSVIPC_SYSCTL=y | ||
70 | CONFIG_POSIX_MQUEUE=y | ||
71 | # CONFIG_BSD_PROCESS_ACCT is not set | ||
72 | # CONFIG_TASKSTATS is not set | ||
73 | # CONFIG_AUDIT is not set | ||
74 | CONFIG_IKCONFIG=y | ||
75 | CONFIG_IKCONFIG_PROC=y | ||
76 | CONFIG_LOG_BUF_SHIFT=14 | ||
77 | # CONFIG_CGROUPS is not set | ||
78 | # CONFIG_GROUP_SCHED is not set | ||
79 | CONFIG_SYSFS_DEPRECATED=y | ||
80 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
81 | # CONFIG_RELAY is not set | ||
82 | CONFIG_NAMESPACES=y | ||
83 | # CONFIG_UTS_NS is not set | ||
84 | # CONFIG_IPC_NS is not set | ||
85 | # CONFIG_USER_NS is not set | ||
86 | # CONFIG_PID_NS is not set | ||
87 | CONFIG_BLK_DEV_INITRD=y | ||
88 | CONFIG_INITRAMFS_SOURCE="" | ||
89 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | ||
90 | CONFIG_SYSCTL=y | ||
91 | # CONFIG_EMBEDDED is not set | ||
92 | CONFIG_SYSCTL_SYSCALL=y | ||
93 | CONFIG_KALLSYMS=y | ||
94 | # CONFIG_KALLSYMS_ALL is not set | ||
95 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | ||
96 | CONFIG_HOTPLUG=y | ||
97 | CONFIG_PRINTK=y | ||
98 | CONFIG_BUG=y | ||
99 | CONFIG_ELF_CORE=y | ||
100 | CONFIG_COMPAT_BRK=y | ||
101 | CONFIG_BASE_FULL=y | ||
102 | CONFIG_FUTEX=y | ||
103 | CONFIG_ANON_INODES=y | ||
104 | CONFIG_EPOLL=y | ||
105 | CONFIG_SIGNALFD=y | ||
106 | CONFIG_TIMERFD=y | ||
107 | CONFIG_EVENTFD=y | ||
108 | CONFIG_SHMEM=y | ||
109 | CONFIG_AIO=y | ||
110 | CONFIG_VM_EVENT_COUNTERS=y | ||
111 | CONFIG_PCI_QUIRKS=y | ||
112 | CONFIG_SLAB=y | ||
113 | # CONFIG_SLUB is not set | ||
114 | # CONFIG_SLOB is not set | ||
115 | # CONFIG_PROFILING is not set | ||
116 | # CONFIG_MARKERS is not set | ||
117 | CONFIG_HAVE_OPROFILE=y | ||
118 | # CONFIG_KPROBES is not set | ||
119 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
120 | CONFIG_HAVE_IOREMAP_PROT=y | ||
121 | CONFIG_HAVE_KPROBES=y | ||
122 | CONFIG_HAVE_KRETPROBES=y | ||
123 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
124 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
125 | CONFIG_SLABINFO=y | ||
126 | CONFIG_RT_MUTEXES=y | ||
127 | # CONFIG_TINY_SHMEM is not set | ||
128 | CONFIG_BASE_SMALL=0 | ||
129 | CONFIG_MODULES=y | ||
130 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
131 | CONFIG_MODULE_UNLOAD=y | ||
132 | CONFIG_MODULE_FORCE_UNLOAD=y | ||
133 | CONFIG_MODVERSIONS=y | ||
134 | # CONFIG_MODULE_SRCVERSION_ALL is not set | ||
135 | CONFIG_KMOD=y | ||
136 | CONFIG_BLOCK=y | ||
137 | # CONFIG_LBD is not set | ||
138 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
139 | # CONFIG_LSF is not set | ||
140 | # CONFIG_BLK_DEV_BSG is not set | ||
141 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
142 | |||
143 | # | ||
144 | # IO Schedulers | ||
145 | # | ||
146 | CONFIG_IOSCHED_NOOP=y | ||
147 | CONFIG_IOSCHED_AS=y | ||
148 | CONFIG_IOSCHED_DEADLINE=y | ||
149 | CONFIG_IOSCHED_CFQ=y | ||
150 | # CONFIG_DEFAULT_AS is not set | ||
151 | # CONFIG_DEFAULT_DEADLINE is not set | ||
152 | CONFIG_DEFAULT_CFQ=y | ||
153 | # CONFIG_DEFAULT_NOOP is not set | ||
154 | CONFIG_DEFAULT_IOSCHED="cfq" | ||
155 | CONFIG_CLASSIC_RCU=y | ||
156 | # CONFIG_FREEZER is not set | ||
157 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | ||
158 | |||
159 | # | ||
160 | # Platform support | ||
161 | # | ||
162 | # CONFIG_PPC_CELL is not set | ||
163 | # CONFIG_PPC_CELL_NATIVE is not set | ||
164 | # CONFIG_PQ2ADS is not set | ||
165 | # CONFIG_PPC4xx_GPIO is not set | ||
166 | CONFIG_XILINX_VIRTEX=y | ||
167 | # CONFIG_ACADIA is not set | ||
168 | # CONFIG_EP405 is not set | ||
169 | # CONFIG_HCU4 is not set | ||
170 | # CONFIG_KILAUEA is not set | ||
171 | # CONFIG_MAKALU is not set | ||
172 | # CONFIG_WALNUT is not set | ||
173 | CONFIG_XILINX_VIRTEX_GENERIC_BOARD=y | ||
174 | # CONFIG_PPC40x_SIMPLE is not set | ||
175 | CONFIG_XILINX_VIRTEX_II_PRO=y | ||
176 | CONFIG_XILINX_VIRTEX_4_FX=y | ||
177 | CONFIG_IBM405_ERR77=y | ||
178 | CONFIG_IBM405_ERR51=y | ||
179 | # CONFIG_IPIC is not set | ||
180 | # CONFIG_MPIC is not set | ||
181 | # CONFIG_MPIC_WEIRD is not set | ||
182 | # CONFIG_PPC_I8259 is not set | ||
183 | # CONFIG_PPC_RTAS is not set | ||
184 | # CONFIG_MMIO_NVRAM is not set | ||
185 | # CONFIG_PPC_MPC106 is not set | ||
186 | # CONFIG_PPC_970_NAP is not set | ||
187 | # CONFIG_PPC_INDIRECT_IO is not set | ||
188 | # CONFIG_GENERIC_IOMAP is not set | ||
189 | # CONFIG_CPU_FREQ is not set | ||
190 | # CONFIG_FSL_ULI1575 is not set | ||
191 | |||
192 | # | ||
193 | # Kernel options | ||
194 | # | ||
195 | # CONFIG_HIGHMEM is not set | ||
196 | # CONFIG_NO_HZ is not set | ||
197 | # CONFIG_HIGH_RES_TIMERS is not set | ||
198 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
199 | # CONFIG_HZ_100 is not set | ||
200 | CONFIG_HZ_250=y | ||
201 | # CONFIG_HZ_300 is not set | ||
202 | # CONFIG_HZ_1000 is not set | ||
203 | CONFIG_HZ=250 | ||
204 | # CONFIG_SCHED_HRTICK is not set | ||
205 | # CONFIG_PREEMPT_NONE is not set | ||
206 | # CONFIG_PREEMPT_VOLUNTARY is not set | ||
207 | CONFIG_PREEMPT=y | ||
208 | # CONFIG_PREEMPT_RCU is not set | ||
209 | CONFIG_BINFMT_ELF=y | ||
210 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
211 | # CONFIG_HAVE_AOUT is not set | ||
212 | # CONFIG_BINFMT_MISC is not set | ||
213 | CONFIG_MATH_EMULATION=y | ||
214 | # CONFIG_IOMMU_HELPER is not set | ||
215 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | ||
216 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
217 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
218 | CONFIG_ARCH_FLATMEM_ENABLE=y | ||
219 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
220 | CONFIG_SELECT_MEMORY_MODEL=y | ||
221 | CONFIG_FLATMEM_MANUAL=y | ||
222 | # CONFIG_DISCONTIGMEM_MANUAL is not set | ||
223 | # CONFIG_SPARSEMEM_MANUAL is not set | ||
224 | CONFIG_FLATMEM=y | ||
225 | CONFIG_FLAT_NODE_MEM_MAP=y | ||
226 | CONFIG_PAGEFLAGS_EXTENDED=y | ||
227 | CONFIG_SPLIT_PTLOCK_CPUS=4 | ||
228 | CONFIG_MIGRATION=y | ||
229 | CONFIG_RESOURCES_64BIT=y | ||
230 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
231 | CONFIG_ZONE_DMA_FLAG=1 | ||
232 | CONFIG_BOUNCE=y | ||
233 | CONFIG_VIRT_TO_BUS=y | ||
234 | CONFIG_UNEVICTABLE_LRU=y | ||
235 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
236 | CONFIG_PROC_DEVICETREE=y | ||
237 | CONFIG_CMDLINE_BOOL=y | ||
238 | CONFIG_CMDLINE="" | ||
239 | CONFIG_EXTRA_TARGETS="" | ||
240 | # CONFIG_PM is not set | ||
241 | CONFIG_SECCOMP=y | ||
242 | CONFIG_ISA_DMA_API=y | ||
243 | |||
244 | # | ||
245 | # Bus options | ||
246 | # | ||
247 | CONFIG_ZONE_DMA=y | ||
248 | CONFIG_PPC_INDIRECT_PCI=y | ||
249 | CONFIG_4xx_SOC=y | ||
250 | CONFIG_PPC_PCI_CHOICE=y | ||
251 | CONFIG_PCI=y | ||
252 | CONFIG_PCI_DOMAINS=y | ||
253 | CONFIG_PCI_SYSCALL=y | ||
254 | # CONFIG_PCIEPORTBUS is not set | ||
255 | CONFIG_ARCH_SUPPORTS_MSI=y | ||
256 | # CONFIG_PCI_MSI is not set | ||
257 | CONFIG_PCI_LEGACY=y | ||
258 | # CONFIG_PCI_DEBUG is not set | ||
259 | # CONFIG_PCCARD is not set | ||
260 | # CONFIG_HOTPLUG_PCI is not set | ||
261 | # CONFIG_HAS_RAPIDIO is not set | ||
262 | |||
263 | # | ||
264 | # Advanced setup | ||
265 | # | ||
266 | # CONFIG_ADVANCED_OPTIONS is not set | ||
267 | |||
268 | # | ||
269 | # Default settings for advanced configuration options are used | ||
270 | # | ||
271 | CONFIG_LOWMEM_SIZE=0x30000000 | ||
272 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
273 | CONFIG_KERNEL_START=0xc0000000 | ||
274 | CONFIG_PHYSICAL_START=0x00000000 | ||
275 | CONFIG_TASK_SIZE=0xc0000000 | ||
276 | CONFIG_CONSISTENT_START=0xff100000 | ||
277 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
278 | CONFIG_NET=y | ||
279 | |||
280 | # | ||
281 | # Networking options | ||
282 | # | ||
283 | CONFIG_PACKET=y | ||
284 | # CONFIG_PACKET_MMAP is not set | ||
285 | CONFIG_UNIX=y | ||
286 | CONFIG_XFRM=y | ||
287 | # CONFIG_XFRM_USER is not set | ||
288 | # CONFIG_XFRM_SUB_POLICY is not set | ||
289 | # CONFIG_XFRM_MIGRATE is not set | ||
290 | # CONFIG_XFRM_STATISTICS is not set | ||
291 | # CONFIG_NET_KEY is not set | ||
292 | CONFIG_INET=y | ||
293 | CONFIG_IP_MULTICAST=y | ||
294 | # CONFIG_IP_ADVANCED_ROUTER is not set | ||
295 | CONFIG_IP_FIB_HASH=y | ||
296 | CONFIG_IP_PNP=y | ||
297 | CONFIG_IP_PNP_DHCP=y | ||
298 | CONFIG_IP_PNP_BOOTP=y | ||
299 | # CONFIG_IP_PNP_RARP is not set | ||
300 | # CONFIG_NET_IPIP is not set | ||
301 | # CONFIG_NET_IPGRE is not set | ||
302 | # CONFIG_IP_MROUTE is not set | ||
303 | # CONFIG_ARPD is not set | ||
304 | # CONFIG_SYN_COOKIES is not set | ||
305 | # CONFIG_INET_AH is not set | ||
306 | # CONFIG_INET_ESP is not set | ||
307 | # CONFIG_INET_IPCOMP is not set | ||
308 | # CONFIG_INET_XFRM_TUNNEL is not set | ||
309 | CONFIG_INET_TUNNEL=m | ||
310 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | ||
311 | CONFIG_INET_XFRM_MODE_TUNNEL=y | ||
312 | CONFIG_INET_XFRM_MODE_BEET=y | ||
313 | # CONFIG_INET_LRO is not set | ||
314 | CONFIG_INET_DIAG=y | ||
315 | CONFIG_INET_TCP_DIAG=y | ||
316 | # CONFIG_TCP_CONG_ADVANCED is not set | ||
317 | CONFIG_TCP_CONG_CUBIC=y | ||
318 | CONFIG_DEFAULT_TCP_CONG="cubic" | ||
319 | # CONFIG_TCP_MD5SIG is not set | ||
320 | CONFIG_IPV6=m | ||
321 | # CONFIG_IPV6_PRIVACY is not set | ||
322 | # CONFIG_IPV6_ROUTER_PREF is not set | ||
323 | # CONFIG_IPV6_OPTIMISTIC_DAD is not set | ||
324 | # CONFIG_INET6_AH is not set | ||
325 | # CONFIG_INET6_ESP is not set | ||
326 | # CONFIG_INET6_IPCOMP is not set | ||
327 | # CONFIG_IPV6_MIP6 is not set | ||
328 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
329 | # CONFIG_INET6_TUNNEL is not set | ||
330 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
331 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
332 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
333 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | ||
334 | CONFIG_IPV6_SIT=m | ||
335 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
336 | # CONFIG_IPV6_TUNNEL is not set | ||
337 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | ||
338 | # CONFIG_IPV6_MROUTE is not set | ||
339 | # CONFIG_NETWORK_SECMARK is not set | ||
340 | CONFIG_NETFILTER=y | ||
341 | # CONFIG_NETFILTER_DEBUG is not set | ||
342 | CONFIG_NETFILTER_ADVANCED=y | ||
343 | |||
344 | # | ||
345 | # Core Netfilter Configuration | ||
346 | # | ||
347 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set | ||
348 | # CONFIG_NETFILTER_NETLINK_LOG is not set | ||
349 | # CONFIG_NF_CONNTRACK is not set | ||
350 | CONFIG_NETFILTER_XTABLES=m | ||
351 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set | ||
352 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | ||
353 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set | ||
354 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | ||
355 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
356 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set | ||
357 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | ||
358 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set | ||
359 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set | ||
360 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
361 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | ||
362 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | ||
363 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
364 | # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set | ||
365 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set | ||
366 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set | ||
367 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set | ||
368 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set | ||
369 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | ||
370 | # CONFIG_NETFILTER_XT_MATCH_OWNER is not set | ||
371 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | ||
372 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set | ||
373 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | ||
374 | # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set | ||
375 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set | ||
376 | # CONFIG_NETFILTER_XT_MATCH_RECENT is not set | ||
377 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | ||
378 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | ||
379 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set | ||
380 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set | ||
381 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | ||
382 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set | ||
383 | # CONFIG_IP_VS is not set | ||
384 | |||
385 | # | ||
386 | # IP: Netfilter Configuration | ||
387 | # | ||
388 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
389 | # CONFIG_IP_NF_QUEUE is not set | ||
390 | CONFIG_IP_NF_IPTABLES=m | ||
391 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
392 | # CONFIG_IP_NF_MATCH_AH is not set | ||
393 | # CONFIG_IP_NF_MATCH_ECN is not set | ||
394 | # CONFIG_IP_NF_MATCH_TTL is not set | ||
395 | CONFIG_IP_NF_FILTER=m | ||
396 | # CONFIG_IP_NF_TARGET_REJECT is not set | ||
397 | # CONFIG_IP_NF_TARGET_LOG is not set | ||
398 | # CONFIG_IP_NF_TARGET_ULOG is not set | ||
399 | CONFIG_IP_NF_MANGLE=m | ||
400 | # CONFIG_IP_NF_TARGET_ECN is not set | ||
401 | # CONFIG_IP_NF_TARGET_TTL is not set | ||
402 | # CONFIG_IP_NF_RAW is not set | ||
403 | # CONFIG_IP_NF_ARPTABLES is not set | ||
404 | |||
405 | # | ||
406 | # IPv6: Netfilter Configuration | ||
407 | # | ||
408 | # CONFIG_IP6_NF_QUEUE is not set | ||
409 | # CONFIG_IP6_NF_IPTABLES is not set | ||
410 | # CONFIG_IP_DCCP is not set | ||
411 | # CONFIG_IP_SCTP is not set | ||
412 | # CONFIG_TIPC is not set | ||
413 | # CONFIG_ATM is not set | ||
414 | # CONFIG_BRIDGE is not set | ||
415 | # CONFIG_NET_DSA is not set | ||
416 | # CONFIG_VLAN_8021Q is not set | ||
417 | # CONFIG_DECNET is not set | ||
418 | # CONFIG_LLC2 is not set | ||
419 | # CONFIG_IPX is not set | ||
420 | # CONFIG_ATALK is not set | ||
421 | # CONFIG_X25 is not set | ||
422 | # CONFIG_LAPB is not set | ||
423 | # CONFIG_ECONET is not set | ||
424 | # CONFIG_WAN_ROUTER is not set | ||
425 | # CONFIG_NET_SCHED is not set | ||
426 | |||
427 | # | ||
428 | # Network testing | ||
429 | # | ||
430 | # CONFIG_NET_PKTGEN is not set | ||
431 | # CONFIG_HAMRADIO is not set | ||
432 | # CONFIG_CAN is not set | ||
433 | # CONFIG_IRDA is not set | ||
434 | # CONFIG_BT is not set | ||
435 | # CONFIG_AF_RXRPC is not set | ||
436 | # CONFIG_PHONET is not set | ||
437 | CONFIG_WIRELESS=y | ||
438 | # CONFIG_CFG80211 is not set | ||
439 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
440 | # CONFIG_WIRELESS_EXT is not set | ||
441 | # CONFIG_MAC80211 is not set | ||
442 | # CONFIG_IEEE80211 is not set | ||
443 | # CONFIG_RFKILL is not set | ||
444 | # CONFIG_NET_9P is not set | ||
445 | |||
446 | # | ||
447 | # Device Drivers | ||
448 | # | ||
449 | |||
450 | # | ||
451 | # Generic Driver Options | ||
452 | # | ||
453 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
454 | CONFIG_STANDALONE=y | ||
455 | CONFIG_PREVENT_FIRMWARE_BUILD=y | ||
456 | CONFIG_FW_LOADER=y | ||
457 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
458 | CONFIG_EXTRA_FIRMWARE="" | ||
459 | # CONFIG_DEBUG_DRIVER is not set | ||
460 | # CONFIG_DEBUG_DEVRES is not set | ||
461 | # CONFIG_SYS_HYPERVISOR is not set | ||
462 | # CONFIG_CONNECTOR is not set | ||
463 | # CONFIG_MTD is not set | ||
464 | CONFIG_OF_DEVICE=y | ||
465 | CONFIG_OF_GPIO=y | ||
466 | # CONFIG_PARPORT is not set | ||
467 | CONFIG_BLK_DEV=y | ||
468 | # CONFIG_BLK_DEV_FD is not set | ||
469 | # CONFIG_BLK_CPQ_DA is not set | ||
470 | # CONFIG_BLK_CPQ_CISS_DA is not set | ||
471 | # CONFIG_BLK_DEV_DAC960 is not set | ||
472 | # CONFIG_BLK_DEV_UMEM is not set | ||
473 | # CONFIG_BLK_DEV_COW_COMMON is not set | ||
474 | CONFIG_BLK_DEV_LOOP=y | ||
475 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | ||
476 | # CONFIG_BLK_DEV_NBD is not set | ||
477 | # CONFIG_BLK_DEV_SX8 is not set | ||
478 | CONFIG_BLK_DEV_RAM=y | ||
479 | CONFIG_BLK_DEV_RAM_COUNT=16 | ||
480 | CONFIG_BLK_DEV_RAM_SIZE=8192 | ||
481 | # CONFIG_BLK_DEV_XIP is not set | ||
482 | # CONFIG_CDROM_PKTCDVD is not set | ||
483 | # CONFIG_ATA_OVER_ETH is not set | ||
484 | CONFIG_XILINX_SYSACE=y | ||
485 | # CONFIG_BLK_DEV_HD is not set | ||
486 | CONFIG_MISC_DEVICES=y | ||
487 | # CONFIG_PHANTOM is not set | ||
488 | # CONFIG_EEPROM_93CX6 is not set | ||
489 | # CONFIG_SGI_IOC4 is not set | ||
490 | # CONFIG_TIFM_CORE is not set | ||
491 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
492 | # CONFIG_HP_ILO is not set | ||
493 | # CONFIG_C2PORT is not set | ||
494 | CONFIG_HAVE_IDE=y | ||
495 | # CONFIG_IDE is not set | ||
496 | |||
497 | # | ||
498 | # SCSI device support | ||
499 | # | ||
500 | # CONFIG_RAID_ATTRS is not set | ||
501 | # CONFIG_SCSI is not set | ||
502 | # CONFIG_SCSI_DMA is not set | ||
503 | # CONFIG_SCSI_NETLINK is not set | ||
504 | # CONFIG_ATA is not set | ||
505 | # CONFIG_MD is not set | ||
506 | # CONFIG_FUSION is not set | ||
507 | |||
508 | # | ||
509 | # IEEE 1394 (FireWire) support | ||
510 | # | ||
511 | |||
512 | # | ||
513 | # Enable only one of the two stacks, unless you know what you are doing | ||
514 | # | ||
515 | # CONFIG_FIREWIRE is not set | ||
516 | # CONFIG_IEEE1394 is not set | ||
517 | # CONFIG_I2O is not set | ||
518 | # CONFIG_MACINTOSH_DRIVERS is not set | ||
519 | CONFIG_NETDEVICES=y | ||
520 | # CONFIG_DUMMY is not set | ||
521 | # CONFIG_BONDING is not set | ||
522 | # CONFIG_MACVLAN is not set | ||
523 | # CONFIG_EQUALIZER is not set | ||
524 | # CONFIG_TUN is not set | ||
525 | # CONFIG_VETH is not set | ||
526 | # CONFIG_ARCNET is not set | ||
527 | # CONFIG_PHYLIB is not set | ||
528 | CONFIG_NET_ETHERNET=y | ||
529 | CONFIG_MII=y | ||
530 | # CONFIG_HAPPYMEAL is not set | ||
531 | # CONFIG_SUNGEM is not set | ||
532 | # CONFIG_CASSINI is not set | ||
533 | # CONFIG_NET_VENDOR_3COM is not set | ||
534 | # CONFIG_NET_TULIP is not set | ||
535 | # CONFIG_HP100 is not set | ||
536 | # CONFIG_IBM_NEW_EMAC is not set | ||
537 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
538 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
539 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
540 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
541 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
542 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
543 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
544 | # CONFIG_NET_PCI is not set | ||
545 | # CONFIG_B44 is not set | ||
546 | # CONFIG_ATL2 is not set | ||
547 | CONFIG_NETDEV_1000=y | ||
548 | # CONFIG_ACENIC is not set | ||
549 | # CONFIG_DL2K is not set | ||
550 | # CONFIG_E1000 is not set | ||
551 | # CONFIG_E1000E is not set | ||
552 | # CONFIG_IP1000 is not set | ||
553 | # CONFIG_IGB is not set | ||
554 | # CONFIG_NS83820 is not set | ||
555 | # CONFIG_HAMACHI is not set | ||
556 | # CONFIG_YELLOWFIN is not set | ||
557 | # CONFIG_R8169 is not set | ||
558 | # CONFIG_SIS190 is not set | ||
559 | # CONFIG_SKGE is not set | ||
560 | # CONFIG_SKY2 is not set | ||
561 | # CONFIG_VIA_VELOCITY is not set | ||
562 | # CONFIG_TIGON3 is not set | ||
563 | # CONFIG_BNX2 is not set | ||
564 | # CONFIG_QLA3XXX is not set | ||
565 | # CONFIG_ATL1 is not set | ||
566 | # CONFIG_ATL1E is not set | ||
567 | # CONFIG_JME is not set | ||
568 | # CONFIG_NETDEV_10000 is not set | ||
569 | # CONFIG_TR is not set | ||
570 | |||
571 | # | ||
572 | # Wireless LAN | ||
573 | # | ||
574 | # CONFIG_WLAN_PRE80211 is not set | ||
575 | # CONFIG_WLAN_80211 is not set | ||
576 | # CONFIG_IWLWIFI_LEDS is not set | ||
577 | # CONFIG_WAN is not set | ||
578 | # CONFIG_FDDI is not set | ||
579 | # CONFIG_HIPPI is not set | ||
580 | # CONFIG_PPP is not set | ||
581 | # CONFIG_SLIP is not set | ||
582 | # CONFIG_NETCONSOLE is not set | ||
583 | # CONFIG_NETPOLL is not set | ||
584 | # CONFIG_NET_POLL_CONTROLLER is not set | ||
585 | # CONFIG_ISDN is not set | ||
586 | # CONFIG_PHONE is not set | ||
587 | |||
588 | # | ||
589 | # Input device support | ||
590 | # | ||
591 | CONFIG_INPUT=y | ||
592 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
593 | # CONFIG_INPUT_POLLDEV is not set | ||
594 | |||
595 | # | ||
596 | # Userland interfaces | ||
597 | # | ||
598 | CONFIG_INPUT_MOUSEDEV=y | ||
599 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
600 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
601 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
602 | # CONFIG_INPUT_JOYDEV is not set | ||
603 | # CONFIG_INPUT_EVDEV is not set | ||
604 | # CONFIG_INPUT_EVBUG is not set | ||
605 | |||
606 | # | ||
607 | # Input Device Drivers | ||
608 | # | ||
609 | CONFIG_INPUT_KEYBOARD=y | ||
610 | CONFIG_KEYBOARD_ATKBD=y | ||
611 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
612 | # CONFIG_KEYBOARD_LKKBD is not set | ||
613 | # CONFIG_KEYBOARD_XTKBD is not set | ||
614 | # CONFIG_KEYBOARD_NEWTON is not set | ||
615 | # CONFIG_KEYBOARD_STOWAWAY is not set | ||
616 | # CONFIG_KEYBOARD_GPIO is not set | ||
617 | CONFIG_INPUT_MOUSE=y | ||
618 | CONFIG_MOUSE_PS2=y | ||
619 | CONFIG_MOUSE_PS2_ALPS=y | ||
620 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | ||
621 | CONFIG_MOUSE_PS2_SYNAPTICS=y | ||
622 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
623 | CONFIG_MOUSE_PS2_TRACKPOINT=y | ||
624 | # CONFIG_MOUSE_PS2_ELANTECH is not set | ||
625 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | ||
626 | # CONFIG_MOUSE_SERIAL is not set | ||
627 | # CONFIG_MOUSE_VSXXXAA is not set | ||
628 | # CONFIG_MOUSE_GPIO is not set | ||
629 | # CONFIG_INPUT_JOYSTICK is not set | ||
630 | # CONFIG_INPUT_TABLET is not set | ||
631 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
632 | # CONFIG_INPUT_MISC is not set | ||
633 | |||
634 | # | ||
635 | # Hardware I/O ports | ||
636 | # | ||
637 | CONFIG_SERIO=y | ||
638 | # CONFIG_SERIO_I8042 is not set | ||
639 | # CONFIG_SERIO_SERPORT is not set | ||
640 | # CONFIG_SERIO_PCIPS2 is not set | ||
641 | CONFIG_SERIO_LIBPS2=y | ||
642 | # CONFIG_SERIO_RAW is not set | ||
643 | CONFIG_SERIO_XILINX_XPS_PS2=y | ||
644 | # CONFIG_GAMEPORT is not set | ||
645 | |||
646 | # | ||
647 | # Character devices | ||
648 | # | ||
649 | CONFIG_VT=y | ||
650 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
651 | CONFIG_VT_CONSOLE=y | ||
652 | CONFIG_HW_CONSOLE=y | ||
653 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
654 | CONFIG_DEVKMEM=y | ||
655 | # CONFIG_SERIAL_NONSTANDARD is not set | ||
656 | # CONFIG_NOZOMI is not set | ||
657 | |||
658 | # | ||
659 | # Serial drivers | ||
660 | # | ||
661 | CONFIG_SERIAL_8250=y | ||
662 | CONFIG_SERIAL_8250_CONSOLE=y | ||
663 | CONFIG_SERIAL_8250_PCI=y | ||
664 | CONFIG_SERIAL_8250_NR_UARTS=4 | ||
665 | CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | ||
666 | # CONFIG_SERIAL_8250_EXTENDED is not set | ||
667 | |||
668 | # | ||
669 | # Non-8250 serial port support | ||
670 | # | ||
671 | CONFIG_SERIAL_UARTLITE=y | ||
672 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | ||
673 | CONFIG_SERIAL_CORE=y | ||
674 | CONFIG_SERIAL_CORE_CONSOLE=y | ||
675 | # CONFIG_SERIAL_JSM is not set | ||
676 | # CONFIG_SERIAL_OF_PLATFORM is not set | ||
677 | CONFIG_UNIX98_PTYS=y | ||
678 | CONFIG_LEGACY_PTYS=y | ||
679 | CONFIG_LEGACY_PTY_COUNT=256 | ||
680 | # CONFIG_IPMI_HANDLER is not set | ||
681 | CONFIG_HW_RANDOM=m | ||
682 | # CONFIG_NVRAM is not set | ||
683 | # CONFIG_GEN_RTC is not set | ||
684 | CONFIG_XILINX_HWICAP=y | ||
685 | # CONFIG_R3964 is not set | ||
686 | # CONFIG_APPLICOM is not set | ||
687 | # CONFIG_RAW_DRIVER is not set | ||
688 | # CONFIG_TCG_TPM is not set | ||
689 | CONFIG_DEVPORT=y | ||
690 | # CONFIG_I2C is not set | ||
691 | # CONFIG_SPI is not set | ||
692 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
693 | CONFIG_GPIOLIB=y | ||
694 | # CONFIG_DEBUG_GPIO is not set | ||
695 | CONFIG_GPIO_SYSFS=y | ||
696 | |||
697 | # | ||
698 | # Memory mapped GPIO expanders: | ||
699 | # | ||
700 | CONFIG_GPIO_XILINX=y | ||
701 | |||
702 | # | ||
703 | # I2C GPIO expanders: | ||
704 | # | ||
705 | |||
706 | # | ||
707 | # PCI GPIO expanders: | ||
708 | # | ||
709 | # CONFIG_GPIO_BT8XX is not set | ||
710 | |||
711 | # | ||
712 | # SPI GPIO expanders: | ||
713 | # | ||
714 | # CONFIG_W1 is not set | ||
715 | # CONFIG_POWER_SUPPLY is not set | ||
716 | # CONFIG_HWMON is not set | ||
717 | # CONFIG_THERMAL is not set | ||
718 | # CONFIG_THERMAL_HWMON is not set | ||
719 | # CONFIG_WATCHDOG is not set | ||
720 | CONFIG_SSB_POSSIBLE=y | ||
721 | |||
722 | # | ||
723 | # Sonics Silicon Backplane | ||
724 | # | ||
725 | # CONFIG_SSB is not set | ||
726 | |||
727 | # | ||
728 | # Multifunction device drivers | ||
729 | # | ||
730 | # CONFIG_MFD_CORE is not set | ||
731 | # CONFIG_MFD_SM501 is not set | ||
732 | # CONFIG_HTC_PASIC3 is not set | ||
733 | # CONFIG_MFD_TMIO is not set | ||
734 | # CONFIG_REGULATOR is not set | ||
735 | |||
736 | # | ||
737 | # Multimedia devices | ||
738 | # | ||
739 | |||
740 | # | ||
741 | # Multimedia core support | ||
742 | # | ||
743 | # CONFIG_VIDEO_DEV is not set | ||
744 | # CONFIG_DVB_CORE is not set | ||
745 | # CONFIG_VIDEO_MEDIA is not set | ||
746 | |||
747 | # | ||
748 | # Multimedia drivers | ||
749 | # | ||
750 | # CONFIG_DAB is not set | ||
751 | |||
752 | # | ||
753 | # Graphics support | ||
754 | # | ||
755 | # CONFIG_AGP is not set | ||
756 | # CONFIG_DRM is not set | ||
757 | # CONFIG_VGASTATE is not set | ||
758 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | ||
759 | CONFIG_FB=y | ||
760 | # CONFIG_FIRMWARE_EDID is not set | ||
761 | # CONFIG_FB_DDC is not set | ||
762 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
763 | CONFIG_FB_CFB_FILLRECT=y | ||
764 | CONFIG_FB_CFB_COPYAREA=y | ||
765 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
766 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
767 | # CONFIG_FB_SYS_FILLRECT is not set | ||
768 | # CONFIG_FB_SYS_COPYAREA is not set | ||
769 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
770 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
771 | # CONFIG_FB_SYS_FOPS is not set | ||
772 | # CONFIG_FB_SVGALIB is not set | ||
773 | # CONFIG_FB_MACMODES is not set | ||
774 | # CONFIG_FB_BACKLIGHT is not set | ||
775 | # CONFIG_FB_MODE_HELPERS is not set | ||
776 | # CONFIG_FB_TILEBLITTING is not set | ||
777 | |||
778 | # | ||
779 | # Frame buffer hardware drivers | ||
780 | # | ||
781 | # CONFIG_FB_CIRRUS is not set | ||
782 | # CONFIG_FB_PM2 is not set | ||
783 | # CONFIG_FB_CYBER2000 is not set | ||
784 | # CONFIG_FB_OF is not set | ||
785 | # CONFIG_FB_CT65550 is not set | ||
786 | # CONFIG_FB_ASILIANT is not set | ||
787 | # CONFIG_FB_IMSTT is not set | ||
788 | # CONFIG_FB_VGA16 is not set | ||
789 | # CONFIG_FB_S1D13XXX is not set | ||
790 | # CONFIG_FB_NVIDIA is not set | ||
791 | # CONFIG_FB_RIVA is not set | ||
792 | # CONFIG_FB_MATROX is not set | ||
793 | # CONFIG_FB_RADEON is not set | ||
794 | # CONFIG_FB_ATY128 is not set | ||
795 | # CONFIG_FB_ATY is not set | ||
796 | # CONFIG_FB_S3 is not set | ||
797 | # CONFIG_FB_SAVAGE is not set | ||
798 | # CONFIG_FB_SIS is not set | ||
799 | # CONFIG_FB_VIA is not set | ||
800 | # CONFIG_FB_NEOMAGIC is not set | ||
801 | # CONFIG_FB_KYRO is not set | ||
802 | # CONFIG_FB_3DFX is not set | ||
803 | # CONFIG_FB_VOODOO1 is not set | ||
804 | # CONFIG_FB_VT8623 is not set | ||
805 | # CONFIG_FB_TRIDENT is not set | ||
806 | # CONFIG_FB_ARK is not set | ||
807 | # CONFIG_FB_PM3 is not set | ||
808 | # CONFIG_FB_CARMINE is not set | ||
809 | # CONFIG_FB_IBM_GXT4500 is not set | ||
810 | CONFIG_FB_XILINX=y | ||
811 | # CONFIG_FB_VIRTUAL is not set | ||
812 | # CONFIG_FB_METRONOME is not set | ||
813 | # CONFIG_FB_MB862XX is not set | ||
814 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
815 | |||
816 | # | ||
817 | # Display device support | ||
818 | # | ||
819 | # CONFIG_DISPLAY_SUPPORT is not set | ||
820 | |||
821 | # | ||
822 | # Console display driver support | ||
823 | # | ||
824 | CONFIG_DUMMY_CONSOLE=y | ||
825 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
826 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
827 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
828 | CONFIG_FONTS=y | ||
829 | CONFIG_FONT_8x8=y | ||
830 | CONFIG_FONT_8x16=y | ||
831 | # CONFIG_FONT_6x11 is not set | ||
832 | # CONFIG_FONT_7x14 is not set | ||
833 | # CONFIG_FONT_PEARL_8x8 is not set | ||
834 | # CONFIG_FONT_ACORN_8x8 is not set | ||
835 | # CONFIG_FONT_MINI_4x6 is not set | ||
836 | # CONFIG_FONT_SUN8x16 is not set | ||
837 | # CONFIG_FONT_SUN12x22 is not set | ||
838 | # CONFIG_FONT_10x18 is not set | ||
839 | CONFIG_LOGO=y | ||
840 | CONFIG_LOGO_LINUX_MONO=y | ||
841 | CONFIG_LOGO_LINUX_VGA16=y | ||
842 | CONFIG_LOGO_LINUX_CLUT224=y | ||
843 | # CONFIG_SOUND is not set | ||
844 | # CONFIG_HID_SUPPORT is not set | ||
845 | # CONFIG_USB_SUPPORT is not set | ||
846 | # CONFIG_UWB is not set | ||
847 | # CONFIG_MMC is not set | ||
848 | # CONFIG_MEMSTICK is not set | ||
849 | # CONFIG_NEW_LEDS is not set | ||
850 | # CONFIG_ACCESSIBILITY is not set | ||
851 | # CONFIG_INFINIBAND is not set | ||
852 | # CONFIG_EDAC is not set | ||
853 | # CONFIG_RTC_CLASS is not set | ||
854 | # CONFIG_DMADEVICES is not set | ||
855 | # CONFIG_UIO is not set | ||
856 | # CONFIG_STAGING is not set | ||
857 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
858 | |||
859 | # | ||
860 | # File systems | ||
861 | # | ||
862 | CONFIG_EXT2_FS=y | ||
863 | # CONFIG_EXT2_FS_XATTR is not set | ||
864 | # CONFIG_EXT2_FS_XIP is not set | ||
865 | # CONFIG_EXT3_FS is not set | ||
866 | # CONFIG_EXT4_FS is not set | ||
867 | # CONFIG_REISERFS_FS is not set | ||
868 | # CONFIG_JFS_FS is not set | ||
869 | # CONFIG_FS_POSIX_ACL is not set | ||
870 | CONFIG_FILE_LOCKING=y | ||
871 | # CONFIG_XFS_FS is not set | ||
872 | # CONFIG_OCFS2_FS is not set | ||
873 | CONFIG_DNOTIFY=y | ||
874 | CONFIG_INOTIFY=y | ||
875 | CONFIG_INOTIFY_USER=y | ||
876 | # CONFIG_QUOTA is not set | ||
877 | CONFIG_AUTOFS_FS=y | ||
878 | CONFIG_AUTOFS4_FS=y | ||
879 | # CONFIG_FUSE_FS is not set | ||
880 | |||
881 | # | ||
882 | # CD-ROM/DVD Filesystems | ||
883 | # | ||
884 | # CONFIG_ISO9660_FS is not set | ||
885 | # CONFIG_UDF_FS is not set | ||
886 | |||
887 | # | ||
888 | # DOS/FAT/NT Filesystems | ||
889 | # | ||
890 | CONFIG_FAT_FS=y | ||
891 | CONFIG_MSDOS_FS=y | ||
892 | CONFIG_VFAT_FS=y | ||
893 | CONFIG_FAT_DEFAULT_CODEPAGE=437 | ||
894 | CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | ||
895 | # CONFIG_NTFS_FS is not set | ||
896 | |||
897 | # | ||
898 | # Pseudo filesystems | ||
899 | # | ||
900 | CONFIG_PROC_FS=y | ||
901 | # CONFIG_PROC_KCORE is not set | ||
902 | CONFIG_PROC_SYSCTL=y | ||
903 | CONFIG_PROC_PAGE_MONITOR=y | ||
904 | CONFIG_SYSFS=y | ||
905 | CONFIG_TMPFS=y | ||
906 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
907 | # CONFIG_HUGETLB_PAGE is not set | ||
908 | # CONFIG_CONFIGFS_FS is not set | ||
909 | |||
910 | # | ||
911 | # Miscellaneous filesystems | ||
912 | # | ||
913 | # CONFIG_ADFS_FS is not set | ||
914 | # CONFIG_AFFS_FS is not set | ||
915 | # CONFIG_HFS_FS is not set | ||
916 | # CONFIG_HFSPLUS_FS is not set | ||
917 | # CONFIG_BEFS_FS is not set | ||
918 | # CONFIG_BFS_FS is not set | ||
919 | # CONFIG_EFS_FS is not set | ||
920 | CONFIG_CRAMFS=y | ||
921 | # CONFIG_VXFS_FS is not set | ||
922 | # CONFIG_MINIX_FS is not set | ||
923 | # CONFIG_OMFS_FS is not set | ||
924 | # CONFIG_HPFS_FS is not set | ||
925 | # CONFIG_QNX4FS_FS is not set | ||
926 | CONFIG_ROMFS_FS=y | ||
927 | # CONFIG_SYSV_FS is not set | ||
928 | # CONFIG_UFS_FS is not set | ||
929 | CONFIG_NETWORK_FILESYSTEMS=y | ||
930 | CONFIG_NFS_FS=y | ||
931 | CONFIG_NFS_V3=y | ||
932 | # CONFIG_NFS_V3_ACL is not set | ||
933 | # CONFIG_NFS_V4 is not set | ||
934 | CONFIG_ROOT_NFS=y | ||
935 | # CONFIG_NFSD is not set | ||
936 | CONFIG_LOCKD=y | ||
937 | CONFIG_LOCKD_V4=y | ||
938 | CONFIG_NFS_COMMON=y | ||
939 | CONFIG_SUNRPC=y | ||
940 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
941 | # CONFIG_RPCSEC_GSS_KRB5 is not set | ||
942 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | ||
943 | # CONFIG_SMB_FS is not set | ||
944 | # CONFIG_CIFS is not set | ||
945 | # CONFIG_NCP_FS is not set | ||
946 | # CONFIG_CODA_FS is not set | ||
947 | # CONFIG_AFS_FS is not set | ||
948 | |||
949 | # | ||
950 | # Partition Types | ||
951 | # | ||
952 | # CONFIG_PARTITION_ADVANCED is not set | ||
953 | CONFIG_MSDOS_PARTITION=y | ||
954 | CONFIG_NLS=y | ||
955 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
956 | CONFIG_NLS_CODEPAGE_437=y | ||
957 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
958 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
959 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
960 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
961 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
962 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
963 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
964 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
965 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
966 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
967 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
968 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
969 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
970 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
971 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
972 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
973 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
974 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
975 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
976 | # CONFIG_NLS_ISO8859_8 is not set | ||
977 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
978 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
979 | CONFIG_NLS_ASCII=m | ||
980 | CONFIG_NLS_ISO8859_1=m | ||
981 | # CONFIG_NLS_ISO8859_2 is not set | ||
982 | # CONFIG_NLS_ISO8859_3 is not set | ||
983 | # CONFIG_NLS_ISO8859_4 is not set | ||
984 | # CONFIG_NLS_ISO8859_5 is not set | ||
985 | # CONFIG_NLS_ISO8859_6 is not set | ||
986 | # CONFIG_NLS_ISO8859_7 is not set | ||
987 | # CONFIG_NLS_ISO8859_9 is not set | ||
988 | # CONFIG_NLS_ISO8859_13 is not set | ||
989 | # CONFIG_NLS_ISO8859_14 is not set | ||
990 | # CONFIG_NLS_ISO8859_15 is not set | ||
991 | # CONFIG_NLS_KOI8_R is not set | ||
992 | # CONFIG_NLS_KOI8_U is not set | ||
993 | CONFIG_NLS_UTF8=m | ||
994 | # CONFIG_DLM is not set | ||
995 | |||
996 | # | ||
997 | # Library routines | ||
998 | # | ||
999 | CONFIG_BITREVERSE=y | ||
1000 | CONFIG_CRC_CCITT=y | ||
1001 | # CONFIG_CRC16 is not set | ||
1002 | # CONFIG_CRC_T10DIF is not set | ||
1003 | # CONFIG_CRC_ITU_T is not set | ||
1004 | CONFIG_CRC32=y | ||
1005 | # CONFIG_CRC7 is not set | ||
1006 | # CONFIG_LIBCRC32C is not set | ||
1007 | CONFIG_ZLIB_INFLATE=y | ||
1008 | CONFIG_PLIST=y | ||
1009 | CONFIG_HAS_IOMEM=y | ||
1010 | CONFIG_HAS_IOPORT=y | ||
1011 | CONFIG_HAS_DMA=y | ||
1012 | CONFIG_HAVE_LMB=y | ||
1013 | |||
1014 | # | ||
1015 | # Kernel hacking | ||
1016 | # | ||
1017 | CONFIG_PRINTK_TIME=y | ||
1018 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
1019 | CONFIG_ENABLE_MUST_CHECK=y | ||
1020 | CONFIG_FRAME_WARN=1024 | ||
1021 | # CONFIG_MAGIC_SYSRQ is not set | ||
1022 | # CONFIG_UNUSED_SYMBOLS is not set | ||
1023 | # CONFIG_DEBUG_FS is not set | ||
1024 | # CONFIG_HEADERS_CHECK is not set | ||
1025 | CONFIG_DEBUG_KERNEL=y | ||
1026 | # CONFIG_DEBUG_SHIRQ is not set | ||
1027 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1028 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1029 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1030 | CONFIG_SCHED_DEBUG=y | ||
1031 | # CONFIG_SCHEDSTATS is not set | ||
1032 | # CONFIG_TIMER_STATS is not set | ||
1033 | # CONFIG_DEBUG_OBJECTS is not set | ||
1034 | # CONFIG_DEBUG_SLAB is not set | ||
1035 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1036 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1037 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1038 | # CONFIG_DEBUG_MUTEXES is not set | ||
1039 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1040 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1041 | # CONFIG_DEBUG_KOBJECT is not set | ||
1042 | CONFIG_DEBUG_BUGVERBOSE=y | ||
1043 | CONFIG_DEBUG_INFO=y | ||
1044 | # CONFIG_DEBUG_VM is not set | ||
1045 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1046 | CONFIG_DEBUG_MEMORY_INIT=y | ||
1047 | # CONFIG_DEBUG_LIST is not set | ||
1048 | # CONFIG_DEBUG_SG is not set | ||
1049 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1050 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1051 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1052 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1053 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1054 | # CONFIG_FAULT_INJECTION is not set | ||
1055 | # CONFIG_LATENCYTOP is not set | ||
1056 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
1057 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1058 | |||
1059 | # | ||
1060 | # Tracers | ||
1061 | # | ||
1062 | # CONFIG_FUNCTION_TRACER is not set | ||
1063 | # CONFIG_PREEMPT_TRACER is not set | ||
1064 | # CONFIG_SCHED_TRACER is not set | ||
1065 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1066 | # CONFIG_BOOT_TRACER is not set | ||
1067 | # CONFIG_STACK_TRACER is not set | ||
1068 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1069 | # CONFIG_SAMPLES is not set | ||
1070 | CONFIG_HAVE_ARCH_KGDB=y | ||
1071 | # CONFIG_KGDB is not set | ||
1072 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
1073 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
1074 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1075 | # CONFIG_CODE_PATCHING_SELFTEST is not set | ||
1076 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
1077 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
1078 | # CONFIG_XMON is not set | ||
1079 | # CONFIG_IRQSTACKS is not set | ||
1080 | # CONFIG_BDI_SWITCH is not set | ||
1081 | # CONFIG_PPC_EARLY_DEBUG is not set | ||
1082 | |||
1083 | # | ||
1084 | # Security options | ||
1085 | # | ||
1086 | # CONFIG_KEYS is not set | ||
1087 | # CONFIG_SECURITY is not set | ||
1088 | # CONFIG_SECURITYFS is not set | ||
1089 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | ||
1090 | CONFIG_CRYPTO=y | ||
1091 | |||
1092 | # | ||
1093 | # Crypto core or helper | ||
1094 | # | ||
1095 | # CONFIG_CRYPTO_FIPS is not set | ||
1096 | # CONFIG_CRYPTO_MANAGER is not set | ||
1097 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1098 | # CONFIG_CRYPTO_NULL is not set | ||
1099 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1100 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1101 | # CONFIG_CRYPTO_TEST is not set | ||
1102 | |||
1103 | # | ||
1104 | # Authenticated Encryption with Associated Data | ||
1105 | # | ||
1106 | # CONFIG_CRYPTO_CCM is not set | ||
1107 | # CONFIG_CRYPTO_GCM is not set | ||
1108 | # CONFIG_CRYPTO_SEQIV is not set | ||
1109 | |||
1110 | # | ||
1111 | # Block modes | ||
1112 | # | ||
1113 | # CONFIG_CRYPTO_CBC is not set | ||
1114 | # CONFIG_CRYPTO_CTR is not set | ||
1115 | # CONFIG_CRYPTO_CTS is not set | ||
1116 | # CONFIG_CRYPTO_ECB is not set | ||
1117 | # CONFIG_CRYPTO_LRW is not set | ||
1118 | # CONFIG_CRYPTO_PCBC is not set | ||
1119 | # CONFIG_CRYPTO_XTS is not set | ||
1120 | |||
1121 | # | ||
1122 | # Hash modes | ||
1123 | # | ||
1124 | # CONFIG_CRYPTO_HMAC is not set | ||
1125 | # CONFIG_CRYPTO_XCBC is not set | ||
1126 | |||
1127 | # | ||
1128 | # Digest | ||
1129 | # | ||
1130 | # CONFIG_CRYPTO_CRC32C is not set | ||
1131 | # CONFIG_CRYPTO_MD4 is not set | ||
1132 | # CONFIG_CRYPTO_MD5 is not set | ||
1133 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1134 | # CONFIG_CRYPTO_RMD128 is not set | ||
1135 | # CONFIG_CRYPTO_RMD160 is not set | ||
1136 | # CONFIG_CRYPTO_RMD256 is not set | ||
1137 | # CONFIG_CRYPTO_RMD320 is not set | ||
1138 | # CONFIG_CRYPTO_SHA1 is not set | ||
1139 | # CONFIG_CRYPTO_SHA256 is not set | ||
1140 | # CONFIG_CRYPTO_SHA512 is not set | ||
1141 | # CONFIG_CRYPTO_TGR192 is not set | ||
1142 | # CONFIG_CRYPTO_WP512 is not set | ||
1143 | |||
1144 | # | ||
1145 | # Ciphers | ||
1146 | # | ||
1147 | # CONFIG_CRYPTO_AES is not set | ||
1148 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1149 | # CONFIG_CRYPTO_ARC4 is not set | ||
1150 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1151 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1152 | # CONFIG_CRYPTO_CAST5 is not set | ||
1153 | # CONFIG_CRYPTO_CAST6 is not set | ||
1154 | # CONFIG_CRYPTO_DES is not set | ||
1155 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1156 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1157 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1158 | # CONFIG_CRYPTO_SEED is not set | ||
1159 | # CONFIG_CRYPTO_SERPENT is not set | ||
1160 | # CONFIG_CRYPTO_TEA is not set | ||
1161 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1162 | |||
1163 | # | ||
1164 | # Compression | ||
1165 | # | ||
1166 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1167 | # CONFIG_CRYPTO_LZO is not set | ||
1168 | |||
1169 | # | ||
1170 | # Random Number Generation | ||
1171 | # | ||
1172 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1173 | CONFIG_CRYPTO_HW=y | ||
1174 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1175 | # CONFIG_PPC_CLOCK is not set | ||
1176 | # CONFIG_VIRTUALIZATION is not set | ||
diff --git a/arch/powerpc/configs/44x/virtex5_defconfig b/arch/powerpc/configs/44x/virtex5_defconfig index 663ec512b33b..7513d360e0b0 100644 --- a/arch/powerpc/configs/44x/virtex5_defconfig +++ b/arch/powerpc/configs/44x/virtex5_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-rc1 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Aug 5 09:20:16 2008 | 4 | # Fri Nov 14 10:31:16 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -22,14 +22,13 @@ CONFIG_PHYS_64BIT=y | |||
22 | CONFIG_NOT_COHERENT_CACHE=y | 22 | CONFIG_NOT_COHERENT_CACHE=y |
23 | CONFIG_PPC32=y | 23 | CONFIG_PPC32=y |
24 | CONFIG_WORD_SIZE=32 | 24 | CONFIG_WORD_SIZE=32 |
25 | CONFIG_PPC_MERGE=y | 25 | CONFIG_ARCH_PHYS_ADDR_T_64BIT=y |
26 | CONFIG_MMU=y | 26 | CONFIG_MMU=y |
27 | CONFIG_GENERIC_CMOS_UPDATE=y | 27 | CONFIG_GENERIC_CMOS_UPDATE=y |
28 | CONFIG_GENERIC_TIME=y | 28 | CONFIG_GENERIC_TIME=y |
29 | CONFIG_GENERIC_TIME_VSYSCALL=y | 29 | CONFIG_GENERIC_TIME_VSYSCALL=y |
30 | CONFIG_GENERIC_CLOCKEVENTS=y | 30 | CONFIG_GENERIC_CLOCKEVENTS=y |
31 | CONFIG_GENERIC_HARDIRQS=y | 31 | CONFIG_GENERIC_HARDIRQS=y |
32 | # CONFIG_HAVE_GET_USER_PAGES_FAST is not set | ||
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
34 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_STACKTRACE_SUPPORT=y | 34 | CONFIG_STACKTRACE_SUPPORT=y |
@@ -40,6 +39,7 @@ CONFIG_ARCH_HAS_ILOG2_U32=y | |||
40 | CONFIG_GENERIC_HWEIGHT=y | 39 | CONFIG_GENERIC_HWEIGHT=y |
41 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 40 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
42 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 41 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
42 | CONFIG_GENERIC_GPIO=y | ||
43 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 43 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
44 | CONFIG_PPC=y | 44 | CONFIG_PPC=y |
45 | CONFIG_EARLY_PRINTK=y | 45 | CONFIG_EARLY_PRINTK=y |
@@ -93,8 +93,8 @@ CONFIG_INITRAMFS_SOURCE="" | |||
93 | CONFIG_SYSCTL=y | 93 | CONFIG_SYSCTL=y |
94 | # CONFIG_EMBEDDED is not set | 94 | # CONFIG_EMBEDDED is not set |
95 | CONFIG_SYSCTL_SYSCALL=y | 95 | CONFIG_SYSCTL_SYSCALL=y |
96 | CONFIG_SYSCTL_SYSCALL_CHECK=y | ||
97 | CONFIG_KALLSYMS=y | 96 | CONFIG_KALLSYMS=y |
97 | # CONFIG_KALLSYMS_ALL is not set | ||
98 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 98 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
99 | CONFIG_HOTPLUG=y | 99 | CONFIG_HOTPLUG=y |
100 | CONFIG_PRINTK=y | 100 | CONFIG_PRINTK=y |
@@ -109,7 +109,9 @@ CONFIG_SIGNALFD=y | |||
109 | CONFIG_TIMERFD=y | 109 | CONFIG_TIMERFD=y |
110 | CONFIG_EVENTFD=y | 110 | CONFIG_EVENTFD=y |
111 | CONFIG_SHMEM=y | 111 | CONFIG_SHMEM=y |
112 | CONFIG_AIO=y | ||
112 | CONFIG_VM_EVENT_COUNTERS=y | 113 | CONFIG_VM_EVENT_COUNTERS=y |
114 | CONFIG_PCI_QUIRKS=y | ||
113 | CONFIG_SLAB=y | 115 | CONFIG_SLAB=y |
114 | # CONFIG_SLUB is not set | 116 | # CONFIG_SLUB is not set |
115 | # CONFIG_SLOB is not set | 117 | # CONFIG_SLOB is not set |
@@ -122,10 +124,6 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
122 | CONFIG_HAVE_KPROBES=y | 124 | CONFIG_HAVE_KPROBES=y |
123 | CONFIG_HAVE_KRETPROBES=y | 125 | CONFIG_HAVE_KRETPROBES=y |
124 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 126 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
125 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
126 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
127 | # CONFIG_HAVE_CLK is not set | ||
128 | CONFIG_PROC_PAGE_MONITOR=y | ||
129 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 127 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
130 | CONFIG_SLABINFO=y | 128 | CONFIG_SLABINFO=y |
131 | CONFIG_RT_MUTEXES=y | 129 | CONFIG_RT_MUTEXES=y |
@@ -158,6 +156,7 @@ CONFIG_DEFAULT_CFQ=y | |||
158 | # CONFIG_DEFAULT_NOOP is not set | 156 | # CONFIG_DEFAULT_NOOP is not set |
159 | CONFIG_DEFAULT_IOSCHED="cfq" | 157 | CONFIG_DEFAULT_IOSCHED="cfq" |
160 | CONFIG_CLASSIC_RCU=y | 158 | CONFIG_CLASSIC_RCU=y |
159 | # CONFIG_FREEZER is not set | ||
161 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 160 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
162 | 161 | ||
163 | # | 162 | # |
@@ -174,9 +173,13 @@ CONFIG_CLASSIC_RCU=y | |||
174 | # CONFIG_KATMAI is not set | 173 | # CONFIG_KATMAI is not set |
175 | # CONFIG_RAINIER is not set | 174 | # CONFIG_RAINIER is not set |
176 | # CONFIG_WARP is not set | 175 | # CONFIG_WARP is not set |
176 | # CONFIG_ARCHES is not set | ||
177 | # CONFIG_CANYONLANDS is not set | 177 | # CONFIG_CANYONLANDS is not set |
178 | # CONFIG_GLACIER is not set | ||
178 | # CONFIG_YOSEMITE is not set | 179 | # CONFIG_YOSEMITE is not set |
179 | CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y | 180 | CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y |
181 | # CONFIG_PPC44x_SIMPLE is not set | ||
182 | # CONFIG_PPC4xx_GPIO is not set | ||
180 | CONFIG_XILINX_VIRTEX=y | 183 | CONFIG_XILINX_VIRTEX=y |
181 | CONFIG_XILINX_VIRTEX_5_FXT=y | 184 | CONFIG_XILINX_VIRTEX_5_FXT=y |
182 | # CONFIG_IPIC is not set | 185 | # CONFIG_IPIC is not set |
@@ -196,7 +199,6 @@ CONFIG_XILINX_VIRTEX_5_FXT=y | |||
196 | # Kernel options | 199 | # Kernel options |
197 | # | 200 | # |
198 | # CONFIG_HIGHMEM is not set | 201 | # CONFIG_HIGHMEM is not set |
199 | # CONFIG_TICK_ONESHOT is not set | ||
200 | # CONFIG_NO_HZ is not set | 202 | # CONFIG_NO_HZ is not set |
201 | # CONFIG_HIGH_RES_TIMERS is not set | 203 | # CONFIG_HIGH_RES_TIMERS is not set |
202 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 204 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -211,6 +213,8 @@ CONFIG_HZ=250 | |||
211 | CONFIG_PREEMPT=y | 213 | CONFIG_PREEMPT=y |
212 | # CONFIG_PREEMPT_RCU is not set | 214 | # CONFIG_PREEMPT_RCU is not set |
213 | CONFIG_BINFMT_ELF=y | 215 | CONFIG_BINFMT_ELF=y |
216 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
217 | # CONFIG_HAVE_AOUT is not set | ||
214 | # CONFIG_BINFMT_MISC is not set | 218 | # CONFIG_BINFMT_MISC is not set |
215 | CONFIG_MATH_EMULATION=y | 219 | CONFIG_MATH_EMULATION=y |
216 | # CONFIG_IOMMU_HELPER is not set | 220 | # CONFIG_IOMMU_HELPER is not set |
@@ -225,15 +229,15 @@ CONFIG_FLATMEM_MANUAL=y | |||
225 | # CONFIG_SPARSEMEM_MANUAL is not set | 229 | # CONFIG_SPARSEMEM_MANUAL is not set |
226 | CONFIG_FLATMEM=y | 230 | CONFIG_FLATMEM=y |
227 | CONFIG_FLAT_NODE_MEM_MAP=y | 231 | CONFIG_FLAT_NODE_MEM_MAP=y |
228 | # CONFIG_SPARSEMEM_STATIC is not set | ||
229 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
230 | CONFIG_PAGEFLAGS_EXTENDED=y | 232 | CONFIG_PAGEFLAGS_EXTENDED=y |
231 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 233 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
232 | CONFIG_MIGRATION=y | 234 | CONFIG_MIGRATION=y |
233 | CONFIG_RESOURCES_64BIT=y | 235 | CONFIG_RESOURCES_64BIT=y |
236 | CONFIG_PHYS_ADDR_T_64BIT=y | ||
234 | CONFIG_ZONE_DMA_FLAG=1 | 237 | CONFIG_ZONE_DMA_FLAG=1 |
235 | CONFIG_BOUNCE=y | 238 | CONFIG_BOUNCE=y |
236 | CONFIG_VIRT_TO_BUS=y | 239 | CONFIG_VIRT_TO_BUS=y |
240 | CONFIG_UNEVICTABLE_LRU=y | ||
237 | CONFIG_FORCE_MAX_ZONEORDER=11 | 241 | CONFIG_FORCE_MAX_ZONEORDER=11 |
238 | CONFIG_PROC_DEVICETREE=y | 242 | CONFIG_PROC_DEVICETREE=y |
239 | CONFIG_CMDLINE_BOOL=y | 243 | CONFIG_CMDLINE_BOOL=y |
@@ -256,6 +260,7 @@ CONFIG_PCI_SYSCALL=y | |||
256 | CONFIG_ARCH_SUPPORTS_MSI=y | 260 | CONFIG_ARCH_SUPPORTS_MSI=y |
257 | # CONFIG_PCI_MSI is not set | 261 | # CONFIG_PCI_MSI is not set |
258 | CONFIG_PCI_LEGACY=y | 262 | CONFIG_PCI_LEGACY=y |
263 | # CONFIG_PCI_DEBUG is not set | ||
259 | # CONFIG_PCCARD is not set | 264 | # CONFIG_PCCARD is not set |
260 | # CONFIG_HOTPLUG_PCI is not set | 265 | # CONFIG_HOTPLUG_PCI is not set |
261 | # CONFIG_HAS_RAPIDIO is not set | 266 | # CONFIG_HAS_RAPIDIO is not set |
@@ -317,7 +322,6 @@ CONFIG_INET_TCP_DIAG=y | |||
317 | CONFIG_TCP_CONG_CUBIC=y | 322 | CONFIG_TCP_CONG_CUBIC=y |
318 | CONFIG_DEFAULT_TCP_CONG="cubic" | 323 | CONFIG_DEFAULT_TCP_CONG="cubic" |
319 | # CONFIG_TCP_MD5SIG is not set | 324 | # CONFIG_TCP_MD5SIG is not set |
320 | # CONFIG_IP_VS is not set | ||
321 | CONFIG_IPV6=m | 325 | CONFIG_IPV6=m |
322 | # CONFIG_IPV6_PRIVACY is not set | 326 | # CONFIG_IPV6_PRIVACY is not set |
323 | # CONFIG_IPV6_ROUTER_PREF is not set | 327 | # CONFIG_IPV6_ROUTER_PREF is not set |
@@ -352,8 +356,8 @@ CONFIG_NETFILTER_XTABLES=m | |||
352 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set | 356 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set |
353 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set | 357 | # CONFIG_NETFILTER_XT_TARGET_DSCP is not set |
354 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set | 358 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set |
355 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
356 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | 359 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set |
360 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
357 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set | 361 | # CONFIG_NETFILTER_XT_TARGET_RATEEST is not set |
358 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | 362 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set |
359 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set | 363 | # CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set |
@@ -361,36 +365,38 @@ CONFIG_NETFILTER_XTABLES=m | |||
361 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | 365 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set |
362 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | 366 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set |
363 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | 367 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set |
368 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
364 | # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set | 369 | # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set |
365 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set | 370 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set |
366 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set | 371 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set |
367 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set | 372 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set |
368 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set | 373 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set |
374 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | ||
369 | # CONFIG_NETFILTER_XT_MATCH_OWNER is not set | 375 | # CONFIG_NETFILTER_XT_MATCH_OWNER is not set |
370 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | 376 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set |
371 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | ||
372 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set | 377 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set |
373 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | 378 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set |
374 | # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set | 379 | # CONFIG_NETFILTER_XT_MATCH_RATEEST is not set |
375 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set | 380 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set |
381 | # CONFIG_NETFILTER_XT_MATCH_RECENT is not set | ||
376 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | 382 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set |
377 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | 383 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set |
378 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set | 384 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set |
379 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set | 385 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set |
380 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | 386 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set |
381 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set | 387 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set |
382 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | 388 | # CONFIG_IP_VS is not set |
383 | 389 | ||
384 | # | 390 | # |
385 | # IP: Netfilter Configuration | 391 | # IP: Netfilter Configuration |
386 | # | 392 | # |
393 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
387 | # CONFIG_IP_NF_QUEUE is not set | 394 | # CONFIG_IP_NF_QUEUE is not set |
388 | CONFIG_IP_NF_IPTABLES=m | 395 | CONFIG_IP_NF_IPTABLES=m |
389 | # CONFIG_IP_NF_MATCH_RECENT is not set | 396 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set |
390 | # CONFIG_IP_NF_MATCH_ECN is not set | ||
391 | # CONFIG_IP_NF_MATCH_AH is not set | 397 | # CONFIG_IP_NF_MATCH_AH is not set |
398 | # CONFIG_IP_NF_MATCH_ECN is not set | ||
392 | # CONFIG_IP_NF_MATCH_TTL is not set | 399 | # CONFIG_IP_NF_MATCH_TTL is not set |
393 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
394 | CONFIG_IP_NF_FILTER=m | 400 | CONFIG_IP_NF_FILTER=m |
395 | # CONFIG_IP_NF_TARGET_REJECT is not set | 401 | # CONFIG_IP_NF_TARGET_REJECT is not set |
396 | # CONFIG_IP_NF_TARGET_LOG is not set | 402 | # CONFIG_IP_NF_TARGET_LOG is not set |
@@ -411,6 +417,7 @@ CONFIG_IP_NF_MANGLE=m | |||
411 | # CONFIG_TIPC is not set | 417 | # CONFIG_TIPC is not set |
412 | # CONFIG_ATM is not set | 418 | # CONFIG_ATM is not set |
413 | # CONFIG_BRIDGE is not set | 419 | # CONFIG_BRIDGE is not set |
420 | # CONFIG_NET_DSA is not set | ||
414 | # CONFIG_VLAN_8021Q is not set | 421 | # CONFIG_VLAN_8021Q is not set |
415 | # CONFIG_DECNET is not set | 422 | # CONFIG_DECNET is not set |
416 | # CONFIG_LLC2 is not set | 423 | # CONFIG_LLC2 is not set |
@@ -431,11 +438,10 @@ CONFIG_IP_NF_MANGLE=m | |||
431 | # CONFIG_IRDA is not set | 438 | # CONFIG_IRDA is not set |
432 | # CONFIG_BT is not set | 439 | # CONFIG_BT is not set |
433 | # CONFIG_AF_RXRPC is not set | 440 | # CONFIG_AF_RXRPC is not set |
434 | 441 | # CONFIG_PHONET is not set | |
435 | # | 442 | CONFIG_WIRELESS=y |
436 | # Wireless | ||
437 | # | ||
438 | # CONFIG_CFG80211 is not set | 443 | # CONFIG_CFG80211 is not set |
444 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
439 | # CONFIG_WIRELESS_EXT is not set | 445 | # CONFIG_WIRELESS_EXT is not set |
440 | # CONFIG_MAC80211 is not set | 446 | # CONFIG_MAC80211 is not set |
441 | # CONFIG_IEEE80211 is not set | 447 | # CONFIG_IEEE80211 is not set |
@@ -455,11 +461,13 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y | |||
455 | CONFIG_FW_LOADER=y | 461 | CONFIG_FW_LOADER=y |
456 | CONFIG_FIRMWARE_IN_KERNEL=y | 462 | CONFIG_FIRMWARE_IN_KERNEL=y |
457 | CONFIG_EXTRA_FIRMWARE="" | 463 | CONFIG_EXTRA_FIRMWARE="" |
464 | # CONFIG_DEBUG_DRIVER is not set | ||
465 | # CONFIG_DEBUG_DEVRES is not set | ||
458 | # CONFIG_SYS_HYPERVISOR is not set | 466 | # CONFIG_SYS_HYPERVISOR is not set |
459 | # CONFIG_CONNECTOR is not set | 467 | # CONFIG_CONNECTOR is not set |
460 | # CONFIG_MTD is not set | 468 | # CONFIG_MTD is not set |
461 | CONFIG_OF_DEVICE=y | 469 | CONFIG_OF_DEVICE=y |
462 | CONFIG_OF_I2C=y | 470 | CONFIG_OF_GPIO=y |
463 | # CONFIG_PARPORT is not set | 471 | # CONFIG_PARPORT is not set |
464 | CONFIG_BLK_DEV=y | 472 | CONFIG_BLK_DEV=y |
465 | # CONFIG_BLK_DEV_FD is not set | 473 | # CONFIG_BLK_DEV_FD is not set |
@@ -478,7 +486,7 @@ CONFIG_BLK_DEV_RAM_SIZE=8192 | |||
478 | # CONFIG_BLK_DEV_XIP is not set | 486 | # CONFIG_BLK_DEV_XIP is not set |
479 | # CONFIG_CDROM_PKTCDVD is not set | 487 | # CONFIG_CDROM_PKTCDVD is not set |
480 | # CONFIG_ATA_OVER_ETH is not set | 488 | # CONFIG_ATA_OVER_ETH is not set |
481 | # CONFIG_XILINX_SYSACE is not set | 489 | CONFIG_XILINX_SYSACE=y |
482 | # CONFIG_BLK_DEV_HD is not set | 490 | # CONFIG_BLK_DEV_HD is not set |
483 | CONFIG_MISC_DEVICES=y | 491 | CONFIG_MISC_DEVICES=y |
484 | # CONFIG_PHANTOM is not set | 492 | # CONFIG_PHANTOM is not set |
@@ -487,6 +495,7 @@ CONFIG_MISC_DEVICES=y | |||
487 | # CONFIG_TIFM_CORE is not set | 495 | # CONFIG_TIFM_CORE is not set |
488 | # CONFIG_ENCLOSURE_SERVICES is not set | 496 | # CONFIG_ENCLOSURE_SERVICES is not set |
489 | # CONFIG_HP_ILO is not set | 497 | # CONFIG_HP_ILO is not set |
498 | # CONFIG_C2PORT is not set | ||
490 | CONFIG_HAVE_IDE=y | 499 | CONFIG_HAVE_IDE=y |
491 | # CONFIG_IDE is not set | 500 | # CONFIG_IDE is not set |
492 | 501 | ||
@@ -534,8 +543,12 @@ CONFIG_MII=y | |||
534 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 543 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
535 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 544 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
536 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 545 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
546 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
547 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
548 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
537 | # CONFIG_NET_PCI is not set | 549 | # CONFIG_NET_PCI is not set |
538 | # CONFIG_B44 is not set | 550 | # CONFIG_B44 is not set |
551 | # CONFIG_ATL2 is not set | ||
539 | CONFIG_NETDEV_1000=y | 552 | CONFIG_NETDEV_1000=y |
540 | # CONFIG_ACENIC is not set | 553 | # CONFIG_ACENIC is not set |
541 | # CONFIG_DL2K is not set | 554 | # CONFIG_DL2K is not set |
@@ -556,6 +569,7 @@ CONFIG_NETDEV_1000=y | |||
556 | # CONFIG_QLA3XXX is not set | 569 | # CONFIG_QLA3XXX is not set |
557 | # CONFIG_ATL1 is not set | 570 | # CONFIG_ATL1 is not set |
558 | # CONFIG_ATL1E is not set | 571 | # CONFIG_ATL1E is not set |
572 | # CONFIG_JME is not set | ||
559 | # CONFIG_NETDEV_10000 is not set | 573 | # CONFIG_NETDEV_10000 is not set |
560 | # CONFIG_TR is not set | 574 | # CONFIG_TR is not set |
561 | 575 | ||
@@ -604,6 +618,7 @@ CONFIG_KEYBOARD_ATKBD=y | |||
604 | # CONFIG_KEYBOARD_XTKBD is not set | 618 | # CONFIG_KEYBOARD_XTKBD is not set |
605 | # CONFIG_KEYBOARD_NEWTON is not set | 619 | # CONFIG_KEYBOARD_NEWTON is not set |
606 | # CONFIG_KEYBOARD_STOWAWAY is not set | 620 | # CONFIG_KEYBOARD_STOWAWAY is not set |
621 | # CONFIG_KEYBOARD_GPIO is not set | ||
607 | CONFIG_INPUT_MOUSE=y | 622 | CONFIG_INPUT_MOUSE=y |
608 | CONFIG_MOUSE_PS2=y | 623 | CONFIG_MOUSE_PS2=y |
609 | CONFIG_MOUSE_PS2_ALPS=y | 624 | CONFIG_MOUSE_PS2_ALPS=y |
@@ -611,9 +626,11 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y | |||
611 | CONFIG_MOUSE_PS2_SYNAPTICS=y | 626 | CONFIG_MOUSE_PS2_SYNAPTICS=y |
612 | CONFIG_MOUSE_PS2_LIFEBOOK=y | 627 | CONFIG_MOUSE_PS2_LIFEBOOK=y |
613 | CONFIG_MOUSE_PS2_TRACKPOINT=y | 628 | CONFIG_MOUSE_PS2_TRACKPOINT=y |
629 | # CONFIG_MOUSE_PS2_ELANTECH is not set | ||
614 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | 630 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set |
615 | # CONFIG_MOUSE_SERIAL is not set | 631 | # CONFIG_MOUSE_SERIAL is not set |
616 | # CONFIG_MOUSE_VSXXXAA is not set | 632 | # CONFIG_MOUSE_VSXXXAA is not set |
633 | # CONFIG_MOUSE_GPIO is not set | ||
617 | # CONFIG_INPUT_JOYSTICK is not set | 634 | # CONFIG_INPUT_JOYSTICK is not set |
618 | # CONFIG_INPUT_TABLET is not set | 635 | # CONFIG_INPUT_TABLET is not set |
619 | # CONFIG_INPUT_TOUCHSCREEN is not set | 636 | # CONFIG_INPUT_TOUCHSCREEN is not set |
@@ -624,11 +641,11 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y | |||
624 | # | 641 | # |
625 | CONFIG_SERIO=y | 642 | CONFIG_SERIO=y |
626 | # CONFIG_SERIO_I8042 is not set | 643 | # CONFIG_SERIO_I8042 is not set |
627 | CONFIG_SERIO_SERPORT=y | 644 | # CONFIG_SERIO_SERPORT is not set |
628 | # CONFIG_SERIO_PCIPS2 is not set | 645 | # CONFIG_SERIO_PCIPS2 is not set |
629 | CONFIG_SERIO_LIBPS2=y | 646 | CONFIG_SERIO_LIBPS2=y |
630 | # CONFIG_SERIO_RAW is not set | 647 | # CONFIG_SERIO_RAW is not set |
631 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 648 | CONFIG_SERIO_XILINX_XPS_PS2=y |
632 | # CONFIG_GAMEPORT is not set | 649 | # CONFIG_GAMEPORT is not set |
633 | 650 | ||
634 | # | 651 | # |
@@ -656,11 +673,12 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 | |||
656 | # | 673 | # |
657 | # Non-8250 serial port support | 674 | # Non-8250 serial port support |
658 | # | 675 | # |
659 | # CONFIG_SERIAL_UARTLITE is not set | 676 | CONFIG_SERIAL_UARTLITE=y |
677 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | ||
660 | CONFIG_SERIAL_CORE=y | 678 | CONFIG_SERIAL_CORE=y |
661 | CONFIG_SERIAL_CORE_CONSOLE=y | 679 | CONFIG_SERIAL_CORE_CONSOLE=y |
662 | # CONFIG_SERIAL_JSM is not set | 680 | # CONFIG_SERIAL_JSM is not set |
663 | CONFIG_SERIAL_OF_PLATFORM=y | 681 | # CONFIG_SERIAL_OF_PLATFORM is not set |
664 | CONFIG_UNIX98_PTYS=y | 682 | CONFIG_UNIX98_PTYS=y |
665 | CONFIG_LEGACY_PTYS=y | 683 | CONFIG_LEGACY_PTYS=y |
666 | CONFIG_LEGACY_PTY_COUNT=256 | 684 | CONFIG_LEGACY_PTY_COUNT=256 |
@@ -674,87 +692,41 @@ CONFIG_XILINX_HWICAP=y | |||
674 | # CONFIG_RAW_DRIVER is not set | 692 | # CONFIG_RAW_DRIVER is not set |
675 | # CONFIG_TCG_TPM is not set | 693 | # CONFIG_TCG_TPM is not set |
676 | CONFIG_DEVPORT=y | 694 | CONFIG_DEVPORT=y |
677 | CONFIG_I2C=y | 695 | # CONFIG_I2C is not set |
678 | CONFIG_I2C_BOARDINFO=y | 696 | # CONFIG_SPI is not set |
679 | CONFIG_I2C_CHARDEV=y | 697 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
680 | 698 | CONFIG_GPIOLIB=y | |
681 | # | 699 | # CONFIG_DEBUG_GPIO is not set |
682 | # I2C Hardware Bus support | 700 | CONFIG_GPIO_SYSFS=y |
683 | # | ||
684 | |||
685 | # | ||
686 | # PC SMBus host controller drivers | ||
687 | # | ||
688 | # CONFIG_I2C_ALI1535 is not set | ||
689 | # CONFIG_I2C_ALI1563 is not set | ||
690 | # CONFIG_I2C_ALI15X3 is not set | ||
691 | # CONFIG_I2C_AMD756 is not set | ||
692 | # CONFIG_I2C_AMD8111 is not set | ||
693 | # CONFIG_I2C_I801 is not set | ||
694 | # CONFIG_I2C_ISCH is not set | ||
695 | # CONFIG_I2C_PIIX4 is not set | ||
696 | # CONFIG_I2C_NFORCE2 is not set | ||
697 | # CONFIG_I2C_SIS5595 is not set | ||
698 | # CONFIG_I2C_SIS630 is not set | ||
699 | # CONFIG_I2C_SIS96X is not set | ||
700 | # CONFIG_I2C_VIA is not set | ||
701 | # CONFIG_I2C_VIAPRO is not set | ||
702 | 701 | ||
703 | # | 702 | # |
704 | # I2C system bus drivers (mostly embedded / system-on-chip) | 703 | # Memory mapped GPIO expanders: |
705 | # | 704 | # |
706 | # CONFIG_I2C_IBM_IIC is not set | 705 | CONFIG_GPIO_XILINX=y |
707 | # CONFIG_I2C_MPC is not set | ||
708 | # CONFIG_I2C_OCORES is not set | ||
709 | # CONFIG_I2C_SIMTEC is not set | ||
710 | 706 | ||
711 | # | 707 | # |
712 | # External I2C/SMBus adapter drivers | 708 | # I2C GPIO expanders: |
713 | # | 709 | # |
714 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
715 | # CONFIG_I2C_TAOS_EVM is not set | ||
716 | 710 | ||
717 | # | 711 | # |
718 | # Graphics adapter I2C/DDC channel drivers | 712 | # PCI GPIO expanders: |
719 | # | 713 | # |
720 | # CONFIG_I2C_VOODOO3 is not set | 714 | # CONFIG_GPIO_BT8XX is not set |
721 | 715 | ||
722 | # | 716 | # |
723 | # Other I2C/SMBus bus drivers | 717 | # SPI GPIO expanders: |
724 | # | 718 | # |
725 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
726 | # CONFIG_I2C_STUB is not set | ||
727 | |||
728 | # | ||
729 | # Miscellaneous I2C Chip support | ||
730 | # | ||
731 | # CONFIG_DS1682 is not set | ||
732 | # CONFIG_AT24 is not set | ||
733 | # CONFIG_SENSORS_EEPROM is not set | ||
734 | # CONFIG_SENSORS_PCF8574 is not set | ||
735 | # CONFIG_PCF8575 is not set | ||
736 | # CONFIG_SENSORS_PCA9539 is not set | ||
737 | # CONFIG_SENSORS_PCF8591 is not set | ||
738 | # CONFIG_SENSORS_MAX6875 is not set | ||
739 | # CONFIG_SENSORS_TSL2550 is not set | ||
740 | CONFIG_I2C_DEBUG_CORE=y | ||
741 | CONFIG_I2C_DEBUG_ALGO=y | ||
742 | # CONFIG_I2C_DEBUG_BUS is not set | ||
743 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
744 | # CONFIG_SPI is not set | ||
745 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
746 | # CONFIG_GPIOLIB is not set | ||
747 | # CONFIG_W1 is not set | 719 | # CONFIG_W1 is not set |
748 | # CONFIG_POWER_SUPPLY is not set | 720 | # CONFIG_POWER_SUPPLY is not set |
749 | # CONFIG_HWMON is not set | 721 | # CONFIG_HWMON is not set |
750 | # CONFIG_THERMAL is not set | 722 | # CONFIG_THERMAL is not set |
751 | # CONFIG_THERMAL_HWMON is not set | 723 | # CONFIG_THERMAL_HWMON is not set |
752 | # CONFIG_WATCHDOG is not set | 724 | # CONFIG_WATCHDOG is not set |
725 | CONFIG_SSB_POSSIBLE=y | ||
753 | 726 | ||
754 | # | 727 | # |
755 | # Sonics Silicon Backplane | 728 | # Sonics Silicon Backplane |
756 | # | 729 | # |
757 | CONFIG_SSB_POSSIBLE=y | ||
758 | # CONFIG_SSB is not set | 730 | # CONFIG_SSB is not set |
759 | 731 | ||
760 | # | 732 | # |
@@ -763,6 +735,8 @@ CONFIG_SSB_POSSIBLE=y | |||
763 | # CONFIG_MFD_CORE is not set | 735 | # CONFIG_MFD_CORE is not set |
764 | # CONFIG_MFD_SM501 is not set | 736 | # CONFIG_MFD_SM501 is not set |
765 | # CONFIG_HTC_PASIC3 is not set | 737 | # CONFIG_HTC_PASIC3 is not set |
738 | # CONFIG_MFD_TMIO is not set | ||
739 | # CONFIG_REGULATOR is not set | ||
766 | 740 | ||
767 | # | 741 | # |
768 | # Multimedia devices | 742 | # Multimedia devices |
@@ -790,6 +764,7 @@ CONFIG_SSB_POSSIBLE=y | |||
790 | CONFIG_FB=y | 764 | CONFIG_FB=y |
791 | # CONFIG_FIRMWARE_EDID is not set | 765 | # CONFIG_FIRMWARE_EDID is not set |
792 | # CONFIG_FB_DDC is not set | 766 | # CONFIG_FB_DDC is not set |
767 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
793 | CONFIG_FB_CFB_FILLRECT=y | 768 | CONFIG_FB_CFB_FILLRECT=y |
794 | CONFIG_FB_CFB_COPYAREA=y | 769 | CONFIG_FB_CFB_COPYAREA=y |
795 | CONFIG_FB_CFB_IMAGEBLIT=y | 770 | CONFIG_FB_CFB_IMAGEBLIT=y |
@@ -826,6 +801,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
826 | # CONFIG_FB_S3 is not set | 801 | # CONFIG_FB_S3 is not set |
827 | # CONFIG_FB_SAVAGE is not set | 802 | # CONFIG_FB_SAVAGE is not set |
828 | # CONFIG_FB_SIS is not set | 803 | # CONFIG_FB_SIS is not set |
804 | # CONFIG_FB_VIA is not set | ||
829 | # CONFIG_FB_NEOMAGIC is not set | 805 | # CONFIG_FB_NEOMAGIC is not set |
830 | # CONFIG_FB_KYRO is not set | 806 | # CONFIG_FB_KYRO is not set |
831 | # CONFIG_FB_3DFX is not set | 807 | # CONFIG_FB_3DFX is not set |
@@ -838,6 +814,8 @@ CONFIG_FB_CFB_IMAGEBLIT=y | |||
838 | # CONFIG_FB_IBM_GXT4500 is not set | 814 | # CONFIG_FB_IBM_GXT4500 is not set |
839 | CONFIG_FB_XILINX=y | 815 | CONFIG_FB_XILINX=y |
840 | # CONFIG_FB_VIRTUAL is not set | 816 | # CONFIG_FB_VIRTUAL is not set |
817 | # CONFIG_FB_METRONOME is not set | ||
818 | # CONFIG_FB_MB862XX is not set | ||
841 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 819 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
842 | 820 | ||
843 | # | 821 | # |
@@ -870,6 +848,7 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
870 | # CONFIG_SOUND is not set | 848 | # CONFIG_SOUND is not set |
871 | # CONFIG_HID_SUPPORT is not set | 849 | # CONFIG_HID_SUPPORT is not set |
872 | # CONFIG_USB_SUPPORT is not set | 850 | # CONFIG_USB_SUPPORT is not set |
851 | # CONFIG_UWB is not set | ||
873 | # CONFIG_MMC is not set | 852 | # CONFIG_MMC is not set |
874 | # CONFIG_MEMSTICK is not set | 853 | # CONFIG_MEMSTICK is not set |
875 | # CONFIG_NEW_LEDS is not set | 854 | # CONFIG_NEW_LEDS is not set |
@@ -879,6 +858,8 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
879 | # CONFIG_RTC_CLASS is not set | 858 | # CONFIG_RTC_CLASS is not set |
880 | # CONFIG_DMADEVICES is not set | 859 | # CONFIG_DMADEVICES is not set |
881 | # CONFIG_UIO is not set | 860 | # CONFIG_UIO is not set |
861 | # CONFIG_STAGING is not set | ||
862 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
882 | 863 | ||
883 | # | 864 | # |
884 | # File systems | 865 | # File systems |
@@ -887,10 +868,11 @@ CONFIG_EXT2_FS=y | |||
887 | # CONFIG_EXT2_FS_XATTR is not set | 868 | # CONFIG_EXT2_FS_XATTR is not set |
888 | # CONFIG_EXT2_FS_XIP is not set | 869 | # CONFIG_EXT2_FS_XIP is not set |
889 | # CONFIG_EXT3_FS is not set | 870 | # CONFIG_EXT3_FS is not set |
890 | # CONFIG_EXT4DEV_FS is not set | 871 | # CONFIG_EXT4_FS is not set |
891 | # CONFIG_REISERFS_FS is not set | 872 | # CONFIG_REISERFS_FS is not set |
892 | # CONFIG_JFS_FS is not set | 873 | # CONFIG_JFS_FS is not set |
893 | # CONFIG_FS_POSIX_ACL is not set | 874 | # CONFIG_FS_POSIX_ACL is not set |
875 | CONFIG_FILE_LOCKING=y | ||
894 | # CONFIG_XFS_FS is not set | 876 | # CONFIG_XFS_FS is not set |
895 | # CONFIG_OCFS2_FS is not set | 877 | # CONFIG_OCFS2_FS is not set |
896 | CONFIG_DNOTIFY=y | 878 | CONFIG_DNOTIFY=y |
@@ -899,7 +881,7 @@ CONFIG_INOTIFY_USER=y | |||
899 | # CONFIG_QUOTA is not set | 881 | # CONFIG_QUOTA is not set |
900 | CONFIG_AUTOFS_FS=y | 882 | CONFIG_AUTOFS_FS=y |
901 | CONFIG_AUTOFS4_FS=y | 883 | CONFIG_AUTOFS4_FS=y |
902 | CONFIG_FUSE_FS=m | 884 | # CONFIG_FUSE_FS is not set |
903 | 885 | ||
904 | # | 886 | # |
905 | # CD-ROM/DVD Filesystems | 887 | # CD-ROM/DVD Filesystems |
@@ -923,6 +905,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
923 | CONFIG_PROC_FS=y | 905 | CONFIG_PROC_FS=y |
924 | # CONFIG_PROC_KCORE is not set | 906 | # CONFIG_PROC_KCORE is not set |
925 | CONFIG_PROC_SYSCTL=y | 907 | CONFIG_PROC_SYSCTL=y |
908 | CONFIG_PROC_PAGE_MONITOR=y | ||
926 | CONFIG_SYSFS=y | 909 | CONFIG_SYSFS=y |
927 | CONFIG_TMPFS=y | 910 | CONFIG_TMPFS=y |
928 | # CONFIG_TMPFS_POSIX_ACL is not set | 911 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -954,19 +937,15 @@ CONFIG_NFS_V3=y | |||
954 | # CONFIG_NFS_V3_ACL is not set | 937 | # CONFIG_NFS_V3_ACL is not set |
955 | # CONFIG_NFS_V4 is not set | 938 | # CONFIG_NFS_V4 is not set |
956 | CONFIG_ROOT_NFS=y | 939 | CONFIG_ROOT_NFS=y |
957 | CONFIG_NFSD=y | 940 | # CONFIG_NFSD is not set |
958 | CONFIG_NFSD_V3=y | ||
959 | # CONFIG_NFSD_V3_ACL is not set | ||
960 | # CONFIG_NFSD_V4 is not set | ||
961 | CONFIG_LOCKD=y | 941 | CONFIG_LOCKD=y |
962 | CONFIG_LOCKD_V4=y | 942 | CONFIG_LOCKD_V4=y |
963 | CONFIG_EXPORTFS=y | ||
964 | CONFIG_NFS_COMMON=y | 943 | CONFIG_NFS_COMMON=y |
965 | CONFIG_SUNRPC=y | 944 | CONFIG_SUNRPC=y |
945 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
966 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 946 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
967 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 947 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
968 | CONFIG_SMB_FS=y | 948 | # CONFIG_SMB_FS is not set |
969 | # CONFIG_SMB_NLS_DEFAULT is not set | ||
970 | # CONFIG_CIFS is not set | 949 | # CONFIG_CIFS is not set |
971 | # CONFIG_NCP_FS is not set | 950 | # CONFIG_NCP_FS is not set |
972 | # CONFIG_CODA_FS is not set | 951 | # CONFIG_CODA_FS is not set |
@@ -1023,7 +1002,6 @@ CONFIG_NLS_UTF8=m | |||
1023 | # Library routines | 1002 | # Library routines |
1024 | # | 1003 | # |
1025 | CONFIG_BITREVERSE=y | 1004 | CONFIG_BITREVERSE=y |
1026 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1027 | CONFIG_CRC_CCITT=y | 1005 | CONFIG_CRC_CCITT=y |
1028 | # CONFIG_CRC16 is not set | 1006 | # CONFIG_CRC16 is not set |
1029 | # CONFIG_CRC_T10DIF is not set | 1007 | # CONFIG_CRC_T10DIF is not set |
@@ -1041,7 +1019,7 @@ CONFIG_HAVE_LMB=y | |||
1041 | # | 1019 | # |
1042 | # Kernel hacking | 1020 | # Kernel hacking |
1043 | # | 1021 | # |
1044 | # CONFIG_PRINTK_TIME is not set | 1022 | CONFIG_PRINTK_TIME=y |
1045 | CONFIG_ENABLE_WARN_DEPRECATED=y | 1023 | CONFIG_ENABLE_WARN_DEPRECATED=y |
1046 | CONFIG_ENABLE_MUST_CHECK=y | 1024 | CONFIG_ENABLE_MUST_CHECK=y |
1047 | CONFIG_FRAME_WARN=1024 | 1025 | CONFIG_FRAME_WARN=1024 |
@@ -1049,19 +1027,62 @@ CONFIG_FRAME_WARN=1024 | |||
1049 | # CONFIG_UNUSED_SYMBOLS is not set | 1027 | # CONFIG_UNUSED_SYMBOLS is not set |
1050 | # CONFIG_DEBUG_FS is not set | 1028 | # CONFIG_DEBUG_FS is not set |
1051 | # CONFIG_HEADERS_CHECK is not set | 1029 | # CONFIG_HEADERS_CHECK is not set |
1052 | # CONFIG_DEBUG_KERNEL is not set | 1030 | CONFIG_DEBUG_KERNEL=y |
1031 | # CONFIG_DEBUG_SHIRQ is not set | ||
1032 | CONFIG_DETECT_SOFTLOCKUP=y | ||
1033 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1034 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1035 | CONFIG_SCHED_DEBUG=y | ||
1036 | # CONFIG_SCHEDSTATS is not set | ||
1037 | # CONFIG_TIMER_STATS is not set | ||
1038 | # CONFIG_DEBUG_OBJECTS is not set | ||
1039 | # CONFIG_DEBUG_SLAB is not set | ||
1040 | # CONFIG_DEBUG_RT_MUTEXES is not set | ||
1041 | # CONFIG_RT_MUTEX_TESTER is not set | ||
1042 | # CONFIG_DEBUG_SPINLOCK is not set | ||
1043 | # CONFIG_DEBUG_MUTEXES is not set | ||
1044 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | ||
1045 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | ||
1046 | # CONFIG_DEBUG_KOBJECT is not set | ||
1053 | CONFIG_DEBUG_BUGVERBOSE=y | 1047 | CONFIG_DEBUG_BUGVERBOSE=y |
1048 | CONFIG_DEBUG_INFO=y | ||
1049 | # CONFIG_DEBUG_VM is not set | ||
1050 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1054 | CONFIG_DEBUG_MEMORY_INIT=y | 1051 | CONFIG_DEBUG_MEMORY_INIT=y |
1052 | # CONFIG_DEBUG_LIST is not set | ||
1053 | # CONFIG_DEBUG_SG is not set | ||
1054 | # CONFIG_BOOT_PRINTK_DELAY is not set | ||
1055 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1056 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1057 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1058 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1059 | # CONFIG_FAULT_INJECTION is not set | ||
1055 | # CONFIG_LATENCYTOP is not set | 1060 | # CONFIG_LATENCYTOP is not set |
1056 | CONFIG_HAVE_FTRACE=y | 1061 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1057 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1062 | CONFIG_HAVE_FUNCTION_TRACER=y |
1058 | # CONFIG_FTRACE is not set | 1063 | |
1064 | # | ||
1065 | # Tracers | ||
1066 | # | ||
1067 | # CONFIG_FUNCTION_TRACER is not set | ||
1059 | # CONFIG_PREEMPT_TRACER is not set | 1068 | # CONFIG_PREEMPT_TRACER is not set |
1060 | # CONFIG_SCHED_TRACER is not set | 1069 | # CONFIG_SCHED_TRACER is not set |
1061 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1070 | # CONFIG_CONTEXT_SWITCH_TRACER is not set |
1071 | # CONFIG_BOOT_TRACER is not set | ||
1072 | # CONFIG_STACK_TRACER is not set | ||
1073 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1062 | # CONFIG_SAMPLES is not set | 1074 | # CONFIG_SAMPLES is not set |
1063 | CONFIG_HAVE_ARCH_KGDB=y | 1075 | CONFIG_HAVE_ARCH_KGDB=y |
1076 | # CONFIG_KGDB is not set | ||
1077 | # CONFIG_DEBUG_STACKOVERFLOW is not set | ||
1078 | # CONFIG_DEBUG_STACK_USAGE is not set | ||
1079 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1080 | # CONFIG_CODE_PATCHING_SELFTEST is not set | ||
1081 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
1082 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
1083 | # CONFIG_XMON is not set | ||
1064 | # CONFIG_IRQSTACKS is not set | 1084 | # CONFIG_IRQSTACKS is not set |
1085 | # CONFIG_BDI_SWITCH is not set | ||
1065 | # CONFIG_PPC_EARLY_DEBUG is not set | 1086 | # CONFIG_PPC_EARLY_DEBUG is not set |
1066 | 1087 | ||
1067 | # | 1088 | # |
@@ -1069,12 +1090,14 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1069 | # | 1090 | # |
1070 | # CONFIG_KEYS is not set | 1091 | # CONFIG_KEYS is not set |
1071 | # CONFIG_SECURITY is not set | 1092 | # CONFIG_SECURITY is not set |
1093 | # CONFIG_SECURITYFS is not set | ||
1072 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1094 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1073 | CONFIG_CRYPTO=y | 1095 | CONFIG_CRYPTO=y |
1074 | 1096 | ||
1075 | # | 1097 | # |
1076 | # Crypto core or helper | 1098 | # Crypto core or helper |
1077 | # | 1099 | # |
1100 | # CONFIG_CRYPTO_FIPS is not set | ||
1078 | # CONFIG_CRYPTO_MANAGER is not set | 1101 | # CONFIG_CRYPTO_MANAGER is not set |
1079 | # CONFIG_CRYPTO_GF128MUL is not set | 1102 | # CONFIG_CRYPTO_GF128MUL is not set |
1080 | # CONFIG_CRYPTO_NULL is not set | 1103 | # CONFIG_CRYPTO_NULL is not set |
@@ -1147,6 +1170,11 @@ CONFIG_CRYPTO=y | |||
1147 | # | 1170 | # |
1148 | # CONFIG_CRYPTO_DEFLATE is not set | 1171 | # CONFIG_CRYPTO_DEFLATE is not set |
1149 | # CONFIG_CRYPTO_LZO is not set | 1172 | # CONFIG_CRYPTO_LZO is not set |
1173 | |||
1174 | # | ||
1175 | # Random Number Generation | ||
1176 | # | ||
1177 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1150 | CONFIG_CRYPTO_HW=y | 1178 | CONFIG_CRYPTO_HW=y |
1151 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1179 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1152 | # CONFIG_PPC_CLOCK is not set | 1180 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/52xx/cm5200_defconfig b/arch/powerpc/configs/52xx/cm5200_defconfig index c10f7395aa1b..3df627494b65 100644 --- a/arch/powerpc/configs/52xx/cm5200_defconfig +++ b/arch/powerpc/configs/52xx/cm5200_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.25 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Apr 29 07:11:37 2008 | 4 | # Thu Nov 13 02:12:40 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y | |||
22 | # CONFIG_SMP is not set | 22 | # CONFIG_SMP is not set |
23 | CONFIG_PPC32=y | 23 | CONFIG_PPC32=y |
24 | CONFIG_WORD_SIZE=32 | 24 | CONFIG_WORD_SIZE=32 |
25 | CONFIG_PPC_MERGE=y | 25 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set |
26 | CONFIG_MMU=y | 26 | CONFIG_MMU=y |
27 | CONFIG_GENERIC_CMOS_UPDATE=y | 27 | CONFIG_GENERIC_CMOS_UPDATE=y |
28 | CONFIG_GENERIC_TIME=y | 28 | CONFIG_GENERIC_TIME=y |
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
34 | CONFIG_STACKTRACE_SUPPORT=y | 34 | CONFIG_STACKTRACE_SUPPORT=y |
35 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | 36 | CONFIG_LOCKDEP_SUPPORT=y |
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | 38 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -102,6 +103,7 @@ CONFIG_SIGNALFD=y | |||
102 | CONFIG_TIMERFD=y | 103 | CONFIG_TIMERFD=y |
103 | CONFIG_EVENTFD=y | 104 | CONFIG_EVENTFD=y |
104 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
106 | CONFIG_AIO=y | ||
105 | CONFIG_VM_EVENT_COUNTERS=y | 107 | CONFIG_VM_EVENT_COUNTERS=y |
106 | CONFIG_SLUB_DEBUG=y | 108 | CONFIG_SLUB_DEBUG=y |
107 | # CONFIG_SLAB is not set | 109 | # CONFIG_SLAB is not set |
@@ -110,9 +112,13 @@ CONFIG_SLUB=y | |||
110 | # CONFIG_PROFILING is not set | 112 | # CONFIG_PROFILING is not set |
111 | # CONFIG_MARKERS is not set | 113 | # CONFIG_MARKERS is not set |
112 | CONFIG_HAVE_OPROFILE=y | 114 | CONFIG_HAVE_OPROFILE=y |
115 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
116 | CONFIG_HAVE_IOREMAP_PROT=y | ||
113 | CONFIG_HAVE_KPROBES=y | 117 | CONFIG_HAVE_KPROBES=y |
114 | CONFIG_HAVE_KRETPROBES=y | 118 | CONFIG_HAVE_KRETPROBES=y |
115 | CONFIG_PROC_PAGE_MONITOR=y | 119 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
120 | CONFIG_HAVE_CLK=y | ||
121 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
116 | CONFIG_SLABINFO=y | 122 | CONFIG_SLABINFO=y |
117 | CONFIG_RT_MUTEXES=y | 123 | CONFIG_RT_MUTEXES=y |
118 | # CONFIG_TINY_SHMEM is not set | 124 | # CONFIG_TINY_SHMEM is not set |
@@ -123,6 +129,7 @@ CONFIG_BLOCK=y | |||
123 | # CONFIG_BLK_DEV_IO_TRACE is not set | 129 | # CONFIG_BLK_DEV_IO_TRACE is not set |
124 | # CONFIG_LSF is not set | 130 | # CONFIG_LSF is not set |
125 | # CONFIG_BLK_DEV_BSG is not set | 131 | # CONFIG_BLK_DEV_BSG is not set |
132 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
126 | 133 | ||
127 | # | 134 | # |
128 | # IO Schedulers | 135 | # IO Schedulers |
@@ -137,19 +144,16 @@ CONFIG_DEFAULT_AS=y | |||
137 | # CONFIG_DEFAULT_NOOP is not set | 144 | # CONFIG_DEFAULT_NOOP is not set |
138 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 145 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
139 | CONFIG_CLASSIC_RCU=y | 146 | CONFIG_CLASSIC_RCU=y |
147 | # CONFIG_FREEZER is not set | ||
140 | 148 | ||
141 | # | 149 | # |
142 | # Platform support | 150 | # Platform support |
143 | # | 151 | # |
144 | CONFIG_PPC_MULTIPLATFORM=y | 152 | CONFIG_PPC_MULTIPLATFORM=y |
145 | # CONFIG_PPC_82xx is not set | ||
146 | # CONFIG_PPC_83xx is not set | ||
147 | # CONFIG_PPC_86xx is not set | ||
148 | CONFIG_CLASSIC32=y | 153 | CONFIG_CLASSIC32=y |
149 | # CONFIG_PPC_CHRP is not set | 154 | # CONFIG_PPC_CHRP is not set |
150 | # CONFIG_PPC_MPC512x is not set | ||
151 | # CONFIG_PPC_MPC5121 is not set | ||
152 | # CONFIG_MPC5121_ADS is not set | 155 | # CONFIG_MPC5121_ADS is not set |
156 | # CONFIG_MPC5121_GENERIC is not set | ||
153 | CONFIG_PPC_MPC52xx=y | 157 | CONFIG_PPC_MPC52xx=y |
154 | CONFIG_PPC_MPC5200_SIMPLE=y | 158 | CONFIG_PPC_MPC5200_SIMPLE=y |
155 | # CONFIG_PPC_EFIKA is not set | 159 | # CONFIG_PPC_EFIKA is not set |
@@ -159,7 +163,10 @@ CONFIG_PPC_MPC5200_SIMPLE=y | |||
159 | # CONFIG_PPC_PMAC is not set | 163 | # CONFIG_PPC_PMAC is not set |
160 | # CONFIG_PPC_CELL is not set | 164 | # CONFIG_PPC_CELL is not set |
161 | # CONFIG_PPC_CELL_NATIVE is not set | 165 | # CONFIG_PPC_CELL_NATIVE is not set |
166 | # CONFIG_PPC_82xx is not set | ||
162 | # CONFIG_PQ2ADS is not set | 167 | # CONFIG_PQ2ADS is not set |
168 | # CONFIG_PPC_83xx is not set | ||
169 | # CONFIG_PPC_86xx is not set | ||
163 | # CONFIG_EMBEDDED6xx is not set | 170 | # CONFIG_EMBEDDED6xx is not set |
164 | # CONFIG_IPIC is not set | 171 | # CONFIG_IPIC is not set |
165 | # CONFIG_MPIC is not set | 172 | # CONFIG_MPIC is not set |
@@ -183,7 +190,6 @@ CONFIG_PPC_BESTCOMM_FEC=y | |||
183 | # Kernel options | 190 | # Kernel options |
184 | # | 191 | # |
185 | # CONFIG_HIGHMEM is not set | 192 | # CONFIG_HIGHMEM is not set |
186 | # CONFIG_TICK_ONESHOT is not set | ||
187 | # CONFIG_NO_HZ is not set | 193 | # CONFIG_NO_HZ is not set |
188 | # CONFIG_HIGH_RES_TIMERS is not set | 194 | # CONFIG_HIGH_RES_TIMERS is not set |
189 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 195 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -197,6 +203,8 @@ CONFIG_PREEMPT_NONE=y | |||
197 | # CONFIG_PREEMPT_VOLUNTARY is not set | 203 | # CONFIG_PREEMPT_VOLUNTARY is not set |
198 | # CONFIG_PREEMPT is not set | 204 | # CONFIG_PREEMPT is not set |
199 | CONFIG_BINFMT_ELF=y | 205 | CONFIG_BINFMT_ELF=y |
206 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
207 | # CONFIG_HAVE_AOUT is not set | ||
200 | # CONFIG_BINFMT_MISC is not set | 208 | # CONFIG_BINFMT_MISC is not set |
201 | # CONFIG_IOMMU_HELPER is not set | 209 | # CONFIG_IOMMU_HELPER is not set |
202 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 210 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
@@ -211,19 +219,20 @@ CONFIG_FLATMEM_MANUAL=y | |||
211 | # CONFIG_SPARSEMEM_MANUAL is not set | 219 | # CONFIG_SPARSEMEM_MANUAL is not set |
212 | CONFIG_FLATMEM=y | 220 | CONFIG_FLATMEM=y |
213 | CONFIG_FLAT_NODE_MEM_MAP=y | 221 | CONFIG_FLAT_NODE_MEM_MAP=y |
214 | # CONFIG_SPARSEMEM_STATIC is not set | ||
215 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
216 | CONFIG_PAGEFLAGS_EXTENDED=y | 222 | CONFIG_PAGEFLAGS_EXTENDED=y |
217 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 223 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
224 | CONFIG_MIGRATION=y | ||
218 | # CONFIG_RESOURCES_64BIT is not set | 225 | # CONFIG_RESOURCES_64BIT is not set |
226 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
219 | CONFIG_ZONE_DMA_FLAG=1 | 227 | CONFIG_ZONE_DMA_FLAG=1 |
220 | CONFIG_BOUNCE=y | 228 | CONFIG_BOUNCE=y |
221 | CONFIG_VIRT_TO_BUS=y | 229 | CONFIG_VIRT_TO_BUS=y |
230 | CONFIG_UNEVICTABLE_LRU=y | ||
222 | CONFIG_FORCE_MAX_ZONEORDER=11 | 231 | CONFIG_FORCE_MAX_ZONEORDER=11 |
223 | CONFIG_PROC_DEVICETREE=y | 232 | CONFIG_PROC_DEVICETREE=y |
224 | # CONFIG_CMDLINE_BOOL is not set | 233 | # CONFIG_CMDLINE_BOOL is not set |
234 | CONFIG_EXTRA_TARGETS="" | ||
225 | CONFIG_PM=y | 235 | CONFIG_PM=y |
226 | # CONFIG_PM_LEGACY is not set | ||
227 | # CONFIG_PM_DEBUG is not set | 236 | # CONFIG_PM_DEBUG is not set |
228 | CONFIG_SECCOMP=y | 237 | CONFIG_SECCOMP=y |
229 | CONFIG_ISA_DMA_API=y | 238 | CONFIG_ISA_DMA_API=y |
@@ -233,7 +242,7 @@ CONFIG_ISA_DMA_API=y | |||
233 | # | 242 | # |
234 | CONFIG_ZONE_DMA=y | 243 | CONFIG_ZONE_DMA=y |
235 | CONFIG_GENERIC_ISA_DMA=y | 244 | CONFIG_GENERIC_ISA_DMA=y |
236 | CONFIG_FSL_SOC=y | 245 | CONFIG_PPC_PCI_CHOICE=y |
237 | # CONFIG_PCI is not set | 246 | # CONFIG_PCI is not set |
238 | # CONFIG_PCI_DOMAINS is not set | 247 | # CONFIG_PCI_DOMAINS is not set |
239 | # CONFIG_PCI_SYSCALL is not set | 248 | # CONFIG_PCI_SYSCALL is not set |
@@ -254,10 +263,6 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
254 | CONFIG_KERNEL_START=0xc0000000 | 263 | CONFIG_KERNEL_START=0xc0000000 |
255 | CONFIG_PHYSICAL_START=0x00000000 | 264 | CONFIG_PHYSICAL_START=0x00000000 |
256 | CONFIG_TASK_SIZE=0xc0000000 | 265 | CONFIG_TASK_SIZE=0xc0000000 |
257 | |||
258 | # | ||
259 | # Networking | ||
260 | # | ||
261 | CONFIG_NET=y | 266 | CONFIG_NET=y |
262 | 267 | ||
263 | # | 268 | # |
@@ -308,6 +313,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
308 | # CONFIG_TIPC is not set | 313 | # CONFIG_TIPC is not set |
309 | # CONFIG_ATM is not set | 314 | # CONFIG_ATM is not set |
310 | # CONFIG_BRIDGE is not set | 315 | # CONFIG_BRIDGE is not set |
316 | # CONFIG_NET_DSA is not set | ||
311 | # CONFIG_VLAN_8021Q is not set | 317 | # CONFIG_VLAN_8021Q is not set |
312 | # CONFIG_DECNET is not set | 318 | # CONFIG_DECNET is not set |
313 | # CONFIG_LLC2 is not set | 319 | # CONFIG_LLC2 is not set |
@@ -328,14 +334,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
328 | # CONFIG_IRDA is not set | 334 | # CONFIG_IRDA is not set |
329 | # CONFIG_BT is not set | 335 | # CONFIG_BT is not set |
330 | # CONFIG_AF_RXRPC is not set | 336 | # CONFIG_AF_RXRPC is not set |
331 | 337 | # CONFIG_PHONET is not set | |
332 | # | 338 | # CONFIG_WIRELESS is not set |
333 | # Wireless | ||
334 | # | ||
335 | # CONFIG_CFG80211 is not set | ||
336 | # CONFIG_WIRELESS_EXT is not set | ||
337 | # CONFIG_MAC80211 is not set | ||
338 | # CONFIG_IEEE80211 is not set | ||
339 | # CONFIG_RFKILL is not set | 339 | # CONFIG_RFKILL is not set |
340 | # CONFIG_NET_9P is not set | 340 | # CONFIG_NET_9P is not set |
341 | 341 | ||
@@ -446,6 +446,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
446 | # CONFIG_BLK_DEV_XIP is not set | 446 | # CONFIG_BLK_DEV_XIP is not set |
447 | # CONFIG_CDROM_PKTCDVD is not set | 447 | # CONFIG_CDROM_PKTCDVD is not set |
448 | # CONFIG_ATA_OVER_ETH is not set | 448 | # CONFIG_ATA_OVER_ETH is not set |
449 | # CONFIG_BLK_DEV_HD is not set | ||
449 | # CONFIG_MISC_DEVICES is not set | 450 | # CONFIG_MISC_DEVICES is not set |
450 | CONFIG_HAVE_IDE=y | 451 | CONFIG_HAVE_IDE=y |
451 | # CONFIG_IDE is not set | 452 | # CONFIG_IDE is not set |
@@ -487,11 +488,11 @@ CONFIG_CHR_DEV_SG=y | |||
487 | # CONFIG_SCSI_SAS_LIBSAS is not set | 488 | # CONFIG_SCSI_SAS_LIBSAS is not set |
488 | # CONFIG_SCSI_SRP_ATTRS is not set | 489 | # CONFIG_SCSI_SRP_ATTRS is not set |
489 | # CONFIG_SCSI_LOWLEVEL is not set | 490 | # CONFIG_SCSI_LOWLEVEL is not set |
491 | # CONFIG_SCSI_DH is not set | ||
490 | # CONFIG_ATA is not set | 492 | # CONFIG_ATA is not set |
491 | # CONFIG_MD is not set | 493 | # CONFIG_MD is not set |
492 | # CONFIG_MACINTOSH_DRIVERS is not set | 494 | # CONFIG_MACINTOSH_DRIVERS is not set |
493 | CONFIG_NETDEVICES=y | 495 | CONFIG_NETDEVICES=y |
494 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
495 | # CONFIG_DUMMY is not set | 496 | # CONFIG_DUMMY is not set |
496 | # CONFIG_BONDING is not set | 497 | # CONFIG_BONDING is not set |
497 | # CONFIG_MACVLAN is not set | 498 | # CONFIG_MACVLAN is not set |
@@ -521,6 +522,9 @@ CONFIG_NET_ETHERNET=y | |||
521 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 522 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
522 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 523 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
523 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 524 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
525 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
526 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
527 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
524 | # CONFIG_B44 is not set | 528 | # CONFIG_B44 is not set |
525 | CONFIG_FEC_MPC52xx=y | 529 | CONFIG_FEC_MPC52xx=y |
526 | CONFIG_FEC_MPC52xx_MDIO=y | 530 | CONFIG_FEC_MPC52xx_MDIO=y |
@@ -532,7 +536,6 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
532 | # | 536 | # |
533 | # CONFIG_WLAN_PRE80211 is not set | 537 | # CONFIG_WLAN_PRE80211 is not set |
534 | # CONFIG_WLAN_80211 is not set | 538 | # CONFIG_WLAN_80211 is not set |
535 | # CONFIG_IWLWIFI is not set | ||
536 | # CONFIG_IWLWIFI_LEDS is not set | 539 | # CONFIG_IWLWIFI_LEDS is not set |
537 | 540 | ||
538 | # | 541 | # |
@@ -567,6 +570,7 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
567 | # Character devices | 570 | # Character devices |
568 | # | 571 | # |
569 | # CONFIG_VT is not set | 572 | # CONFIG_VT is not set |
573 | CONFIG_DEVKMEM=y | ||
570 | # CONFIG_SERIAL_NONSTANDARD is not set | 574 | # CONFIG_SERIAL_NONSTANDARD is not set |
571 | 575 | ||
572 | # | 576 | # |
@@ -596,25 +600,40 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
596 | CONFIG_I2C=y | 600 | CONFIG_I2C=y |
597 | CONFIG_I2C_BOARDINFO=y | 601 | CONFIG_I2C_BOARDINFO=y |
598 | CONFIG_I2C_CHARDEV=y | 602 | CONFIG_I2C_CHARDEV=y |
603 | CONFIG_I2C_HELPER_AUTO=y | ||
599 | 604 | ||
600 | # | 605 | # |
601 | # I2C Hardware Bus support | 606 | # I2C Hardware Bus support |
602 | # | 607 | # |
608 | |||
609 | # | ||
610 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
611 | # | ||
603 | CONFIG_I2C_MPC=y | 612 | CONFIG_I2C_MPC=y |
604 | # CONFIG_I2C_OCORES is not set | 613 | # CONFIG_I2C_OCORES is not set |
605 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
606 | # CONFIG_I2C_SIMTEC is not set | 614 | # CONFIG_I2C_SIMTEC is not set |
615 | |||
616 | # | ||
617 | # External I2C/SMBus adapter drivers | ||
618 | # | ||
619 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
607 | # CONFIG_I2C_TAOS_EVM is not set | 620 | # CONFIG_I2C_TAOS_EVM is not set |
608 | # CONFIG_I2C_TINY_USB is not set | 621 | # CONFIG_I2C_TINY_USB is not set |
622 | |||
623 | # | ||
624 | # Other I2C/SMBus bus drivers | ||
625 | # | ||
609 | # CONFIG_I2C_PCA_PLATFORM is not set | 626 | # CONFIG_I2C_PCA_PLATFORM is not set |
610 | 627 | ||
611 | # | 628 | # |
612 | # Miscellaneous I2C Chip support | 629 | # Miscellaneous I2C Chip support |
613 | # | 630 | # |
614 | # CONFIG_DS1682 is not set | 631 | # CONFIG_DS1682 is not set |
632 | # CONFIG_AT24 is not set | ||
615 | # CONFIG_SENSORS_EEPROM is not set | 633 | # CONFIG_SENSORS_EEPROM is not set |
616 | # CONFIG_SENSORS_PCF8574 is not set | 634 | # CONFIG_SENSORS_PCF8574 is not set |
617 | # CONFIG_PCF8575 is not set | 635 | # CONFIG_PCF8575 is not set |
636 | # CONFIG_SENSORS_PCA9539 is not set | ||
618 | # CONFIG_SENSORS_PCF8591 is not set | 637 | # CONFIG_SENSORS_PCF8591 is not set |
619 | # CONFIG_SENSORS_MAX6875 is not set | 638 | # CONFIG_SENSORS_MAX6875 is not set |
620 | # CONFIG_SENSORS_TSL2550 is not set | 639 | # CONFIG_SENSORS_TSL2550 is not set |
@@ -623,10 +642,13 @@ CONFIG_I2C_MPC=y | |||
623 | # CONFIG_I2C_DEBUG_BUS is not set | 642 | # CONFIG_I2C_DEBUG_BUS is not set |
624 | # CONFIG_I2C_DEBUG_CHIP is not set | 643 | # CONFIG_I2C_DEBUG_CHIP is not set |
625 | # CONFIG_SPI is not set | 644 | # CONFIG_SPI is not set |
645 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
646 | # CONFIG_GPIOLIB is not set | ||
626 | # CONFIG_W1 is not set | 647 | # CONFIG_W1 is not set |
627 | # CONFIG_POWER_SUPPLY is not set | 648 | # CONFIG_POWER_SUPPLY is not set |
628 | # CONFIG_HWMON is not set | 649 | # CONFIG_HWMON is not set |
629 | # CONFIG_THERMAL is not set | 650 | # CONFIG_THERMAL is not set |
651 | # CONFIG_THERMAL_HWMON is not set | ||
630 | CONFIG_WATCHDOG=y | 652 | CONFIG_WATCHDOG=y |
631 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 653 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
632 | 654 | ||
@@ -640,24 +662,39 @@ CONFIG_WATCHDOG=y | |||
640 | # USB-based Watchdog Cards | 662 | # USB-based Watchdog Cards |
641 | # | 663 | # |
642 | # CONFIG_USBPCWATCHDOG is not set | 664 | # CONFIG_USBPCWATCHDOG is not set |
665 | CONFIG_SSB_POSSIBLE=y | ||
643 | 666 | ||
644 | # | 667 | # |
645 | # Sonics Silicon Backplane | 668 | # Sonics Silicon Backplane |
646 | # | 669 | # |
647 | CONFIG_SSB_POSSIBLE=y | ||
648 | # CONFIG_SSB is not set | 670 | # CONFIG_SSB is not set |
649 | 671 | ||
650 | # | 672 | # |
651 | # Multifunction device drivers | 673 | # Multifunction device drivers |
652 | # | 674 | # |
675 | # CONFIG_MFD_CORE is not set | ||
653 | # CONFIG_MFD_SM501 is not set | 676 | # CONFIG_MFD_SM501 is not set |
654 | # CONFIG_HTC_PASIC3 is not set | 677 | # CONFIG_HTC_PASIC3 is not set |
678 | # CONFIG_MFD_TMIO is not set | ||
679 | # CONFIG_PMIC_DA903X is not set | ||
680 | # CONFIG_MFD_WM8400 is not set | ||
681 | # CONFIG_MFD_WM8350_I2C is not set | ||
682 | # CONFIG_REGULATOR is not set | ||
655 | 683 | ||
656 | # | 684 | # |
657 | # Multimedia devices | 685 | # Multimedia devices |
658 | # | 686 | # |
687 | |||
688 | # | ||
689 | # Multimedia core support | ||
690 | # | ||
659 | # CONFIG_VIDEO_DEV is not set | 691 | # CONFIG_VIDEO_DEV is not set |
660 | # CONFIG_DVB_CORE is not set | 692 | # CONFIG_DVB_CORE is not set |
693 | # CONFIG_VIDEO_MEDIA is not set | ||
694 | |||
695 | # | ||
696 | # Multimedia drivers | ||
697 | # | ||
661 | # CONFIG_DAB is not set | 698 | # CONFIG_DAB is not set |
662 | 699 | ||
663 | # | 700 | # |
@@ -672,10 +709,6 @@ CONFIG_SSB_POSSIBLE=y | |||
672 | # Display device support | 709 | # Display device support |
673 | # | 710 | # |
674 | # CONFIG_DISPLAY_SUPPORT is not set | 711 | # CONFIG_DISPLAY_SUPPORT is not set |
675 | |||
676 | # | ||
677 | # Sound | ||
678 | # | ||
679 | # CONFIG_SOUND is not set | 712 | # CONFIG_SOUND is not set |
680 | CONFIG_USB_SUPPORT=y | 713 | CONFIG_USB_SUPPORT=y |
681 | CONFIG_USB_ARCH_HAS_HCD=y | 714 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -695,11 +728,16 @@ CONFIG_USB_DEVICEFS=y | |||
695 | # CONFIG_USB_OTG is not set | 728 | # CONFIG_USB_OTG is not set |
696 | # CONFIG_USB_OTG_WHITELIST is not set | 729 | # CONFIG_USB_OTG_WHITELIST is not set |
697 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 730 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
731 | # CONFIG_USB_MON is not set | ||
732 | # CONFIG_USB_WUSB is not set | ||
733 | # CONFIG_USB_WUSB_CBAF is not set | ||
698 | 734 | ||
699 | # | 735 | # |
700 | # USB Host Controller Drivers | 736 | # USB Host Controller Drivers |
701 | # | 737 | # |
738 | # CONFIG_USB_C67X00_HCD is not set | ||
702 | # CONFIG_USB_ISP116X_HCD is not set | 739 | # CONFIG_USB_ISP116X_HCD is not set |
740 | # CONFIG_USB_ISP1760_HCD is not set | ||
703 | CONFIG_USB_OHCI_HCD=y | 741 | CONFIG_USB_OHCI_HCD=y |
704 | CONFIG_USB_OHCI_HCD_PPC_SOC=y | 742 | CONFIG_USB_OHCI_HCD_PPC_SOC=y |
705 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 743 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
@@ -710,12 +748,16 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | |||
710 | # CONFIG_USB_OHCI_LITTLE_ENDIAN is not set | 748 | # CONFIG_USB_OHCI_LITTLE_ENDIAN is not set |
711 | # CONFIG_USB_SL811_HCD is not set | 749 | # CONFIG_USB_SL811_HCD is not set |
712 | # CONFIG_USB_R8A66597_HCD is not set | 750 | # CONFIG_USB_R8A66597_HCD is not set |
751 | # CONFIG_USB_HWA_HCD is not set | ||
752 | # CONFIG_USB_MUSB_HDRC is not set | ||
713 | 753 | ||
714 | # | 754 | # |
715 | # USB Device Class drivers | 755 | # USB Device Class drivers |
716 | # | 756 | # |
717 | # CONFIG_USB_ACM is not set | 757 | # CONFIG_USB_ACM is not set |
718 | # CONFIG_USB_PRINTER is not set | 758 | # CONFIG_USB_PRINTER is not set |
759 | # CONFIG_USB_WDM is not set | ||
760 | # CONFIG_USB_TMC is not set | ||
719 | 761 | ||
720 | # | 762 | # |
721 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 763 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -744,7 +786,6 @@ CONFIG_USB_STORAGE=y | |||
744 | # | 786 | # |
745 | # CONFIG_USB_MDC800 is not set | 787 | # CONFIG_USB_MDC800 is not set |
746 | # CONFIG_USB_MICROTEK is not set | 788 | # CONFIG_USB_MICROTEK is not set |
747 | # CONFIG_USB_MON is not set | ||
748 | 789 | ||
749 | # | 790 | # |
750 | # USB port drivers | 791 | # USB port drivers |
@@ -757,7 +798,7 @@ CONFIG_USB_STORAGE=y | |||
757 | # CONFIG_USB_EMI62 is not set | 798 | # CONFIG_USB_EMI62 is not set |
758 | # CONFIG_USB_EMI26 is not set | 799 | # CONFIG_USB_EMI26 is not set |
759 | # CONFIG_USB_ADUTUX is not set | 800 | # CONFIG_USB_ADUTUX is not set |
760 | # CONFIG_USB_AUERSWALD is not set | 801 | # CONFIG_USB_SEVSEG is not set |
761 | # CONFIG_USB_RIO500 is not set | 802 | # CONFIG_USB_RIO500 is not set |
762 | # CONFIG_USB_LEGOTOWER is not set | 803 | # CONFIG_USB_LEGOTOWER is not set |
763 | # CONFIG_USB_LCD is not set | 804 | # CONFIG_USB_LCD is not set |
@@ -773,14 +814,19 @@ CONFIG_USB_STORAGE=y | |||
773 | # CONFIG_USB_TRANCEVIBRATOR is not set | 814 | # CONFIG_USB_TRANCEVIBRATOR is not set |
774 | # CONFIG_USB_IOWARRIOR is not set | 815 | # CONFIG_USB_IOWARRIOR is not set |
775 | # CONFIG_USB_TEST is not set | 816 | # CONFIG_USB_TEST is not set |
817 | # CONFIG_USB_ISIGHTFW is not set | ||
818 | # CONFIG_USB_VST is not set | ||
776 | # CONFIG_USB_GADGET is not set | 819 | # CONFIG_USB_GADGET is not set |
777 | # CONFIG_MMC is not set | 820 | # CONFIG_MMC is not set |
778 | # CONFIG_MEMSTICK is not set | 821 | # CONFIG_MEMSTICK is not set |
779 | # CONFIG_NEW_LEDS is not set | 822 | # CONFIG_NEW_LEDS is not set |
823 | # CONFIG_ACCESSIBILITY is not set | ||
780 | # CONFIG_EDAC is not set | 824 | # CONFIG_EDAC is not set |
781 | # CONFIG_RTC_CLASS is not set | 825 | # CONFIG_RTC_CLASS is not set |
782 | # CONFIG_DMADEVICES is not set | 826 | # CONFIG_DMADEVICES is not set |
783 | # CONFIG_UIO is not set | 827 | # CONFIG_UIO is not set |
828 | # CONFIG_STAGING is not set | ||
829 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
784 | 830 | ||
785 | # | 831 | # |
786 | # File systems | 832 | # File systems |
@@ -792,12 +838,13 @@ CONFIG_EXT3_FS=y | |||
792 | CONFIG_EXT3_FS_XATTR=y | 838 | CONFIG_EXT3_FS_XATTR=y |
793 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 839 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
794 | # CONFIG_EXT3_FS_SECURITY is not set | 840 | # CONFIG_EXT3_FS_SECURITY is not set |
795 | # CONFIG_EXT4DEV_FS is not set | 841 | # CONFIG_EXT4_FS is not set |
796 | CONFIG_JBD=y | 842 | CONFIG_JBD=y |
797 | CONFIG_FS_MBCACHE=y | 843 | CONFIG_FS_MBCACHE=y |
798 | # CONFIG_REISERFS_FS is not set | 844 | # CONFIG_REISERFS_FS is not set |
799 | # CONFIG_JFS_FS is not set | 845 | # CONFIG_JFS_FS is not set |
800 | # CONFIG_FS_POSIX_ACL is not set | 846 | # CONFIG_FS_POSIX_ACL is not set |
847 | CONFIG_FILE_LOCKING=y | ||
801 | # CONFIG_XFS_FS is not set | 848 | # CONFIG_XFS_FS is not set |
802 | # CONFIG_OCFS2_FS is not set | 849 | # CONFIG_OCFS2_FS is not set |
803 | CONFIG_DNOTIFY=y | 850 | CONFIG_DNOTIFY=y |
@@ -830,6 +877,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
830 | CONFIG_PROC_FS=y | 877 | CONFIG_PROC_FS=y |
831 | CONFIG_PROC_KCORE=y | 878 | CONFIG_PROC_KCORE=y |
832 | CONFIG_PROC_SYSCTL=y | 879 | CONFIG_PROC_SYSCTL=y |
880 | CONFIG_PROC_PAGE_MONITOR=y | ||
833 | CONFIG_SYSFS=y | 881 | CONFIG_SYSFS=y |
834 | CONFIG_TMPFS=y | 882 | CONFIG_TMPFS=y |
835 | # CONFIG_TMPFS_POSIX_ACL is not set | 883 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -860,6 +908,7 @@ CONFIG_JFFS2_RTIME=y | |||
860 | CONFIG_CRAMFS=y | 908 | CONFIG_CRAMFS=y |
861 | # CONFIG_VXFS_FS is not set | 909 | # CONFIG_VXFS_FS is not set |
862 | # CONFIG_MINIX_FS is not set | 910 | # CONFIG_MINIX_FS is not set |
911 | # CONFIG_OMFS_FS is not set | ||
863 | # CONFIG_HPFS_FS is not set | 912 | # CONFIG_HPFS_FS is not set |
864 | # CONFIG_QNX4FS_FS is not set | 913 | # CONFIG_QNX4FS_FS is not set |
865 | # CONFIG_ROMFS_FS is not set | 914 | # CONFIG_ROMFS_FS is not set |
@@ -870,14 +919,14 @@ CONFIG_NFS_FS=y | |||
870 | CONFIG_NFS_V3=y | 919 | CONFIG_NFS_V3=y |
871 | # CONFIG_NFS_V3_ACL is not set | 920 | # CONFIG_NFS_V3_ACL is not set |
872 | CONFIG_NFS_V4=y | 921 | CONFIG_NFS_V4=y |
873 | # CONFIG_NFSD is not set | ||
874 | CONFIG_ROOT_NFS=y | 922 | CONFIG_ROOT_NFS=y |
923 | # CONFIG_NFSD is not set | ||
875 | CONFIG_LOCKD=y | 924 | CONFIG_LOCKD=y |
876 | CONFIG_LOCKD_V4=y | 925 | CONFIG_LOCKD_V4=y |
877 | CONFIG_NFS_COMMON=y | 926 | CONFIG_NFS_COMMON=y |
878 | CONFIG_SUNRPC=y | 927 | CONFIG_SUNRPC=y |
879 | CONFIG_SUNRPC_GSS=y | 928 | CONFIG_SUNRPC_GSS=y |
880 | # CONFIG_SUNRPC_BIND34 is not set | 929 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
881 | CONFIG_RPCSEC_GSS_KRB5=y | 930 | CONFIG_RPCSEC_GSS_KRB5=y |
882 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 931 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
883 | # CONFIG_SMB_FS is not set | 932 | # CONFIG_SMB_FS is not set |
@@ -953,9 +1002,9 @@ CONFIG_NLS_ISO8859_1=y | |||
953 | # Library routines | 1002 | # Library routines |
954 | # | 1003 | # |
955 | CONFIG_BITREVERSE=y | 1004 | CONFIG_BITREVERSE=y |
956 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
957 | # CONFIG_CRC_CCITT is not set | 1005 | # CONFIG_CRC_CCITT is not set |
958 | # CONFIG_CRC16 is not set | 1006 | # CONFIG_CRC16 is not set |
1007 | # CONFIG_CRC_T10DIF is not set | ||
959 | # CONFIG_CRC_ITU_T is not set | 1008 | # CONFIG_CRC_ITU_T is not set |
960 | CONFIG_CRC32=y | 1009 | CONFIG_CRC32=y |
961 | # CONFIG_CRC7 is not set | 1010 | # CONFIG_CRC7 is not set |
@@ -982,9 +1031,12 @@ CONFIG_FRAME_WARN=1024 | |||
982 | CONFIG_DEBUG_KERNEL=y | 1031 | CONFIG_DEBUG_KERNEL=y |
983 | # CONFIG_DEBUG_SHIRQ is not set | 1032 | # CONFIG_DEBUG_SHIRQ is not set |
984 | CONFIG_DETECT_SOFTLOCKUP=y | 1033 | CONFIG_DETECT_SOFTLOCKUP=y |
1034 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1035 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
985 | CONFIG_SCHED_DEBUG=y | 1036 | CONFIG_SCHED_DEBUG=y |
986 | # CONFIG_SCHEDSTATS is not set | 1037 | # CONFIG_SCHEDSTATS is not set |
987 | # CONFIG_TIMER_STATS is not set | 1038 | # CONFIG_TIMER_STATS is not set |
1039 | # CONFIG_DEBUG_OBJECTS is not set | ||
988 | # CONFIG_SLUB_DEBUG_ON is not set | 1040 | # CONFIG_SLUB_DEBUG_ON is not set |
989 | # CONFIG_SLUB_STATS is not set | 1041 | # CONFIG_SLUB_STATS is not set |
990 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1042 | # CONFIG_DEBUG_RT_MUTEXES is not set |
@@ -998,16 +1050,37 @@ CONFIG_SCHED_DEBUG=y | |||
998 | # CONFIG_DEBUG_INFO is not set | 1050 | # CONFIG_DEBUG_INFO is not set |
999 | # CONFIG_DEBUG_VM is not set | 1051 | # CONFIG_DEBUG_VM is not set |
1000 | # CONFIG_DEBUG_WRITECOUNT is not set | 1052 | # CONFIG_DEBUG_WRITECOUNT is not set |
1053 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1001 | # CONFIG_DEBUG_LIST is not set | 1054 | # CONFIG_DEBUG_LIST is not set |
1002 | # CONFIG_DEBUG_SG is not set | 1055 | # CONFIG_DEBUG_SG is not set |
1003 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1056 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1057 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1058 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1004 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1059 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1060 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1005 | # CONFIG_FAULT_INJECTION is not set | 1061 | # CONFIG_FAULT_INJECTION is not set |
1062 | # CONFIG_LATENCYTOP is not set | ||
1063 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1064 | |||
1065 | # | ||
1066 | # Tracers | ||
1067 | # | ||
1068 | # CONFIG_FUNCTION_TRACER is not set | ||
1069 | # CONFIG_SCHED_TRACER is not set | ||
1070 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1071 | # CONFIG_BOOT_TRACER is not set | ||
1072 | # CONFIG_STACK_TRACER is not set | ||
1073 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1006 | # CONFIG_SAMPLES is not set | 1074 | # CONFIG_SAMPLES is not set |
1075 | CONFIG_HAVE_ARCH_KGDB=y | ||
1076 | # CONFIG_KGDB is not set | ||
1007 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1077 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1008 | # CONFIG_DEBUG_STACK_USAGE is not set | 1078 | # CONFIG_DEBUG_STACK_USAGE is not set |
1009 | # CONFIG_DEBUG_PAGEALLOC is not set | 1079 | # CONFIG_DEBUG_PAGEALLOC is not set |
1010 | # CONFIG_DEBUGGER is not set | 1080 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1081 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
1082 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
1083 | # CONFIG_XMON is not set | ||
1011 | # CONFIG_IRQSTACKS is not set | 1084 | # CONFIG_IRQSTACKS is not set |
1012 | # CONFIG_BDI_SWITCH is not set | 1085 | # CONFIG_BDI_SWITCH is not set |
1013 | # CONFIG_BOOTX_TEXT is not set | 1086 | # CONFIG_BOOTX_TEXT is not set |
@@ -1018,14 +1091,19 @@ CONFIG_SCHED_DEBUG=y | |||
1018 | # | 1091 | # |
1019 | # CONFIG_KEYS is not set | 1092 | # CONFIG_KEYS is not set |
1020 | # CONFIG_SECURITY is not set | 1093 | # CONFIG_SECURITY is not set |
1094 | # CONFIG_SECURITYFS is not set | ||
1021 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1095 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1022 | CONFIG_CRYPTO=y | 1096 | CONFIG_CRYPTO=y |
1023 | 1097 | ||
1024 | # | 1098 | # |
1025 | # Crypto core or helper | 1099 | # Crypto core or helper |
1026 | # | 1100 | # |
1101 | # CONFIG_CRYPTO_FIPS is not set | ||
1027 | CONFIG_CRYPTO_ALGAPI=y | 1102 | CONFIG_CRYPTO_ALGAPI=y |
1103 | CONFIG_CRYPTO_AEAD=y | ||
1028 | CONFIG_CRYPTO_BLKCIPHER=y | 1104 | CONFIG_CRYPTO_BLKCIPHER=y |
1105 | CONFIG_CRYPTO_HASH=y | ||
1106 | CONFIG_CRYPTO_RNG=y | ||
1029 | CONFIG_CRYPTO_MANAGER=y | 1107 | CONFIG_CRYPTO_MANAGER=y |
1030 | # CONFIG_CRYPTO_GF128MUL is not set | 1108 | # CONFIG_CRYPTO_GF128MUL is not set |
1031 | # CONFIG_CRYPTO_NULL is not set | 1109 | # CONFIG_CRYPTO_NULL is not set |
@@ -1063,6 +1141,10 @@ CONFIG_CRYPTO_PCBC=y | |||
1063 | # CONFIG_CRYPTO_MD4 is not set | 1141 | # CONFIG_CRYPTO_MD4 is not set |
1064 | CONFIG_CRYPTO_MD5=y | 1142 | CONFIG_CRYPTO_MD5=y |
1065 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1143 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1144 | # CONFIG_CRYPTO_RMD128 is not set | ||
1145 | # CONFIG_CRYPTO_RMD160 is not set | ||
1146 | # CONFIG_CRYPTO_RMD256 is not set | ||
1147 | # CONFIG_CRYPTO_RMD320 is not set | ||
1066 | # CONFIG_CRYPTO_SHA1 is not set | 1148 | # CONFIG_CRYPTO_SHA1 is not set |
1067 | # CONFIG_CRYPTO_SHA256 is not set | 1149 | # CONFIG_CRYPTO_SHA256 is not set |
1068 | # CONFIG_CRYPTO_SHA512 is not set | 1150 | # CONFIG_CRYPTO_SHA512 is not set |
@@ -1093,6 +1175,11 @@ CONFIG_CRYPTO_DES=y | |||
1093 | # | 1175 | # |
1094 | # CONFIG_CRYPTO_DEFLATE is not set | 1176 | # CONFIG_CRYPTO_DEFLATE is not set |
1095 | # CONFIG_CRYPTO_LZO is not set | 1177 | # CONFIG_CRYPTO_LZO is not set |
1178 | |||
1179 | # | ||
1180 | # Random Number Generation | ||
1181 | # | ||
1182 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1096 | CONFIG_CRYPTO_HW=y | 1183 | CONFIG_CRYPTO_HW=y |
1097 | CONFIG_PPC_CLOCK=y | 1184 | CONFIG_PPC_CLOCK=y |
1098 | CONFIG_PPC_LIB_RHEAP=y | 1185 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/52xx/lite5200b_defconfig b/arch/powerpc/configs/52xx/lite5200b_defconfig index 1a8a250fa11b..5b969f9c925e 100644 --- a/arch/powerpc/configs/52xx/lite5200b_defconfig +++ b/arch/powerpc/configs/52xx/lite5200b_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.25 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Apr 29 07:12:56 2008 | 4 | # Thu Nov 13 02:10:16 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y | |||
22 | # CONFIG_SMP is not set | 22 | # CONFIG_SMP is not set |
23 | CONFIG_PPC32=y | 23 | CONFIG_PPC32=y |
24 | CONFIG_WORD_SIZE=32 | 24 | CONFIG_WORD_SIZE=32 |
25 | CONFIG_PPC_MERGE=y | 25 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set |
26 | CONFIG_MMU=y | 26 | CONFIG_MMU=y |
27 | CONFIG_GENERIC_CMOS_UPDATE=y | 27 | CONFIG_GENERIC_CMOS_UPDATE=y |
28 | CONFIG_GENERIC_TIME=y | 28 | CONFIG_GENERIC_TIME=y |
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
34 | CONFIG_STACKTRACE_SUPPORT=y | 34 | CONFIG_STACKTRACE_SUPPORT=y |
35 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | 36 | CONFIG_LOCKDEP_SUPPORT=y |
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | 38 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -103,7 +104,9 @@ CONFIG_SIGNALFD=y | |||
103 | CONFIG_TIMERFD=y | 104 | CONFIG_TIMERFD=y |
104 | CONFIG_EVENTFD=y | 105 | CONFIG_EVENTFD=y |
105 | CONFIG_SHMEM=y | 106 | CONFIG_SHMEM=y |
107 | CONFIG_AIO=y | ||
106 | CONFIG_VM_EVENT_COUNTERS=y | 108 | CONFIG_VM_EVENT_COUNTERS=y |
109 | CONFIG_PCI_QUIRKS=y | ||
107 | CONFIG_SLUB_DEBUG=y | 110 | CONFIG_SLUB_DEBUG=y |
108 | # CONFIG_SLAB is not set | 111 | # CONFIG_SLAB is not set |
109 | CONFIG_SLUB=y | 112 | CONFIG_SLUB=y |
@@ -111,24 +114,30 @@ CONFIG_SLUB=y | |||
111 | # CONFIG_PROFILING is not set | 114 | # CONFIG_PROFILING is not set |
112 | # CONFIG_MARKERS is not set | 115 | # CONFIG_MARKERS is not set |
113 | CONFIG_HAVE_OPROFILE=y | 116 | CONFIG_HAVE_OPROFILE=y |
117 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
118 | CONFIG_HAVE_IOREMAP_PROT=y | ||
114 | CONFIG_HAVE_KPROBES=y | 119 | CONFIG_HAVE_KPROBES=y |
115 | CONFIG_HAVE_KRETPROBES=y | 120 | CONFIG_HAVE_KRETPROBES=y |
116 | CONFIG_PROC_PAGE_MONITOR=y | 121 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
122 | CONFIG_HAVE_CLK=y | ||
123 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
117 | CONFIG_SLABINFO=y | 124 | CONFIG_SLABINFO=y |
118 | CONFIG_RT_MUTEXES=y | 125 | CONFIG_RT_MUTEXES=y |
119 | # CONFIG_TINY_SHMEM is not set | 126 | # CONFIG_TINY_SHMEM is not set |
120 | CONFIG_BASE_SMALL=0 | 127 | CONFIG_BASE_SMALL=0 |
121 | CONFIG_MODULES=y | 128 | CONFIG_MODULES=y |
129 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
122 | CONFIG_MODULE_UNLOAD=y | 130 | CONFIG_MODULE_UNLOAD=y |
123 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 131 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
124 | # CONFIG_MODVERSIONS is not set | 132 | # CONFIG_MODVERSIONS is not set |
125 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 133 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
126 | # CONFIG_KMOD is not set | 134 | CONFIG_KMOD=y |
127 | CONFIG_BLOCK=y | 135 | CONFIG_BLOCK=y |
128 | # CONFIG_LBD is not set | 136 | # CONFIG_LBD is not set |
129 | # CONFIG_BLK_DEV_IO_TRACE is not set | 137 | # CONFIG_BLK_DEV_IO_TRACE is not set |
130 | # CONFIG_LSF is not set | 138 | # CONFIG_LSF is not set |
131 | # CONFIG_BLK_DEV_BSG is not set | 139 | # CONFIG_BLK_DEV_BSG is not set |
140 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
132 | 141 | ||
133 | # | 142 | # |
134 | # IO Schedulers | 143 | # IO Schedulers |
@@ -143,19 +152,16 @@ CONFIG_DEFAULT_AS=y | |||
143 | # CONFIG_DEFAULT_NOOP is not set | 152 | # CONFIG_DEFAULT_NOOP is not set |
144 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 153 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
145 | CONFIG_CLASSIC_RCU=y | 154 | CONFIG_CLASSIC_RCU=y |
155 | CONFIG_FREEZER=y | ||
146 | 156 | ||
147 | # | 157 | # |
148 | # Platform support | 158 | # Platform support |
149 | # | 159 | # |
150 | CONFIG_PPC_MULTIPLATFORM=y | 160 | CONFIG_PPC_MULTIPLATFORM=y |
151 | # CONFIG_PPC_82xx is not set | ||
152 | # CONFIG_PPC_83xx is not set | ||
153 | # CONFIG_PPC_86xx is not set | ||
154 | CONFIG_CLASSIC32=y | 161 | CONFIG_CLASSIC32=y |
155 | # CONFIG_PPC_CHRP is not set | 162 | # CONFIG_PPC_CHRP is not set |
156 | # CONFIG_PPC_MPC512x is not set | ||
157 | # CONFIG_PPC_MPC5121 is not set | ||
158 | # CONFIG_MPC5121_ADS is not set | 163 | # CONFIG_MPC5121_ADS is not set |
164 | # CONFIG_MPC5121_GENERIC is not set | ||
159 | CONFIG_PPC_MPC52xx=y | 165 | CONFIG_PPC_MPC52xx=y |
160 | CONFIG_PPC_MPC5200_SIMPLE=y | 166 | CONFIG_PPC_MPC5200_SIMPLE=y |
161 | # CONFIG_PPC_EFIKA is not set | 167 | # CONFIG_PPC_EFIKA is not set |
@@ -165,7 +171,10 @@ CONFIG_PPC_LITE5200=y | |||
165 | # CONFIG_PPC_PMAC is not set | 171 | # CONFIG_PPC_PMAC is not set |
166 | # CONFIG_PPC_CELL is not set | 172 | # CONFIG_PPC_CELL is not set |
167 | # CONFIG_PPC_CELL_NATIVE is not set | 173 | # CONFIG_PPC_CELL_NATIVE is not set |
174 | # CONFIG_PPC_82xx is not set | ||
168 | # CONFIG_PQ2ADS is not set | 175 | # CONFIG_PQ2ADS is not set |
176 | # CONFIG_PPC_83xx is not set | ||
177 | # CONFIG_PPC_86xx is not set | ||
169 | # CONFIG_EMBEDDED6xx is not set | 178 | # CONFIG_EMBEDDED6xx is not set |
170 | # CONFIG_IPIC is not set | 179 | # CONFIG_IPIC is not set |
171 | # CONFIG_MPIC is not set | 180 | # CONFIG_MPIC is not set |
@@ -198,11 +207,13 @@ CONFIG_HZ_250=y | |||
198 | # CONFIG_HZ_300 is not set | 207 | # CONFIG_HZ_300 is not set |
199 | # CONFIG_HZ_1000 is not set | 208 | # CONFIG_HZ_1000 is not set |
200 | CONFIG_HZ=250 | 209 | CONFIG_HZ=250 |
201 | # CONFIG_SCHED_HRTICK is not set | 210 | CONFIG_SCHED_HRTICK=y |
202 | CONFIG_PREEMPT_NONE=y | 211 | CONFIG_PREEMPT_NONE=y |
203 | # CONFIG_PREEMPT_VOLUNTARY is not set | 212 | # CONFIG_PREEMPT_VOLUNTARY is not set |
204 | # CONFIG_PREEMPT is not set | 213 | # CONFIG_PREEMPT is not set |
205 | CONFIG_BINFMT_ELF=y | 214 | CONFIG_BINFMT_ELF=y |
215 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
216 | # CONFIG_HAVE_AOUT is not set | ||
206 | # CONFIG_BINFMT_MISC is not set | 217 | # CONFIG_BINFMT_MISC is not set |
207 | # CONFIG_IOMMU_HELPER is not set | 218 | # CONFIG_IOMMU_HELPER is not set |
208 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 219 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
@@ -217,19 +228,20 @@ CONFIG_FLATMEM_MANUAL=y | |||
217 | # CONFIG_SPARSEMEM_MANUAL is not set | 228 | # CONFIG_SPARSEMEM_MANUAL is not set |
218 | CONFIG_FLATMEM=y | 229 | CONFIG_FLATMEM=y |
219 | CONFIG_FLAT_NODE_MEM_MAP=y | 230 | CONFIG_FLAT_NODE_MEM_MAP=y |
220 | # CONFIG_SPARSEMEM_STATIC is not set | ||
221 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
222 | CONFIG_PAGEFLAGS_EXTENDED=y | 231 | CONFIG_PAGEFLAGS_EXTENDED=y |
223 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 232 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
233 | CONFIG_MIGRATION=y | ||
224 | # CONFIG_RESOURCES_64BIT is not set | 234 | # CONFIG_RESOURCES_64BIT is not set |
235 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
225 | CONFIG_ZONE_DMA_FLAG=1 | 236 | CONFIG_ZONE_DMA_FLAG=1 |
226 | CONFIG_BOUNCE=y | 237 | CONFIG_BOUNCE=y |
227 | CONFIG_VIRT_TO_BUS=y | 238 | CONFIG_VIRT_TO_BUS=y |
239 | CONFIG_UNEVICTABLE_LRU=y | ||
228 | CONFIG_FORCE_MAX_ZONEORDER=11 | 240 | CONFIG_FORCE_MAX_ZONEORDER=11 |
229 | CONFIG_PROC_DEVICETREE=y | 241 | CONFIG_PROC_DEVICETREE=y |
230 | # CONFIG_CMDLINE_BOOL is not set | 242 | # CONFIG_CMDLINE_BOOL is not set |
243 | CONFIG_EXTRA_TARGETS="" | ||
231 | CONFIG_PM=y | 244 | CONFIG_PM=y |
232 | # CONFIG_PM_LEGACY is not set | ||
233 | # CONFIG_PM_DEBUG is not set | 245 | # CONFIG_PM_DEBUG is not set |
234 | CONFIG_PM_SLEEP=y | 246 | CONFIG_PM_SLEEP=y |
235 | CONFIG_SUSPEND=y | 247 | CONFIG_SUSPEND=y |
@@ -243,7 +255,7 @@ CONFIG_ISA_DMA_API=y | |||
243 | CONFIG_ZONE_DMA=y | 255 | CONFIG_ZONE_DMA=y |
244 | CONFIG_GENERIC_ISA_DMA=y | 256 | CONFIG_GENERIC_ISA_DMA=y |
245 | # CONFIG_PPC_INDIRECT_PCI is not set | 257 | # CONFIG_PPC_INDIRECT_PCI is not set |
246 | CONFIG_FSL_SOC=y | 258 | CONFIG_PPC_PCI_CHOICE=y |
247 | CONFIG_PCI=y | 259 | CONFIG_PCI=y |
248 | CONFIG_PCI_DOMAINS=y | 260 | CONFIG_PCI_DOMAINS=y |
249 | CONFIG_PCI_SYSCALL=y | 261 | CONFIG_PCI_SYSCALL=y |
@@ -269,10 +281,6 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
269 | CONFIG_KERNEL_START=0xc0000000 | 281 | CONFIG_KERNEL_START=0xc0000000 |
270 | CONFIG_PHYSICAL_START=0x00000000 | 282 | CONFIG_PHYSICAL_START=0x00000000 |
271 | CONFIG_TASK_SIZE=0xc0000000 | 283 | CONFIG_TASK_SIZE=0xc0000000 |
272 | |||
273 | # | ||
274 | # Networking | ||
275 | # | ||
276 | CONFIG_NET=y | 284 | CONFIG_NET=y |
277 | 285 | ||
278 | # | 286 | # |
@@ -323,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
323 | # CONFIG_TIPC is not set | 331 | # CONFIG_TIPC is not set |
324 | # CONFIG_ATM is not set | 332 | # CONFIG_ATM is not set |
325 | # CONFIG_BRIDGE is not set | 333 | # CONFIG_BRIDGE is not set |
334 | # CONFIG_NET_DSA is not set | ||
326 | # CONFIG_VLAN_8021Q is not set | 335 | # CONFIG_VLAN_8021Q is not set |
327 | # CONFIG_DECNET is not set | 336 | # CONFIG_DECNET is not set |
328 | # CONFIG_LLC2 is not set | 337 | # CONFIG_LLC2 is not set |
@@ -343,14 +352,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
343 | # CONFIG_IRDA is not set | 352 | # CONFIG_IRDA is not set |
344 | # CONFIG_BT is not set | 353 | # CONFIG_BT is not set |
345 | # CONFIG_AF_RXRPC is not set | 354 | # CONFIG_AF_RXRPC is not set |
346 | 355 | # CONFIG_PHONET is not set | |
347 | # | 356 | # CONFIG_WIRELESS is not set |
348 | # Wireless | ||
349 | # | ||
350 | # CONFIG_CFG80211 is not set | ||
351 | # CONFIG_WIRELESS_EXT is not set | ||
352 | # CONFIG_MAC80211 is not set | ||
353 | # CONFIG_IEEE80211 is not set | ||
354 | # CONFIG_RFKILL is not set | 357 | # CONFIG_RFKILL is not set |
355 | # CONFIG_NET_9P is not set | 358 | # CONFIG_NET_9P is not set |
356 | 359 | ||
@@ -390,12 +393,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
390 | # CONFIG_BLK_DEV_XIP is not set | 393 | # CONFIG_BLK_DEV_XIP is not set |
391 | # CONFIG_CDROM_PKTCDVD is not set | 394 | # CONFIG_CDROM_PKTCDVD is not set |
392 | # CONFIG_ATA_OVER_ETH is not set | 395 | # CONFIG_ATA_OVER_ETH is not set |
396 | # CONFIG_BLK_DEV_HD is not set | ||
393 | CONFIG_MISC_DEVICES=y | 397 | CONFIG_MISC_DEVICES=y |
394 | # CONFIG_PHANTOM is not set | 398 | # CONFIG_PHANTOM is not set |
395 | # CONFIG_EEPROM_93CX6 is not set | 399 | # CONFIG_EEPROM_93CX6 is not set |
396 | # CONFIG_SGI_IOC4 is not set | 400 | # CONFIG_SGI_IOC4 is not set |
397 | # CONFIG_TIFM_CORE is not set | 401 | # CONFIG_TIFM_CORE is not set |
402 | # CONFIG_ICS932S401 is not set | ||
398 | # CONFIG_ENCLOSURE_SERVICES is not set | 403 | # CONFIG_ENCLOSURE_SERVICES is not set |
404 | # CONFIG_HP_ILO is not set | ||
405 | # CONFIG_C2PORT is not set | ||
399 | CONFIG_HAVE_IDE=y | 406 | CONFIG_HAVE_IDE=y |
400 | # CONFIG_IDE is not set | 407 | # CONFIG_IDE is not set |
401 | 408 | ||
@@ -412,7 +419,7 @@ CONFIG_SCSI_DMA=y | |||
412 | # | 419 | # |
413 | # SCSI support type (disk, tape, CD-ROM) | 420 | # SCSI support type (disk, tape, CD-ROM) |
414 | # | 421 | # |
415 | # CONFIG_BLK_DEV_SD is not set | 422 | CONFIG_BLK_DEV_SD=y |
416 | # CONFIG_CHR_DEV_ST is not set | 423 | # CONFIG_CHR_DEV_ST is not set |
417 | # CONFIG_CHR_DEV_OSST is not set | 424 | # CONFIG_CHR_DEV_OSST is not set |
418 | # CONFIG_BLK_DEV_SR is not set | 425 | # CONFIG_BLK_DEV_SR is not set |
@@ -474,12 +481,12 @@ CONFIG_SCSI_LOWLEVEL=y | |||
474 | # CONFIG_SCSI_NSP32 is not set | 481 | # CONFIG_SCSI_NSP32 is not set |
475 | # CONFIG_SCSI_DEBUG is not set | 482 | # CONFIG_SCSI_DEBUG is not set |
476 | # CONFIG_SCSI_SRP is not set | 483 | # CONFIG_SCSI_SRP is not set |
484 | # CONFIG_SCSI_DH is not set | ||
477 | CONFIG_ATA=y | 485 | CONFIG_ATA=y |
478 | # CONFIG_ATA_NONSTANDARD is not set | 486 | # CONFIG_ATA_NONSTANDARD is not set |
479 | CONFIG_SATA_PMP=y | 487 | CONFIG_SATA_PMP=y |
480 | # CONFIG_SATA_AHCI is not set | 488 | # CONFIG_SATA_AHCI is not set |
481 | # CONFIG_SATA_SIL24 is not set | 489 | # CONFIG_SATA_SIL24 is not set |
482 | # CONFIG_SATA_FSL is not set | ||
483 | CONFIG_ATA_SFF=y | 490 | CONFIG_ATA_SFF=y |
484 | # CONFIG_SATA_SVW is not set | 491 | # CONFIG_SATA_SVW is not set |
485 | # CONFIG_ATA_PIIX is not set | 492 | # CONFIG_ATA_PIIX is not set |
@@ -535,18 +542,22 @@ CONFIG_PATA_MPC52xx=y | |||
535 | # CONFIG_PATA_VIA is not set | 542 | # CONFIG_PATA_VIA is not set |
536 | # CONFIG_PATA_WINBOND is not set | 543 | # CONFIG_PATA_WINBOND is not set |
537 | # CONFIG_PATA_PLATFORM is not set | 544 | # CONFIG_PATA_PLATFORM is not set |
545 | # CONFIG_PATA_SCH is not set | ||
538 | # CONFIG_MD is not set | 546 | # CONFIG_MD is not set |
539 | # CONFIG_FUSION is not set | 547 | # CONFIG_FUSION is not set |
540 | 548 | ||
541 | # | 549 | # |
542 | # IEEE 1394 (FireWire) support | 550 | # IEEE 1394 (FireWire) support |
543 | # | 551 | # |
552 | |||
553 | # | ||
554 | # Enable only one of the two stacks, unless you know what you are doing | ||
555 | # | ||
544 | # CONFIG_FIREWIRE is not set | 556 | # CONFIG_FIREWIRE is not set |
545 | # CONFIG_IEEE1394 is not set | 557 | # CONFIG_IEEE1394 is not set |
546 | # CONFIG_I2O is not set | 558 | # CONFIG_I2O is not set |
547 | # CONFIG_MACINTOSH_DRIVERS is not set | 559 | # CONFIG_MACINTOSH_DRIVERS is not set |
548 | CONFIG_NETDEVICES=y | 560 | CONFIG_NETDEVICES=y |
549 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
550 | # CONFIG_DUMMY is not set | 561 | # CONFIG_DUMMY is not set |
551 | # CONFIG_BONDING is not set | 562 | # CONFIG_BONDING is not set |
552 | # CONFIG_MACVLAN is not set | 563 | # CONFIG_MACVLAN is not set |
@@ -583,16 +594,19 @@ CONFIG_NET_ETHERNET=y | |||
583 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 594 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
584 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 595 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
585 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 596 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
597 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
598 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
599 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
586 | # CONFIG_NET_PCI is not set | 600 | # CONFIG_NET_PCI is not set |
587 | # CONFIG_B44 is not set | 601 | # CONFIG_B44 is not set |
588 | CONFIG_FEC_MPC52xx=y | 602 | CONFIG_FEC_MPC52xx=y |
589 | CONFIG_FEC_MPC52xx_MDIO=y | 603 | CONFIG_FEC_MPC52xx_MDIO=y |
604 | # CONFIG_ATL2 is not set | ||
590 | CONFIG_NETDEV_1000=y | 605 | CONFIG_NETDEV_1000=y |
591 | # CONFIG_ACENIC is not set | 606 | # CONFIG_ACENIC is not set |
592 | # CONFIG_DL2K is not set | 607 | # CONFIG_DL2K is not set |
593 | # CONFIG_E1000 is not set | 608 | # CONFIG_E1000 is not set |
594 | # CONFIG_E1000E is not set | 609 | # CONFIG_E1000E is not set |
595 | # CONFIG_E1000E_ENABLED is not set | ||
596 | # CONFIG_IP1000 is not set | 610 | # CONFIG_IP1000 is not set |
597 | # CONFIG_IGB is not set | 611 | # CONFIG_IGB is not set |
598 | # CONFIG_NS83820 is not set | 612 | # CONFIG_NS83820 is not set |
@@ -605,22 +619,27 @@ CONFIG_NETDEV_1000=y | |||
605 | # CONFIG_VIA_VELOCITY is not set | 619 | # CONFIG_VIA_VELOCITY is not set |
606 | # CONFIG_TIGON3 is not set | 620 | # CONFIG_TIGON3 is not set |
607 | # CONFIG_BNX2 is not set | 621 | # CONFIG_BNX2 is not set |
608 | # CONFIG_GIANFAR is not set | ||
609 | # CONFIG_MV643XX_ETH is not set | 622 | # CONFIG_MV643XX_ETH is not set |
610 | # CONFIG_QLA3XXX is not set | 623 | # CONFIG_QLA3XXX is not set |
611 | # CONFIG_ATL1 is not set | 624 | # CONFIG_ATL1 is not set |
625 | # CONFIG_ATL1E is not set | ||
626 | # CONFIG_JME is not set | ||
612 | CONFIG_NETDEV_10000=y | 627 | CONFIG_NETDEV_10000=y |
613 | # CONFIG_CHELSIO_T1 is not set | 628 | # CONFIG_CHELSIO_T1 is not set |
614 | # CONFIG_CHELSIO_T3 is not set | 629 | # CONFIG_CHELSIO_T3 is not set |
630 | # CONFIG_ENIC is not set | ||
615 | # CONFIG_IXGBE is not set | 631 | # CONFIG_IXGBE is not set |
616 | # CONFIG_IXGB is not set | 632 | # CONFIG_IXGB is not set |
617 | # CONFIG_S2IO is not set | 633 | # CONFIG_S2IO is not set |
618 | # CONFIG_MYRI10GE is not set | 634 | # CONFIG_MYRI10GE is not set |
619 | # CONFIG_NETXEN_NIC is not set | 635 | # CONFIG_NETXEN_NIC is not set |
620 | # CONFIG_NIU is not set | 636 | # CONFIG_NIU is not set |
637 | # CONFIG_MLX4_EN is not set | ||
621 | # CONFIG_MLX4_CORE is not set | 638 | # CONFIG_MLX4_CORE is not set |
622 | # CONFIG_TEHUTI is not set | 639 | # CONFIG_TEHUTI is not set |
623 | # CONFIG_BNX2X is not set | 640 | # CONFIG_BNX2X is not set |
641 | # CONFIG_QLGE is not set | ||
642 | # CONFIG_SFC is not set | ||
624 | # CONFIG_TR is not set | 643 | # CONFIG_TR is not set |
625 | 644 | ||
626 | # | 645 | # |
@@ -628,7 +647,6 @@ CONFIG_NETDEV_10000=y | |||
628 | # | 647 | # |
629 | # CONFIG_WLAN_PRE80211 is not set | 648 | # CONFIG_WLAN_PRE80211 is not set |
630 | # CONFIG_WLAN_80211 is not set | 649 | # CONFIG_WLAN_80211 is not set |
631 | # CONFIG_IWLWIFI is not set | ||
632 | # CONFIG_IWLWIFI_LEDS is not set | 650 | # CONFIG_IWLWIFI_LEDS is not set |
633 | # CONFIG_WAN is not set | 651 | # CONFIG_WAN is not set |
634 | # CONFIG_FDDI is not set | 652 | # CONFIG_FDDI is not set |
@@ -657,6 +675,7 @@ CONFIG_NETDEV_10000=y | |||
657 | # Character devices | 675 | # Character devices |
658 | # | 676 | # |
659 | # CONFIG_VT is not set | 677 | # CONFIG_VT is not set |
678 | CONFIG_DEVKMEM=y | ||
660 | # CONFIG_SERIAL_NONSTANDARD is not set | 679 | # CONFIG_SERIAL_NONSTANDARD is not set |
661 | # CONFIG_NOZOMI is not set | 680 | # CONFIG_NOZOMI is not set |
662 | 681 | ||
@@ -691,42 +710,63 @@ CONFIG_DEVPORT=y | |||
691 | CONFIG_I2C=y | 710 | CONFIG_I2C=y |
692 | CONFIG_I2C_BOARDINFO=y | 711 | CONFIG_I2C_BOARDINFO=y |
693 | CONFIG_I2C_CHARDEV=y | 712 | CONFIG_I2C_CHARDEV=y |
713 | CONFIG_I2C_HELPER_AUTO=y | ||
694 | 714 | ||
695 | # | 715 | # |
696 | # I2C Hardware Bus support | 716 | # I2C Hardware Bus support |
697 | # | 717 | # |
718 | |||
719 | # | ||
720 | # PC SMBus host controller drivers | ||
721 | # | ||
698 | # CONFIG_I2C_ALI1535 is not set | 722 | # CONFIG_I2C_ALI1535 is not set |
699 | # CONFIG_I2C_ALI1563 is not set | 723 | # CONFIG_I2C_ALI1563 is not set |
700 | # CONFIG_I2C_ALI15X3 is not set | 724 | # CONFIG_I2C_ALI15X3 is not set |
701 | # CONFIG_I2C_AMD756 is not set | 725 | # CONFIG_I2C_AMD756 is not set |
702 | # CONFIG_I2C_AMD8111 is not set | 726 | # CONFIG_I2C_AMD8111 is not set |
703 | # CONFIG_I2C_I801 is not set | 727 | # CONFIG_I2C_I801 is not set |
704 | # CONFIG_I2C_I810 is not set | 728 | # CONFIG_I2C_ISCH is not set |
705 | # CONFIG_I2C_PIIX4 is not set | 729 | # CONFIG_I2C_PIIX4 is not set |
706 | CONFIG_I2C_MPC=y | ||
707 | # CONFIG_I2C_NFORCE2 is not set | 730 | # CONFIG_I2C_NFORCE2 is not set |
708 | # CONFIG_I2C_OCORES is not set | ||
709 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
710 | # CONFIG_I2C_PROSAVAGE is not set | ||
711 | # CONFIG_I2C_SAVAGE4 is not set | ||
712 | # CONFIG_I2C_SIMTEC is not set | ||
713 | # CONFIG_I2C_SIS5595 is not set | 731 | # CONFIG_I2C_SIS5595 is not set |
714 | # CONFIG_I2C_SIS630 is not set | 732 | # CONFIG_I2C_SIS630 is not set |
715 | # CONFIG_I2C_SIS96X is not set | 733 | # CONFIG_I2C_SIS96X is not set |
716 | # CONFIG_I2C_TAOS_EVM is not set | ||
717 | # CONFIG_I2C_STUB is not set | ||
718 | # CONFIG_I2C_VIA is not set | 734 | # CONFIG_I2C_VIA is not set |
719 | # CONFIG_I2C_VIAPRO is not set | 735 | # CONFIG_I2C_VIAPRO is not set |
736 | |||
737 | # | ||
738 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
739 | # | ||
740 | CONFIG_I2C_MPC=y | ||
741 | # CONFIG_I2C_OCORES is not set | ||
742 | # CONFIG_I2C_SIMTEC is not set | ||
743 | |||
744 | # | ||
745 | # External I2C/SMBus adapter drivers | ||
746 | # | ||
747 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
748 | # CONFIG_I2C_TAOS_EVM is not set | ||
749 | |||
750 | # | ||
751 | # Graphics adapter I2C/DDC channel drivers | ||
752 | # | ||
720 | # CONFIG_I2C_VOODOO3 is not set | 753 | # CONFIG_I2C_VOODOO3 is not set |
754 | |||
755 | # | ||
756 | # Other I2C/SMBus bus drivers | ||
757 | # | ||
721 | # CONFIG_I2C_PCA_PLATFORM is not set | 758 | # CONFIG_I2C_PCA_PLATFORM is not set |
759 | # CONFIG_I2C_STUB is not set | ||
722 | 760 | ||
723 | # | 761 | # |
724 | # Miscellaneous I2C Chip support | 762 | # Miscellaneous I2C Chip support |
725 | # | 763 | # |
726 | # CONFIG_DS1682 is not set | 764 | # CONFIG_DS1682 is not set |
765 | # CONFIG_AT24 is not set | ||
727 | # CONFIG_SENSORS_EEPROM is not set | 766 | # CONFIG_SENSORS_EEPROM is not set |
728 | # CONFIG_SENSORS_PCF8574 is not set | 767 | # CONFIG_SENSORS_PCF8574 is not set |
729 | # CONFIG_PCF8575 is not set | 768 | # CONFIG_PCF8575 is not set |
769 | # CONFIG_SENSORS_PCA9539 is not set | ||
730 | # CONFIG_SENSORS_PCF8591 is not set | 770 | # CONFIG_SENSORS_PCF8591 is not set |
731 | # CONFIG_SENSORS_MAX6875 is not set | 771 | # CONFIG_SENSORS_MAX6875 is not set |
732 | # CONFIG_SENSORS_TSL2550 is not set | 772 | # CONFIG_SENSORS_TSL2550 is not set |
@@ -735,29 +775,47 @@ CONFIG_I2C_MPC=y | |||
735 | # CONFIG_I2C_DEBUG_BUS is not set | 775 | # CONFIG_I2C_DEBUG_BUS is not set |
736 | # CONFIG_I2C_DEBUG_CHIP is not set | 776 | # CONFIG_I2C_DEBUG_CHIP is not set |
737 | # CONFIG_SPI is not set | 777 | # CONFIG_SPI is not set |
778 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
779 | # CONFIG_GPIOLIB is not set | ||
738 | # CONFIG_W1 is not set | 780 | # CONFIG_W1 is not set |
739 | # CONFIG_POWER_SUPPLY is not set | 781 | # CONFIG_POWER_SUPPLY is not set |
740 | # CONFIG_HWMON is not set | 782 | # CONFIG_HWMON is not set |
741 | # CONFIG_THERMAL is not set | 783 | # CONFIG_THERMAL is not set |
784 | # CONFIG_THERMAL_HWMON is not set | ||
742 | # CONFIG_WATCHDOG is not set | 785 | # CONFIG_WATCHDOG is not set |
786 | CONFIG_SSB_POSSIBLE=y | ||
743 | 787 | ||
744 | # | 788 | # |
745 | # Sonics Silicon Backplane | 789 | # Sonics Silicon Backplane |
746 | # | 790 | # |
747 | CONFIG_SSB_POSSIBLE=y | ||
748 | # CONFIG_SSB is not set | 791 | # CONFIG_SSB is not set |
749 | 792 | ||
750 | # | 793 | # |
751 | # Multifunction device drivers | 794 | # Multifunction device drivers |
752 | # | 795 | # |
796 | # CONFIG_MFD_CORE is not set | ||
753 | # CONFIG_MFD_SM501 is not set | 797 | # CONFIG_MFD_SM501 is not set |
754 | # CONFIG_HTC_PASIC3 is not set | 798 | # CONFIG_HTC_PASIC3 is not set |
799 | # CONFIG_MFD_TMIO is not set | ||
800 | # CONFIG_PMIC_DA903X is not set | ||
801 | # CONFIG_MFD_WM8400 is not set | ||
802 | # CONFIG_MFD_WM8350_I2C is not set | ||
803 | # CONFIG_REGULATOR is not set | ||
755 | 804 | ||
756 | # | 805 | # |
757 | # Multimedia devices | 806 | # Multimedia devices |
758 | # | 807 | # |
808 | |||
809 | # | ||
810 | # Multimedia core support | ||
811 | # | ||
759 | # CONFIG_VIDEO_DEV is not set | 812 | # CONFIG_VIDEO_DEV is not set |
760 | # CONFIG_DVB_CORE is not set | 813 | # CONFIG_DVB_CORE is not set |
814 | # CONFIG_VIDEO_MEDIA is not set | ||
815 | |||
816 | # | ||
817 | # Multimedia drivers | ||
818 | # | ||
761 | # CONFIG_DAB is not set | 819 | # CONFIG_DAB is not set |
762 | 820 | ||
763 | # | 821 | # |
@@ -774,10 +832,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m | |||
774 | # Display device support | 832 | # Display device support |
775 | # | 833 | # |
776 | # CONFIG_DISPLAY_SUPPORT is not set | 834 | # CONFIG_DISPLAY_SUPPORT is not set |
777 | |||
778 | # | ||
779 | # Sound | ||
780 | # | ||
781 | # CONFIG_SOUND is not set | 835 | # CONFIG_SOUND is not set |
782 | CONFIG_USB_SUPPORT=y | 836 | CONFIG_USB_SUPPORT=y |
783 | CONFIG_USB_ARCH_HAS_HCD=y | 837 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -788,17 +842,25 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
788 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 842 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
789 | 843 | ||
790 | # | 844 | # |
845 | # Enable Host or Gadget support to see Inventra options | ||
846 | # | ||
847 | |||
848 | # | ||
791 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 849 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
792 | # | 850 | # |
793 | # CONFIG_USB_GADGET is not set | 851 | # CONFIG_USB_GADGET is not set |
852 | # CONFIG_UWB is not set | ||
794 | # CONFIG_MMC is not set | 853 | # CONFIG_MMC is not set |
795 | # CONFIG_MEMSTICK is not set | 854 | # CONFIG_MEMSTICK is not set |
796 | # CONFIG_NEW_LEDS is not set | 855 | # CONFIG_NEW_LEDS is not set |
856 | # CONFIG_ACCESSIBILITY is not set | ||
797 | # CONFIG_INFINIBAND is not set | 857 | # CONFIG_INFINIBAND is not set |
798 | # CONFIG_EDAC is not set | 858 | # CONFIG_EDAC is not set |
799 | # CONFIG_RTC_CLASS is not set | 859 | # CONFIG_RTC_CLASS is not set |
800 | # CONFIG_DMADEVICES is not set | 860 | # CONFIG_DMADEVICES is not set |
801 | # CONFIG_UIO is not set | 861 | # CONFIG_UIO is not set |
862 | # CONFIG_STAGING is not set | ||
863 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
802 | 864 | ||
803 | # | 865 | # |
804 | # File systems | 866 | # File systems |
@@ -810,12 +872,13 @@ CONFIG_EXT3_FS=y | |||
810 | CONFIG_EXT3_FS_XATTR=y | 872 | CONFIG_EXT3_FS_XATTR=y |
811 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 873 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
812 | # CONFIG_EXT3_FS_SECURITY is not set | 874 | # CONFIG_EXT3_FS_SECURITY is not set |
813 | # CONFIG_EXT4DEV_FS is not set | 875 | # CONFIG_EXT4_FS is not set |
814 | CONFIG_JBD=y | 876 | CONFIG_JBD=y |
815 | CONFIG_FS_MBCACHE=y | 877 | CONFIG_FS_MBCACHE=y |
816 | # CONFIG_REISERFS_FS is not set | 878 | # CONFIG_REISERFS_FS is not set |
817 | # CONFIG_JFS_FS is not set | 879 | # CONFIG_JFS_FS is not set |
818 | # CONFIG_FS_POSIX_ACL is not set | 880 | # CONFIG_FS_POSIX_ACL is not set |
881 | CONFIG_FILE_LOCKING=y | ||
819 | # CONFIG_XFS_FS is not set | 882 | # CONFIG_XFS_FS is not set |
820 | # CONFIG_OCFS2_FS is not set | 883 | # CONFIG_OCFS2_FS is not set |
821 | CONFIG_DNOTIFY=y | 884 | CONFIG_DNOTIFY=y |
@@ -845,6 +908,7 @@ CONFIG_INOTIFY_USER=y | |||
845 | CONFIG_PROC_FS=y | 908 | CONFIG_PROC_FS=y |
846 | CONFIG_PROC_KCORE=y | 909 | CONFIG_PROC_KCORE=y |
847 | CONFIG_PROC_SYSCTL=y | 910 | CONFIG_PROC_SYSCTL=y |
911 | CONFIG_PROC_PAGE_MONITOR=y | ||
848 | CONFIG_SYSFS=y | 912 | CONFIG_SYSFS=y |
849 | CONFIG_TMPFS=y | 913 | CONFIG_TMPFS=y |
850 | # CONFIG_TMPFS_POSIX_ACL is not set | 914 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -864,6 +928,7 @@ CONFIG_TMPFS=y | |||
864 | # CONFIG_CRAMFS is not set | 928 | # CONFIG_CRAMFS is not set |
865 | # CONFIG_VXFS_FS is not set | 929 | # CONFIG_VXFS_FS is not set |
866 | # CONFIG_MINIX_FS is not set | 930 | # CONFIG_MINIX_FS is not set |
931 | # CONFIG_OMFS_FS is not set | ||
867 | # CONFIG_HPFS_FS is not set | 932 | # CONFIG_HPFS_FS is not set |
868 | # CONFIG_QNX4FS_FS is not set | 933 | # CONFIG_QNX4FS_FS is not set |
869 | # CONFIG_ROMFS_FS is not set | 934 | # CONFIG_ROMFS_FS is not set |
@@ -874,14 +939,14 @@ CONFIG_NFS_FS=y | |||
874 | CONFIG_NFS_V3=y | 939 | CONFIG_NFS_V3=y |
875 | # CONFIG_NFS_V3_ACL is not set | 940 | # CONFIG_NFS_V3_ACL is not set |
876 | CONFIG_NFS_V4=y | 941 | CONFIG_NFS_V4=y |
877 | # CONFIG_NFSD is not set | ||
878 | CONFIG_ROOT_NFS=y | 942 | CONFIG_ROOT_NFS=y |
943 | # CONFIG_NFSD is not set | ||
879 | CONFIG_LOCKD=y | 944 | CONFIG_LOCKD=y |
880 | CONFIG_LOCKD_V4=y | 945 | CONFIG_LOCKD_V4=y |
881 | CONFIG_NFS_COMMON=y | 946 | CONFIG_NFS_COMMON=y |
882 | CONFIG_SUNRPC=y | 947 | CONFIG_SUNRPC=y |
883 | CONFIG_SUNRPC_GSS=y | 948 | CONFIG_SUNRPC_GSS=y |
884 | # CONFIG_SUNRPC_BIND34 is not set | 949 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
885 | CONFIG_RPCSEC_GSS_KRB5=y | 950 | CONFIG_RPCSEC_GSS_KRB5=y |
886 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 951 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
887 | # CONFIG_SMB_FS is not set | 952 | # CONFIG_SMB_FS is not set |
@@ -902,9 +967,9 @@ CONFIG_MSDOS_PARTITION=y | |||
902 | # Library routines | 967 | # Library routines |
903 | # | 968 | # |
904 | CONFIG_BITREVERSE=y | 969 | CONFIG_BITREVERSE=y |
905 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
906 | # CONFIG_CRC_CCITT is not set | 970 | # CONFIG_CRC_CCITT is not set |
907 | # CONFIG_CRC16 is not set | 971 | # CONFIG_CRC16 is not set |
972 | # CONFIG_CRC_T10DIF is not set | ||
908 | # CONFIG_CRC_ITU_T is not set | 973 | # CONFIG_CRC_ITU_T is not set |
909 | CONFIG_CRC32=y | 974 | CONFIG_CRC32=y |
910 | # CONFIG_CRC7 is not set | 975 | # CONFIG_CRC7 is not set |
@@ -929,9 +994,12 @@ CONFIG_FRAME_WARN=1024 | |||
929 | CONFIG_DEBUG_KERNEL=y | 994 | CONFIG_DEBUG_KERNEL=y |
930 | # CONFIG_DEBUG_SHIRQ is not set | 995 | # CONFIG_DEBUG_SHIRQ is not set |
931 | CONFIG_DETECT_SOFTLOCKUP=y | 996 | CONFIG_DETECT_SOFTLOCKUP=y |
997 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
998 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
932 | CONFIG_SCHED_DEBUG=y | 999 | CONFIG_SCHED_DEBUG=y |
933 | # CONFIG_SCHEDSTATS is not set | 1000 | # CONFIG_SCHEDSTATS is not set |
934 | # CONFIG_TIMER_STATS is not set | 1001 | # CONFIG_TIMER_STATS is not set |
1002 | # CONFIG_DEBUG_OBJECTS is not set | ||
935 | # CONFIG_SLUB_DEBUG_ON is not set | 1003 | # CONFIG_SLUB_DEBUG_ON is not set |
936 | # CONFIG_SLUB_STATS is not set | 1004 | # CONFIG_SLUB_STATS is not set |
937 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1005 | # CONFIG_DEBUG_RT_MUTEXES is not set |
@@ -945,17 +1013,37 @@ CONFIG_SCHED_DEBUG=y | |||
945 | CONFIG_DEBUG_INFO=y | 1013 | CONFIG_DEBUG_INFO=y |
946 | # CONFIG_DEBUG_VM is not set | 1014 | # CONFIG_DEBUG_VM is not set |
947 | # CONFIG_DEBUG_WRITECOUNT is not set | 1015 | # CONFIG_DEBUG_WRITECOUNT is not set |
1016 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
948 | # CONFIG_DEBUG_LIST is not set | 1017 | # CONFIG_DEBUG_LIST is not set |
949 | # CONFIG_DEBUG_SG is not set | 1018 | # CONFIG_DEBUG_SG is not set |
950 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1019 | # CONFIG_BOOT_PRINTK_DELAY is not set |
951 | # CONFIG_RCU_TORTURE_TEST is not set | 1020 | # CONFIG_RCU_TORTURE_TEST is not set |
1021 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
952 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1022 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1023 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
953 | # CONFIG_FAULT_INJECTION is not set | 1024 | # CONFIG_FAULT_INJECTION is not set |
1025 | # CONFIG_LATENCYTOP is not set | ||
1026 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1027 | |||
1028 | # | ||
1029 | # Tracers | ||
1030 | # | ||
1031 | # CONFIG_FUNCTION_TRACER is not set | ||
1032 | # CONFIG_SCHED_TRACER is not set | ||
1033 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1034 | # CONFIG_BOOT_TRACER is not set | ||
1035 | # CONFIG_STACK_TRACER is not set | ||
1036 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
954 | # CONFIG_SAMPLES is not set | 1037 | # CONFIG_SAMPLES is not set |
1038 | CONFIG_HAVE_ARCH_KGDB=y | ||
1039 | # CONFIG_KGDB is not set | ||
955 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1040 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
956 | # CONFIG_DEBUG_STACK_USAGE is not set | 1041 | # CONFIG_DEBUG_STACK_USAGE is not set |
957 | # CONFIG_DEBUG_PAGEALLOC is not set | 1042 | # CONFIG_DEBUG_PAGEALLOC is not set |
958 | # CONFIG_DEBUGGER is not set | 1043 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1044 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
1045 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
1046 | # CONFIG_XMON is not set | ||
959 | # CONFIG_IRQSTACKS is not set | 1047 | # CONFIG_IRQSTACKS is not set |
960 | # CONFIG_BDI_SWITCH is not set | 1048 | # CONFIG_BDI_SWITCH is not set |
961 | # CONFIG_BOOTX_TEXT is not set | 1049 | # CONFIG_BOOTX_TEXT is not set |
@@ -966,14 +1054,19 @@ CONFIG_DEBUG_INFO=y | |||
966 | # | 1054 | # |
967 | # CONFIG_KEYS is not set | 1055 | # CONFIG_KEYS is not set |
968 | # CONFIG_SECURITY is not set | 1056 | # CONFIG_SECURITY is not set |
1057 | # CONFIG_SECURITYFS is not set | ||
969 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1058 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
970 | CONFIG_CRYPTO=y | 1059 | CONFIG_CRYPTO=y |
971 | 1060 | ||
972 | # | 1061 | # |
973 | # Crypto core or helper | 1062 | # Crypto core or helper |
974 | # | 1063 | # |
1064 | # CONFIG_CRYPTO_FIPS is not set | ||
975 | CONFIG_CRYPTO_ALGAPI=y | 1065 | CONFIG_CRYPTO_ALGAPI=y |
1066 | CONFIG_CRYPTO_AEAD=y | ||
976 | CONFIG_CRYPTO_BLKCIPHER=y | 1067 | CONFIG_CRYPTO_BLKCIPHER=y |
1068 | CONFIG_CRYPTO_HASH=y | ||
1069 | CONFIG_CRYPTO_RNG=y | ||
977 | CONFIG_CRYPTO_MANAGER=y | 1070 | CONFIG_CRYPTO_MANAGER=y |
978 | # CONFIG_CRYPTO_GF128MUL is not set | 1071 | # CONFIG_CRYPTO_GF128MUL is not set |
979 | # CONFIG_CRYPTO_NULL is not set | 1072 | # CONFIG_CRYPTO_NULL is not set |
@@ -1012,6 +1105,10 @@ CONFIG_CRYPTO_CBC=y | |||
1012 | # CONFIG_CRYPTO_MD4 is not set | 1105 | # CONFIG_CRYPTO_MD4 is not set |
1013 | CONFIG_CRYPTO_MD5=y | 1106 | CONFIG_CRYPTO_MD5=y |
1014 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1107 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1108 | # CONFIG_CRYPTO_RMD128 is not set | ||
1109 | # CONFIG_CRYPTO_RMD160 is not set | ||
1110 | # CONFIG_CRYPTO_RMD256 is not set | ||
1111 | # CONFIG_CRYPTO_RMD320 is not set | ||
1015 | # CONFIG_CRYPTO_SHA1 is not set | 1112 | # CONFIG_CRYPTO_SHA1 is not set |
1016 | # CONFIG_CRYPTO_SHA256 is not set | 1113 | # CONFIG_CRYPTO_SHA256 is not set |
1017 | # CONFIG_CRYPTO_SHA512 is not set | 1114 | # CONFIG_CRYPTO_SHA512 is not set |
@@ -1042,6 +1139,11 @@ CONFIG_CRYPTO_DES=y | |||
1042 | # | 1139 | # |
1043 | # CONFIG_CRYPTO_DEFLATE is not set | 1140 | # CONFIG_CRYPTO_DEFLATE is not set |
1044 | # CONFIG_CRYPTO_LZO is not set | 1141 | # CONFIG_CRYPTO_LZO is not set |
1142 | |||
1143 | # | ||
1144 | # Random Number Generation | ||
1145 | # | ||
1146 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1045 | CONFIG_CRYPTO_HW=y | 1147 | CONFIG_CRYPTO_HW=y |
1046 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1148 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1047 | CONFIG_PPC_CLOCK=y | 1149 | CONFIG_PPC_CLOCK=y |
diff --git a/arch/powerpc/configs/52xx/motionpro_defconfig b/arch/powerpc/configs/52xx/motionpro_defconfig index 8c7ba7c6ba49..3c0d4e561726 100644 --- a/arch/powerpc/configs/52xx/motionpro_defconfig +++ b/arch/powerpc/configs/52xx/motionpro_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.25 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Apr 29 07:12:22 2008 | 4 | # Thu Nov 13 02:11:02 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y | |||
22 | # CONFIG_SMP is not set | 22 | # CONFIG_SMP is not set |
23 | CONFIG_PPC32=y | 23 | CONFIG_PPC32=y |
24 | CONFIG_WORD_SIZE=32 | 24 | CONFIG_WORD_SIZE=32 |
25 | CONFIG_PPC_MERGE=y | 25 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set |
26 | CONFIG_MMU=y | 26 | CONFIG_MMU=y |
27 | CONFIG_GENERIC_CMOS_UPDATE=y | 27 | CONFIG_GENERIC_CMOS_UPDATE=y |
28 | CONFIG_GENERIC_TIME=y | 28 | CONFIG_GENERIC_TIME=y |
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
34 | CONFIG_STACKTRACE_SUPPORT=y | 34 | CONFIG_STACKTRACE_SUPPORT=y |
35 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | 36 | CONFIG_LOCKDEP_SUPPORT=y |
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | 38 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -102,6 +103,7 @@ CONFIG_SIGNALFD=y | |||
102 | CONFIG_TIMERFD=y | 103 | CONFIG_TIMERFD=y |
103 | CONFIG_EVENTFD=y | 104 | CONFIG_EVENTFD=y |
104 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
106 | CONFIG_AIO=y | ||
105 | CONFIG_VM_EVENT_COUNTERS=y | 107 | CONFIG_VM_EVENT_COUNTERS=y |
106 | CONFIG_SLUB_DEBUG=y | 108 | CONFIG_SLUB_DEBUG=y |
107 | # CONFIG_SLAB is not set | 109 | # CONFIG_SLAB is not set |
@@ -110,9 +112,13 @@ CONFIG_SLUB=y | |||
110 | # CONFIG_PROFILING is not set | 112 | # CONFIG_PROFILING is not set |
111 | # CONFIG_MARKERS is not set | 113 | # CONFIG_MARKERS is not set |
112 | CONFIG_HAVE_OPROFILE=y | 114 | CONFIG_HAVE_OPROFILE=y |
115 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
116 | CONFIG_HAVE_IOREMAP_PROT=y | ||
113 | CONFIG_HAVE_KPROBES=y | 117 | CONFIG_HAVE_KPROBES=y |
114 | CONFIG_HAVE_KRETPROBES=y | 118 | CONFIG_HAVE_KRETPROBES=y |
115 | CONFIG_PROC_PAGE_MONITOR=y | 119 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
120 | CONFIG_HAVE_CLK=y | ||
121 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
116 | CONFIG_SLABINFO=y | 122 | CONFIG_SLABINFO=y |
117 | CONFIG_RT_MUTEXES=y | 123 | CONFIG_RT_MUTEXES=y |
118 | # CONFIG_TINY_SHMEM is not set | 124 | # CONFIG_TINY_SHMEM is not set |
@@ -123,6 +129,7 @@ CONFIG_BLOCK=y | |||
123 | # CONFIG_BLK_DEV_IO_TRACE is not set | 129 | # CONFIG_BLK_DEV_IO_TRACE is not set |
124 | # CONFIG_LSF is not set | 130 | # CONFIG_LSF is not set |
125 | # CONFIG_BLK_DEV_BSG is not set | 131 | # CONFIG_BLK_DEV_BSG is not set |
132 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
126 | 133 | ||
127 | # | 134 | # |
128 | # IO Schedulers | 135 | # IO Schedulers |
@@ -137,19 +144,16 @@ CONFIG_DEFAULT_AS=y | |||
137 | # CONFIG_DEFAULT_NOOP is not set | 144 | # CONFIG_DEFAULT_NOOP is not set |
138 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 145 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
139 | CONFIG_CLASSIC_RCU=y | 146 | CONFIG_CLASSIC_RCU=y |
147 | # CONFIG_FREEZER is not set | ||
140 | 148 | ||
141 | # | 149 | # |
142 | # Platform support | 150 | # Platform support |
143 | # | 151 | # |
144 | CONFIG_PPC_MULTIPLATFORM=y | 152 | CONFIG_PPC_MULTIPLATFORM=y |
145 | # CONFIG_PPC_82xx is not set | ||
146 | # CONFIG_PPC_83xx is not set | ||
147 | # CONFIG_PPC_86xx is not set | ||
148 | CONFIG_CLASSIC32=y | 153 | CONFIG_CLASSIC32=y |
149 | # CONFIG_PPC_CHRP is not set | 154 | # CONFIG_PPC_CHRP is not set |
150 | # CONFIG_PPC_MPC512x is not set | ||
151 | # CONFIG_PPC_MPC5121 is not set | ||
152 | # CONFIG_MPC5121_ADS is not set | 155 | # CONFIG_MPC5121_ADS is not set |
156 | # CONFIG_MPC5121_GENERIC is not set | ||
153 | CONFIG_PPC_MPC52xx=y | 157 | CONFIG_PPC_MPC52xx=y |
154 | CONFIG_PPC_MPC5200_SIMPLE=y | 158 | CONFIG_PPC_MPC5200_SIMPLE=y |
155 | # CONFIG_PPC_EFIKA is not set | 159 | # CONFIG_PPC_EFIKA is not set |
@@ -159,7 +163,10 @@ CONFIG_PPC_MPC5200_SIMPLE=y | |||
159 | # CONFIG_PPC_PMAC is not set | 163 | # CONFIG_PPC_PMAC is not set |
160 | # CONFIG_PPC_CELL is not set | 164 | # CONFIG_PPC_CELL is not set |
161 | # CONFIG_PPC_CELL_NATIVE is not set | 165 | # CONFIG_PPC_CELL_NATIVE is not set |
166 | # CONFIG_PPC_82xx is not set | ||
162 | # CONFIG_PQ2ADS is not set | 167 | # CONFIG_PQ2ADS is not set |
168 | # CONFIG_PPC_83xx is not set | ||
169 | # CONFIG_PPC_86xx is not set | ||
163 | # CONFIG_EMBEDDED6xx is not set | 170 | # CONFIG_EMBEDDED6xx is not set |
164 | # CONFIG_IPIC is not set | 171 | # CONFIG_IPIC is not set |
165 | # CONFIG_MPIC is not set | 172 | # CONFIG_MPIC is not set |
@@ -183,7 +190,6 @@ CONFIG_PPC_BESTCOMM_FEC=y | |||
183 | # Kernel options | 190 | # Kernel options |
184 | # | 191 | # |
185 | # CONFIG_HIGHMEM is not set | 192 | # CONFIG_HIGHMEM is not set |
186 | # CONFIG_TICK_ONESHOT is not set | ||
187 | # CONFIG_NO_HZ is not set | 193 | # CONFIG_NO_HZ is not set |
188 | # CONFIG_HIGH_RES_TIMERS is not set | 194 | # CONFIG_HIGH_RES_TIMERS is not set |
189 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 195 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -197,6 +203,8 @@ CONFIG_PREEMPT_NONE=y | |||
197 | # CONFIG_PREEMPT_VOLUNTARY is not set | 203 | # CONFIG_PREEMPT_VOLUNTARY is not set |
198 | # CONFIG_PREEMPT is not set | 204 | # CONFIG_PREEMPT is not set |
199 | CONFIG_BINFMT_ELF=y | 205 | CONFIG_BINFMT_ELF=y |
206 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
207 | # CONFIG_HAVE_AOUT is not set | ||
200 | # CONFIG_BINFMT_MISC is not set | 208 | # CONFIG_BINFMT_MISC is not set |
201 | # CONFIG_IOMMU_HELPER is not set | 209 | # CONFIG_IOMMU_HELPER is not set |
202 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 210 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
@@ -211,19 +219,20 @@ CONFIG_FLATMEM_MANUAL=y | |||
211 | # CONFIG_SPARSEMEM_MANUAL is not set | 219 | # CONFIG_SPARSEMEM_MANUAL is not set |
212 | CONFIG_FLATMEM=y | 220 | CONFIG_FLATMEM=y |
213 | CONFIG_FLAT_NODE_MEM_MAP=y | 221 | CONFIG_FLAT_NODE_MEM_MAP=y |
214 | # CONFIG_SPARSEMEM_STATIC is not set | ||
215 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
216 | CONFIG_PAGEFLAGS_EXTENDED=y | 222 | CONFIG_PAGEFLAGS_EXTENDED=y |
217 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 223 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
224 | CONFIG_MIGRATION=y | ||
218 | # CONFIG_RESOURCES_64BIT is not set | 225 | # CONFIG_RESOURCES_64BIT is not set |
226 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
219 | CONFIG_ZONE_DMA_FLAG=1 | 227 | CONFIG_ZONE_DMA_FLAG=1 |
220 | CONFIG_BOUNCE=y | 228 | CONFIG_BOUNCE=y |
221 | CONFIG_VIRT_TO_BUS=y | 229 | CONFIG_VIRT_TO_BUS=y |
230 | CONFIG_UNEVICTABLE_LRU=y | ||
222 | CONFIG_FORCE_MAX_ZONEORDER=11 | 231 | CONFIG_FORCE_MAX_ZONEORDER=11 |
223 | CONFIG_PROC_DEVICETREE=y | 232 | CONFIG_PROC_DEVICETREE=y |
224 | # CONFIG_CMDLINE_BOOL is not set | 233 | # CONFIG_CMDLINE_BOOL is not set |
234 | CONFIG_EXTRA_TARGETS="" | ||
225 | CONFIG_PM=y | 235 | CONFIG_PM=y |
226 | # CONFIG_PM_LEGACY is not set | ||
227 | # CONFIG_PM_DEBUG is not set | 236 | # CONFIG_PM_DEBUG is not set |
228 | CONFIG_SECCOMP=y | 237 | CONFIG_SECCOMP=y |
229 | CONFIG_ISA_DMA_API=y | 238 | CONFIG_ISA_DMA_API=y |
@@ -233,7 +242,7 @@ CONFIG_ISA_DMA_API=y | |||
233 | # | 242 | # |
234 | CONFIG_ZONE_DMA=y | 243 | CONFIG_ZONE_DMA=y |
235 | CONFIG_GENERIC_ISA_DMA=y | 244 | CONFIG_GENERIC_ISA_DMA=y |
236 | CONFIG_FSL_SOC=y | 245 | CONFIG_PPC_PCI_CHOICE=y |
237 | # CONFIG_PCI is not set | 246 | # CONFIG_PCI is not set |
238 | # CONFIG_PCI_DOMAINS is not set | 247 | # CONFIG_PCI_DOMAINS is not set |
239 | # CONFIG_PCI_SYSCALL is not set | 248 | # CONFIG_PCI_SYSCALL is not set |
@@ -254,10 +263,6 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
254 | CONFIG_KERNEL_START=0xc0000000 | 263 | CONFIG_KERNEL_START=0xc0000000 |
255 | CONFIG_PHYSICAL_START=0x00000000 | 264 | CONFIG_PHYSICAL_START=0x00000000 |
256 | CONFIG_TASK_SIZE=0xc0000000 | 265 | CONFIG_TASK_SIZE=0xc0000000 |
257 | |||
258 | # | ||
259 | # Networking | ||
260 | # | ||
261 | CONFIG_NET=y | 266 | CONFIG_NET=y |
262 | 267 | ||
263 | # | 268 | # |
@@ -308,6 +313,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
308 | # CONFIG_TIPC is not set | 313 | # CONFIG_TIPC is not set |
309 | # CONFIG_ATM is not set | 314 | # CONFIG_ATM is not set |
310 | # CONFIG_BRIDGE is not set | 315 | # CONFIG_BRIDGE is not set |
316 | # CONFIG_NET_DSA is not set | ||
311 | # CONFIG_VLAN_8021Q is not set | 317 | # CONFIG_VLAN_8021Q is not set |
312 | # CONFIG_DECNET is not set | 318 | # CONFIG_DECNET is not set |
313 | # CONFIG_LLC2 is not set | 319 | # CONFIG_LLC2 is not set |
@@ -328,14 +334,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
328 | # CONFIG_IRDA is not set | 334 | # CONFIG_IRDA is not set |
329 | # CONFIG_BT is not set | 335 | # CONFIG_BT is not set |
330 | # CONFIG_AF_RXRPC is not set | 336 | # CONFIG_AF_RXRPC is not set |
331 | 337 | # CONFIG_PHONET is not set | |
332 | # | 338 | # CONFIG_WIRELESS is not set |
333 | # Wireless | ||
334 | # | ||
335 | # CONFIG_CFG80211 is not set | ||
336 | # CONFIG_WIRELESS_EXT is not set | ||
337 | # CONFIG_MAC80211 is not set | ||
338 | # CONFIG_IEEE80211 is not set | ||
339 | # CONFIG_RFKILL is not set | 339 | # CONFIG_RFKILL is not set |
340 | # CONFIG_NET_9P is not set | 340 | # CONFIG_NET_9P is not set |
341 | 341 | ||
@@ -445,9 +445,12 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
445 | # CONFIG_BLK_DEV_XIP is not set | 445 | # CONFIG_BLK_DEV_XIP is not set |
446 | # CONFIG_CDROM_PKTCDVD is not set | 446 | # CONFIG_CDROM_PKTCDVD is not set |
447 | # CONFIG_ATA_OVER_ETH is not set | 447 | # CONFIG_ATA_OVER_ETH is not set |
448 | # CONFIG_BLK_DEV_HD is not set | ||
448 | CONFIG_MISC_DEVICES=y | 449 | CONFIG_MISC_DEVICES=y |
449 | # CONFIG_EEPROM_93CX6 is not set | 450 | # CONFIG_EEPROM_93CX6 is not set |
451 | # CONFIG_ICS932S401 is not set | ||
450 | # CONFIG_ENCLOSURE_SERVICES is not set | 452 | # CONFIG_ENCLOSURE_SERVICES is not set |
453 | # CONFIG_C2PORT is not set | ||
451 | CONFIG_HAVE_IDE=y | 454 | CONFIG_HAVE_IDE=y |
452 | # CONFIG_IDE is not set | 455 | # CONFIG_IDE is not set |
453 | 456 | ||
@@ -490,10 +493,10 @@ CONFIG_CHR_DEV_SG=y | |||
490 | CONFIG_SCSI_LOWLEVEL=y | 493 | CONFIG_SCSI_LOWLEVEL=y |
491 | # CONFIG_ISCSI_TCP is not set | 494 | # CONFIG_ISCSI_TCP is not set |
492 | # CONFIG_SCSI_DEBUG is not set | 495 | # CONFIG_SCSI_DEBUG is not set |
496 | # CONFIG_SCSI_DH is not set | ||
493 | CONFIG_ATA=y | 497 | CONFIG_ATA=y |
494 | # CONFIG_ATA_NONSTANDARD is not set | 498 | # CONFIG_ATA_NONSTANDARD is not set |
495 | CONFIG_SATA_PMP=y | 499 | CONFIG_SATA_PMP=y |
496 | # CONFIG_SATA_FSL is not set | ||
497 | CONFIG_ATA_SFF=y | 500 | CONFIG_ATA_SFF=y |
498 | # CONFIG_SATA_MV is not set | 501 | # CONFIG_SATA_MV is not set |
499 | CONFIG_PATA_MPC52xx=y | 502 | CONFIG_PATA_MPC52xx=y |
@@ -501,7 +504,6 @@ CONFIG_PATA_MPC52xx=y | |||
501 | # CONFIG_MD is not set | 504 | # CONFIG_MD is not set |
502 | # CONFIG_MACINTOSH_DRIVERS is not set | 505 | # CONFIG_MACINTOSH_DRIVERS is not set |
503 | CONFIG_NETDEVICES=y | 506 | CONFIG_NETDEVICES=y |
504 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
505 | # CONFIG_DUMMY is not set | 507 | # CONFIG_DUMMY is not set |
506 | # CONFIG_BONDING is not set | 508 | # CONFIG_BONDING is not set |
507 | # CONFIG_MACVLAN is not set | 509 | # CONFIG_MACVLAN is not set |
@@ -531,6 +533,9 @@ CONFIG_MII=y | |||
531 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 533 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
532 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 534 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
533 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 535 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
536 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
537 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
538 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
534 | # CONFIG_B44 is not set | 539 | # CONFIG_B44 is not set |
535 | CONFIG_FEC_MPC52xx=y | 540 | CONFIG_FEC_MPC52xx=y |
536 | CONFIG_FEC_MPC52xx_MDIO=y | 541 | CONFIG_FEC_MPC52xx_MDIO=y |
@@ -542,7 +547,6 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
542 | # | 547 | # |
543 | # CONFIG_WLAN_PRE80211 is not set | 548 | # CONFIG_WLAN_PRE80211 is not set |
544 | # CONFIG_WLAN_80211 is not set | 549 | # CONFIG_WLAN_80211 is not set |
545 | # CONFIG_IWLWIFI is not set | ||
546 | # CONFIG_IWLWIFI_LEDS is not set | 550 | # CONFIG_IWLWIFI_LEDS is not set |
547 | # CONFIG_WAN is not set | 551 | # CONFIG_WAN is not set |
548 | # CONFIG_PPP is not set | 552 | # CONFIG_PPP is not set |
@@ -568,6 +572,7 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
568 | # Character devices | 572 | # Character devices |
569 | # | 573 | # |
570 | # CONFIG_VT is not set | 574 | # CONFIG_VT is not set |
575 | CONFIG_DEVKMEM=y | ||
571 | # CONFIG_SERIAL_NONSTANDARD is not set | 576 | # CONFIG_SERIAL_NONSTANDARD is not set |
572 | 577 | ||
573 | # | 578 | # |
@@ -596,24 +601,39 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
596 | CONFIG_I2C=y | 601 | CONFIG_I2C=y |
597 | CONFIG_I2C_BOARDINFO=y | 602 | CONFIG_I2C_BOARDINFO=y |
598 | CONFIG_I2C_CHARDEV=y | 603 | CONFIG_I2C_CHARDEV=y |
604 | CONFIG_I2C_HELPER_AUTO=y | ||
599 | 605 | ||
600 | # | 606 | # |
601 | # I2C Hardware Bus support | 607 | # I2C Hardware Bus support |
602 | # | 608 | # |
609 | |||
610 | # | ||
611 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
612 | # | ||
603 | CONFIG_I2C_MPC=y | 613 | CONFIG_I2C_MPC=y |
604 | # CONFIG_I2C_OCORES is not set | 614 | # CONFIG_I2C_OCORES is not set |
605 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
606 | # CONFIG_I2C_SIMTEC is not set | 615 | # CONFIG_I2C_SIMTEC is not set |
616 | |||
617 | # | ||
618 | # External I2C/SMBus adapter drivers | ||
619 | # | ||
620 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
607 | # CONFIG_I2C_TAOS_EVM is not set | 621 | # CONFIG_I2C_TAOS_EVM is not set |
622 | |||
623 | # | ||
624 | # Other I2C/SMBus bus drivers | ||
625 | # | ||
608 | # CONFIG_I2C_PCA_PLATFORM is not set | 626 | # CONFIG_I2C_PCA_PLATFORM is not set |
609 | 627 | ||
610 | # | 628 | # |
611 | # Miscellaneous I2C Chip support | 629 | # Miscellaneous I2C Chip support |
612 | # | 630 | # |
613 | # CONFIG_DS1682 is not set | 631 | # CONFIG_DS1682 is not set |
632 | # CONFIG_AT24 is not set | ||
614 | CONFIG_SENSORS_EEPROM=y | 633 | CONFIG_SENSORS_EEPROM=y |
615 | # CONFIG_SENSORS_PCF8574 is not set | 634 | # CONFIG_SENSORS_PCF8574 is not set |
616 | # CONFIG_PCF8575 is not set | 635 | # CONFIG_PCF8575 is not set |
636 | # CONFIG_SENSORS_PCA9539 is not set | ||
617 | # CONFIG_SENSORS_PCF8591 is not set | 637 | # CONFIG_SENSORS_PCF8591 is not set |
618 | # CONFIG_SENSORS_MAX6875 is not set | 638 | # CONFIG_SENSORS_MAX6875 is not set |
619 | # CONFIG_SENSORS_TSL2550 is not set | 639 | # CONFIG_SENSORS_TSL2550 is not set |
@@ -622,10 +642,13 @@ CONFIG_SENSORS_EEPROM=y | |||
622 | # CONFIG_I2C_DEBUG_BUS is not set | 642 | # CONFIG_I2C_DEBUG_BUS is not set |
623 | # CONFIG_I2C_DEBUG_CHIP is not set | 643 | # CONFIG_I2C_DEBUG_CHIP is not set |
624 | # CONFIG_SPI is not set | 644 | # CONFIG_SPI is not set |
645 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
646 | # CONFIG_GPIOLIB is not set | ||
625 | # CONFIG_W1 is not set | 647 | # CONFIG_W1 is not set |
626 | # CONFIG_POWER_SUPPLY is not set | 648 | # CONFIG_POWER_SUPPLY is not set |
627 | CONFIG_HWMON=y | 649 | CONFIG_HWMON=y |
628 | # CONFIG_HWMON_VID is not set | 650 | # CONFIG_HWMON_VID is not set |
651 | # CONFIG_SENSORS_AD7414 is not set | ||
629 | # CONFIG_SENSORS_AD7418 is not set | 652 | # CONFIG_SENSORS_AD7418 is not set |
630 | # CONFIG_SENSORS_ADM1021 is not set | 653 | # CONFIG_SENSORS_ADM1021 is not set |
631 | # CONFIG_SENSORS_ADM1025 is not set | 654 | # CONFIG_SENSORS_ADM1025 is not set |
@@ -633,6 +656,7 @@ CONFIG_HWMON=y | |||
633 | # CONFIG_SENSORS_ADM1029 is not set | 656 | # CONFIG_SENSORS_ADM1029 is not set |
634 | # CONFIG_SENSORS_ADM1031 is not set | 657 | # CONFIG_SENSORS_ADM1031 is not set |
635 | # CONFIG_SENSORS_ADM9240 is not set | 658 | # CONFIG_SENSORS_ADM9240 is not set |
659 | # CONFIG_SENSORS_ADT7462 is not set | ||
636 | # CONFIG_SENSORS_ADT7470 is not set | 660 | # CONFIG_SENSORS_ADT7470 is not set |
637 | # CONFIG_SENSORS_ADT7473 is not set | 661 | # CONFIG_SENSORS_ADT7473 is not set |
638 | # CONFIG_SENSORS_ATXP1 is not set | 662 | # CONFIG_SENSORS_ATXP1 is not set |
@@ -675,6 +699,7 @@ CONFIG_HWMON=y | |||
675 | # CONFIG_SENSORS_W83627EHF is not set | 699 | # CONFIG_SENSORS_W83627EHF is not set |
676 | # CONFIG_HWMON_DEBUG_CHIP is not set | 700 | # CONFIG_HWMON_DEBUG_CHIP is not set |
677 | # CONFIG_THERMAL is not set | 701 | # CONFIG_THERMAL is not set |
702 | # CONFIG_THERMAL_HWMON is not set | ||
678 | CONFIG_WATCHDOG=y | 703 | CONFIG_WATCHDOG=y |
679 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 704 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
680 | 705 | ||
@@ -683,24 +708,39 @@ CONFIG_WATCHDOG=y | |||
683 | # | 708 | # |
684 | # CONFIG_SOFT_WATCHDOG is not set | 709 | # CONFIG_SOFT_WATCHDOG is not set |
685 | # CONFIG_MPC5200_WDT is not set | 710 | # CONFIG_MPC5200_WDT is not set |
711 | CONFIG_SSB_POSSIBLE=y | ||
686 | 712 | ||
687 | # | 713 | # |
688 | # Sonics Silicon Backplane | 714 | # Sonics Silicon Backplane |
689 | # | 715 | # |
690 | CONFIG_SSB_POSSIBLE=y | ||
691 | # CONFIG_SSB is not set | 716 | # CONFIG_SSB is not set |
692 | 717 | ||
693 | # | 718 | # |
694 | # Multifunction device drivers | 719 | # Multifunction device drivers |
695 | # | 720 | # |
721 | # CONFIG_MFD_CORE is not set | ||
696 | # CONFIG_MFD_SM501 is not set | 722 | # CONFIG_MFD_SM501 is not set |
697 | # CONFIG_HTC_PASIC3 is not set | 723 | # CONFIG_HTC_PASIC3 is not set |
724 | # CONFIG_MFD_TMIO is not set | ||
725 | # CONFIG_PMIC_DA903X is not set | ||
726 | # CONFIG_MFD_WM8400 is not set | ||
727 | # CONFIG_MFD_WM8350_I2C is not set | ||
728 | # CONFIG_REGULATOR is not set | ||
698 | 729 | ||
699 | # | 730 | # |
700 | # Multimedia devices | 731 | # Multimedia devices |
701 | # | 732 | # |
733 | |||
734 | # | ||
735 | # Multimedia core support | ||
736 | # | ||
702 | # CONFIG_VIDEO_DEV is not set | 737 | # CONFIG_VIDEO_DEV is not set |
703 | # CONFIG_DVB_CORE is not set | 738 | # CONFIG_DVB_CORE is not set |
739 | # CONFIG_VIDEO_MEDIA is not set | ||
740 | |||
741 | # | ||
742 | # Multimedia drivers | ||
743 | # | ||
704 | CONFIG_DAB=y | 744 | CONFIG_DAB=y |
705 | 745 | ||
706 | # | 746 | # |
@@ -715,10 +755,6 @@ CONFIG_DAB=y | |||
715 | # Display device support | 755 | # Display device support |
716 | # | 756 | # |
717 | # CONFIG_DISPLAY_SUPPORT is not set | 757 | # CONFIG_DISPLAY_SUPPORT is not set |
718 | |||
719 | # | ||
720 | # Sound | ||
721 | # | ||
722 | # CONFIG_SOUND is not set | 758 | # CONFIG_SOUND is not set |
723 | # CONFIG_USB_SUPPORT is not set | 759 | # CONFIG_USB_SUPPORT is not set |
724 | # CONFIG_MMC is not set | 760 | # CONFIG_MMC is not set |
@@ -729,6 +765,7 @@ CONFIG_LEDS_CLASS=y | |||
729 | # | 765 | # |
730 | # LED drivers | 766 | # LED drivers |
731 | # | 767 | # |
768 | # CONFIG_LEDS_PCA955X is not set | ||
732 | 769 | ||
733 | # | 770 | # |
734 | # LED Triggers | 771 | # LED Triggers |
@@ -736,7 +773,9 @@ CONFIG_LEDS_CLASS=y | |||
736 | CONFIG_LEDS_TRIGGERS=y | 773 | CONFIG_LEDS_TRIGGERS=y |
737 | CONFIG_LEDS_TRIGGER_TIMER=y | 774 | CONFIG_LEDS_TRIGGER_TIMER=y |
738 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set | 775 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set |
776 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set | ||
739 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set | 777 | # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set |
778 | # CONFIG_ACCESSIBILITY is not set | ||
740 | # CONFIG_EDAC is not set | 779 | # CONFIG_EDAC is not set |
741 | CONFIG_RTC_LIB=y | 780 | CONFIG_RTC_LIB=y |
742 | CONFIG_RTC_CLASS=y | 781 | CONFIG_RTC_CLASS=y |
@@ -767,6 +806,8 @@ CONFIG_RTC_DRV_DS1307=y | |||
767 | # CONFIG_RTC_DRV_PCF8583 is not set | 806 | # CONFIG_RTC_DRV_PCF8583 is not set |
768 | # CONFIG_RTC_DRV_M41T80 is not set | 807 | # CONFIG_RTC_DRV_M41T80 is not set |
769 | # CONFIG_RTC_DRV_S35390A is not set | 808 | # CONFIG_RTC_DRV_S35390A is not set |
809 | # CONFIG_RTC_DRV_FM3130 is not set | ||
810 | # CONFIG_RTC_DRV_RX8581 is not set | ||
770 | 811 | ||
771 | # | 812 | # |
772 | # SPI RTC drivers | 813 | # SPI RTC drivers |
@@ -776,19 +817,25 @@ CONFIG_RTC_DRV_DS1307=y | |||
776 | # Platform RTC drivers | 817 | # Platform RTC drivers |
777 | # | 818 | # |
778 | # CONFIG_RTC_DRV_CMOS is not set | 819 | # CONFIG_RTC_DRV_CMOS is not set |
820 | # CONFIG_RTC_DRV_DS1286 is not set | ||
779 | # CONFIG_RTC_DRV_DS1511 is not set | 821 | # CONFIG_RTC_DRV_DS1511 is not set |
780 | # CONFIG_RTC_DRV_DS1553 is not set | 822 | # CONFIG_RTC_DRV_DS1553 is not set |
781 | # CONFIG_RTC_DRV_DS1742 is not set | 823 | # CONFIG_RTC_DRV_DS1742 is not set |
782 | # CONFIG_RTC_DRV_STK17TA8 is not set | 824 | # CONFIG_RTC_DRV_STK17TA8 is not set |
783 | # CONFIG_RTC_DRV_M48T86 is not set | 825 | # CONFIG_RTC_DRV_M48T86 is not set |
826 | # CONFIG_RTC_DRV_M48T35 is not set | ||
784 | # CONFIG_RTC_DRV_M48T59 is not set | 827 | # CONFIG_RTC_DRV_M48T59 is not set |
828 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
785 | # CONFIG_RTC_DRV_V3020 is not set | 829 | # CONFIG_RTC_DRV_V3020 is not set |
786 | 830 | ||
787 | # | 831 | # |
788 | # on-CPU RTC drivers | 832 | # on-CPU RTC drivers |
789 | # | 833 | # |
834 | # CONFIG_RTC_DRV_PPC is not set | ||
790 | # CONFIG_DMADEVICES is not set | 835 | # CONFIG_DMADEVICES is not set |
791 | # CONFIG_UIO is not set | 836 | # CONFIG_UIO is not set |
837 | # CONFIG_STAGING is not set | ||
838 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
792 | 839 | ||
793 | # | 840 | # |
794 | # File systems | 841 | # File systems |
@@ -800,12 +847,13 @@ CONFIG_EXT3_FS=y | |||
800 | CONFIG_EXT3_FS_XATTR=y | 847 | CONFIG_EXT3_FS_XATTR=y |
801 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 848 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
802 | # CONFIG_EXT3_FS_SECURITY is not set | 849 | # CONFIG_EXT3_FS_SECURITY is not set |
803 | # CONFIG_EXT4DEV_FS is not set | 850 | # CONFIG_EXT4_FS is not set |
804 | CONFIG_JBD=y | 851 | CONFIG_JBD=y |
805 | CONFIG_FS_MBCACHE=y | 852 | CONFIG_FS_MBCACHE=y |
806 | # CONFIG_REISERFS_FS is not set | 853 | # CONFIG_REISERFS_FS is not set |
807 | # CONFIG_JFS_FS is not set | 854 | # CONFIG_JFS_FS is not set |
808 | # CONFIG_FS_POSIX_ACL is not set | 855 | # CONFIG_FS_POSIX_ACL is not set |
856 | CONFIG_FILE_LOCKING=y | ||
809 | # CONFIG_XFS_FS is not set | 857 | # CONFIG_XFS_FS is not set |
810 | # CONFIG_OCFS2_FS is not set | 858 | # CONFIG_OCFS2_FS is not set |
811 | CONFIG_DNOTIFY=y | 859 | CONFIG_DNOTIFY=y |
@@ -838,6 +886,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
838 | CONFIG_PROC_FS=y | 886 | CONFIG_PROC_FS=y |
839 | CONFIG_PROC_KCORE=y | 887 | CONFIG_PROC_KCORE=y |
840 | CONFIG_PROC_SYSCTL=y | 888 | CONFIG_PROC_SYSCTL=y |
889 | CONFIG_PROC_PAGE_MONITOR=y | ||
841 | CONFIG_SYSFS=y | 890 | CONFIG_SYSFS=y |
842 | CONFIG_TMPFS=y | 891 | CONFIG_TMPFS=y |
843 | # CONFIG_TMPFS_POSIX_ACL is not set | 892 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -868,6 +917,7 @@ CONFIG_JFFS2_RTIME=y | |||
868 | CONFIG_CRAMFS=y | 917 | CONFIG_CRAMFS=y |
869 | # CONFIG_VXFS_FS is not set | 918 | # CONFIG_VXFS_FS is not set |
870 | # CONFIG_MINIX_FS is not set | 919 | # CONFIG_MINIX_FS is not set |
920 | # CONFIG_OMFS_FS is not set | ||
871 | # CONFIG_HPFS_FS is not set | 921 | # CONFIG_HPFS_FS is not set |
872 | # CONFIG_QNX4FS_FS is not set | 922 | # CONFIG_QNX4FS_FS is not set |
873 | # CONFIG_ROMFS_FS is not set | 923 | # CONFIG_ROMFS_FS is not set |
@@ -878,14 +928,14 @@ CONFIG_NFS_FS=y | |||
878 | CONFIG_NFS_V3=y | 928 | CONFIG_NFS_V3=y |
879 | # CONFIG_NFS_V3_ACL is not set | 929 | # CONFIG_NFS_V3_ACL is not set |
880 | CONFIG_NFS_V4=y | 930 | CONFIG_NFS_V4=y |
881 | # CONFIG_NFSD is not set | ||
882 | CONFIG_ROOT_NFS=y | 931 | CONFIG_ROOT_NFS=y |
932 | # CONFIG_NFSD is not set | ||
883 | CONFIG_LOCKD=y | 933 | CONFIG_LOCKD=y |
884 | CONFIG_LOCKD_V4=y | 934 | CONFIG_LOCKD_V4=y |
885 | CONFIG_NFS_COMMON=y | 935 | CONFIG_NFS_COMMON=y |
886 | CONFIG_SUNRPC=y | 936 | CONFIG_SUNRPC=y |
887 | CONFIG_SUNRPC_GSS=y | 937 | CONFIG_SUNRPC_GSS=y |
888 | # CONFIG_SUNRPC_BIND34 is not set | 938 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
889 | CONFIG_RPCSEC_GSS_KRB5=y | 939 | CONFIG_RPCSEC_GSS_KRB5=y |
890 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 940 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
891 | # CONFIG_SMB_FS is not set | 941 | # CONFIG_SMB_FS is not set |
@@ -961,9 +1011,9 @@ CONFIG_NLS_ISO8859_1=y | |||
961 | # Library routines | 1011 | # Library routines |
962 | # | 1012 | # |
963 | CONFIG_BITREVERSE=y | 1013 | CONFIG_BITREVERSE=y |
964 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
965 | # CONFIG_CRC_CCITT is not set | 1014 | # CONFIG_CRC_CCITT is not set |
966 | # CONFIG_CRC16 is not set | 1015 | # CONFIG_CRC16 is not set |
1016 | # CONFIG_CRC_T10DIF is not set | ||
967 | # CONFIG_CRC_ITU_T is not set | 1017 | # CONFIG_CRC_ITU_T is not set |
968 | CONFIG_CRC32=y | 1018 | CONFIG_CRC32=y |
969 | # CONFIG_CRC7 is not set | 1019 | # CONFIG_CRC7 is not set |
@@ -990,9 +1040,12 @@ CONFIG_FRAME_WARN=1024 | |||
990 | CONFIG_DEBUG_KERNEL=y | 1040 | CONFIG_DEBUG_KERNEL=y |
991 | # CONFIG_DEBUG_SHIRQ is not set | 1041 | # CONFIG_DEBUG_SHIRQ is not set |
992 | CONFIG_DETECT_SOFTLOCKUP=y | 1042 | CONFIG_DETECT_SOFTLOCKUP=y |
1043 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1044 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
993 | CONFIG_SCHED_DEBUG=y | 1045 | CONFIG_SCHED_DEBUG=y |
994 | # CONFIG_SCHEDSTATS is not set | 1046 | # CONFIG_SCHEDSTATS is not set |
995 | # CONFIG_TIMER_STATS is not set | 1047 | # CONFIG_TIMER_STATS is not set |
1048 | # CONFIG_DEBUG_OBJECTS is not set | ||
996 | # CONFIG_SLUB_DEBUG_ON is not set | 1049 | # CONFIG_SLUB_DEBUG_ON is not set |
997 | # CONFIG_SLUB_STATS is not set | 1050 | # CONFIG_SLUB_STATS is not set |
998 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1051 | # CONFIG_DEBUG_RT_MUTEXES is not set |
@@ -1006,16 +1059,37 @@ CONFIG_SCHED_DEBUG=y | |||
1006 | CONFIG_DEBUG_INFO=y | 1059 | CONFIG_DEBUG_INFO=y |
1007 | # CONFIG_DEBUG_VM is not set | 1060 | # CONFIG_DEBUG_VM is not set |
1008 | # CONFIG_DEBUG_WRITECOUNT is not set | 1061 | # CONFIG_DEBUG_WRITECOUNT is not set |
1062 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1009 | # CONFIG_DEBUG_LIST is not set | 1063 | # CONFIG_DEBUG_LIST is not set |
1010 | # CONFIG_DEBUG_SG is not set | 1064 | # CONFIG_DEBUG_SG is not set |
1011 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1065 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1066 | # CONFIG_RCU_TORTURE_TEST is not set | ||
1067 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1012 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1068 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1069 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1013 | # CONFIG_FAULT_INJECTION is not set | 1070 | # CONFIG_FAULT_INJECTION is not set |
1071 | # CONFIG_LATENCYTOP is not set | ||
1072 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1073 | |||
1074 | # | ||
1075 | # Tracers | ||
1076 | # | ||
1077 | # CONFIG_FUNCTION_TRACER is not set | ||
1078 | # CONFIG_SCHED_TRACER is not set | ||
1079 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1080 | # CONFIG_BOOT_TRACER is not set | ||
1081 | # CONFIG_STACK_TRACER is not set | ||
1082 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1014 | # CONFIG_SAMPLES is not set | 1083 | # CONFIG_SAMPLES is not set |
1084 | CONFIG_HAVE_ARCH_KGDB=y | ||
1085 | # CONFIG_KGDB is not set | ||
1015 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1086 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1016 | # CONFIG_DEBUG_STACK_USAGE is not set | 1087 | # CONFIG_DEBUG_STACK_USAGE is not set |
1017 | # CONFIG_DEBUG_PAGEALLOC is not set | 1088 | # CONFIG_DEBUG_PAGEALLOC is not set |
1018 | # CONFIG_DEBUGGER is not set | 1089 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1090 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
1091 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
1092 | # CONFIG_XMON is not set | ||
1019 | # CONFIG_IRQSTACKS is not set | 1093 | # CONFIG_IRQSTACKS is not set |
1020 | # CONFIG_BDI_SWITCH is not set | 1094 | # CONFIG_BDI_SWITCH is not set |
1021 | # CONFIG_BOOTX_TEXT is not set | 1095 | # CONFIG_BOOTX_TEXT is not set |
@@ -1026,14 +1100,19 @@ CONFIG_DEBUG_INFO=y | |||
1026 | # | 1100 | # |
1027 | # CONFIG_KEYS is not set | 1101 | # CONFIG_KEYS is not set |
1028 | # CONFIG_SECURITY is not set | 1102 | # CONFIG_SECURITY is not set |
1103 | # CONFIG_SECURITYFS is not set | ||
1029 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1104 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1030 | CONFIG_CRYPTO=y | 1105 | CONFIG_CRYPTO=y |
1031 | 1106 | ||
1032 | # | 1107 | # |
1033 | # Crypto core or helper | 1108 | # Crypto core or helper |
1034 | # | 1109 | # |
1110 | # CONFIG_CRYPTO_FIPS is not set | ||
1035 | CONFIG_CRYPTO_ALGAPI=y | 1111 | CONFIG_CRYPTO_ALGAPI=y |
1112 | CONFIG_CRYPTO_AEAD=y | ||
1036 | CONFIG_CRYPTO_BLKCIPHER=y | 1113 | CONFIG_CRYPTO_BLKCIPHER=y |
1114 | CONFIG_CRYPTO_HASH=y | ||
1115 | CONFIG_CRYPTO_RNG=y | ||
1037 | CONFIG_CRYPTO_MANAGER=y | 1116 | CONFIG_CRYPTO_MANAGER=y |
1038 | # CONFIG_CRYPTO_GF128MUL is not set | 1117 | # CONFIG_CRYPTO_GF128MUL is not set |
1039 | # CONFIG_CRYPTO_NULL is not set | 1118 | # CONFIG_CRYPTO_NULL is not set |
@@ -1071,6 +1150,10 @@ CONFIG_CRYPTO_PCBC=y | |||
1071 | # CONFIG_CRYPTO_MD4 is not set | 1150 | # CONFIG_CRYPTO_MD4 is not set |
1072 | CONFIG_CRYPTO_MD5=y | 1151 | CONFIG_CRYPTO_MD5=y |
1073 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1152 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1153 | # CONFIG_CRYPTO_RMD128 is not set | ||
1154 | # CONFIG_CRYPTO_RMD160 is not set | ||
1155 | # CONFIG_CRYPTO_RMD256 is not set | ||
1156 | # CONFIG_CRYPTO_RMD320 is not set | ||
1074 | # CONFIG_CRYPTO_SHA1 is not set | 1157 | # CONFIG_CRYPTO_SHA1 is not set |
1075 | # CONFIG_CRYPTO_SHA256 is not set | 1158 | # CONFIG_CRYPTO_SHA256 is not set |
1076 | # CONFIG_CRYPTO_SHA512 is not set | 1159 | # CONFIG_CRYPTO_SHA512 is not set |
@@ -1101,6 +1184,11 @@ CONFIG_CRYPTO_DES=y | |||
1101 | # | 1184 | # |
1102 | # CONFIG_CRYPTO_DEFLATE is not set | 1185 | # CONFIG_CRYPTO_DEFLATE is not set |
1103 | # CONFIG_CRYPTO_LZO is not set | 1186 | # CONFIG_CRYPTO_LZO is not set |
1187 | |||
1188 | # | ||
1189 | # Random Number Generation | ||
1190 | # | ||
1191 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1104 | CONFIG_CRYPTO_HW=y | 1192 | CONFIG_CRYPTO_HW=y |
1105 | CONFIG_PPC_CLOCK=y | 1193 | CONFIG_PPC_CLOCK=y |
1106 | CONFIG_PPC_LIB_RHEAP=y | 1194 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/52xx/pcm030_defconfig b/arch/powerpc/configs/52xx/pcm030_defconfig index 9c0caa488b2e..9d0207783d60 100644 --- a/arch/powerpc/configs/52xx/pcm030_defconfig +++ b/arch/powerpc/configs/52xx/pcm030_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.25 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Apr 29 07:13:19 2008 | 4 | # Thu Nov 13 02:13:16 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y | |||
22 | # CONFIG_SMP is not set | 22 | # CONFIG_SMP is not set |
23 | CONFIG_PPC32=y | 23 | CONFIG_PPC32=y |
24 | CONFIG_WORD_SIZE=32 | 24 | CONFIG_WORD_SIZE=32 |
25 | CONFIG_PPC_MERGE=y | 25 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set |
26 | CONFIG_MMU=y | 26 | CONFIG_MMU=y |
27 | CONFIG_GENERIC_CMOS_UPDATE=y | 27 | CONFIG_GENERIC_CMOS_UPDATE=y |
28 | CONFIG_GENERIC_TIME=y | 28 | CONFIG_GENERIC_TIME=y |
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
34 | CONFIG_STACKTRACE_SUPPORT=y | 34 | CONFIG_STACKTRACE_SUPPORT=y |
35 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | 36 | CONFIG_LOCKDEP_SUPPORT=y |
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | 38 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -104,7 +105,9 @@ CONFIG_SIGNALFD=y | |||
104 | CONFIG_TIMERFD=y | 105 | CONFIG_TIMERFD=y |
105 | CONFIG_EVENTFD=y | 106 | CONFIG_EVENTFD=y |
106 | CONFIG_SHMEM=y | 107 | CONFIG_SHMEM=y |
108 | CONFIG_AIO=y | ||
107 | # CONFIG_VM_EVENT_COUNTERS is not set | 109 | # CONFIG_VM_EVENT_COUNTERS is not set |
110 | CONFIG_PCI_QUIRKS=y | ||
108 | CONFIG_SLAB=y | 111 | CONFIG_SLAB=y |
109 | # CONFIG_SLUB is not set | 112 | # CONFIG_SLUB is not set |
110 | # CONFIG_SLOB is not set | 113 | # CONFIG_SLOB is not set |
@@ -112,24 +115,30 @@ CONFIG_SLAB=y | |||
112 | # CONFIG_MARKERS is not set | 115 | # CONFIG_MARKERS is not set |
113 | CONFIG_HAVE_OPROFILE=y | 116 | CONFIG_HAVE_OPROFILE=y |
114 | # CONFIG_KPROBES is not set | 117 | # CONFIG_KPROBES is not set |
118 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
119 | CONFIG_HAVE_IOREMAP_PROT=y | ||
115 | CONFIG_HAVE_KPROBES=y | 120 | CONFIG_HAVE_KPROBES=y |
116 | CONFIG_HAVE_KRETPROBES=y | 121 | CONFIG_HAVE_KRETPROBES=y |
117 | CONFIG_PROC_PAGE_MONITOR=y | 122 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
123 | CONFIG_HAVE_CLK=y | ||
124 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
118 | CONFIG_SLABINFO=y | 125 | CONFIG_SLABINFO=y |
119 | CONFIG_RT_MUTEXES=y | 126 | CONFIG_RT_MUTEXES=y |
120 | # CONFIG_TINY_SHMEM is not set | 127 | # CONFIG_TINY_SHMEM is not set |
121 | CONFIG_BASE_SMALL=0 | 128 | CONFIG_BASE_SMALL=0 |
122 | CONFIG_MODULES=y | 129 | CONFIG_MODULES=y |
130 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
123 | CONFIG_MODULE_UNLOAD=y | 131 | CONFIG_MODULE_UNLOAD=y |
124 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 132 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
125 | # CONFIG_MODVERSIONS is not set | 133 | # CONFIG_MODVERSIONS is not set |
126 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 134 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
127 | # CONFIG_KMOD is not set | 135 | CONFIG_KMOD=y |
128 | CONFIG_BLOCK=y | 136 | CONFIG_BLOCK=y |
129 | # CONFIG_LBD is not set | 137 | # CONFIG_LBD is not set |
130 | # CONFIG_BLK_DEV_IO_TRACE is not set | 138 | # CONFIG_BLK_DEV_IO_TRACE is not set |
131 | # CONFIG_LSF is not set | 139 | # CONFIG_LSF is not set |
132 | # CONFIG_BLK_DEV_BSG is not set | 140 | # CONFIG_BLK_DEV_BSG is not set |
141 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
133 | 142 | ||
134 | # | 143 | # |
135 | # IO Schedulers | 144 | # IO Schedulers |
@@ -144,19 +153,16 @@ CONFIG_IOSCHED_NOOP=y | |||
144 | CONFIG_DEFAULT_NOOP=y | 153 | CONFIG_DEFAULT_NOOP=y |
145 | CONFIG_DEFAULT_IOSCHED="noop" | 154 | CONFIG_DEFAULT_IOSCHED="noop" |
146 | CONFIG_CLASSIC_RCU=y | 155 | CONFIG_CLASSIC_RCU=y |
156 | # CONFIG_FREEZER is not set | ||
147 | 157 | ||
148 | # | 158 | # |
149 | # Platform support | 159 | # Platform support |
150 | # | 160 | # |
151 | CONFIG_PPC_MULTIPLATFORM=y | 161 | CONFIG_PPC_MULTIPLATFORM=y |
152 | # CONFIG_PPC_82xx is not set | ||
153 | # CONFIG_PPC_83xx is not set | ||
154 | # CONFIG_PPC_86xx is not set | ||
155 | CONFIG_CLASSIC32=y | 162 | CONFIG_CLASSIC32=y |
156 | # CONFIG_PPC_CHRP is not set | 163 | # CONFIG_PPC_CHRP is not set |
157 | # CONFIG_PPC_MPC512x is not set | ||
158 | # CONFIG_PPC_MPC5121 is not set | ||
159 | # CONFIG_MPC5121_ADS is not set | 164 | # CONFIG_MPC5121_ADS is not set |
165 | # CONFIG_MPC5121_GENERIC is not set | ||
160 | CONFIG_PPC_MPC52xx=y | 166 | CONFIG_PPC_MPC52xx=y |
161 | CONFIG_PPC_MPC5200_SIMPLE=y | 167 | CONFIG_PPC_MPC5200_SIMPLE=y |
162 | # CONFIG_PPC_EFIKA is not set | 168 | # CONFIG_PPC_EFIKA is not set |
@@ -166,7 +172,10 @@ CONFIG_PPC_MPC5200_SIMPLE=y | |||
166 | # CONFIG_PPC_PMAC is not set | 172 | # CONFIG_PPC_PMAC is not set |
167 | # CONFIG_PPC_CELL is not set | 173 | # CONFIG_PPC_CELL is not set |
168 | # CONFIG_PPC_CELL_NATIVE is not set | 174 | # CONFIG_PPC_CELL_NATIVE is not set |
175 | # CONFIG_PPC_82xx is not set | ||
169 | # CONFIG_PQ2ADS is not set | 176 | # CONFIG_PQ2ADS is not set |
177 | # CONFIG_PPC_83xx is not set | ||
178 | # CONFIG_PPC_86xx is not set | ||
170 | # CONFIG_EMBEDDED6xx is not set | 179 | # CONFIG_EMBEDDED6xx is not set |
171 | # CONFIG_IPIC is not set | 180 | # CONFIG_IPIC is not set |
172 | # CONFIG_MPIC is not set | 181 | # CONFIG_MPIC is not set |
@@ -199,12 +208,14 @@ CONFIG_HZ_100=y | |||
199 | # CONFIG_HZ_300 is not set | 208 | # CONFIG_HZ_300 is not set |
200 | # CONFIG_HZ_1000 is not set | 209 | # CONFIG_HZ_1000 is not set |
201 | CONFIG_HZ=100 | 210 | CONFIG_HZ=100 |
202 | # CONFIG_SCHED_HRTICK is not set | 211 | CONFIG_SCHED_HRTICK=y |
203 | # CONFIG_PREEMPT_NONE is not set | 212 | # CONFIG_PREEMPT_NONE is not set |
204 | # CONFIG_PREEMPT_VOLUNTARY is not set | 213 | # CONFIG_PREEMPT_VOLUNTARY is not set |
205 | CONFIG_PREEMPT=y | 214 | CONFIG_PREEMPT=y |
206 | # CONFIG_PREEMPT_RCU is not set | 215 | # CONFIG_PREEMPT_RCU is not set |
207 | CONFIG_BINFMT_ELF=y | 216 | CONFIG_BINFMT_ELF=y |
217 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
218 | # CONFIG_HAVE_AOUT is not set | ||
208 | # CONFIG_BINFMT_MISC is not set | 219 | # CONFIG_BINFMT_MISC is not set |
209 | # CONFIG_IOMMU_HELPER is not set | 220 | # CONFIG_IOMMU_HELPER is not set |
210 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 221 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
@@ -219,17 +230,19 @@ CONFIG_FLATMEM_MANUAL=y | |||
219 | # CONFIG_SPARSEMEM_MANUAL is not set | 230 | # CONFIG_SPARSEMEM_MANUAL is not set |
220 | CONFIG_FLATMEM=y | 231 | CONFIG_FLATMEM=y |
221 | CONFIG_FLAT_NODE_MEM_MAP=y | 232 | CONFIG_FLAT_NODE_MEM_MAP=y |
222 | # CONFIG_SPARSEMEM_STATIC is not set | ||
223 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
224 | CONFIG_PAGEFLAGS_EXTENDED=y | 233 | CONFIG_PAGEFLAGS_EXTENDED=y |
225 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 234 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
235 | CONFIG_MIGRATION=y | ||
226 | # CONFIG_RESOURCES_64BIT is not set | 236 | # CONFIG_RESOURCES_64BIT is not set |
237 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
227 | CONFIG_ZONE_DMA_FLAG=1 | 238 | CONFIG_ZONE_DMA_FLAG=1 |
228 | CONFIG_BOUNCE=y | 239 | CONFIG_BOUNCE=y |
229 | CONFIG_VIRT_TO_BUS=y | 240 | CONFIG_VIRT_TO_BUS=y |
241 | CONFIG_UNEVICTABLE_LRU=y | ||
230 | CONFIG_FORCE_MAX_ZONEORDER=11 | 242 | CONFIG_FORCE_MAX_ZONEORDER=11 |
231 | CONFIG_PROC_DEVICETREE=y | 243 | CONFIG_PROC_DEVICETREE=y |
232 | # CONFIG_CMDLINE_BOOL is not set | 244 | # CONFIG_CMDLINE_BOOL is not set |
245 | CONFIG_EXTRA_TARGETS="" | ||
233 | # CONFIG_PM is not set | 246 | # CONFIG_PM is not set |
234 | # CONFIG_SECCOMP is not set | 247 | # CONFIG_SECCOMP is not set |
235 | CONFIG_ISA_DMA_API=y | 248 | CONFIG_ISA_DMA_API=y |
@@ -240,7 +253,7 @@ CONFIG_ISA_DMA_API=y | |||
240 | CONFIG_ZONE_DMA=y | 253 | CONFIG_ZONE_DMA=y |
241 | CONFIG_GENERIC_ISA_DMA=y | 254 | CONFIG_GENERIC_ISA_DMA=y |
242 | # CONFIG_PPC_INDIRECT_PCI is not set | 255 | # CONFIG_PPC_INDIRECT_PCI is not set |
243 | CONFIG_FSL_SOC=y | 256 | CONFIG_PPC_PCI_CHOICE=y |
244 | CONFIG_PCI=y | 257 | CONFIG_PCI=y |
245 | CONFIG_PCI_DOMAINS=y | 258 | CONFIG_PCI_DOMAINS=y |
246 | CONFIG_PCI_SYSCALL=y | 259 | CONFIG_PCI_SYSCALL=y |
@@ -265,10 +278,6 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
265 | CONFIG_KERNEL_START=0xc0000000 | 278 | CONFIG_KERNEL_START=0xc0000000 |
266 | CONFIG_PHYSICAL_START=0x00000000 | 279 | CONFIG_PHYSICAL_START=0x00000000 |
267 | CONFIG_TASK_SIZE=0xc0000000 | 280 | CONFIG_TASK_SIZE=0xc0000000 |
268 | |||
269 | # | ||
270 | # Networking | ||
271 | # | ||
272 | CONFIG_NET=y | 281 | CONFIG_NET=y |
273 | 282 | ||
274 | # | 283 | # |
@@ -313,6 +322,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
313 | # CONFIG_TIPC is not set | 322 | # CONFIG_TIPC is not set |
314 | # CONFIG_ATM is not set | 323 | # CONFIG_ATM is not set |
315 | # CONFIG_BRIDGE is not set | 324 | # CONFIG_BRIDGE is not set |
325 | # CONFIG_NET_DSA is not set | ||
316 | # CONFIG_VLAN_8021Q is not set | 326 | # CONFIG_VLAN_8021Q is not set |
317 | # CONFIG_DECNET is not set | 327 | # CONFIG_DECNET is not set |
318 | # CONFIG_LLC2 is not set | 328 | # CONFIG_LLC2 is not set |
@@ -333,14 +343,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
333 | # CONFIG_IRDA is not set | 343 | # CONFIG_IRDA is not set |
334 | # CONFIG_BT is not set | 344 | # CONFIG_BT is not set |
335 | # CONFIG_AF_RXRPC is not set | 345 | # CONFIG_AF_RXRPC is not set |
336 | 346 | # CONFIG_PHONET is not set | |
337 | # | 347 | # CONFIG_WIRELESS is not set |
338 | # Wireless | ||
339 | # | ||
340 | # CONFIG_CFG80211 is not set | ||
341 | # CONFIG_WIRELESS_EXT is not set | ||
342 | # CONFIG_MAC80211 is not set | ||
343 | # CONFIG_IEEE80211 is not set | ||
344 | # CONFIG_RFKILL is not set | 348 | # CONFIG_RFKILL is not set |
345 | # CONFIG_NET_9P is not set | 349 | # CONFIG_NET_9P is not set |
346 | 350 | ||
@@ -484,12 +488,12 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
484 | # CONFIG_SCSI_SAS_LIBSAS is not set | 488 | # CONFIG_SCSI_SAS_LIBSAS is not set |
485 | # CONFIG_SCSI_SRP_ATTRS is not set | 489 | # CONFIG_SCSI_SRP_ATTRS is not set |
486 | # CONFIG_SCSI_LOWLEVEL is not set | 490 | # CONFIG_SCSI_LOWLEVEL is not set |
491 | # CONFIG_SCSI_DH is not set | ||
487 | CONFIG_ATA=m | 492 | CONFIG_ATA=m |
488 | # CONFIG_ATA_NONSTANDARD is not set | 493 | # CONFIG_ATA_NONSTANDARD is not set |
489 | CONFIG_SATA_PMP=y | 494 | CONFIG_SATA_PMP=y |
490 | # CONFIG_SATA_AHCI is not set | 495 | # CONFIG_SATA_AHCI is not set |
491 | # CONFIG_SATA_SIL24 is not set | 496 | # CONFIG_SATA_SIL24 is not set |
492 | # CONFIG_SATA_FSL is not set | ||
493 | CONFIG_ATA_SFF=y | 497 | CONFIG_ATA_SFF=y |
494 | # CONFIG_SATA_SVW is not set | 498 | # CONFIG_SATA_SVW is not set |
495 | # CONFIG_ATA_PIIX is not set | 499 | # CONFIG_ATA_PIIX is not set |
@@ -545,18 +549,22 @@ CONFIG_PATA_MPC52xx=m | |||
545 | # CONFIG_PATA_VIA is not set | 549 | # CONFIG_PATA_VIA is not set |
546 | # CONFIG_PATA_WINBOND is not set | 550 | # CONFIG_PATA_WINBOND is not set |
547 | # CONFIG_PATA_PLATFORM is not set | 551 | # CONFIG_PATA_PLATFORM is not set |
552 | # CONFIG_PATA_SCH is not set | ||
548 | # CONFIG_MD is not set | 553 | # CONFIG_MD is not set |
549 | # CONFIG_FUSION is not set | 554 | # CONFIG_FUSION is not set |
550 | 555 | ||
551 | # | 556 | # |
552 | # IEEE 1394 (FireWire) support | 557 | # IEEE 1394 (FireWire) support |
553 | # | 558 | # |
559 | |||
560 | # | ||
561 | # Enable only one of the two stacks, unless you know what you are doing | ||
562 | # | ||
554 | # CONFIG_FIREWIRE is not set | 563 | # CONFIG_FIREWIRE is not set |
555 | # CONFIG_IEEE1394 is not set | 564 | # CONFIG_IEEE1394 is not set |
556 | # CONFIG_I2O is not set | 565 | # CONFIG_I2O is not set |
557 | # CONFIG_MACINTOSH_DRIVERS is not set | 566 | # CONFIG_MACINTOSH_DRIVERS is not set |
558 | CONFIG_NETDEVICES=y | 567 | CONFIG_NETDEVICES=y |
559 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
560 | # CONFIG_DUMMY is not set | 568 | # CONFIG_DUMMY is not set |
561 | # CONFIG_BONDING is not set | 569 | # CONFIG_BONDING is not set |
562 | # CONFIG_MACVLAN is not set | 570 | # CONFIG_MACVLAN is not set |
@@ -593,10 +601,14 @@ CONFIG_MII=y | |||
593 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 601 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
594 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 602 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
595 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 603 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
604 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
605 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
606 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
596 | # CONFIG_NET_PCI is not set | 607 | # CONFIG_NET_PCI is not set |
597 | # CONFIG_B44 is not set | 608 | # CONFIG_B44 is not set |
598 | CONFIG_FEC_MPC52xx=y | 609 | CONFIG_FEC_MPC52xx=y |
599 | CONFIG_FEC_MPC52xx_MDIO=y | 610 | CONFIG_FEC_MPC52xx_MDIO=y |
611 | # CONFIG_ATL2 is not set | ||
600 | # CONFIG_NETDEV_1000 is not set | 612 | # CONFIG_NETDEV_1000 is not set |
601 | # CONFIG_NETDEV_10000 is not set | 613 | # CONFIG_NETDEV_10000 is not set |
602 | # CONFIG_TR is not set | 614 | # CONFIG_TR is not set |
@@ -606,7 +618,6 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
606 | # | 618 | # |
607 | # CONFIG_WLAN_PRE80211 is not set | 619 | # CONFIG_WLAN_PRE80211 is not set |
608 | # CONFIG_WLAN_80211 is not set | 620 | # CONFIG_WLAN_80211 is not set |
609 | # CONFIG_IWLWIFI is not set | ||
610 | # CONFIG_IWLWIFI_LEDS is not set | 621 | # CONFIG_IWLWIFI_LEDS is not set |
611 | 622 | ||
612 | # | 623 | # |
@@ -644,6 +655,7 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
644 | # Character devices | 655 | # Character devices |
645 | # | 656 | # |
646 | # CONFIG_VT is not set | 657 | # CONFIG_VT is not set |
658 | CONFIG_DEVKMEM=y | ||
647 | # CONFIG_SERIAL_NONSTANDARD is not set | 659 | # CONFIG_SERIAL_NONSTANDARD is not set |
648 | # CONFIG_NOZOMI is not set | 660 | # CONFIG_NOZOMI is not set |
649 | 661 | ||
@@ -675,43 +687,64 @@ CONFIG_DEVPORT=y | |||
675 | CONFIG_I2C=y | 687 | CONFIG_I2C=y |
676 | CONFIG_I2C_BOARDINFO=y | 688 | CONFIG_I2C_BOARDINFO=y |
677 | CONFIG_I2C_CHARDEV=y | 689 | CONFIG_I2C_CHARDEV=y |
690 | CONFIG_I2C_HELPER_AUTO=y | ||
678 | 691 | ||
679 | # | 692 | # |
680 | # I2C Hardware Bus support | 693 | # I2C Hardware Bus support |
681 | # | 694 | # |
695 | |||
696 | # | ||
697 | # PC SMBus host controller drivers | ||
698 | # | ||
682 | # CONFIG_I2C_ALI1535 is not set | 699 | # CONFIG_I2C_ALI1535 is not set |
683 | # CONFIG_I2C_ALI1563 is not set | 700 | # CONFIG_I2C_ALI1563 is not set |
684 | # CONFIG_I2C_ALI15X3 is not set | 701 | # CONFIG_I2C_ALI15X3 is not set |
685 | # CONFIG_I2C_AMD756 is not set | 702 | # CONFIG_I2C_AMD756 is not set |
686 | # CONFIG_I2C_AMD8111 is not set | 703 | # CONFIG_I2C_AMD8111 is not set |
687 | # CONFIG_I2C_I801 is not set | 704 | # CONFIG_I2C_I801 is not set |
688 | # CONFIG_I2C_I810 is not set | 705 | # CONFIG_I2C_ISCH is not set |
689 | # CONFIG_I2C_PIIX4 is not set | 706 | # CONFIG_I2C_PIIX4 is not set |
690 | CONFIG_I2C_MPC=y | ||
691 | # CONFIG_I2C_NFORCE2 is not set | 707 | # CONFIG_I2C_NFORCE2 is not set |
692 | # CONFIG_I2C_OCORES is not set | ||
693 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
694 | # CONFIG_I2C_PROSAVAGE is not set | ||
695 | # CONFIG_I2C_SAVAGE4 is not set | ||
696 | # CONFIG_I2C_SIMTEC is not set | ||
697 | # CONFIG_I2C_SIS5595 is not set | 708 | # CONFIG_I2C_SIS5595 is not set |
698 | # CONFIG_I2C_SIS630 is not set | 709 | # CONFIG_I2C_SIS630 is not set |
699 | # CONFIG_I2C_SIS96X is not set | 710 | # CONFIG_I2C_SIS96X is not set |
700 | # CONFIG_I2C_TAOS_EVM is not set | ||
701 | # CONFIG_I2C_STUB is not set | ||
702 | # CONFIG_I2C_TINY_USB is not set | ||
703 | # CONFIG_I2C_VIA is not set | 711 | # CONFIG_I2C_VIA is not set |
704 | # CONFIG_I2C_VIAPRO is not set | 712 | # CONFIG_I2C_VIAPRO is not set |
713 | |||
714 | # | ||
715 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
716 | # | ||
717 | CONFIG_I2C_MPC=y | ||
718 | # CONFIG_I2C_OCORES is not set | ||
719 | # CONFIG_I2C_SIMTEC is not set | ||
720 | |||
721 | # | ||
722 | # External I2C/SMBus adapter drivers | ||
723 | # | ||
724 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
725 | # CONFIG_I2C_TAOS_EVM is not set | ||
726 | # CONFIG_I2C_TINY_USB is not set | ||
727 | |||
728 | # | ||
729 | # Graphics adapter I2C/DDC channel drivers | ||
730 | # | ||
705 | # CONFIG_I2C_VOODOO3 is not set | 731 | # CONFIG_I2C_VOODOO3 is not set |
732 | |||
733 | # | ||
734 | # Other I2C/SMBus bus drivers | ||
735 | # | ||
706 | # CONFIG_I2C_PCA_PLATFORM is not set | 736 | # CONFIG_I2C_PCA_PLATFORM is not set |
737 | # CONFIG_I2C_STUB is not set | ||
707 | 738 | ||
708 | # | 739 | # |
709 | # Miscellaneous I2C Chip support | 740 | # Miscellaneous I2C Chip support |
710 | # | 741 | # |
711 | # CONFIG_DS1682 is not set | 742 | # CONFIG_DS1682 is not set |
743 | # CONFIG_AT24 is not set | ||
712 | CONFIG_SENSORS_EEPROM=m | 744 | CONFIG_SENSORS_EEPROM=m |
713 | # CONFIG_SENSORS_PCF8574 is not set | 745 | # CONFIG_SENSORS_PCF8574 is not set |
714 | # CONFIG_PCF8575 is not set | 746 | # CONFIG_PCF8575 is not set |
747 | # CONFIG_SENSORS_PCA9539 is not set | ||
715 | # CONFIG_SENSORS_PCF8591 is not set | 748 | # CONFIG_SENSORS_PCF8591 is not set |
716 | # CONFIG_SENSORS_MAX6875 is not set | 749 | # CONFIG_SENSORS_MAX6875 is not set |
717 | # CONFIG_SENSORS_TSL2550 is not set | 750 | # CONFIG_SENSORS_TSL2550 is not set |
@@ -720,29 +753,47 @@ CONFIG_SENSORS_EEPROM=m | |||
720 | # CONFIG_I2C_DEBUG_BUS is not set | 753 | # CONFIG_I2C_DEBUG_BUS is not set |
721 | # CONFIG_I2C_DEBUG_CHIP is not set | 754 | # CONFIG_I2C_DEBUG_CHIP is not set |
722 | # CONFIG_SPI is not set | 755 | # CONFIG_SPI is not set |
756 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
757 | # CONFIG_GPIOLIB is not set | ||
723 | # CONFIG_W1 is not set | 758 | # CONFIG_W1 is not set |
724 | # CONFIG_POWER_SUPPLY is not set | 759 | # CONFIG_POWER_SUPPLY is not set |
725 | # CONFIG_HWMON is not set | 760 | # CONFIG_HWMON is not set |
726 | # CONFIG_THERMAL is not set | 761 | # CONFIG_THERMAL is not set |
762 | # CONFIG_THERMAL_HWMON is not set | ||
727 | # CONFIG_WATCHDOG is not set | 763 | # CONFIG_WATCHDOG is not set |
764 | CONFIG_SSB_POSSIBLE=y | ||
728 | 765 | ||
729 | # | 766 | # |
730 | # Sonics Silicon Backplane | 767 | # Sonics Silicon Backplane |
731 | # | 768 | # |
732 | CONFIG_SSB_POSSIBLE=y | ||
733 | # CONFIG_SSB is not set | 769 | # CONFIG_SSB is not set |
734 | 770 | ||
735 | # | 771 | # |
736 | # Multifunction device drivers | 772 | # Multifunction device drivers |
737 | # | 773 | # |
774 | # CONFIG_MFD_CORE is not set | ||
738 | # CONFIG_MFD_SM501 is not set | 775 | # CONFIG_MFD_SM501 is not set |
739 | # CONFIG_HTC_PASIC3 is not set | 776 | # CONFIG_HTC_PASIC3 is not set |
777 | # CONFIG_MFD_TMIO is not set | ||
778 | # CONFIG_PMIC_DA903X is not set | ||
779 | # CONFIG_MFD_WM8400 is not set | ||
780 | # CONFIG_MFD_WM8350_I2C is not set | ||
781 | # CONFIG_REGULATOR is not set | ||
740 | 782 | ||
741 | # | 783 | # |
742 | # Multimedia devices | 784 | # Multimedia devices |
743 | # | 785 | # |
786 | |||
787 | # | ||
788 | # Multimedia core support | ||
789 | # | ||
744 | # CONFIG_VIDEO_DEV is not set | 790 | # CONFIG_VIDEO_DEV is not set |
745 | # CONFIG_DVB_CORE is not set | 791 | # CONFIG_DVB_CORE is not set |
792 | # CONFIG_VIDEO_MEDIA is not set | ||
793 | |||
794 | # | ||
795 | # Multimedia drivers | ||
796 | # | ||
746 | # CONFIG_DAB is not set | 797 | # CONFIG_DAB is not set |
747 | 798 | ||
748 | # | 799 | # |
@@ -759,10 +810,6 @@ CONFIG_SSB_POSSIBLE=y | |||
759 | # Display device support | 810 | # Display device support |
760 | # | 811 | # |
761 | # CONFIG_DISPLAY_SUPPORT is not set | 812 | # CONFIG_DISPLAY_SUPPORT is not set |
762 | |||
763 | # | ||
764 | # Sound | ||
765 | # | ||
766 | # CONFIG_SOUND is not set | 813 | # CONFIG_SOUND is not set |
767 | CONFIG_USB_SUPPORT=y | 814 | CONFIG_USB_SUPPORT=y |
768 | CONFIG_USB_ARCH_HAS_HCD=y | 815 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -781,12 +828,17 @@ CONFIG_USB_DEVICEFS=y | |||
781 | # CONFIG_USB_OTG is not set | 828 | # CONFIG_USB_OTG is not set |
782 | # CONFIG_USB_OTG_WHITELIST is not set | 829 | # CONFIG_USB_OTG_WHITELIST is not set |
783 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 830 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
831 | # CONFIG_USB_MON is not set | ||
832 | # CONFIG_USB_WUSB is not set | ||
833 | # CONFIG_USB_WUSB_CBAF is not set | ||
784 | 834 | ||
785 | # | 835 | # |
786 | # USB Host Controller Drivers | 836 | # USB Host Controller Drivers |
787 | # | 837 | # |
838 | # CONFIG_USB_C67X00_HCD is not set | ||
788 | # CONFIG_USB_EHCI_HCD is not set | 839 | # CONFIG_USB_EHCI_HCD is not set |
789 | # CONFIG_USB_ISP116X_HCD is not set | 840 | # CONFIG_USB_ISP116X_HCD is not set |
841 | # CONFIG_USB_ISP1760_HCD is not set | ||
790 | CONFIG_USB_OHCI_HCD=m | 842 | CONFIG_USB_OHCI_HCD=m |
791 | # CONFIG_USB_OHCI_HCD_PPC_SOC is not set | 843 | # CONFIG_USB_OHCI_HCD_PPC_SOC is not set |
792 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 844 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
@@ -799,12 +851,17 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | |||
799 | # CONFIG_USB_UHCI_HCD is not set | 851 | # CONFIG_USB_UHCI_HCD is not set |
800 | # CONFIG_USB_SL811_HCD is not set | 852 | # CONFIG_USB_SL811_HCD is not set |
801 | # CONFIG_USB_R8A66597_HCD is not set | 853 | # CONFIG_USB_R8A66597_HCD is not set |
854 | # CONFIG_USB_WHCI_HCD is not set | ||
855 | # CONFIG_USB_HWA_HCD is not set | ||
856 | # CONFIG_USB_MUSB_HDRC is not set | ||
802 | 857 | ||
803 | # | 858 | # |
804 | # USB Device Class drivers | 859 | # USB Device Class drivers |
805 | # | 860 | # |
806 | # CONFIG_USB_ACM is not set | 861 | # CONFIG_USB_ACM is not set |
807 | # CONFIG_USB_PRINTER is not set | 862 | # CONFIG_USB_PRINTER is not set |
863 | # CONFIG_USB_WDM is not set | ||
864 | # CONFIG_USB_TMC is not set | ||
808 | 865 | ||
809 | # | 866 | # |
810 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 867 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -833,7 +890,6 @@ CONFIG_USB_STORAGE=m | |||
833 | # | 890 | # |
834 | # CONFIG_USB_MDC800 is not set | 891 | # CONFIG_USB_MDC800 is not set |
835 | # CONFIG_USB_MICROTEK is not set | 892 | # CONFIG_USB_MICROTEK is not set |
836 | # CONFIG_USB_MON is not set | ||
837 | 893 | ||
838 | # | 894 | # |
839 | # USB port drivers | 895 | # USB port drivers |
@@ -846,7 +902,7 @@ CONFIG_USB_STORAGE=m | |||
846 | # CONFIG_USB_EMI62 is not set | 902 | # CONFIG_USB_EMI62 is not set |
847 | # CONFIG_USB_EMI26 is not set | 903 | # CONFIG_USB_EMI26 is not set |
848 | # CONFIG_USB_ADUTUX is not set | 904 | # CONFIG_USB_ADUTUX is not set |
849 | # CONFIG_USB_AUERSWALD is not set | 905 | # CONFIG_USB_SEVSEG is not set |
850 | # CONFIG_USB_RIO500 is not set | 906 | # CONFIG_USB_RIO500 is not set |
851 | # CONFIG_USB_LEGOTOWER is not set | 907 | # CONFIG_USB_LEGOTOWER is not set |
852 | # CONFIG_USB_LCD is not set | 908 | # CONFIG_USB_LCD is not set |
@@ -862,10 +918,14 @@ CONFIG_USB_STORAGE=m | |||
862 | # CONFIG_USB_TRANCEVIBRATOR is not set | 918 | # CONFIG_USB_TRANCEVIBRATOR is not set |
863 | # CONFIG_USB_IOWARRIOR is not set | 919 | # CONFIG_USB_IOWARRIOR is not set |
864 | # CONFIG_USB_TEST is not set | 920 | # CONFIG_USB_TEST is not set |
921 | # CONFIG_USB_ISIGHTFW is not set | ||
922 | # CONFIG_USB_VST is not set | ||
865 | # CONFIG_USB_GADGET is not set | 923 | # CONFIG_USB_GADGET is not set |
924 | # CONFIG_UWB is not set | ||
866 | # CONFIG_MMC is not set | 925 | # CONFIG_MMC is not set |
867 | # CONFIG_MEMSTICK is not set | 926 | # CONFIG_MEMSTICK is not set |
868 | # CONFIG_NEW_LEDS is not set | 927 | # CONFIG_NEW_LEDS is not set |
928 | # CONFIG_ACCESSIBILITY is not set | ||
869 | # CONFIG_INFINIBAND is not set | 929 | # CONFIG_INFINIBAND is not set |
870 | # CONFIG_EDAC is not set | 930 | # CONFIG_EDAC is not set |
871 | CONFIG_RTC_LIB=m | 931 | CONFIG_RTC_LIB=m |
@@ -894,6 +954,8 @@ CONFIG_RTC_DRV_PCF8563=m | |||
894 | # CONFIG_RTC_DRV_PCF8583 is not set | 954 | # CONFIG_RTC_DRV_PCF8583 is not set |
895 | # CONFIG_RTC_DRV_M41T80 is not set | 955 | # CONFIG_RTC_DRV_M41T80 is not set |
896 | # CONFIG_RTC_DRV_S35390A is not set | 956 | # CONFIG_RTC_DRV_S35390A is not set |
957 | # CONFIG_RTC_DRV_FM3130 is not set | ||
958 | # CONFIG_RTC_DRV_RX8581 is not set | ||
897 | 959 | ||
898 | # | 960 | # |
899 | # SPI RTC drivers | 961 | # SPI RTC drivers |
@@ -903,19 +965,25 @@ CONFIG_RTC_DRV_PCF8563=m | |||
903 | # Platform RTC drivers | 965 | # Platform RTC drivers |
904 | # | 966 | # |
905 | # CONFIG_RTC_DRV_CMOS is not set | 967 | # CONFIG_RTC_DRV_CMOS is not set |
968 | # CONFIG_RTC_DRV_DS1286 is not set | ||
906 | # CONFIG_RTC_DRV_DS1511 is not set | 969 | # CONFIG_RTC_DRV_DS1511 is not set |
907 | # CONFIG_RTC_DRV_DS1553 is not set | 970 | # CONFIG_RTC_DRV_DS1553 is not set |
908 | # CONFIG_RTC_DRV_DS1742 is not set | 971 | # CONFIG_RTC_DRV_DS1742 is not set |
909 | # CONFIG_RTC_DRV_STK17TA8 is not set | 972 | # CONFIG_RTC_DRV_STK17TA8 is not set |
910 | # CONFIG_RTC_DRV_M48T86 is not set | 973 | # CONFIG_RTC_DRV_M48T86 is not set |
974 | # CONFIG_RTC_DRV_M48T35 is not set | ||
911 | # CONFIG_RTC_DRV_M48T59 is not set | 975 | # CONFIG_RTC_DRV_M48T59 is not set |
976 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
912 | # CONFIG_RTC_DRV_V3020 is not set | 977 | # CONFIG_RTC_DRV_V3020 is not set |
913 | 978 | ||
914 | # | 979 | # |
915 | # on-CPU RTC drivers | 980 | # on-CPU RTC drivers |
916 | # | 981 | # |
982 | # CONFIG_RTC_DRV_PPC is not set | ||
917 | # CONFIG_DMADEVICES is not set | 983 | # CONFIG_DMADEVICES is not set |
918 | # CONFIG_UIO is not set | 984 | # CONFIG_UIO is not set |
985 | # CONFIG_STAGING is not set | ||
986 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
919 | 987 | ||
920 | # | 988 | # |
921 | # File systems | 989 | # File systems |
@@ -927,12 +995,13 @@ CONFIG_EXT3_FS=m | |||
927 | CONFIG_EXT3_FS_XATTR=y | 995 | CONFIG_EXT3_FS_XATTR=y |
928 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 996 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
929 | # CONFIG_EXT3_FS_SECURITY is not set | 997 | # CONFIG_EXT3_FS_SECURITY is not set |
930 | # CONFIG_EXT4DEV_FS is not set | 998 | # CONFIG_EXT4_FS is not set |
931 | CONFIG_JBD=m | 999 | CONFIG_JBD=m |
932 | CONFIG_FS_MBCACHE=m | 1000 | CONFIG_FS_MBCACHE=m |
933 | # CONFIG_REISERFS_FS is not set | 1001 | # CONFIG_REISERFS_FS is not set |
934 | # CONFIG_JFS_FS is not set | 1002 | # CONFIG_JFS_FS is not set |
935 | # CONFIG_FS_POSIX_ACL is not set | 1003 | # CONFIG_FS_POSIX_ACL is not set |
1004 | CONFIG_FILE_LOCKING=y | ||
936 | # CONFIG_XFS_FS is not set | 1005 | # CONFIG_XFS_FS is not set |
937 | # CONFIG_OCFS2_FS is not set | 1006 | # CONFIG_OCFS2_FS is not set |
938 | # CONFIG_DNOTIFY is not set | 1007 | # CONFIG_DNOTIFY is not set |
@@ -964,6 +1033,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
964 | CONFIG_PROC_FS=y | 1033 | CONFIG_PROC_FS=y |
965 | # CONFIG_PROC_KCORE is not set | 1034 | # CONFIG_PROC_KCORE is not set |
966 | CONFIG_PROC_SYSCTL=y | 1035 | CONFIG_PROC_SYSCTL=y |
1036 | CONFIG_PROC_PAGE_MONITOR=y | ||
967 | CONFIG_SYSFS=y | 1037 | CONFIG_SYSFS=y |
968 | CONFIG_TMPFS=y | 1038 | CONFIG_TMPFS=y |
969 | # CONFIG_TMPFS_POSIX_ACL is not set | 1039 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -994,6 +1064,7 @@ CONFIG_JFFS2_RTIME=y | |||
994 | # CONFIG_CRAMFS is not set | 1064 | # CONFIG_CRAMFS is not set |
995 | # CONFIG_VXFS_FS is not set | 1065 | # CONFIG_VXFS_FS is not set |
996 | # CONFIG_MINIX_FS is not set | 1066 | # CONFIG_MINIX_FS is not set |
1067 | # CONFIG_OMFS_FS is not set | ||
997 | # CONFIG_HPFS_FS is not set | 1068 | # CONFIG_HPFS_FS is not set |
998 | # CONFIG_QNX4FS_FS is not set | 1069 | # CONFIG_QNX4FS_FS is not set |
999 | # CONFIG_ROMFS_FS is not set | 1070 | # CONFIG_ROMFS_FS is not set |
@@ -1004,13 +1075,13 @@ CONFIG_NFS_FS=y | |||
1004 | CONFIG_NFS_V3=y | 1075 | CONFIG_NFS_V3=y |
1005 | # CONFIG_NFS_V3_ACL is not set | 1076 | # CONFIG_NFS_V3_ACL is not set |
1006 | # CONFIG_NFS_V4 is not set | 1077 | # CONFIG_NFS_V4 is not set |
1007 | # CONFIG_NFSD is not set | ||
1008 | CONFIG_ROOT_NFS=y | 1078 | CONFIG_ROOT_NFS=y |
1079 | # CONFIG_NFSD is not set | ||
1009 | CONFIG_LOCKD=y | 1080 | CONFIG_LOCKD=y |
1010 | CONFIG_LOCKD_V4=y | 1081 | CONFIG_LOCKD_V4=y |
1011 | CONFIG_NFS_COMMON=y | 1082 | CONFIG_NFS_COMMON=y |
1012 | CONFIG_SUNRPC=y | 1083 | CONFIG_SUNRPC=y |
1013 | # CONFIG_SUNRPC_BIND34 is not set | 1084 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
1014 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1085 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1015 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1086 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1016 | # CONFIG_SMB_FS is not set | 1087 | # CONFIG_SMB_FS is not set |
@@ -1070,9 +1141,9 @@ CONFIG_NLS_ISO8859_1=y | |||
1070 | # Library routines | 1141 | # Library routines |
1071 | # | 1142 | # |
1072 | CONFIG_BITREVERSE=y | 1143 | CONFIG_BITREVERSE=y |
1073 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1074 | # CONFIG_CRC_CCITT is not set | 1144 | # CONFIG_CRC_CCITT is not set |
1075 | # CONFIG_CRC16 is not set | 1145 | # CONFIG_CRC16 is not set |
1146 | # CONFIG_CRC_T10DIF is not set | ||
1076 | # CONFIG_CRC_ITU_T is not set | 1147 | # CONFIG_CRC_ITU_T is not set |
1077 | CONFIG_CRC32=y | 1148 | CONFIG_CRC32=y |
1078 | # CONFIG_CRC7 is not set | 1149 | # CONFIG_CRC7 is not set |
@@ -1098,7 +1169,17 @@ CONFIG_FRAME_WARN=1024 | |||
1098 | # CONFIG_HEADERS_CHECK is not set | 1169 | # CONFIG_HEADERS_CHECK is not set |
1099 | # CONFIG_DEBUG_KERNEL is not set | 1170 | # CONFIG_DEBUG_KERNEL is not set |
1100 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1171 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1172 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1173 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1174 | # CONFIG_LATENCYTOP is not set | ||
1175 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1176 | |||
1177 | # | ||
1178 | # Tracers | ||
1179 | # | ||
1180 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1101 | # CONFIG_SAMPLES is not set | 1181 | # CONFIG_SAMPLES is not set |
1182 | CONFIG_HAVE_ARCH_KGDB=y | ||
1102 | # CONFIG_IRQSTACKS is not set | 1183 | # CONFIG_IRQSTACKS is not set |
1103 | # CONFIG_BOOTX_TEXT is not set | 1184 | # CONFIG_BOOTX_TEXT is not set |
1104 | # CONFIG_PPC_EARLY_DEBUG is not set | 1185 | # CONFIG_PPC_EARLY_DEBUG is not set |
@@ -1108,6 +1189,7 @@ CONFIG_FRAME_WARN=1024 | |||
1108 | # | 1189 | # |
1109 | # CONFIG_KEYS is not set | 1190 | # CONFIG_KEYS is not set |
1110 | # CONFIG_SECURITY is not set | 1191 | # CONFIG_SECURITY is not set |
1192 | # CONFIG_SECURITYFS is not set | ||
1111 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1193 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1112 | # CONFIG_CRYPTO is not set | 1194 | # CONFIG_CRYPTO is not set |
1113 | CONFIG_PPC_CLOCK=y | 1195 | CONFIG_PPC_CLOCK=y |
diff --git a/arch/powerpc/configs/52xx/tqm5200_defconfig b/arch/powerpc/configs/52xx/tqm5200_defconfig index 7672bfba3566..bc190051e8d5 100644 --- a/arch/powerpc/configs/52xx/tqm5200_defconfig +++ b/arch/powerpc/configs/52xx/tqm5200_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.25 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Apr 29 07:12:39 2008 | 4 | # Thu Nov 13 02:09:30 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -22,7 +22,7 @@ CONFIG_PPC_STD_MMU_32=y | |||
22 | # CONFIG_SMP is not set | 22 | # CONFIG_SMP is not set |
23 | CONFIG_PPC32=y | 23 | CONFIG_PPC32=y |
24 | CONFIG_WORD_SIZE=32 | 24 | CONFIG_WORD_SIZE=32 |
25 | CONFIG_PPC_MERGE=y | 25 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set |
26 | CONFIG_MMU=y | 26 | CONFIG_MMU=y |
27 | CONFIG_GENERIC_CMOS_UPDATE=y | 27 | CONFIG_GENERIC_CMOS_UPDATE=y |
28 | CONFIG_GENERIC_TIME=y | 28 | CONFIG_GENERIC_TIME=y |
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y | |||
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
34 | CONFIG_STACKTRACE_SUPPORT=y | 34 | CONFIG_STACKTRACE_SUPPORT=y |
35 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | 36 | CONFIG_LOCKDEP_SUPPORT=y |
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | 38 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -102,6 +103,7 @@ CONFIG_SIGNALFD=y | |||
102 | CONFIG_TIMERFD=y | 103 | CONFIG_TIMERFD=y |
103 | CONFIG_EVENTFD=y | 104 | CONFIG_EVENTFD=y |
104 | CONFIG_SHMEM=y | 105 | CONFIG_SHMEM=y |
106 | CONFIG_AIO=y | ||
105 | CONFIG_VM_EVENT_COUNTERS=y | 107 | CONFIG_VM_EVENT_COUNTERS=y |
106 | CONFIG_SLUB_DEBUG=y | 108 | CONFIG_SLUB_DEBUG=y |
107 | # CONFIG_SLAB is not set | 109 | # CONFIG_SLAB is not set |
@@ -110,14 +112,19 @@ CONFIG_SLUB=y | |||
110 | # CONFIG_PROFILING is not set | 112 | # CONFIG_PROFILING is not set |
111 | # CONFIG_MARKERS is not set | 113 | # CONFIG_MARKERS is not set |
112 | CONFIG_HAVE_OPROFILE=y | 114 | CONFIG_HAVE_OPROFILE=y |
115 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
116 | CONFIG_HAVE_IOREMAP_PROT=y | ||
113 | CONFIG_HAVE_KPROBES=y | 117 | CONFIG_HAVE_KPROBES=y |
114 | CONFIG_HAVE_KRETPROBES=y | 118 | CONFIG_HAVE_KRETPROBES=y |
115 | CONFIG_PROC_PAGE_MONITOR=y | 119 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
120 | CONFIG_HAVE_CLK=y | ||
121 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
116 | CONFIG_SLABINFO=y | 122 | CONFIG_SLABINFO=y |
117 | CONFIG_RT_MUTEXES=y | 123 | CONFIG_RT_MUTEXES=y |
118 | # CONFIG_TINY_SHMEM is not set | 124 | # CONFIG_TINY_SHMEM is not set |
119 | CONFIG_BASE_SMALL=0 | 125 | CONFIG_BASE_SMALL=0 |
120 | CONFIG_MODULES=y | 126 | CONFIG_MODULES=y |
127 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
121 | CONFIG_MODULE_UNLOAD=y | 128 | CONFIG_MODULE_UNLOAD=y |
122 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 129 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
123 | CONFIG_MODVERSIONS=y | 130 | CONFIG_MODVERSIONS=y |
@@ -128,6 +135,7 @@ CONFIG_BLOCK=y | |||
128 | # CONFIG_BLK_DEV_IO_TRACE is not set | 135 | # CONFIG_BLK_DEV_IO_TRACE is not set |
129 | # CONFIG_LSF is not set | 136 | # CONFIG_LSF is not set |
130 | # CONFIG_BLK_DEV_BSG is not set | 137 | # CONFIG_BLK_DEV_BSG is not set |
138 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
131 | 139 | ||
132 | # | 140 | # |
133 | # IO Schedulers | 141 | # IO Schedulers |
@@ -142,19 +150,16 @@ CONFIG_DEFAULT_AS=y | |||
142 | # CONFIG_DEFAULT_NOOP is not set | 150 | # CONFIG_DEFAULT_NOOP is not set |
143 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 151 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
144 | CONFIG_CLASSIC_RCU=y | 152 | CONFIG_CLASSIC_RCU=y |
153 | # CONFIG_FREEZER is not set | ||
145 | 154 | ||
146 | # | 155 | # |
147 | # Platform support | 156 | # Platform support |
148 | # | 157 | # |
149 | CONFIG_PPC_MULTIPLATFORM=y | 158 | CONFIG_PPC_MULTIPLATFORM=y |
150 | # CONFIG_PPC_82xx is not set | ||
151 | # CONFIG_PPC_83xx is not set | ||
152 | # CONFIG_PPC_86xx is not set | ||
153 | CONFIG_CLASSIC32=y | 159 | CONFIG_CLASSIC32=y |
154 | # CONFIG_PPC_CHRP is not set | 160 | # CONFIG_PPC_CHRP is not set |
155 | # CONFIG_PPC_MPC512x is not set | ||
156 | # CONFIG_PPC_MPC5121 is not set | ||
157 | # CONFIG_MPC5121_ADS is not set | 161 | # CONFIG_MPC5121_ADS is not set |
162 | # CONFIG_MPC5121_GENERIC is not set | ||
158 | CONFIG_PPC_MPC52xx=y | 163 | CONFIG_PPC_MPC52xx=y |
159 | CONFIG_PPC_MPC5200_SIMPLE=y | 164 | CONFIG_PPC_MPC5200_SIMPLE=y |
160 | # CONFIG_PPC_EFIKA is not set | 165 | # CONFIG_PPC_EFIKA is not set |
@@ -164,7 +169,10 @@ CONFIG_PPC_MPC5200_BUGFIX=y | |||
164 | # CONFIG_PPC_PMAC is not set | 169 | # CONFIG_PPC_PMAC is not set |
165 | # CONFIG_PPC_CELL is not set | 170 | # CONFIG_PPC_CELL is not set |
166 | # CONFIG_PPC_CELL_NATIVE is not set | 171 | # CONFIG_PPC_CELL_NATIVE is not set |
172 | # CONFIG_PPC_82xx is not set | ||
167 | # CONFIG_PQ2ADS is not set | 173 | # CONFIG_PQ2ADS is not set |
174 | # CONFIG_PPC_83xx is not set | ||
175 | # CONFIG_PPC_86xx is not set | ||
168 | # CONFIG_EMBEDDED6xx is not set | 176 | # CONFIG_EMBEDDED6xx is not set |
169 | # CONFIG_IPIC is not set | 177 | # CONFIG_IPIC is not set |
170 | # CONFIG_MPIC is not set | 178 | # CONFIG_MPIC is not set |
@@ -188,7 +196,6 @@ CONFIG_PPC_BESTCOMM_FEC=y | |||
188 | # Kernel options | 196 | # Kernel options |
189 | # | 197 | # |
190 | # CONFIG_HIGHMEM is not set | 198 | # CONFIG_HIGHMEM is not set |
191 | # CONFIG_TICK_ONESHOT is not set | ||
192 | # CONFIG_NO_HZ is not set | 199 | # CONFIG_NO_HZ is not set |
193 | # CONFIG_HIGH_RES_TIMERS is not set | 200 | # CONFIG_HIGH_RES_TIMERS is not set |
194 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | 201 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y |
@@ -202,6 +209,8 @@ CONFIG_PREEMPT_NONE=y | |||
202 | # CONFIG_PREEMPT_VOLUNTARY is not set | 209 | # CONFIG_PREEMPT_VOLUNTARY is not set |
203 | # CONFIG_PREEMPT is not set | 210 | # CONFIG_PREEMPT is not set |
204 | CONFIG_BINFMT_ELF=y | 211 | CONFIG_BINFMT_ELF=y |
212 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
213 | # CONFIG_HAVE_AOUT is not set | ||
205 | # CONFIG_BINFMT_MISC is not set | 214 | # CONFIG_BINFMT_MISC is not set |
206 | # CONFIG_IOMMU_HELPER is not set | 215 | # CONFIG_IOMMU_HELPER is not set |
207 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 216 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
@@ -216,19 +225,20 @@ CONFIG_FLATMEM_MANUAL=y | |||
216 | # CONFIG_SPARSEMEM_MANUAL is not set | 225 | # CONFIG_SPARSEMEM_MANUAL is not set |
217 | CONFIG_FLATMEM=y | 226 | CONFIG_FLATMEM=y |
218 | CONFIG_FLAT_NODE_MEM_MAP=y | 227 | CONFIG_FLAT_NODE_MEM_MAP=y |
219 | # CONFIG_SPARSEMEM_STATIC is not set | ||
220 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
221 | CONFIG_PAGEFLAGS_EXTENDED=y | 228 | CONFIG_PAGEFLAGS_EXTENDED=y |
222 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 229 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
230 | CONFIG_MIGRATION=y | ||
223 | # CONFIG_RESOURCES_64BIT is not set | 231 | # CONFIG_RESOURCES_64BIT is not set |
232 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
224 | CONFIG_ZONE_DMA_FLAG=1 | 233 | CONFIG_ZONE_DMA_FLAG=1 |
225 | CONFIG_BOUNCE=y | 234 | CONFIG_BOUNCE=y |
226 | CONFIG_VIRT_TO_BUS=y | 235 | CONFIG_VIRT_TO_BUS=y |
236 | CONFIG_UNEVICTABLE_LRU=y | ||
227 | CONFIG_FORCE_MAX_ZONEORDER=11 | 237 | CONFIG_FORCE_MAX_ZONEORDER=11 |
228 | CONFIG_PROC_DEVICETREE=y | 238 | CONFIG_PROC_DEVICETREE=y |
229 | # CONFIG_CMDLINE_BOOL is not set | 239 | # CONFIG_CMDLINE_BOOL is not set |
240 | CONFIG_EXTRA_TARGETS="" | ||
230 | CONFIG_PM=y | 241 | CONFIG_PM=y |
231 | # CONFIG_PM_LEGACY is not set | ||
232 | # CONFIG_PM_DEBUG is not set | 242 | # CONFIG_PM_DEBUG is not set |
233 | CONFIG_SECCOMP=y | 243 | CONFIG_SECCOMP=y |
234 | CONFIG_ISA_DMA_API=y | 244 | CONFIG_ISA_DMA_API=y |
@@ -238,7 +248,7 @@ CONFIG_ISA_DMA_API=y | |||
238 | # | 248 | # |
239 | CONFIG_ZONE_DMA=y | 249 | CONFIG_ZONE_DMA=y |
240 | CONFIG_GENERIC_ISA_DMA=y | 250 | CONFIG_GENERIC_ISA_DMA=y |
241 | CONFIG_FSL_SOC=y | 251 | CONFIG_PPC_PCI_CHOICE=y |
242 | # CONFIG_PCI is not set | 252 | # CONFIG_PCI is not set |
243 | # CONFIG_PCI_DOMAINS is not set | 253 | # CONFIG_PCI_DOMAINS is not set |
244 | # CONFIG_PCI_SYSCALL is not set | 254 | # CONFIG_PCI_SYSCALL is not set |
@@ -259,10 +269,6 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
259 | CONFIG_KERNEL_START=0xc0000000 | 269 | CONFIG_KERNEL_START=0xc0000000 |
260 | CONFIG_PHYSICAL_START=0x00000000 | 270 | CONFIG_PHYSICAL_START=0x00000000 |
261 | CONFIG_TASK_SIZE=0xc0000000 | 271 | CONFIG_TASK_SIZE=0xc0000000 |
262 | |||
263 | # | ||
264 | # Networking | ||
265 | # | ||
266 | CONFIG_NET=y | 272 | CONFIG_NET=y |
267 | 273 | ||
268 | # | 274 | # |
@@ -313,6 +319,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
313 | # CONFIG_TIPC is not set | 319 | # CONFIG_TIPC is not set |
314 | # CONFIG_ATM is not set | 320 | # CONFIG_ATM is not set |
315 | # CONFIG_BRIDGE is not set | 321 | # CONFIG_BRIDGE is not set |
322 | # CONFIG_NET_DSA is not set | ||
316 | # CONFIG_VLAN_8021Q is not set | 323 | # CONFIG_VLAN_8021Q is not set |
317 | # CONFIG_DECNET is not set | 324 | # CONFIG_DECNET is not set |
318 | # CONFIG_LLC2 is not set | 325 | # CONFIG_LLC2 is not set |
@@ -333,14 +340,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
333 | # CONFIG_IRDA is not set | 340 | # CONFIG_IRDA is not set |
334 | # CONFIG_BT is not set | 341 | # CONFIG_BT is not set |
335 | # CONFIG_AF_RXRPC is not set | 342 | # CONFIG_AF_RXRPC is not set |
336 | 343 | # CONFIG_PHONET is not set | |
337 | # | 344 | # CONFIG_WIRELESS is not set |
338 | # Wireless | ||
339 | # | ||
340 | # CONFIG_CFG80211 is not set | ||
341 | # CONFIG_WIRELESS_EXT is not set | ||
342 | # CONFIG_MAC80211 is not set | ||
343 | # CONFIG_IEEE80211 is not set | ||
344 | # CONFIG_RFKILL is not set | 345 | # CONFIG_RFKILL is not set |
345 | # CONFIG_NET_9P is not set | 346 | # CONFIG_NET_9P is not set |
346 | 347 | ||
@@ -451,6 +452,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 | |||
451 | # CONFIG_BLK_DEV_XIP is not set | 452 | # CONFIG_BLK_DEV_XIP is not set |
452 | # CONFIG_CDROM_PKTCDVD is not set | 453 | # CONFIG_CDROM_PKTCDVD is not set |
453 | # CONFIG_ATA_OVER_ETH is not set | 454 | # CONFIG_ATA_OVER_ETH is not set |
455 | # CONFIG_BLK_DEV_HD is not set | ||
454 | # CONFIG_MISC_DEVICES is not set | 456 | # CONFIG_MISC_DEVICES is not set |
455 | CONFIG_HAVE_IDE=y | 457 | CONFIG_HAVE_IDE=y |
456 | # CONFIG_IDE is not set | 458 | # CONFIG_IDE is not set |
@@ -495,10 +497,10 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
495 | CONFIG_SCSI_LOWLEVEL=y | 497 | CONFIG_SCSI_LOWLEVEL=y |
496 | # CONFIG_ISCSI_TCP is not set | 498 | # CONFIG_ISCSI_TCP is not set |
497 | # CONFIG_SCSI_DEBUG is not set | 499 | # CONFIG_SCSI_DEBUG is not set |
500 | # CONFIG_SCSI_DH is not set | ||
498 | CONFIG_ATA=y | 501 | CONFIG_ATA=y |
499 | # CONFIG_ATA_NONSTANDARD is not set | 502 | # CONFIG_ATA_NONSTANDARD is not set |
500 | CONFIG_SATA_PMP=y | 503 | CONFIG_SATA_PMP=y |
501 | # CONFIG_SATA_FSL is not set | ||
502 | CONFIG_ATA_SFF=y | 504 | CONFIG_ATA_SFF=y |
503 | # CONFIG_SATA_MV is not set | 505 | # CONFIG_SATA_MV is not set |
504 | CONFIG_PATA_MPC52xx=y | 506 | CONFIG_PATA_MPC52xx=y |
@@ -507,7 +509,6 @@ CONFIG_PATA_PLATFORM=y | |||
507 | # CONFIG_MD is not set | 509 | # CONFIG_MD is not set |
508 | # CONFIG_MACINTOSH_DRIVERS is not set | 510 | # CONFIG_MACINTOSH_DRIVERS is not set |
509 | CONFIG_NETDEVICES=y | 511 | CONFIG_NETDEVICES=y |
510 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
511 | # CONFIG_DUMMY is not set | 512 | # CONFIG_DUMMY is not set |
512 | # CONFIG_BONDING is not set | 513 | # CONFIG_BONDING is not set |
513 | # CONFIG_MACVLAN is not set | 514 | # CONFIG_MACVLAN is not set |
@@ -537,6 +538,9 @@ CONFIG_NET_ETHERNET=y | |||
537 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 538 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
538 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 539 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
539 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 540 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
541 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
542 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
543 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
540 | # CONFIG_B44 is not set | 544 | # CONFIG_B44 is not set |
541 | CONFIG_FEC_MPC52xx=y | 545 | CONFIG_FEC_MPC52xx=y |
542 | CONFIG_FEC_MPC52xx_MDIO=y | 546 | CONFIG_FEC_MPC52xx_MDIO=y |
@@ -548,7 +552,6 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
548 | # | 552 | # |
549 | # CONFIG_WLAN_PRE80211 is not set | 553 | # CONFIG_WLAN_PRE80211 is not set |
550 | # CONFIG_WLAN_80211 is not set | 554 | # CONFIG_WLAN_80211 is not set |
551 | # CONFIG_IWLWIFI is not set | ||
552 | # CONFIG_IWLWIFI_LEDS is not set | 555 | # CONFIG_IWLWIFI_LEDS is not set |
553 | 556 | ||
554 | # | 557 | # |
@@ -583,6 +586,7 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
583 | # Character devices | 586 | # Character devices |
584 | # | 587 | # |
585 | # CONFIG_VT is not set | 588 | # CONFIG_VT is not set |
589 | CONFIG_DEVKMEM=y | ||
586 | # CONFIG_SERIAL_NONSTANDARD is not set | 590 | # CONFIG_SERIAL_NONSTANDARD is not set |
587 | 591 | ||
588 | # | 592 | # |
@@ -611,26 +615,41 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
611 | CONFIG_I2C=y | 615 | CONFIG_I2C=y |
612 | CONFIG_I2C_BOARDINFO=y | 616 | CONFIG_I2C_BOARDINFO=y |
613 | CONFIG_I2C_CHARDEV=y | 617 | CONFIG_I2C_CHARDEV=y |
618 | CONFIG_I2C_HELPER_AUTO=y | ||
614 | 619 | ||
615 | # | 620 | # |
616 | # I2C Hardware Bus support | 621 | # I2C Hardware Bus support |
617 | # | 622 | # |
623 | |||
624 | # | ||
625 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
626 | # | ||
618 | CONFIG_I2C_MPC=y | 627 | CONFIG_I2C_MPC=y |
619 | # CONFIG_I2C_OCORES is not set | 628 | # CONFIG_I2C_OCORES is not set |
620 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
621 | # CONFIG_I2C_SIMTEC is not set | 629 | # CONFIG_I2C_SIMTEC is not set |
630 | |||
631 | # | ||
632 | # External I2C/SMBus adapter drivers | ||
633 | # | ||
634 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
622 | # CONFIG_I2C_TAOS_EVM is not set | 635 | # CONFIG_I2C_TAOS_EVM is not set |
623 | # CONFIG_I2C_STUB is not set | ||
624 | # CONFIG_I2C_TINY_USB is not set | 636 | # CONFIG_I2C_TINY_USB is not set |
637 | |||
638 | # | ||
639 | # Other I2C/SMBus bus drivers | ||
640 | # | ||
625 | # CONFIG_I2C_PCA_PLATFORM is not set | 641 | # CONFIG_I2C_PCA_PLATFORM is not set |
642 | # CONFIG_I2C_STUB is not set | ||
626 | 643 | ||
627 | # | 644 | # |
628 | # Miscellaneous I2C Chip support | 645 | # Miscellaneous I2C Chip support |
629 | # | 646 | # |
630 | # CONFIG_DS1682 is not set | 647 | # CONFIG_DS1682 is not set |
648 | # CONFIG_AT24 is not set | ||
631 | # CONFIG_SENSORS_EEPROM is not set | 649 | # CONFIG_SENSORS_EEPROM is not set |
632 | # CONFIG_SENSORS_PCF8574 is not set | 650 | # CONFIG_SENSORS_PCF8574 is not set |
633 | # CONFIG_PCF8575 is not set | 651 | # CONFIG_PCF8575 is not set |
652 | # CONFIG_SENSORS_PCA9539 is not set | ||
634 | # CONFIG_SENSORS_PCF8591 is not set | 653 | # CONFIG_SENSORS_PCF8591 is not set |
635 | # CONFIG_SENSORS_MAX6875 is not set | 654 | # CONFIG_SENSORS_MAX6875 is not set |
636 | # CONFIG_SENSORS_TSL2550 is not set | 655 | # CONFIG_SENSORS_TSL2550 is not set |
@@ -639,10 +658,13 @@ CONFIG_I2C_MPC=y | |||
639 | # CONFIG_I2C_DEBUG_BUS is not set | 658 | # CONFIG_I2C_DEBUG_BUS is not set |
640 | # CONFIG_I2C_DEBUG_CHIP is not set | 659 | # CONFIG_I2C_DEBUG_CHIP is not set |
641 | # CONFIG_SPI is not set | 660 | # CONFIG_SPI is not set |
661 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | ||
662 | # CONFIG_GPIOLIB is not set | ||
642 | # CONFIG_W1 is not set | 663 | # CONFIG_W1 is not set |
643 | # CONFIG_POWER_SUPPLY is not set | 664 | # CONFIG_POWER_SUPPLY is not set |
644 | CONFIG_HWMON=y | 665 | CONFIG_HWMON=y |
645 | # CONFIG_HWMON_VID is not set | 666 | # CONFIG_HWMON_VID is not set |
667 | # CONFIG_SENSORS_AD7414 is not set | ||
646 | # CONFIG_SENSORS_AD7418 is not set | 668 | # CONFIG_SENSORS_AD7418 is not set |
647 | # CONFIG_SENSORS_ADM1021 is not set | 669 | # CONFIG_SENSORS_ADM1021 is not set |
648 | # CONFIG_SENSORS_ADM1025 is not set | 670 | # CONFIG_SENSORS_ADM1025 is not set |
@@ -650,6 +672,7 @@ CONFIG_HWMON=y | |||
650 | # CONFIG_SENSORS_ADM1029 is not set | 672 | # CONFIG_SENSORS_ADM1029 is not set |
651 | # CONFIG_SENSORS_ADM1031 is not set | 673 | # CONFIG_SENSORS_ADM1031 is not set |
652 | # CONFIG_SENSORS_ADM9240 is not set | 674 | # CONFIG_SENSORS_ADM9240 is not set |
675 | # CONFIG_SENSORS_ADT7462 is not set | ||
653 | # CONFIG_SENSORS_ADT7470 is not set | 676 | # CONFIG_SENSORS_ADT7470 is not set |
654 | # CONFIG_SENSORS_ADT7473 is not set | 677 | # CONFIG_SENSORS_ADT7473 is not set |
655 | # CONFIG_SENSORS_ATXP1 is not set | 678 | # CONFIG_SENSORS_ATXP1 is not set |
@@ -692,6 +715,7 @@ CONFIG_HWMON=y | |||
692 | # CONFIG_SENSORS_W83627EHF is not set | 715 | # CONFIG_SENSORS_W83627EHF is not set |
693 | # CONFIG_HWMON_DEBUG_CHIP is not set | 716 | # CONFIG_HWMON_DEBUG_CHIP is not set |
694 | # CONFIG_THERMAL is not set | 717 | # CONFIG_THERMAL is not set |
718 | # CONFIG_THERMAL_HWMON is not set | ||
695 | CONFIG_WATCHDOG=y | 719 | CONFIG_WATCHDOG=y |
696 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 720 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
697 | 721 | ||
@@ -705,24 +729,39 @@ CONFIG_WATCHDOG=y | |||
705 | # USB-based Watchdog Cards | 729 | # USB-based Watchdog Cards |
706 | # | 730 | # |
707 | # CONFIG_USBPCWATCHDOG is not set | 731 | # CONFIG_USBPCWATCHDOG is not set |
732 | CONFIG_SSB_POSSIBLE=y | ||
708 | 733 | ||
709 | # | 734 | # |
710 | # Sonics Silicon Backplane | 735 | # Sonics Silicon Backplane |
711 | # | 736 | # |
712 | CONFIG_SSB_POSSIBLE=y | ||
713 | # CONFIG_SSB is not set | 737 | # CONFIG_SSB is not set |
714 | 738 | ||
715 | # | 739 | # |
716 | # Multifunction device drivers | 740 | # Multifunction device drivers |
717 | # | 741 | # |
742 | # CONFIG_MFD_CORE is not set | ||
718 | # CONFIG_MFD_SM501 is not set | 743 | # CONFIG_MFD_SM501 is not set |
719 | # CONFIG_HTC_PASIC3 is not set | 744 | # CONFIG_HTC_PASIC3 is not set |
745 | # CONFIG_MFD_TMIO is not set | ||
746 | # CONFIG_PMIC_DA903X is not set | ||
747 | # CONFIG_MFD_WM8400 is not set | ||
748 | # CONFIG_MFD_WM8350_I2C is not set | ||
749 | # CONFIG_REGULATOR is not set | ||
720 | 750 | ||
721 | # | 751 | # |
722 | # Multimedia devices | 752 | # Multimedia devices |
723 | # | 753 | # |
754 | |||
755 | # | ||
756 | # Multimedia core support | ||
757 | # | ||
724 | # CONFIG_VIDEO_DEV is not set | 758 | # CONFIG_VIDEO_DEV is not set |
725 | # CONFIG_DVB_CORE is not set | 759 | # CONFIG_DVB_CORE is not set |
760 | # CONFIG_VIDEO_MEDIA is not set | ||
761 | |||
762 | # | ||
763 | # Multimedia drivers | ||
764 | # | ||
726 | # CONFIG_DAB is not set | 765 | # CONFIG_DAB is not set |
727 | 766 | ||
728 | # | 767 | # |
@@ -737,10 +776,6 @@ CONFIG_SSB_POSSIBLE=y | |||
737 | # Display device support | 776 | # Display device support |
738 | # | 777 | # |
739 | # CONFIG_DISPLAY_SUPPORT is not set | 778 | # CONFIG_DISPLAY_SUPPORT is not set |
740 | |||
741 | # | ||
742 | # Sound | ||
743 | # | ||
744 | # CONFIG_SOUND is not set | 779 | # CONFIG_SOUND is not set |
745 | CONFIG_USB_SUPPORT=y | 780 | CONFIG_USB_SUPPORT=y |
746 | CONFIG_USB_ARCH_HAS_HCD=y | 781 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -760,11 +795,16 @@ CONFIG_USB_DEVICEFS=y | |||
760 | # CONFIG_USB_OTG is not set | 795 | # CONFIG_USB_OTG is not set |
761 | # CONFIG_USB_OTG_WHITELIST is not set | 796 | # CONFIG_USB_OTG_WHITELIST is not set |
762 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | 797 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set |
798 | CONFIG_USB_MON=y | ||
799 | # CONFIG_USB_WUSB is not set | ||
800 | # CONFIG_USB_WUSB_CBAF is not set | ||
763 | 801 | ||
764 | # | 802 | # |
765 | # USB Host Controller Drivers | 803 | # USB Host Controller Drivers |
766 | # | 804 | # |
805 | # CONFIG_USB_C67X00_HCD is not set | ||
767 | # CONFIG_USB_ISP116X_HCD is not set | 806 | # CONFIG_USB_ISP116X_HCD is not set |
807 | # CONFIG_USB_ISP1760_HCD is not set | ||
768 | CONFIG_USB_OHCI_HCD=y | 808 | CONFIG_USB_OHCI_HCD=y |
769 | CONFIG_USB_OHCI_HCD_PPC_SOC=y | 809 | CONFIG_USB_OHCI_HCD_PPC_SOC=y |
770 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 810 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
@@ -775,12 +815,16 @@ CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | |||
775 | # CONFIG_USB_OHCI_LITTLE_ENDIAN is not set | 815 | # CONFIG_USB_OHCI_LITTLE_ENDIAN is not set |
776 | # CONFIG_USB_SL811_HCD is not set | 816 | # CONFIG_USB_SL811_HCD is not set |
777 | # CONFIG_USB_R8A66597_HCD is not set | 817 | # CONFIG_USB_R8A66597_HCD is not set |
818 | # CONFIG_USB_HWA_HCD is not set | ||
819 | # CONFIG_USB_MUSB_HDRC is not set | ||
778 | 820 | ||
779 | # | 821 | # |
780 | # USB Device Class drivers | 822 | # USB Device Class drivers |
781 | # | 823 | # |
782 | # CONFIG_USB_ACM is not set | 824 | # CONFIG_USB_ACM is not set |
783 | # CONFIG_USB_PRINTER is not set | 825 | # CONFIG_USB_PRINTER is not set |
826 | # CONFIG_USB_WDM is not set | ||
827 | # CONFIG_USB_TMC is not set | ||
784 | 828 | ||
785 | # | 829 | # |
786 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 830 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -809,7 +853,6 @@ CONFIG_USB_STORAGE=y | |||
809 | # | 853 | # |
810 | # CONFIG_USB_MDC800 is not set | 854 | # CONFIG_USB_MDC800 is not set |
811 | # CONFIG_USB_MICROTEK is not set | 855 | # CONFIG_USB_MICROTEK is not set |
812 | CONFIG_USB_MON=y | ||
813 | 856 | ||
814 | # | 857 | # |
815 | # USB port drivers | 858 | # USB port drivers |
@@ -822,7 +865,7 @@ CONFIG_USB_MON=y | |||
822 | # CONFIG_USB_EMI62 is not set | 865 | # CONFIG_USB_EMI62 is not set |
823 | # CONFIG_USB_EMI26 is not set | 866 | # CONFIG_USB_EMI26 is not set |
824 | # CONFIG_USB_ADUTUX is not set | 867 | # CONFIG_USB_ADUTUX is not set |
825 | # CONFIG_USB_AUERSWALD is not set | 868 | # CONFIG_USB_SEVSEG is not set |
826 | # CONFIG_USB_RIO500 is not set | 869 | # CONFIG_USB_RIO500 is not set |
827 | # CONFIG_USB_LEGOTOWER is not set | 870 | # CONFIG_USB_LEGOTOWER is not set |
828 | # CONFIG_USB_LCD is not set | 871 | # CONFIG_USB_LCD is not set |
@@ -838,10 +881,13 @@ CONFIG_USB_MON=y | |||
838 | # CONFIG_USB_TRANCEVIBRATOR is not set | 881 | # CONFIG_USB_TRANCEVIBRATOR is not set |
839 | # CONFIG_USB_IOWARRIOR is not set | 882 | # CONFIG_USB_IOWARRIOR is not set |
840 | # CONFIG_USB_TEST is not set | 883 | # CONFIG_USB_TEST is not set |
884 | # CONFIG_USB_ISIGHTFW is not set | ||
885 | # CONFIG_USB_VST is not set | ||
841 | # CONFIG_USB_GADGET is not set | 886 | # CONFIG_USB_GADGET is not set |
842 | # CONFIG_MMC is not set | 887 | # CONFIG_MMC is not set |
843 | # CONFIG_MEMSTICK is not set | 888 | # CONFIG_MEMSTICK is not set |
844 | # CONFIG_NEW_LEDS is not set | 889 | # CONFIG_NEW_LEDS is not set |
890 | # CONFIG_ACCESSIBILITY is not set | ||
845 | # CONFIG_EDAC is not set | 891 | # CONFIG_EDAC is not set |
846 | CONFIG_RTC_LIB=y | 892 | CONFIG_RTC_LIB=y |
847 | CONFIG_RTC_CLASS=y | 893 | CONFIG_RTC_CLASS=y |
@@ -872,6 +918,8 @@ CONFIG_RTC_DRV_DS1307=y | |||
872 | # CONFIG_RTC_DRV_PCF8583 is not set | 918 | # CONFIG_RTC_DRV_PCF8583 is not set |
873 | # CONFIG_RTC_DRV_M41T80 is not set | 919 | # CONFIG_RTC_DRV_M41T80 is not set |
874 | # CONFIG_RTC_DRV_S35390A is not set | 920 | # CONFIG_RTC_DRV_S35390A is not set |
921 | # CONFIG_RTC_DRV_FM3130 is not set | ||
922 | # CONFIG_RTC_DRV_RX8581 is not set | ||
875 | 923 | ||
876 | # | 924 | # |
877 | # SPI RTC drivers | 925 | # SPI RTC drivers |
@@ -881,19 +929,25 @@ CONFIG_RTC_DRV_DS1307=y | |||
881 | # Platform RTC drivers | 929 | # Platform RTC drivers |
882 | # | 930 | # |
883 | # CONFIG_RTC_DRV_CMOS is not set | 931 | # CONFIG_RTC_DRV_CMOS is not set |
932 | # CONFIG_RTC_DRV_DS1286 is not set | ||
884 | # CONFIG_RTC_DRV_DS1511 is not set | 933 | # CONFIG_RTC_DRV_DS1511 is not set |
885 | # CONFIG_RTC_DRV_DS1553 is not set | 934 | # CONFIG_RTC_DRV_DS1553 is not set |
886 | # CONFIG_RTC_DRV_DS1742 is not set | 935 | # CONFIG_RTC_DRV_DS1742 is not set |
887 | # CONFIG_RTC_DRV_STK17TA8 is not set | 936 | # CONFIG_RTC_DRV_STK17TA8 is not set |
888 | # CONFIG_RTC_DRV_M48T86 is not set | 937 | # CONFIG_RTC_DRV_M48T86 is not set |
938 | # CONFIG_RTC_DRV_M48T35 is not set | ||
889 | # CONFIG_RTC_DRV_M48T59 is not set | 939 | # CONFIG_RTC_DRV_M48T59 is not set |
940 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
890 | # CONFIG_RTC_DRV_V3020 is not set | 941 | # CONFIG_RTC_DRV_V3020 is not set |
891 | 942 | ||
892 | # | 943 | # |
893 | # on-CPU RTC drivers | 944 | # on-CPU RTC drivers |
894 | # | 945 | # |
946 | # CONFIG_RTC_DRV_PPC is not set | ||
895 | # CONFIG_DMADEVICES is not set | 947 | # CONFIG_DMADEVICES is not set |
896 | # CONFIG_UIO is not set | 948 | # CONFIG_UIO is not set |
949 | # CONFIG_STAGING is not set | ||
950 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
897 | 951 | ||
898 | # | 952 | # |
899 | # File systems | 953 | # File systems |
@@ -905,12 +959,13 @@ CONFIG_EXT3_FS=y | |||
905 | CONFIG_EXT3_FS_XATTR=y | 959 | CONFIG_EXT3_FS_XATTR=y |
906 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 960 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
907 | # CONFIG_EXT3_FS_SECURITY is not set | 961 | # CONFIG_EXT3_FS_SECURITY is not set |
908 | # CONFIG_EXT4DEV_FS is not set | 962 | # CONFIG_EXT4_FS is not set |
909 | CONFIG_JBD=y | 963 | CONFIG_JBD=y |
910 | CONFIG_FS_MBCACHE=y | 964 | CONFIG_FS_MBCACHE=y |
911 | # CONFIG_REISERFS_FS is not set | 965 | # CONFIG_REISERFS_FS is not set |
912 | # CONFIG_JFS_FS is not set | 966 | # CONFIG_JFS_FS is not set |
913 | # CONFIG_FS_POSIX_ACL is not set | 967 | # CONFIG_FS_POSIX_ACL is not set |
968 | CONFIG_FILE_LOCKING=y | ||
914 | # CONFIG_XFS_FS is not set | 969 | # CONFIG_XFS_FS is not set |
915 | # CONFIG_OCFS2_FS is not set | 970 | # CONFIG_OCFS2_FS is not set |
916 | CONFIG_DNOTIFY=y | 971 | CONFIG_DNOTIFY=y |
@@ -943,6 +998,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
943 | CONFIG_PROC_FS=y | 998 | CONFIG_PROC_FS=y |
944 | CONFIG_PROC_KCORE=y | 999 | CONFIG_PROC_KCORE=y |
945 | CONFIG_PROC_SYSCTL=y | 1000 | CONFIG_PROC_SYSCTL=y |
1001 | CONFIG_PROC_PAGE_MONITOR=y | ||
946 | CONFIG_SYSFS=y | 1002 | CONFIG_SYSFS=y |
947 | CONFIG_TMPFS=y | 1003 | CONFIG_TMPFS=y |
948 | # CONFIG_TMPFS_POSIX_ACL is not set | 1004 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -973,6 +1029,7 @@ CONFIG_JFFS2_RTIME=y | |||
973 | CONFIG_CRAMFS=y | 1029 | CONFIG_CRAMFS=y |
974 | # CONFIG_VXFS_FS is not set | 1030 | # CONFIG_VXFS_FS is not set |
975 | # CONFIG_MINIX_FS is not set | 1031 | # CONFIG_MINIX_FS is not set |
1032 | # CONFIG_OMFS_FS is not set | ||
976 | # CONFIG_HPFS_FS is not set | 1033 | # CONFIG_HPFS_FS is not set |
977 | # CONFIG_QNX4FS_FS is not set | 1034 | # CONFIG_QNX4FS_FS is not set |
978 | # CONFIG_ROMFS_FS is not set | 1035 | # CONFIG_ROMFS_FS is not set |
@@ -983,14 +1040,14 @@ CONFIG_NFS_FS=y | |||
983 | CONFIG_NFS_V3=y | 1040 | CONFIG_NFS_V3=y |
984 | # CONFIG_NFS_V3_ACL is not set | 1041 | # CONFIG_NFS_V3_ACL is not set |
985 | CONFIG_NFS_V4=y | 1042 | CONFIG_NFS_V4=y |
986 | # CONFIG_NFSD is not set | ||
987 | CONFIG_ROOT_NFS=y | 1043 | CONFIG_ROOT_NFS=y |
1044 | # CONFIG_NFSD is not set | ||
988 | CONFIG_LOCKD=y | 1045 | CONFIG_LOCKD=y |
989 | CONFIG_LOCKD_V4=y | 1046 | CONFIG_LOCKD_V4=y |
990 | CONFIG_NFS_COMMON=y | 1047 | CONFIG_NFS_COMMON=y |
991 | CONFIG_SUNRPC=y | 1048 | CONFIG_SUNRPC=y |
992 | CONFIG_SUNRPC_GSS=y | 1049 | CONFIG_SUNRPC_GSS=y |
993 | # CONFIG_SUNRPC_BIND34 is not set | 1050 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
994 | CONFIG_RPCSEC_GSS_KRB5=y | 1051 | CONFIG_RPCSEC_GSS_KRB5=y |
995 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1052 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
996 | # CONFIG_SMB_FS is not set | 1053 | # CONFIG_SMB_FS is not set |
@@ -1066,9 +1123,9 @@ CONFIG_NLS_ISO8859_1=y | |||
1066 | # Library routines | 1123 | # Library routines |
1067 | # | 1124 | # |
1068 | CONFIG_BITREVERSE=y | 1125 | CONFIG_BITREVERSE=y |
1069 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
1070 | # CONFIG_CRC_CCITT is not set | 1126 | # CONFIG_CRC_CCITT is not set |
1071 | # CONFIG_CRC16 is not set | 1127 | # CONFIG_CRC16 is not set |
1128 | # CONFIG_CRC_T10DIF is not set | ||
1072 | # CONFIG_CRC_ITU_T is not set | 1129 | # CONFIG_CRC_ITU_T is not set |
1073 | CONFIG_CRC32=y | 1130 | CONFIG_CRC32=y |
1074 | # CONFIG_CRC7 is not set | 1131 | # CONFIG_CRC7 is not set |
@@ -1095,9 +1152,12 @@ CONFIG_FRAME_WARN=1024 | |||
1095 | CONFIG_DEBUG_KERNEL=y | 1152 | CONFIG_DEBUG_KERNEL=y |
1096 | # CONFIG_DEBUG_SHIRQ is not set | 1153 | # CONFIG_DEBUG_SHIRQ is not set |
1097 | CONFIG_DETECT_SOFTLOCKUP=y | 1154 | CONFIG_DETECT_SOFTLOCKUP=y |
1155 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1156 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1098 | CONFIG_SCHED_DEBUG=y | 1157 | CONFIG_SCHED_DEBUG=y |
1099 | # CONFIG_SCHEDSTATS is not set | 1158 | # CONFIG_SCHEDSTATS is not set |
1100 | # CONFIG_TIMER_STATS is not set | 1159 | # CONFIG_TIMER_STATS is not set |
1160 | # CONFIG_DEBUG_OBJECTS is not set | ||
1101 | # CONFIG_SLUB_DEBUG_ON is not set | 1161 | # CONFIG_SLUB_DEBUG_ON is not set |
1102 | # CONFIG_SLUB_STATS is not set | 1162 | # CONFIG_SLUB_STATS is not set |
1103 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1163 | # CONFIG_DEBUG_RT_MUTEXES is not set |
@@ -1111,17 +1171,37 @@ CONFIG_SCHED_DEBUG=y | |||
1111 | CONFIG_DEBUG_INFO=y | 1171 | CONFIG_DEBUG_INFO=y |
1112 | # CONFIG_DEBUG_VM is not set | 1172 | # CONFIG_DEBUG_VM is not set |
1113 | # CONFIG_DEBUG_WRITECOUNT is not set | 1173 | # CONFIG_DEBUG_WRITECOUNT is not set |
1174 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1114 | # CONFIG_DEBUG_LIST is not set | 1175 | # CONFIG_DEBUG_LIST is not set |
1115 | # CONFIG_DEBUG_SG is not set | 1176 | # CONFIG_DEBUG_SG is not set |
1116 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1177 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1117 | # CONFIG_RCU_TORTURE_TEST is not set | 1178 | # CONFIG_RCU_TORTURE_TEST is not set |
1179 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1118 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1180 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1181 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1119 | # CONFIG_FAULT_INJECTION is not set | 1182 | # CONFIG_FAULT_INJECTION is not set |
1183 | # CONFIG_LATENCYTOP is not set | ||
1184 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1185 | |||
1186 | # | ||
1187 | # Tracers | ||
1188 | # | ||
1189 | # CONFIG_FUNCTION_TRACER is not set | ||
1190 | # CONFIG_SCHED_TRACER is not set | ||
1191 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1192 | # CONFIG_BOOT_TRACER is not set | ||
1193 | # CONFIG_STACK_TRACER is not set | ||
1194 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1120 | # CONFIG_SAMPLES is not set | 1195 | # CONFIG_SAMPLES is not set |
1196 | CONFIG_HAVE_ARCH_KGDB=y | ||
1197 | # CONFIG_KGDB is not set | ||
1121 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1198 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1122 | # CONFIG_DEBUG_STACK_USAGE is not set | 1199 | # CONFIG_DEBUG_STACK_USAGE is not set |
1123 | # CONFIG_DEBUG_PAGEALLOC is not set | 1200 | # CONFIG_DEBUG_PAGEALLOC is not set |
1124 | # CONFIG_DEBUGGER is not set | 1201 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1202 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
1203 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
1204 | # CONFIG_XMON is not set | ||
1125 | # CONFIG_IRQSTACKS is not set | 1205 | # CONFIG_IRQSTACKS is not set |
1126 | # CONFIG_BDI_SWITCH is not set | 1206 | # CONFIG_BDI_SWITCH is not set |
1127 | # CONFIG_BOOTX_TEXT is not set | 1207 | # CONFIG_BOOTX_TEXT is not set |
@@ -1132,14 +1212,19 @@ CONFIG_DEBUG_INFO=y | |||
1132 | # | 1212 | # |
1133 | # CONFIG_KEYS is not set | 1213 | # CONFIG_KEYS is not set |
1134 | # CONFIG_SECURITY is not set | 1214 | # CONFIG_SECURITY is not set |
1215 | # CONFIG_SECURITYFS is not set | ||
1135 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1216 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1136 | CONFIG_CRYPTO=y | 1217 | CONFIG_CRYPTO=y |
1137 | 1218 | ||
1138 | # | 1219 | # |
1139 | # Crypto core or helper | 1220 | # Crypto core or helper |
1140 | # | 1221 | # |
1222 | # CONFIG_CRYPTO_FIPS is not set | ||
1141 | CONFIG_CRYPTO_ALGAPI=y | 1223 | CONFIG_CRYPTO_ALGAPI=y |
1224 | CONFIG_CRYPTO_AEAD=y | ||
1142 | CONFIG_CRYPTO_BLKCIPHER=y | 1225 | CONFIG_CRYPTO_BLKCIPHER=y |
1226 | CONFIG_CRYPTO_HASH=y | ||
1227 | CONFIG_CRYPTO_RNG=y | ||
1143 | CONFIG_CRYPTO_MANAGER=y | 1228 | CONFIG_CRYPTO_MANAGER=y |
1144 | # CONFIG_CRYPTO_GF128MUL is not set | 1229 | # CONFIG_CRYPTO_GF128MUL is not set |
1145 | # CONFIG_CRYPTO_NULL is not set | 1230 | # CONFIG_CRYPTO_NULL is not set |
@@ -1178,6 +1263,10 @@ CONFIG_CRYPTO_PCBC=y | |||
1178 | # CONFIG_CRYPTO_MD4 is not set | 1263 | # CONFIG_CRYPTO_MD4 is not set |
1179 | CONFIG_CRYPTO_MD5=y | 1264 | CONFIG_CRYPTO_MD5=y |
1180 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1265 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1266 | # CONFIG_CRYPTO_RMD128 is not set | ||
1267 | # CONFIG_CRYPTO_RMD160 is not set | ||
1268 | # CONFIG_CRYPTO_RMD256 is not set | ||
1269 | # CONFIG_CRYPTO_RMD320 is not set | ||
1181 | # CONFIG_CRYPTO_SHA1 is not set | 1270 | # CONFIG_CRYPTO_SHA1 is not set |
1182 | # CONFIG_CRYPTO_SHA256 is not set | 1271 | # CONFIG_CRYPTO_SHA256 is not set |
1183 | # CONFIG_CRYPTO_SHA512 is not set | 1272 | # CONFIG_CRYPTO_SHA512 is not set |
@@ -1208,6 +1297,11 @@ CONFIG_CRYPTO_DES=y | |||
1208 | # | 1297 | # |
1209 | # CONFIG_CRYPTO_DEFLATE is not set | 1298 | # CONFIG_CRYPTO_DEFLATE is not set |
1210 | # CONFIG_CRYPTO_LZO is not set | 1299 | # CONFIG_CRYPTO_LZO is not set |
1300 | |||
1301 | # | ||
1302 | # Random Number Generation | ||
1303 | # | ||
1304 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1211 | CONFIG_CRYPTO_HW=y | 1305 | CONFIG_CRYPTO_HW=y |
1212 | CONFIG_PPC_CLOCK=y | 1306 | CONFIG_PPC_CLOCK=y |
1213 | CONFIG_PPC_LIB_RHEAP=y | 1307 | CONFIG_PPC_LIB_RHEAP=y |
diff --git a/arch/powerpc/configs/86xx/gef_sbc610_defconfig b/arch/powerpc/configs/86xx/gef_sbc610_defconfig index 2da13e00a807..07ccaf89f379 100644 --- a/arch/powerpc/configs/86xx/gef_sbc610_defconfig +++ b/arch/powerpc/configs/86xx/gef_sbc610_defconfig | |||
@@ -838,7 +838,7 @@ CONFIG_PHYLIB=y | |||
838 | # | 838 | # |
839 | # MII PHY device drivers | 839 | # MII PHY device drivers |
840 | # | 840 | # |
841 | CONFIG_MARVELL_PHY=y | 841 | # CONFIG_MARVELL_PHY is not set |
842 | # CONFIG_DAVICOM_PHY is not set | 842 | # CONFIG_DAVICOM_PHY is not set |
843 | # CONFIG_QSEMI_PHY is not set | 843 | # CONFIG_QSEMI_PHY is not set |
844 | # CONFIG_LXT_PHY is not set | 844 | # CONFIG_LXT_PHY is not set |
diff --git a/arch/powerpc/configs/mpc5200_defconfig b/arch/powerpc/configs/mpc5200_defconfig index 740c9f2b7de6..15c5604d0b26 100644 --- a/arch/powerpc/configs/mpc5200_defconfig +++ b/arch/powerpc/configs/mpc5200_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.24-rc6 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Fri Jan 18 14:19:54 2008 | 4 | # Thu Nov 13 02:09:07 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -22,14 +22,18 @@ CONFIG_PPC_STD_MMU_32=y | |||
22 | # CONFIG_SMP is not set | 22 | # CONFIG_SMP is not set |
23 | CONFIG_PPC32=y | 23 | CONFIG_PPC32=y |
24 | CONFIG_WORD_SIZE=32 | 24 | CONFIG_WORD_SIZE=32 |
25 | CONFIG_PPC_MERGE=y | 25 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set |
26 | CONFIG_MMU=y | 26 | CONFIG_MMU=y |
27 | CONFIG_GENERIC_CMOS_UPDATE=y | 27 | CONFIG_GENERIC_CMOS_UPDATE=y |
28 | CONFIG_GENERIC_TIME=y | 28 | CONFIG_GENERIC_TIME=y |
29 | CONFIG_GENERIC_TIME_VSYSCALL=y | 29 | CONFIG_GENERIC_TIME_VSYSCALL=y |
30 | CONFIG_GENERIC_CLOCKEVENTS=y | 30 | CONFIG_GENERIC_CLOCKEVENTS=y |
31 | CONFIG_GENERIC_HARDIRQS=y | 31 | CONFIG_GENERIC_HARDIRQS=y |
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
32 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
34 | CONFIG_STACKTRACE_SUPPORT=y | ||
35 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
36 | CONFIG_LOCKDEP_SUPPORT=y | ||
33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 37 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
34 | CONFIG_ARCH_HAS_ILOG2_U32=y | 38 | CONFIG_ARCH_HAS_ILOG2_U32=y |
35 | CONFIG_GENERIC_HWEIGHT=y | 39 | CONFIG_GENERIC_HWEIGHT=y |
@@ -47,7 +51,8 @@ CONFIG_OF=y | |||
47 | # CONFIG_GENERIC_TBSYNC is not set | 51 | # CONFIG_GENERIC_TBSYNC is not set |
48 | CONFIG_AUDIT_ARCH=y | 52 | CONFIG_AUDIT_ARCH=y |
49 | CONFIG_GENERIC_BUG=y | 53 | CONFIG_GENERIC_BUG=y |
50 | # CONFIG_DEFAULT_UIMAGE is not set | 54 | CONFIG_DEFAULT_UIMAGE=y |
55 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
51 | # CONFIG_PPC_DCR_NATIVE is not set | 56 | # CONFIG_PPC_DCR_NATIVE is not set |
52 | # CONFIG_PPC_DCR_MMIO is not set | 57 | # CONFIG_PPC_DCR_MMIO is not set |
53 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 58 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
@@ -66,17 +71,15 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
66 | # CONFIG_POSIX_MQUEUE is not set | 71 | # CONFIG_POSIX_MQUEUE is not set |
67 | # CONFIG_BSD_PROCESS_ACCT is not set | 72 | # CONFIG_BSD_PROCESS_ACCT is not set |
68 | # CONFIG_TASKSTATS is not set | 73 | # CONFIG_TASKSTATS is not set |
69 | # CONFIG_USER_NS is not set | ||
70 | # CONFIG_PID_NS is not set | ||
71 | # CONFIG_AUDIT is not set | 74 | # CONFIG_AUDIT is not set |
72 | # CONFIG_IKCONFIG is not set | 75 | # CONFIG_IKCONFIG is not set |
73 | CONFIG_LOG_BUF_SHIFT=14 | 76 | CONFIG_LOG_BUF_SHIFT=14 |
74 | # CONFIG_CGROUPS is not set | 77 | # CONFIG_CGROUPS is not set |
75 | CONFIG_FAIR_GROUP_SCHED=y | 78 | # CONFIG_GROUP_SCHED is not set |
76 | CONFIG_FAIR_USER_SCHED=y | ||
77 | # CONFIG_FAIR_CGROUP_SCHED is not set | ||
78 | CONFIG_SYSFS_DEPRECATED=y | 79 | CONFIG_SYSFS_DEPRECATED=y |
80 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
79 | # CONFIG_RELAY is not set | 81 | # CONFIG_RELAY is not set |
82 | # CONFIG_NAMESPACES is not set | ||
80 | CONFIG_BLK_DEV_INITRD=y | 83 | CONFIG_BLK_DEV_INITRD=y |
81 | CONFIG_INITRAMFS_SOURCE="" | 84 | CONFIG_INITRAMFS_SOURCE="" |
82 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 85 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
@@ -88,32 +91,49 @@ CONFIG_HOTPLUG=y | |||
88 | CONFIG_PRINTK=y | 91 | CONFIG_PRINTK=y |
89 | CONFIG_BUG=y | 92 | CONFIG_BUG=y |
90 | CONFIG_ELF_CORE=y | 93 | CONFIG_ELF_CORE=y |
94 | CONFIG_COMPAT_BRK=y | ||
91 | CONFIG_BASE_FULL=y | 95 | CONFIG_BASE_FULL=y |
92 | CONFIG_FUTEX=y | 96 | CONFIG_FUTEX=y |
93 | CONFIG_ANON_INODES=y | 97 | CONFIG_ANON_INODES=y |
94 | # CONFIG_EPOLL is not set | 98 | # CONFIG_EPOLL is not set |
95 | CONFIG_SIGNALFD=y | 99 | CONFIG_SIGNALFD=y |
100 | CONFIG_TIMERFD=y | ||
96 | CONFIG_EVENTFD=y | 101 | CONFIG_EVENTFD=y |
97 | CONFIG_SHMEM=y | 102 | CONFIG_SHMEM=y |
103 | CONFIG_AIO=y | ||
98 | CONFIG_VM_EVENT_COUNTERS=y | 104 | CONFIG_VM_EVENT_COUNTERS=y |
105 | CONFIG_PCI_QUIRKS=y | ||
99 | CONFIG_SLUB_DEBUG=y | 106 | CONFIG_SLUB_DEBUG=y |
100 | # CONFIG_SLAB is not set | 107 | # CONFIG_SLAB is not set |
101 | CONFIG_SLUB=y | 108 | CONFIG_SLUB=y |
102 | # CONFIG_SLOB is not set | 109 | # CONFIG_SLOB is not set |
110 | # CONFIG_PROFILING is not set | ||
111 | # CONFIG_MARKERS is not set | ||
112 | CONFIG_HAVE_OPROFILE=y | ||
113 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | ||
114 | CONFIG_HAVE_IOREMAP_PROT=y | ||
115 | CONFIG_HAVE_KPROBES=y | ||
116 | CONFIG_HAVE_KRETPROBES=y | ||
117 | CONFIG_HAVE_ARCH_TRACEHOOK=y | ||
118 | CONFIG_HAVE_CLK=y | ||
119 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | ||
120 | CONFIG_SLABINFO=y | ||
103 | CONFIG_RT_MUTEXES=y | 121 | CONFIG_RT_MUTEXES=y |
104 | # CONFIG_TINY_SHMEM is not set | 122 | # CONFIG_TINY_SHMEM is not set |
105 | CONFIG_BASE_SMALL=0 | 123 | CONFIG_BASE_SMALL=0 |
106 | CONFIG_MODULES=y | 124 | CONFIG_MODULES=y |
125 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
107 | CONFIG_MODULE_UNLOAD=y | 126 | CONFIG_MODULE_UNLOAD=y |
108 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 127 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
109 | # CONFIG_MODVERSIONS is not set | 128 | # CONFIG_MODVERSIONS is not set |
110 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 129 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
111 | # CONFIG_KMOD is not set | 130 | CONFIG_KMOD=y |
112 | CONFIG_BLOCK=y | 131 | CONFIG_BLOCK=y |
113 | # CONFIG_LBD is not set | 132 | # CONFIG_LBD is not set |
114 | # CONFIG_BLK_DEV_IO_TRACE is not set | 133 | # CONFIG_BLK_DEV_IO_TRACE is not set |
115 | # CONFIG_LSF is not set | 134 | # CONFIG_LSF is not set |
116 | # CONFIG_BLK_DEV_BSG is not set | 135 | # CONFIG_BLK_DEV_BSG is not set |
136 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
117 | 137 | ||
118 | # | 138 | # |
119 | # IO Schedulers | 139 | # IO Schedulers |
@@ -127,29 +147,34 @@ CONFIG_DEFAULT_AS=y | |||
127 | # CONFIG_DEFAULT_CFQ is not set | 147 | # CONFIG_DEFAULT_CFQ is not set |
128 | # CONFIG_DEFAULT_NOOP is not set | 148 | # CONFIG_DEFAULT_NOOP is not set |
129 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 149 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
150 | CONFIG_CLASSIC_RCU=y | ||
151 | CONFIG_FREEZER=y | ||
130 | 152 | ||
131 | # | 153 | # |
132 | # Platform support | 154 | # Platform support |
133 | # | 155 | # |
134 | CONFIG_PPC_MULTIPLATFORM=y | 156 | CONFIG_PPC_MULTIPLATFORM=y |
135 | # CONFIG_PPC_82xx is not set | ||
136 | # CONFIG_PPC_83xx is not set | ||
137 | # CONFIG_PPC_86xx is not set | ||
138 | CONFIG_CLASSIC32=y | 157 | CONFIG_CLASSIC32=y |
139 | # CONFIG_PPC_CHRP is not set | 158 | # CONFIG_PPC_CHRP is not set |
159 | # CONFIG_MPC5121_ADS is not set | ||
160 | # CONFIG_MPC5121_GENERIC is not set | ||
140 | CONFIG_PPC_MPC52xx=y | 161 | CONFIG_PPC_MPC52xx=y |
141 | CONFIG_PPC_MPC5200=y | ||
142 | CONFIG_PPC_MPC5200_BUGFIX=y | ||
143 | CONFIG_PPC_MPC5200_SIMPLE=y | 162 | CONFIG_PPC_MPC5200_SIMPLE=y |
144 | CONFIG_PPC_EFIKA=y | 163 | CONFIG_PPC_EFIKA=y |
145 | CONFIG_PPC_LITE5200=y | 164 | CONFIG_PPC_LITE5200=y |
165 | CONFIG_PPC_MPC5200_BUGFIX=y | ||
166 | # CONFIG_PPC_MPC5200_GPIO is not set | ||
146 | # CONFIG_PPC_PMAC is not set | 167 | # CONFIG_PPC_PMAC is not set |
147 | # CONFIG_PPC_CELL is not set | 168 | # CONFIG_PPC_CELL is not set |
148 | # CONFIG_PPC_CELL_NATIVE is not set | 169 | # CONFIG_PPC_CELL_NATIVE is not set |
170 | # CONFIG_PPC_82xx is not set | ||
149 | # CONFIG_PQ2ADS is not set | 171 | # CONFIG_PQ2ADS is not set |
172 | # CONFIG_PPC_83xx is not set | ||
173 | # CONFIG_PPC_86xx is not set | ||
150 | # CONFIG_EMBEDDED6xx is not set | 174 | # CONFIG_EMBEDDED6xx is not set |
151 | CONFIG_PPC_NATIVE=y | 175 | CONFIG_PPC_NATIVE=y |
152 | # CONFIG_UDBG_RTAS_CONSOLE is not set | 176 | # CONFIG_UDBG_RTAS_CONSOLE is not set |
177 | # CONFIG_IPIC is not set | ||
153 | # CONFIG_MPIC is not set | 178 | # CONFIG_MPIC is not set |
154 | # CONFIG_MPIC_WEIRD is not set | 179 | # CONFIG_MPIC_WEIRD is not set |
155 | # CONFIG_PPC_I8259 is not set | 180 | # CONFIG_PPC_I8259 is not set |
@@ -163,7 +188,6 @@ CONFIG_RTAS_PROC=y | |||
163 | # CONFIG_GENERIC_IOMAP is not set | 188 | # CONFIG_GENERIC_IOMAP is not set |
164 | # CONFIG_CPU_FREQ is not set | 189 | # CONFIG_CPU_FREQ is not set |
165 | # CONFIG_TAU is not set | 190 | # CONFIG_TAU is not set |
166 | # CONFIG_CPM2 is not set | ||
167 | # CONFIG_FSL_ULI1575 is not set | 191 | # CONFIG_FSL_ULI1575 is not set |
168 | CONFIG_PPC_BESTCOMM=y | 192 | CONFIG_PPC_BESTCOMM=y |
169 | CONFIG_PPC_BESTCOMM_ATA=y | 193 | CONFIG_PPC_BESTCOMM_ATA=y |
@@ -183,12 +207,18 @@ CONFIG_HZ_250=y | |||
183 | # CONFIG_HZ_300 is not set | 207 | # CONFIG_HZ_300 is not set |
184 | # CONFIG_HZ_1000 is not set | 208 | # CONFIG_HZ_1000 is not set |
185 | CONFIG_HZ=250 | 209 | CONFIG_HZ=250 |
210 | CONFIG_SCHED_HRTICK=y | ||
186 | CONFIG_PREEMPT_NONE=y | 211 | CONFIG_PREEMPT_NONE=y |
187 | # CONFIG_PREEMPT_VOLUNTARY is not set | 212 | # CONFIG_PREEMPT_VOLUNTARY is not set |
188 | # CONFIG_PREEMPT is not set | 213 | # CONFIG_PREEMPT is not set |
189 | CONFIG_BINFMT_ELF=y | 214 | CONFIG_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 |
218 | # CONFIG_IOMMU_HELPER is not set | ||
191 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 219 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
220 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
221 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
192 | # CONFIG_KEXEC is not set | 222 | # CONFIG_KEXEC is not set |
193 | CONFIG_ARCH_FLATMEM_ENABLE=y | 223 | CONFIG_ARCH_FLATMEM_ENABLE=y |
194 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 224 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -198,26 +228,25 @@ CONFIG_FLATMEM_MANUAL=y | |||
198 | # CONFIG_SPARSEMEM_MANUAL is not set | 228 | # CONFIG_SPARSEMEM_MANUAL is not set |
199 | CONFIG_FLATMEM=y | 229 | CONFIG_FLATMEM=y |
200 | CONFIG_FLAT_NODE_MEM_MAP=y | 230 | CONFIG_FLAT_NODE_MEM_MAP=y |
201 | # CONFIG_SPARSEMEM_STATIC is not set | 231 | CONFIG_PAGEFLAGS_EXTENDED=y |
202 | # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set | ||
203 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 232 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
233 | CONFIG_MIGRATION=y | ||
204 | # CONFIG_RESOURCES_64BIT is not set | 234 | # CONFIG_RESOURCES_64BIT is not set |
235 | # CONFIG_PHYS_ADDR_T_64BIT is not set | ||
205 | CONFIG_ZONE_DMA_FLAG=1 | 236 | CONFIG_ZONE_DMA_FLAG=1 |
206 | CONFIG_BOUNCE=y | 237 | CONFIG_BOUNCE=y |
207 | CONFIG_VIRT_TO_BUS=y | 238 | CONFIG_VIRT_TO_BUS=y |
239 | CONFIG_UNEVICTABLE_LRU=y | ||
240 | CONFIG_FORCE_MAX_ZONEORDER=11 | ||
208 | CONFIG_PROC_DEVICETREE=y | 241 | CONFIG_PROC_DEVICETREE=y |
209 | # CONFIG_CMDLINE_BOOL is not set | 242 | # CONFIG_CMDLINE_BOOL is not set |
243 | CONFIG_EXTRA_TARGETS="" | ||
210 | CONFIG_PM=y | 244 | CONFIG_PM=y |
211 | # CONFIG_PM_LEGACY is not set | ||
212 | # CONFIG_PM_DEBUG is not set | 245 | # CONFIG_PM_DEBUG is not set |
213 | CONFIG_PM_SLEEP=y | 246 | CONFIG_PM_SLEEP=y |
214 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
215 | CONFIG_SUSPEND=y | 247 | CONFIG_SUSPEND=y |
216 | CONFIG_HIBERNATION_UP_POSSIBLE=y | 248 | CONFIG_SUSPEND_FREEZER=y |
217 | # CONFIG_HIBERNATION is not set | ||
218 | CONFIG_SECCOMP=y | 249 | CONFIG_SECCOMP=y |
219 | CONFIG_WANT_DEVICE_TREE=y | ||
220 | CONFIG_DEVICE_TREE="" | ||
221 | CONFIG_ISA_DMA_API=y | 250 | CONFIG_ISA_DMA_API=y |
222 | 251 | ||
223 | # | 252 | # |
@@ -226,7 +255,7 @@ CONFIG_ISA_DMA_API=y | |||
226 | CONFIG_ZONE_DMA=y | 255 | CONFIG_ZONE_DMA=y |
227 | CONFIG_GENERIC_ISA_DMA=y | 256 | CONFIG_GENERIC_ISA_DMA=y |
228 | # CONFIG_PPC_INDIRECT_PCI is not set | 257 | # CONFIG_PPC_INDIRECT_PCI is not set |
229 | CONFIG_FSL_SOC=y | 258 | CONFIG_PPC_PCI_CHOICE=y |
230 | CONFIG_PCI=y | 259 | CONFIG_PCI=y |
231 | CONFIG_PCI_DOMAINS=y | 260 | CONFIG_PCI_DOMAINS=y |
232 | CONFIG_PCI_SYSCALL=y | 261 | CONFIG_PCI_SYSCALL=y |
@@ -237,6 +266,7 @@ CONFIG_PCI_LEGACY=y | |||
237 | # CONFIG_PCI_DEBUG is not set | 266 | # CONFIG_PCI_DEBUG is not set |
238 | # CONFIG_PCCARD is not set | 267 | # CONFIG_PCCARD is not set |
239 | # CONFIG_HOTPLUG_PCI is not set | 268 | # CONFIG_HOTPLUG_PCI is not set |
269 | # CONFIG_HAS_RAPIDIO is not set | ||
240 | 270 | ||
241 | # | 271 | # |
242 | # Advanced setup | 272 | # Advanced setup |
@@ -246,15 +276,11 @@ CONFIG_PCI_LEGACY=y | |||
246 | # | 276 | # |
247 | # Default settings for advanced configuration options are used | 277 | # Default settings for advanced configuration options are used |
248 | # | 278 | # |
249 | CONFIG_HIGHMEM_START=0xfe000000 | ||
250 | CONFIG_LOWMEM_SIZE=0x30000000 | 279 | CONFIG_LOWMEM_SIZE=0x30000000 |
280 | CONFIG_PAGE_OFFSET=0xc0000000 | ||
251 | CONFIG_KERNEL_START=0xc0000000 | 281 | CONFIG_KERNEL_START=0xc0000000 |
282 | CONFIG_PHYSICAL_START=0x00000000 | ||
252 | CONFIG_TASK_SIZE=0xc0000000 | 283 | CONFIG_TASK_SIZE=0xc0000000 |
253 | CONFIG_BOOT_LOAD=0x00800000 | ||
254 | |||
255 | # | ||
256 | # Networking | ||
257 | # | ||
258 | CONFIG_NET=y | 284 | CONFIG_NET=y |
259 | 285 | ||
260 | # | 286 | # |
@@ -267,6 +293,7 @@ CONFIG_XFRM=y | |||
267 | CONFIG_XFRM_USER=m | 293 | CONFIG_XFRM_USER=m |
268 | # CONFIG_XFRM_SUB_POLICY is not set | 294 | # CONFIG_XFRM_SUB_POLICY is not set |
269 | # CONFIG_XFRM_MIGRATE is not set | 295 | # CONFIG_XFRM_MIGRATE is not set |
296 | # CONFIG_XFRM_STATISTICS is not set | ||
270 | # CONFIG_NET_KEY is not set | 297 | # CONFIG_NET_KEY is not set |
271 | CONFIG_INET=y | 298 | CONFIG_INET=y |
272 | CONFIG_IP_MULTICAST=y | 299 | CONFIG_IP_MULTICAST=y |
@@ -297,8 +324,6 @@ CONFIG_TCP_CONG_CUBIC=y | |||
297 | CONFIG_DEFAULT_TCP_CONG="cubic" | 324 | CONFIG_DEFAULT_TCP_CONG="cubic" |
298 | # CONFIG_TCP_MD5SIG is not set | 325 | # CONFIG_TCP_MD5SIG is not set |
299 | # CONFIG_IPV6 is not set | 326 | # CONFIG_IPV6 is not set |
300 | # CONFIG_INET6_XFRM_TUNNEL is not set | ||
301 | # CONFIG_INET6_TUNNEL is not set | ||
302 | # CONFIG_NETWORK_SECMARK is not set | 327 | # CONFIG_NETWORK_SECMARK is not set |
303 | # CONFIG_NETFILTER is not set | 328 | # CONFIG_NETFILTER is not set |
304 | # CONFIG_IP_DCCP is not set | 329 | # CONFIG_IP_DCCP is not set |
@@ -306,6 +331,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
306 | # CONFIG_TIPC is not set | 331 | # CONFIG_TIPC is not set |
307 | # CONFIG_ATM is not set | 332 | # CONFIG_ATM is not set |
308 | # CONFIG_BRIDGE is not set | 333 | # CONFIG_BRIDGE is not set |
334 | # CONFIG_NET_DSA is not set | ||
309 | # CONFIG_VLAN_8021Q is not set | 335 | # CONFIG_VLAN_8021Q is not set |
310 | # CONFIG_DECNET is not set | 336 | # CONFIG_DECNET is not set |
311 | # CONFIG_LLC2 is not set | 337 | # CONFIG_LLC2 is not set |
@@ -322,17 +348,12 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
322 | # | 348 | # |
323 | # CONFIG_NET_PKTGEN is not set | 349 | # CONFIG_NET_PKTGEN is not set |
324 | # CONFIG_HAMRADIO is not set | 350 | # CONFIG_HAMRADIO is not set |
351 | # CONFIG_CAN is not set | ||
325 | # CONFIG_IRDA is not set | 352 | # CONFIG_IRDA is not set |
326 | # CONFIG_BT is not set | 353 | # CONFIG_BT is not set |
327 | # CONFIG_AF_RXRPC is not set | 354 | # CONFIG_AF_RXRPC is not set |
328 | 355 | # CONFIG_PHONET is not set | |
329 | # | 356 | # CONFIG_WIRELESS is not set |
330 | # Wireless | ||
331 | # | ||
332 | # CONFIG_CFG80211 is not set | ||
333 | # CONFIG_WIRELESS_EXT is not set | ||
334 | # CONFIG_MAC80211 is not set | ||
335 | # CONFIG_IEEE80211 is not set | ||
336 | # CONFIG_RFKILL is not set | 357 | # CONFIG_RFKILL is not set |
337 | # CONFIG_NET_9P is not set | 358 | # CONFIG_NET_9P is not set |
338 | 359 | ||
@@ -357,6 +378,8 @@ CONFIG_MTD_CONCAT=y | |||
357 | CONFIG_MTD_PARTITIONS=y | 378 | CONFIG_MTD_PARTITIONS=y |
358 | # CONFIG_MTD_REDBOOT_PARTS is not set | 379 | # CONFIG_MTD_REDBOOT_PARTS is not set |
359 | CONFIG_MTD_CMDLINE_PARTS=y | 380 | CONFIG_MTD_CMDLINE_PARTS=y |
381 | # CONFIG_MTD_OF_PARTS is not set | ||
382 | # CONFIG_MTD_AR7_PARTS is not set | ||
360 | 383 | ||
361 | # | 384 | # |
362 | # User Modules And Translation Layers | 385 | # User Modules And Translation Layers |
@@ -428,6 +451,7 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
428 | # | 451 | # |
429 | # CONFIG_MTD_UBI is not set | 452 | # CONFIG_MTD_UBI is not set |
430 | CONFIG_OF_DEVICE=y | 453 | CONFIG_OF_DEVICE=y |
454 | CONFIG_OF_I2C=y | ||
431 | # CONFIG_PARPORT is not set | 455 | # CONFIG_PARPORT is not set |
432 | CONFIG_BLK_DEV=y | 456 | CONFIG_BLK_DEV=y |
433 | # CONFIG_BLK_DEV_FD is not set | 457 | # CONFIG_BLK_DEV_FD is not set |
@@ -444,14 +468,20 @@ CONFIG_BLK_DEV_LOOP=y | |||
444 | CONFIG_BLK_DEV_RAM=y | 468 | CONFIG_BLK_DEV_RAM=y |
445 | CONFIG_BLK_DEV_RAM_COUNT=16 | 469 | CONFIG_BLK_DEV_RAM_COUNT=16 |
446 | CONFIG_BLK_DEV_RAM_SIZE=32768 | 470 | CONFIG_BLK_DEV_RAM_SIZE=32768 |
447 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 471 | # CONFIG_BLK_DEV_XIP is not set |
448 | # CONFIG_CDROM_PKTCDVD is not set | 472 | # CONFIG_CDROM_PKTCDVD is not set |
449 | # CONFIG_ATA_OVER_ETH is not set | 473 | # CONFIG_ATA_OVER_ETH is not set |
474 | # CONFIG_BLK_DEV_HD is not set | ||
450 | CONFIG_MISC_DEVICES=y | 475 | CONFIG_MISC_DEVICES=y |
451 | # CONFIG_PHANTOM is not set | 476 | # CONFIG_PHANTOM is not set |
452 | # CONFIG_EEPROM_93CX6 is not set | 477 | # CONFIG_EEPROM_93CX6 is not set |
453 | # CONFIG_SGI_IOC4 is not set | 478 | # CONFIG_SGI_IOC4 is not set |
454 | # CONFIG_TIFM_CORE is not set | 479 | # CONFIG_TIFM_CORE is not set |
480 | # CONFIG_ICS932S401 is not set | ||
481 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
482 | # CONFIG_HP_ILO is not set | ||
483 | # CONFIG_C2PORT is not set | ||
484 | CONFIG_HAVE_IDE=y | ||
455 | # CONFIG_IDE is not set | 485 | # CONFIG_IDE is not set |
456 | 486 | ||
457 | # | 487 | # |
@@ -516,6 +546,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
516 | # CONFIG_SCSI_IPS is not set | 546 | # CONFIG_SCSI_IPS is not set |
517 | # CONFIG_SCSI_INITIO is not set | 547 | # CONFIG_SCSI_INITIO is not set |
518 | # CONFIG_SCSI_INIA100 is not set | 548 | # CONFIG_SCSI_INIA100 is not set |
549 | # CONFIG_SCSI_MVSAS is not set | ||
519 | # CONFIG_SCSI_STEX is not set | 550 | # CONFIG_SCSI_STEX is not set |
520 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 551 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
521 | # CONFIG_SCSI_IPR is not set | 552 | # CONFIG_SCSI_IPR is not set |
@@ -528,9 +559,13 @@ CONFIG_SCSI_LOWLEVEL=y | |||
528 | # CONFIG_SCSI_NSP32 is not set | 559 | # CONFIG_SCSI_NSP32 is not set |
529 | # CONFIG_SCSI_DEBUG is not set | 560 | # CONFIG_SCSI_DEBUG is not set |
530 | # CONFIG_SCSI_SRP is not set | 561 | # CONFIG_SCSI_SRP is not set |
562 | # CONFIG_SCSI_DH is not set | ||
531 | CONFIG_ATA=y | 563 | CONFIG_ATA=y |
532 | # CONFIG_ATA_NONSTANDARD is not set | 564 | # CONFIG_ATA_NONSTANDARD is not set |
565 | CONFIG_SATA_PMP=y | ||
533 | # CONFIG_SATA_AHCI is not set | 566 | # CONFIG_SATA_AHCI is not set |
567 | # CONFIG_SATA_SIL24 is not set | ||
568 | CONFIG_ATA_SFF=y | ||
534 | # CONFIG_SATA_SVW is not set | 569 | # CONFIG_SATA_SVW is not set |
535 | # CONFIG_ATA_PIIX is not set | 570 | # CONFIG_ATA_PIIX is not set |
536 | # CONFIG_SATA_MV is not set | 571 | # CONFIG_SATA_MV is not set |
@@ -540,7 +575,6 @@ CONFIG_ATA=y | |||
540 | # CONFIG_SATA_PROMISE is not set | 575 | # CONFIG_SATA_PROMISE is not set |
541 | # CONFIG_SATA_SX4 is not set | 576 | # CONFIG_SATA_SX4 is not set |
542 | # CONFIG_SATA_SIL is not set | 577 | # CONFIG_SATA_SIL is not set |
543 | # CONFIG_SATA_SIL24 is not set | ||
544 | # CONFIG_SATA_SIS is not set | 578 | # CONFIG_SATA_SIS is not set |
545 | # CONFIG_SATA_ULI is not set | 579 | # CONFIG_SATA_ULI is not set |
546 | # CONFIG_SATA_VIA is not set | 580 | # CONFIG_SATA_VIA is not set |
@@ -570,6 +604,7 @@ CONFIG_PATA_MPC52xx=y | |||
570 | # CONFIG_PATA_MPIIX is not set | 604 | # CONFIG_PATA_MPIIX is not set |
571 | # CONFIG_PATA_OLDPIIX is not set | 605 | # CONFIG_PATA_OLDPIIX is not set |
572 | # CONFIG_PATA_NETCELL is not set | 606 | # CONFIG_PATA_NETCELL is not set |
607 | # CONFIG_PATA_NINJA32 is not set | ||
573 | # CONFIG_PATA_NS87410 is not set | 608 | # CONFIG_PATA_NS87410 is not set |
574 | # CONFIG_PATA_NS87415 is not set | 609 | # CONFIG_PATA_NS87415 is not set |
575 | # CONFIG_PATA_OPTI is not set | 610 | # CONFIG_PATA_OPTI is not set |
@@ -586,25 +621,28 @@ CONFIG_PATA_MPC52xx=y | |||
586 | # CONFIG_PATA_WINBOND is not set | 621 | # CONFIG_PATA_WINBOND is not set |
587 | CONFIG_PATA_PLATFORM=y | 622 | CONFIG_PATA_PLATFORM=y |
588 | # CONFIG_PATA_OF_PLATFORM is not set | 623 | # CONFIG_PATA_OF_PLATFORM is not set |
624 | # CONFIG_PATA_SCH is not set | ||
589 | # CONFIG_MD is not set | 625 | # CONFIG_MD is not set |
590 | # CONFIG_FUSION is not set | 626 | # CONFIG_FUSION is not set |
591 | 627 | ||
592 | # | 628 | # |
593 | # IEEE 1394 (FireWire) support | 629 | # IEEE 1394 (FireWire) support |
594 | # | 630 | # |
631 | |||
632 | # | ||
633 | # Enable only one of the two stacks, unless you know what you are doing | ||
634 | # | ||
595 | # CONFIG_FIREWIRE is not set | 635 | # CONFIG_FIREWIRE is not set |
596 | # CONFIG_IEEE1394 is not set | 636 | # CONFIG_IEEE1394 is not set |
597 | # CONFIG_I2O is not set | 637 | # CONFIG_I2O is not set |
598 | # CONFIG_MACINTOSH_DRIVERS is not set | 638 | # CONFIG_MACINTOSH_DRIVERS is not set |
599 | CONFIG_NETDEVICES=y | 639 | CONFIG_NETDEVICES=y |
600 | # CONFIG_NETDEVICES_MULTIQUEUE is not set | ||
601 | # CONFIG_DUMMY is not set | 640 | # CONFIG_DUMMY is not set |
602 | # CONFIG_BONDING is not set | 641 | # CONFIG_BONDING is not set |
603 | # CONFIG_MACVLAN is not set | 642 | # CONFIG_MACVLAN is not set |
604 | # CONFIG_EQUALIZER is not set | 643 | # CONFIG_EQUALIZER is not set |
605 | # CONFIG_TUN is not set | 644 | # CONFIG_TUN is not set |
606 | # CONFIG_VETH is not set | 645 | # CONFIG_VETH is not set |
607 | # CONFIG_IP1000 is not set | ||
608 | # CONFIG_ARCNET is not set | 646 | # CONFIG_ARCNET is not set |
609 | CONFIG_PHYLIB=y | 647 | CONFIG_PHYLIB=y |
610 | 648 | ||
@@ -620,6 +658,7 @@ CONFIG_PHYLIB=y | |||
620 | # CONFIG_SMSC_PHY is not set | 658 | # CONFIG_SMSC_PHY is not set |
621 | # CONFIG_BROADCOM_PHY is not set | 659 | # CONFIG_BROADCOM_PHY is not set |
622 | # CONFIG_ICPLUS_PHY is not set | 660 | # CONFIG_ICPLUS_PHY is not set |
661 | # CONFIG_REALTEK_PHY is not set | ||
623 | # CONFIG_FIXED_PHY is not set | 662 | # CONFIG_FIXED_PHY is not set |
624 | # CONFIG_MDIO_BITBANG is not set | 663 | # CONFIG_MDIO_BITBANG is not set |
625 | CONFIG_NET_ETHERNET=y | 664 | CONFIG_NET_ETHERNET=y |
@@ -634,10 +673,14 @@ CONFIG_NET_ETHERNET=y | |||
634 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 673 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
635 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 674 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
636 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 675 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
676 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
677 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
678 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
637 | # CONFIG_NET_PCI is not set | 679 | # CONFIG_NET_PCI is not set |
638 | # CONFIG_B44 is not set | 680 | # CONFIG_B44 is not set |
639 | CONFIG_FEC_MPC52xx=y | 681 | CONFIG_FEC_MPC52xx=y |
640 | CONFIG_FEC_MPC52xx_MDIO=y | 682 | CONFIG_FEC_MPC52xx_MDIO=y |
683 | # CONFIG_ATL2 is not set | ||
641 | # CONFIG_NETDEV_1000 is not set | 684 | # CONFIG_NETDEV_1000 is not set |
642 | # CONFIG_NETDEV_10000 is not set | 685 | # CONFIG_NETDEV_10000 is not set |
643 | # CONFIG_TR is not set | 686 | # CONFIG_TR is not set |
@@ -647,6 +690,7 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
647 | # | 690 | # |
648 | # CONFIG_WLAN_PRE80211 is not set | 691 | # CONFIG_WLAN_PRE80211 is not set |
649 | # CONFIG_WLAN_80211 is not set | 692 | # CONFIG_WLAN_80211 is not set |
693 | # CONFIG_IWLWIFI_LEDS is not set | ||
650 | 694 | ||
651 | # | 695 | # |
652 | # USB Network Adapters | 696 | # USB Network Adapters |
@@ -662,7 +706,6 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
662 | # CONFIG_PPP is not set | 706 | # CONFIG_PPP is not set |
663 | # CONFIG_SLIP is not set | 707 | # CONFIG_SLIP is not set |
664 | # CONFIG_NET_FC is not set | 708 | # CONFIG_NET_FC is not set |
665 | # CONFIG_SHAPER is not set | ||
666 | # CONFIG_NETCONSOLE is not set | 709 | # CONFIG_NETCONSOLE is not set |
667 | # CONFIG_NETPOLL is not set | 710 | # CONFIG_NETPOLL is not set |
668 | # CONFIG_NET_POLL_CONTROLLER is not set | 711 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -672,7 +715,30 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
672 | # | 715 | # |
673 | # Input device support | 716 | # Input device support |
674 | # | 717 | # |
675 | # CONFIG_INPUT is not set | 718 | CONFIG_INPUT=y |
719 | # CONFIG_INPUT_FF_MEMLESS is not set | ||
720 | # CONFIG_INPUT_POLLDEV is not set | ||
721 | |||
722 | # | ||
723 | # Userland interfaces | ||
724 | # | ||
725 | CONFIG_INPUT_MOUSEDEV=y | ||
726 | CONFIG_INPUT_MOUSEDEV_PSAUX=y | ||
727 | CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 | ||
728 | CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | ||
729 | # CONFIG_INPUT_JOYDEV is not set | ||
730 | # CONFIG_INPUT_EVDEV is not set | ||
731 | # CONFIG_INPUT_EVBUG is not set | ||
732 | |||
733 | # | ||
734 | # Input Device Drivers | ||
735 | # | ||
736 | # CONFIG_INPUT_KEYBOARD is not set | ||
737 | # CONFIG_INPUT_MOUSE is not set | ||
738 | # CONFIG_INPUT_JOYSTICK is not set | ||
739 | # CONFIG_INPUT_TABLET is not set | ||
740 | # CONFIG_INPUT_TOUCHSCREEN is not set | ||
741 | # CONFIG_INPUT_MISC is not set | ||
676 | 742 | ||
677 | # | 743 | # |
678 | # Hardware I/O ports | 744 | # Hardware I/O ports |
@@ -683,8 +749,14 @@ CONFIG_FEC_MPC52xx_MDIO=y | |||
683 | # | 749 | # |
684 | # Character devices | 750 | # Character devices |
685 | # | 751 | # |
686 | # CONFIG_VT is not set | 752 | CONFIG_VT=y |
753 | CONFIG_CONSOLE_TRANSLATIONS=y | ||
754 | CONFIG_VT_CONSOLE=y | ||
755 | CONFIG_HW_CONSOLE=y | ||
756 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | ||
757 | CONFIG_DEVKMEM=y | ||
687 | # CONFIG_SERIAL_NONSTANDARD is not set | 758 | # CONFIG_SERIAL_NONSTANDARD is not set |
759 | # CONFIG_NOZOMI is not set | ||
688 | 760 | ||
689 | # | 761 | # |
690 | # Serial drivers | 762 | # Serial drivers |
@@ -718,16 +790,15 @@ CONFIG_DEVPORT=y | |||
718 | CONFIG_I2C=y | 790 | CONFIG_I2C=y |
719 | CONFIG_I2C_BOARDINFO=y | 791 | CONFIG_I2C_BOARDINFO=y |
720 | CONFIG_I2C_CHARDEV=y | 792 | CONFIG_I2C_CHARDEV=y |
793 | CONFIG_I2C_HELPER_AUTO=y | ||
794 | CONFIG_I2C_ALGOBIT=y | ||
721 | 795 | ||
722 | # | 796 | # |
723 | # I2C Algorithms | 797 | # I2C Hardware Bus support |
724 | # | 798 | # |
725 | # CONFIG_I2C_ALGOBIT is not set | ||
726 | # CONFIG_I2C_ALGOPCF is not set | ||
727 | # CONFIG_I2C_ALGOPCA is not set | ||
728 | 799 | ||
729 | # | 800 | # |
730 | # I2C Hardware Bus support | 801 | # PC SMBus host controller drivers |
731 | # | 802 | # |
732 | # CONFIG_I2C_ALI1535 is not set | 803 | # CONFIG_I2C_ALI1535 is not set |
733 | # CONFIG_I2C_ALI1563 is not set | 804 | # CONFIG_I2C_ALI1563 is not set |
@@ -735,52 +806,64 @@ CONFIG_I2C_CHARDEV=y | |||
735 | # CONFIG_I2C_AMD756 is not set | 806 | # CONFIG_I2C_AMD756 is not set |
736 | # CONFIG_I2C_AMD8111 is not set | 807 | # CONFIG_I2C_AMD8111 is not set |
737 | # CONFIG_I2C_I801 is not set | 808 | # CONFIG_I2C_I801 is not set |
738 | # CONFIG_I2C_I810 is not set | 809 | # CONFIG_I2C_ISCH is not set |
739 | # CONFIG_I2C_PIIX4 is not set | 810 | # CONFIG_I2C_PIIX4 is not set |
740 | CONFIG_I2C_MPC=y | ||
741 | # CONFIG_I2C_NFORCE2 is not set | 811 | # CONFIG_I2C_NFORCE2 is not set |
742 | # CONFIG_I2C_OCORES is not set | ||
743 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
744 | # CONFIG_I2C_PROSAVAGE is not set | ||
745 | # CONFIG_I2C_SAVAGE4 is not set | ||
746 | # CONFIG_I2C_SIMTEC is not set | ||
747 | # CONFIG_I2C_SIS5595 is not set | 812 | # CONFIG_I2C_SIS5595 is not set |
748 | # CONFIG_I2C_SIS630 is not set | 813 | # CONFIG_I2C_SIS630 is not set |
749 | # CONFIG_I2C_SIS96X is not set | 814 | # CONFIG_I2C_SIS96X is not set |
750 | # CONFIG_I2C_TAOS_EVM is not set | ||
751 | # CONFIG_I2C_STUB is not set | ||
752 | # CONFIG_I2C_TINY_USB is not set | ||
753 | # CONFIG_I2C_VIA is not set | 815 | # CONFIG_I2C_VIA is not set |
754 | # CONFIG_I2C_VIAPRO is not set | 816 | # CONFIG_I2C_VIAPRO is not set |
817 | |||
818 | # | ||
819 | # I2C system bus drivers (mostly embedded / system-on-chip) | ||
820 | # | ||
821 | CONFIG_I2C_MPC=y | ||
822 | # CONFIG_I2C_OCORES is not set | ||
823 | # CONFIG_I2C_SIMTEC is not set | ||
824 | |||
825 | # | ||
826 | # External I2C/SMBus adapter drivers | ||
827 | # | ||
828 | # CONFIG_I2C_PARPORT_LIGHT is not set | ||
829 | # CONFIG_I2C_TAOS_EVM is not set | ||
830 | # CONFIG_I2C_TINY_USB is not set | ||
831 | |||
832 | # | ||
833 | # Graphics adapter I2C/DDC channel drivers | ||
834 | # | ||
755 | # CONFIG_I2C_VOODOO3 is not set | 835 | # CONFIG_I2C_VOODOO3 is not set |
756 | 836 | ||
757 | # | 837 | # |
838 | # Other I2C/SMBus bus drivers | ||
839 | # | ||
840 | # CONFIG_I2C_PCA_PLATFORM is not set | ||
841 | # CONFIG_I2C_STUB is not set | ||
842 | |||
843 | # | ||
758 | # Miscellaneous I2C Chip support | 844 | # Miscellaneous I2C Chip support |
759 | # | 845 | # |
760 | # CONFIG_SENSORS_DS1337 is not set | ||
761 | # CONFIG_SENSORS_DS1374 is not set | ||
762 | # CONFIG_DS1682 is not set | 846 | # CONFIG_DS1682 is not set |
847 | # CONFIG_AT24 is not set | ||
763 | # CONFIG_SENSORS_EEPROM is not set | 848 | # CONFIG_SENSORS_EEPROM is not set |
764 | # CONFIG_SENSORS_PCF8574 is not set | 849 | # CONFIG_SENSORS_PCF8574 is not set |
850 | # CONFIG_PCF8575 is not set | ||
765 | # CONFIG_SENSORS_PCA9539 is not set | 851 | # CONFIG_SENSORS_PCA9539 is not set |
766 | # CONFIG_SENSORS_PCF8591 is not set | 852 | # CONFIG_SENSORS_PCF8591 is not set |
767 | # CONFIG_SENSORS_M41T00 is not set | ||
768 | # CONFIG_SENSORS_MAX6875 is not set | 853 | # CONFIG_SENSORS_MAX6875 is not set |
769 | # CONFIG_SENSORS_TSL2550 is not set | 854 | # CONFIG_SENSORS_TSL2550 is not set |
770 | # CONFIG_I2C_DEBUG_CORE is not set | 855 | # CONFIG_I2C_DEBUG_CORE is not set |
771 | # CONFIG_I2C_DEBUG_ALGO is not set | 856 | # CONFIG_I2C_DEBUG_ALGO is not set |
772 | # CONFIG_I2C_DEBUG_BUS is not set | 857 | # CONFIG_I2C_DEBUG_BUS is not set |
773 | # CONFIG_I2C_DEBUG_CHIP is not set | 858 | # CONFIG_I2C_DEBUG_CHIP is not set |
774 | |||
775 | # | ||
776 | # SPI support | ||
777 | # | ||
778 | # CONFIG_SPI is not set | 859 | # CONFIG_SPI is not set |
779 | # CONFIG_SPI_MASTER is not set | 860 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
861 | # CONFIG_GPIOLIB is not set | ||
780 | # CONFIG_W1 is not set | 862 | # CONFIG_W1 is not set |
781 | # CONFIG_POWER_SUPPLY is not set | 863 | # CONFIG_POWER_SUPPLY is not set |
782 | CONFIG_HWMON=y | 864 | CONFIG_HWMON=y |
783 | # CONFIG_HWMON_VID is not set | 865 | # CONFIG_HWMON_VID is not set |
866 | # CONFIG_SENSORS_AD7414 is not set | ||
784 | # CONFIG_SENSORS_AD7418 is not set | 867 | # CONFIG_SENSORS_AD7418 is not set |
785 | # CONFIG_SENSORS_ADM1021 is not set | 868 | # CONFIG_SENSORS_ADM1021 is not set |
786 | # CONFIG_SENSORS_ADM1025 is not set | 869 | # CONFIG_SENSORS_ADM1025 is not set |
@@ -788,7 +871,9 @@ CONFIG_HWMON=y | |||
788 | # CONFIG_SENSORS_ADM1029 is not set | 871 | # CONFIG_SENSORS_ADM1029 is not set |
789 | # CONFIG_SENSORS_ADM1031 is not set | 872 | # CONFIG_SENSORS_ADM1031 is not set |
790 | # CONFIG_SENSORS_ADM9240 is not set | 873 | # CONFIG_SENSORS_ADM9240 is not set |
874 | # CONFIG_SENSORS_ADT7462 is not set | ||
791 | # CONFIG_SENSORS_ADT7470 is not set | 875 | # CONFIG_SENSORS_ADT7470 is not set |
876 | # CONFIG_SENSORS_ADT7473 is not set | ||
792 | # CONFIG_SENSORS_ATXP1 is not set | 877 | # CONFIG_SENSORS_ATXP1 is not set |
793 | # CONFIG_SENSORS_DS1621 is not set | 878 | # CONFIG_SENSORS_DS1621 is not set |
794 | # CONFIG_SENSORS_I5K_AMB is not set | 879 | # CONFIG_SENSORS_I5K_AMB is not set |
@@ -818,6 +903,7 @@ CONFIG_HWMON=y | |||
818 | # CONFIG_SENSORS_SMSC47M1 is not set | 903 | # CONFIG_SENSORS_SMSC47M1 is not set |
819 | # CONFIG_SENSORS_SMSC47M192 is not set | 904 | # CONFIG_SENSORS_SMSC47M192 is not set |
820 | # CONFIG_SENSORS_SMSC47B397 is not set | 905 | # CONFIG_SENSORS_SMSC47B397 is not set |
906 | # CONFIG_SENSORS_ADS7828 is not set | ||
821 | # CONFIG_SENSORS_THMC50 is not set | 907 | # CONFIG_SENSORS_THMC50 is not set |
822 | # CONFIG_SENSORS_VIA686A is not set | 908 | # CONFIG_SENSORS_VIA686A is not set |
823 | # CONFIG_SENSORS_VT1211 is not set | 909 | # CONFIG_SENSORS_VT1211 is not set |
@@ -827,9 +913,12 @@ CONFIG_HWMON=y | |||
827 | # CONFIG_SENSORS_W83792D is not set | 913 | # CONFIG_SENSORS_W83792D is not set |
828 | # CONFIG_SENSORS_W83793 is not set | 914 | # CONFIG_SENSORS_W83793 is not set |
829 | # CONFIG_SENSORS_W83L785TS is not set | 915 | # CONFIG_SENSORS_W83L785TS is not set |
916 | # CONFIG_SENSORS_W83L786NG is not set | ||
830 | # CONFIG_SENSORS_W83627HF is not set | 917 | # CONFIG_SENSORS_W83627HF is not set |
831 | # CONFIG_SENSORS_W83627EHF is not set | 918 | # CONFIG_SENSORS_W83627EHF is not set |
832 | # CONFIG_HWMON_DEBUG_CHIP is not set | 919 | # CONFIG_HWMON_DEBUG_CHIP is not set |
920 | # CONFIG_THERMAL is not set | ||
921 | # CONFIG_THERMAL_HWMON is not set | ||
833 | CONFIG_WATCHDOG=y | 922 | CONFIG_WATCHDOG=y |
834 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 923 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
835 | 924 | ||
@@ -837,6 +926,7 @@ CONFIG_WATCHDOG=y | |||
837 | # Watchdog Device Drivers | 926 | # Watchdog Device Drivers |
838 | # | 927 | # |
839 | # CONFIG_SOFT_WATCHDOG is not set | 928 | # CONFIG_SOFT_WATCHDOG is not set |
929 | # CONFIG_ALIM7101_WDT is not set | ||
840 | # CONFIG_MPC5200_WDT is not set | 930 | # CONFIG_MPC5200_WDT is not set |
841 | # CONFIG_WATCHDOG_RTAS is not set | 931 | # CONFIG_WATCHDOG_RTAS is not set |
842 | 932 | ||
@@ -850,23 +940,39 @@ CONFIG_WATCHDOG=y | |||
850 | # USB-based Watchdog Cards | 940 | # USB-based Watchdog Cards |
851 | # | 941 | # |
852 | # CONFIG_USBPCWATCHDOG is not set | 942 | # CONFIG_USBPCWATCHDOG is not set |
943 | CONFIG_SSB_POSSIBLE=y | ||
853 | 944 | ||
854 | # | 945 | # |
855 | # Sonics Silicon Backplane | 946 | # Sonics Silicon Backplane |
856 | # | 947 | # |
857 | CONFIG_SSB_POSSIBLE=y | ||
858 | # CONFIG_SSB is not set | 948 | # CONFIG_SSB is not set |
859 | 949 | ||
860 | # | 950 | # |
861 | # Multifunction device drivers | 951 | # Multifunction device drivers |
862 | # | 952 | # |
953 | # CONFIG_MFD_CORE is not set | ||
863 | # CONFIG_MFD_SM501 is not set | 954 | # CONFIG_MFD_SM501 is not set |
955 | # CONFIG_HTC_PASIC3 is not set | ||
956 | # CONFIG_MFD_TMIO is not set | ||
957 | # CONFIG_PMIC_DA903X is not set | ||
958 | # CONFIG_MFD_WM8400 is not set | ||
959 | # CONFIG_MFD_WM8350_I2C is not set | ||
960 | # CONFIG_REGULATOR is not set | ||
864 | 961 | ||
865 | # | 962 | # |
866 | # Multimedia devices | 963 | # Multimedia devices |
867 | # | 964 | # |
965 | |||
966 | # | ||
967 | # Multimedia core support | ||
968 | # | ||
868 | # CONFIG_VIDEO_DEV is not set | 969 | # CONFIG_VIDEO_DEV is not set |
869 | # CONFIG_DVB_CORE is not set | 970 | # CONFIG_DVB_CORE is not set |
971 | # CONFIG_VIDEO_MEDIA is not set | ||
972 | |||
973 | # | ||
974 | # Multimedia drivers | ||
975 | # | ||
870 | CONFIG_DAB=y | 976 | CONFIG_DAB=y |
871 | # CONFIG_USB_DABUSB is not set | 977 | # CONFIG_USB_DABUSB is not set |
872 | 978 | ||
@@ -874,11 +980,78 @@ CONFIG_DAB=y | |||
874 | # Graphics support | 980 | # Graphics support |
875 | # | 981 | # |
876 | # CONFIG_AGP is not set | 982 | # CONFIG_AGP is not set |
877 | # CONFIG_DRM is not set | 983 | CONFIG_DRM=y |
984 | # CONFIG_DRM_TDFX is not set | ||
985 | # CONFIG_DRM_R128 is not set | ||
986 | # CONFIG_DRM_RADEON is not set | ||
987 | # CONFIG_DRM_MGA is not set | ||
988 | # CONFIG_DRM_VIA is not set | ||
989 | # CONFIG_DRM_SAVAGE is not set | ||
878 | # CONFIG_VGASTATE is not set | 990 | # CONFIG_VGASTATE is not set |
879 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 991 | CONFIG_VIDEO_OUTPUT_CONTROL=y |
880 | # CONFIG_FB is not set | 992 | CONFIG_FB=y |
881 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 993 | # CONFIG_FIRMWARE_EDID is not set |
994 | CONFIG_FB_DDC=y | ||
995 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
996 | CONFIG_FB_CFB_FILLRECT=y | ||
997 | CONFIG_FB_CFB_COPYAREA=y | ||
998 | CONFIG_FB_CFB_IMAGEBLIT=y | ||
999 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
1000 | # CONFIG_FB_SYS_FILLRECT is not set | ||
1001 | # CONFIG_FB_SYS_COPYAREA is not set | ||
1002 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
1003 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
1004 | # CONFIG_FB_SYS_FOPS is not set | ||
1005 | # CONFIG_FB_SVGALIB is not set | ||
1006 | CONFIG_FB_MACMODES=y | ||
1007 | CONFIG_FB_BACKLIGHT=y | ||
1008 | CONFIG_FB_MODE_HELPERS=y | ||
1009 | # CONFIG_FB_TILEBLITTING is not set | ||
1010 | |||
1011 | # | ||
1012 | # Frame buffer hardware drivers | ||
1013 | # | ||
1014 | # CONFIG_FB_CIRRUS is not set | ||
1015 | # CONFIG_FB_PM2 is not set | ||
1016 | # CONFIG_FB_CYBER2000 is not set | ||
1017 | # CONFIG_FB_OF is not set | ||
1018 | # CONFIG_FB_CT65550 is not set | ||
1019 | # CONFIG_FB_ASILIANT is not set | ||
1020 | # CONFIG_FB_IMSTT is not set | ||
1021 | # CONFIG_FB_VGA16 is not set | ||
1022 | # CONFIG_FB_S1D13XXX is not set | ||
1023 | # CONFIG_FB_NVIDIA is not set | ||
1024 | # CONFIG_FB_RIVA is not set | ||
1025 | # CONFIG_FB_MATROX is not set | ||
1026 | CONFIG_FB_RADEON=y | ||
1027 | CONFIG_FB_RADEON_I2C=y | ||
1028 | CONFIG_FB_RADEON_BACKLIGHT=y | ||
1029 | # CONFIG_FB_RADEON_DEBUG is not set | ||
1030 | # CONFIG_FB_ATY128 is not set | ||
1031 | # CONFIG_FB_ATY is not set | ||
1032 | # CONFIG_FB_S3 is not set | ||
1033 | # CONFIG_FB_SAVAGE is not set | ||
1034 | # CONFIG_FB_SIS is not set | ||
1035 | # CONFIG_FB_VIA is not set | ||
1036 | # CONFIG_FB_NEOMAGIC is not set | ||
1037 | # CONFIG_FB_KYRO is not set | ||
1038 | # CONFIG_FB_3DFX is not set | ||
1039 | # CONFIG_FB_VOODOO1 is not set | ||
1040 | # CONFIG_FB_VT8623 is not set | ||
1041 | # CONFIG_FB_TRIDENT is not set | ||
1042 | # CONFIG_FB_ARK is not set | ||
1043 | # CONFIG_FB_PM3 is not set | ||
1044 | # CONFIG_FB_CARMINE is not set | ||
1045 | # CONFIG_FB_IBM_GXT4500 is not set | ||
1046 | # CONFIG_FB_VIRTUAL is not set | ||
1047 | # CONFIG_FB_METRONOME is not set | ||
1048 | # CONFIG_FB_MB862XX is not set | ||
1049 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | ||
1050 | CONFIG_LCD_CLASS_DEVICE=m | ||
1051 | # CONFIG_LCD_ILI9320 is not set | ||
1052 | # CONFIG_LCD_PLATFORM is not set | ||
1053 | CONFIG_BACKLIGHT_CLASS_DEVICE=y | ||
1054 | # CONFIG_BACKLIGHT_CORGI is not set | ||
882 | 1055 | ||
883 | # | 1056 | # |
884 | # Display device support | 1057 | # Display device support |
@@ -886,15 +1059,64 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m | |||
886 | # CONFIG_DISPLAY_SUPPORT is not set | 1059 | # CONFIG_DISPLAY_SUPPORT is not set |
887 | 1060 | ||
888 | # | 1061 | # |
889 | # Sound | 1062 | # Console display driver support |
890 | # | 1063 | # |
1064 | # CONFIG_VGA_CONSOLE is not set | ||
1065 | CONFIG_DUMMY_CONSOLE=y | ||
1066 | CONFIG_FRAMEBUFFER_CONSOLE=y | ||
1067 | # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set | ||
1068 | # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set | ||
1069 | # CONFIG_FONTS is not set | ||
1070 | CONFIG_FONT_8x8=y | ||
1071 | CONFIG_FONT_8x16=y | ||
1072 | CONFIG_LOGO=y | ||
1073 | CONFIG_LOGO_LINUX_MONO=y | ||
1074 | CONFIG_LOGO_LINUX_VGA16=y | ||
1075 | CONFIG_LOGO_LINUX_CLUT224=y | ||
891 | # CONFIG_SOUND is not set | 1076 | # CONFIG_SOUND is not set |
1077 | CONFIG_HID_SUPPORT=y | ||
1078 | CONFIG_HID=y | ||
1079 | # CONFIG_HID_DEBUG is not set | ||
1080 | # CONFIG_HIDRAW is not set | ||
1081 | |||
1082 | # | ||
1083 | # USB Input Devices | ||
1084 | # | ||
1085 | CONFIG_USB_HID=y | ||
1086 | # CONFIG_HID_PID is not set | ||
1087 | # CONFIG_USB_HIDDEV is not set | ||
1088 | |||
1089 | # | ||
1090 | # Special HID drivers | ||
1091 | # | ||
1092 | CONFIG_HID_COMPAT=y | ||
1093 | CONFIG_HID_A4TECH=y | ||
1094 | # CONFIG_HID_APPLE is not set | ||
1095 | CONFIG_HID_BELKIN=y | ||
1096 | CONFIG_HID_BRIGHT=y | ||
1097 | CONFIG_HID_CHERRY=y | ||
1098 | # CONFIG_HID_CHICONY is not set | ||
1099 | CONFIG_HID_CYPRESS=y | ||
1100 | CONFIG_HID_DELL=y | ||
1101 | CONFIG_HID_EZKEY=y | ||
1102 | # CONFIG_HID_GYRATION is not set | ||
1103 | # CONFIG_HID_LOGITECH is not set | ||
1104 | # CONFIG_HID_MICROSOFT is not set | ||
1105 | # CONFIG_HID_MONTEREY is not set | ||
1106 | # CONFIG_HID_PANTHERLORD is not set | ||
1107 | # CONFIG_HID_PETALYNX is not set | ||
1108 | # CONFIG_HID_SAMSUNG is not set | ||
1109 | # CONFIG_HID_SONY is not set | ||
1110 | # CONFIG_HID_SUNPLUS is not set | ||
1111 | # CONFIG_THRUSTMASTER_FF is not set | ||
1112 | # CONFIG_ZEROPLUS_FF is not set | ||
892 | CONFIG_USB_SUPPORT=y | 1113 | CONFIG_USB_SUPPORT=y |
893 | CONFIG_USB_ARCH_HAS_HCD=y | 1114 | CONFIG_USB_ARCH_HAS_HCD=y |
894 | CONFIG_USB_ARCH_HAS_OHCI=y | 1115 | CONFIG_USB_ARCH_HAS_OHCI=y |
895 | CONFIG_USB_ARCH_HAS_EHCI=y | 1116 | CONFIG_USB_ARCH_HAS_EHCI=y |
896 | CONFIG_USB=y | 1117 | CONFIG_USB=y |
897 | # CONFIG_USB_DEBUG is not set | 1118 | # CONFIG_USB_DEBUG is not set |
1119 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
898 | 1120 | ||
899 | # | 1121 | # |
900 | # Miscellaneous USB options | 1122 | # Miscellaneous USB options |
@@ -903,14 +1125,20 @@ CONFIG_USB_DEVICEFS=y | |||
903 | # CONFIG_USB_DEVICE_CLASS is not set | 1125 | # CONFIG_USB_DEVICE_CLASS is not set |
904 | # CONFIG_USB_DYNAMIC_MINORS is not set | 1126 | # CONFIG_USB_DYNAMIC_MINORS is not set |
905 | # CONFIG_USB_SUSPEND is not set | 1127 | # CONFIG_USB_SUSPEND is not set |
906 | # CONFIG_USB_PERSIST is not set | ||
907 | # CONFIG_USB_OTG is not set | 1128 | # CONFIG_USB_OTG is not set |
1129 | # CONFIG_USB_OTG_WHITELIST is not set | ||
1130 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
1131 | CONFIG_USB_MON=y | ||
1132 | # CONFIG_USB_WUSB is not set | ||
1133 | # CONFIG_USB_WUSB_CBAF is not set | ||
908 | 1134 | ||
909 | # | 1135 | # |
910 | # USB Host Controller Drivers | 1136 | # USB Host Controller Drivers |
911 | # | 1137 | # |
1138 | # CONFIG_USB_C67X00_HCD is not set | ||
912 | # CONFIG_USB_EHCI_HCD is not set | 1139 | # CONFIG_USB_EHCI_HCD is not set |
913 | # CONFIG_USB_ISP116X_HCD is not set | 1140 | # CONFIG_USB_ISP116X_HCD is not set |
1141 | # CONFIG_USB_ISP1760_HCD is not set | ||
914 | CONFIG_USB_OHCI_HCD=y | 1142 | CONFIG_USB_OHCI_HCD=y |
915 | CONFIG_USB_OHCI_HCD_PPC_SOC=y | 1143 | CONFIG_USB_OHCI_HCD_PPC_SOC=y |
916 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 1144 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
@@ -923,12 +1151,17 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
923 | # CONFIG_USB_UHCI_HCD is not set | 1151 | # CONFIG_USB_UHCI_HCD is not set |
924 | # CONFIG_USB_SL811_HCD is not set | 1152 | # CONFIG_USB_SL811_HCD is not set |
925 | # CONFIG_USB_R8A66597_HCD is not set | 1153 | # CONFIG_USB_R8A66597_HCD is not set |
1154 | # CONFIG_USB_WHCI_HCD is not set | ||
1155 | # CONFIG_USB_HWA_HCD is not set | ||
1156 | # CONFIG_USB_MUSB_HDRC is not set | ||
926 | 1157 | ||
927 | # | 1158 | # |
928 | # USB Device Class drivers | 1159 | # USB Device Class drivers |
929 | # | 1160 | # |
930 | # CONFIG_USB_ACM is not set | 1161 | # CONFIG_USB_ACM is not set |
931 | # CONFIG_USB_PRINTER is not set | 1162 | # CONFIG_USB_PRINTER is not set |
1163 | # CONFIG_USB_WDM is not set | ||
1164 | # CONFIG_USB_TMC is not set | ||
932 | 1165 | ||
933 | # | 1166 | # |
934 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1167 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' |
@@ -948,7 +1181,9 @@ CONFIG_USB_STORAGE=y | |||
948 | # CONFIG_USB_STORAGE_SDDR55 is not set | 1181 | # CONFIG_USB_STORAGE_SDDR55 is not set |
949 | # CONFIG_USB_STORAGE_JUMPSHOT is not set | 1182 | # CONFIG_USB_STORAGE_JUMPSHOT is not set |
950 | # CONFIG_USB_STORAGE_ALAUDA is not set | 1183 | # CONFIG_USB_STORAGE_ALAUDA is not set |
1184 | # CONFIG_USB_STORAGE_ONETOUCH is not set | ||
951 | # CONFIG_USB_STORAGE_KARMA is not set | 1185 | # CONFIG_USB_STORAGE_KARMA is not set |
1186 | # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set | ||
952 | # CONFIG_USB_LIBUSUAL is not set | 1187 | # CONFIG_USB_LIBUSUAL is not set |
953 | 1188 | ||
954 | # | 1189 | # |
@@ -956,15 +1191,10 @@ CONFIG_USB_STORAGE=y | |||
956 | # | 1191 | # |
957 | # CONFIG_USB_MDC800 is not set | 1192 | # CONFIG_USB_MDC800 is not set |
958 | # CONFIG_USB_MICROTEK is not set | 1193 | # CONFIG_USB_MICROTEK is not set |
959 | CONFIG_USB_MON=y | ||
960 | 1194 | ||
961 | # | 1195 | # |
962 | # USB port drivers | 1196 | # USB port drivers |
963 | # | 1197 | # |
964 | |||
965 | # | ||
966 | # USB Serial Converter support | ||
967 | # | ||
968 | # CONFIG_USB_SERIAL is not set | 1198 | # CONFIG_USB_SERIAL is not set |
969 | 1199 | ||
970 | # | 1200 | # |
@@ -973,7 +1203,7 @@ CONFIG_USB_MON=y | |||
973 | # CONFIG_USB_EMI62 is not set | 1203 | # CONFIG_USB_EMI62 is not set |
974 | # CONFIG_USB_EMI26 is not set | 1204 | # CONFIG_USB_EMI26 is not set |
975 | # CONFIG_USB_ADUTUX is not set | 1205 | # CONFIG_USB_ADUTUX is not set |
976 | # CONFIG_USB_AUERSWALD is not set | 1206 | # CONFIG_USB_SEVSEG is not set |
977 | # CONFIG_USB_RIO500 is not set | 1207 | # CONFIG_USB_RIO500 is not set |
978 | # CONFIG_USB_LEGOTOWER is not set | 1208 | # CONFIG_USB_LEGOTOWER is not set |
979 | # CONFIG_USB_LCD is not set | 1209 | # CONFIG_USB_LCD is not set |
@@ -989,18 +1219,14 @@ CONFIG_USB_MON=y | |||
989 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1219 | # CONFIG_USB_TRANCEVIBRATOR is not set |
990 | # CONFIG_USB_IOWARRIOR is not set | 1220 | # CONFIG_USB_IOWARRIOR is not set |
991 | # CONFIG_USB_TEST is not set | 1221 | # CONFIG_USB_TEST is not set |
992 | 1222 | # CONFIG_USB_ISIGHTFW is not set | |
993 | # | 1223 | # CONFIG_USB_VST is not set |
994 | # USB DSL modem support | ||
995 | # | ||
996 | |||
997 | # | ||
998 | # USB Gadget Support | ||
999 | # | ||
1000 | # CONFIG_USB_GADGET is not set | 1224 | # CONFIG_USB_GADGET is not set |
1225 | # CONFIG_UWB is not set | ||
1001 | # CONFIG_MMC is not set | 1226 | # CONFIG_MMC is not set |
1227 | # CONFIG_MEMSTICK is not set | ||
1002 | CONFIG_NEW_LEDS=y | 1228 | CONFIG_NEW_LEDS=y |
1003 | CONFIG_LEDS_CLASS=y | 1229 | # CONFIG_LEDS_CLASS is not set |
1004 | 1230 | ||
1005 | # | 1231 | # |
1006 | # LED drivers | 1232 | # LED drivers |
@@ -1009,17 +1235,15 @@ CONFIG_LEDS_CLASS=y | |||
1009 | # | 1235 | # |
1010 | # LED Triggers | 1236 | # LED Triggers |
1011 | # | 1237 | # |
1012 | CONFIG_LEDS_TRIGGERS=y | 1238 | # CONFIG_LEDS_TRIGGERS is not set |
1013 | CONFIG_LEDS_TRIGGER_TIMER=y | 1239 | # CONFIG_ACCESSIBILITY is not set |
1014 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set | ||
1015 | # CONFIG_INFINIBAND is not set | 1240 | # CONFIG_INFINIBAND is not set |
1016 | # CONFIG_EDAC is not set | 1241 | # CONFIG_EDAC is not set |
1017 | # CONFIG_RTC_CLASS is not set | 1242 | # CONFIG_RTC_CLASS is not set |
1018 | 1243 | # CONFIG_DMADEVICES is not set | |
1019 | # | ||
1020 | # Userspace I/O | ||
1021 | # | ||
1022 | # CONFIG_UIO is not set | 1244 | # CONFIG_UIO is not set |
1245 | # CONFIG_STAGING is not set | ||
1246 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
1023 | 1247 | ||
1024 | # | 1248 | # |
1025 | # File systems | 1249 | # File systems |
@@ -1031,21 +1255,19 @@ CONFIG_EXT3_FS=y | |||
1031 | CONFIG_EXT3_FS_XATTR=y | 1255 | CONFIG_EXT3_FS_XATTR=y |
1032 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1256 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
1033 | # CONFIG_EXT3_FS_SECURITY is not set | 1257 | # CONFIG_EXT3_FS_SECURITY is not set |
1034 | # CONFIG_EXT4DEV_FS is not set | 1258 | # CONFIG_EXT4_FS is not set |
1035 | CONFIG_JBD=y | 1259 | CONFIG_JBD=y |
1036 | CONFIG_FS_MBCACHE=y | 1260 | CONFIG_FS_MBCACHE=y |
1037 | # CONFIG_REISERFS_FS is not set | 1261 | # CONFIG_REISERFS_FS is not set |
1038 | # CONFIG_JFS_FS is not set | 1262 | # CONFIG_JFS_FS is not set |
1039 | # CONFIG_FS_POSIX_ACL is not set | 1263 | # CONFIG_FS_POSIX_ACL is not set |
1264 | CONFIG_FILE_LOCKING=y | ||
1040 | # CONFIG_XFS_FS is not set | 1265 | # CONFIG_XFS_FS is not set |
1041 | # CONFIG_GFS2_FS is not set | ||
1042 | # CONFIG_OCFS2_FS is not set | 1266 | # CONFIG_OCFS2_FS is not set |
1043 | # CONFIG_MINIX_FS is not set | 1267 | CONFIG_DNOTIFY=y |
1044 | # CONFIG_ROMFS_FS is not set | ||
1045 | CONFIG_INOTIFY=y | 1268 | CONFIG_INOTIFY=y |
1046 | CONFIG_INOTIFY_USER=y | 1269 | CONFIG_INOTIFY_USER=y |
1047 | # CONFIG_QUOTA is not set | 1270 | # CONFIG_QUOTA is not set |
1048 | CONFIG_DNOTIFY=y | ||
1049 | # CONFIG_AUTOFS_FS is not set | 1271 | # CONFIG_AUTOFS_FS is not set |
1050 | # CONFIG_AUTOFS4_FS is not set | 1272 | # CONFIG_AUTOFS4_FS is not set |
1051 | # CONFIG_FUSE_FS is not set | 1273 | # CONFIG_FUSE_FS is not set |
@@ -1072,6 +1294,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" | |||
1072 | CONFIG_PROC_FS=y | 1294 | CONFIG_PROC_FS=y |
1073 | CONFIG_PROC_KCORE=y | 1295 | CONFIG_PROC_KCORE=y |
1074 | CONFIG_PROC_SYSCTL=y | 1296 | CONFIG_PROC_SYSCTL=y |
1297 | CONFIG_PROC_PAGE_MONITOR=y | ||
1075 | CONFIG_SYSFS=y | 1298 | CONFIG_SYSFS=y |
1076 | CONFIG_TMPFS=y | 1299 | CONFIG_TMPFS=y |
1077 | # CONFIG_TMPFS_POSIX_ACL is not set | 1300 | # CONFIG_TMPFS_POSIX_ACL is not set |
@@ -1101,8 +1324,11 @@ CONFIG_JFFS2_RTIME=y | |||
1101 | # CONFIG_JFFS2_RUBIN is not set | 1324 | # CONFIG_JFFS2_RUBIN is not set |
1102 | CONFIG_CRAMFS=y | 1325 | CONFIG_CRAMFS=y |
1103 | # CONFIG_VXFS_FS is not set | 1326 | # CONFIG_VXFS_FS is not set |
1327 | # CONFIG_MINIX_FS is not set | ||
1328 | # CONFIG_OMFS_FS is not set | ||
1104 | # CONFIG_HPFS_FS is not set | 1329 | # CONFIG_HPFS_FS is not set |
1105 | # CONFIG_QNX4FS_FS is not set | 1330 | # CONFIG_QNX4FS_FS is not set |
1331 | # CONFIG_ROMFS_FS is not set | ||
1106 | # CONFIG_SYSV_FS is not set | 1332 | # CONFIG_SYSV_FS is not set |
1107 | # CONFIG_UFS_FS is not set | 1333 | # CONFIG_UFS_FS is not set |
1108 | CONFIG_NETWORK_FILESYSTEMS=y | 1334 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1110,15 +1336,14 @@ CONFIG_NFS_FS=y | |||
1110 | CONFIG_NFS_V3=y | 1336 | CONFIG_NFS_V3=y |
1111 | # CONFIG_NFS_V3_ACL is not set | 1337 | # CONFIG_NFS_V3_ACL is not set |
1112 | CONFIG_NFS_V4=y | 1338 | CONFIG_NFS_V4=y |
1113 | # CONFIG_NFS_DIRECTIO is not set | ||
1114 | # CONFIG_NFSD is not set | ||
1115 | CONFIG_ROOT_NFS=y | 1339 | CONFIG_ROOT_NFS=y |
1340 | # CONFIG_NFSD is not set | ||
1116 | CONFIG_LOCKD=y | 1341 | CONFIG_LOCKD=y |
1117 | CONFIG_LOCKD_V4=y | 1342 | CONFIG_LOCKD_V4=y |
1118 | CONFIG_NFS_COMMON=y | 1343 | CONFIG_NFS_COMMON=y |
1119 | CONFIG_SUNRPC=y | 1344 | CONFIG_SUNRPC=y |
1120 | CONFIG_SUNRPC_GSS=y | 1345 | CONFIG_SUNRPC_GSS=y |
1121 | # CONFIG_SUNRPC_BIND34 is not set | 1346 | # CONFIG_SUNRPC_REGISTER_V4 is not set |
1122 | CONFIG_RPCSEC_GSS_KRB5=y | 1347 | CONFIG_RPCSEC_GSS_KRB5=y |
1123 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1348 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1124 | # CONFIG_SMB_FS is not set | 1349 | # CONFIG_SMB_FS is not set |
@@ -1173,7 +1398,6 @@ CONFIG_NLS_ISO8859_1=y | |||
1173 | # CONFIG_NLS_KOI8_U is not set | 1398 | # CONFIG_NLS_KOI8_U is not set |
1174 | # CONFIG_NLS_UTF8 is not set | 1399 | # CONFIG_NLS_UTF8 is not set |
1175 | # CONFIG_DLM is not set | 1400 | # CONFIG_DLM is not set |
1176 | # CONFIG_UCC_SLOW is not set | ||
1177 | 1401 | ||
1178 | # | 1402 | # |
1179 | # Library routines | 1403 | # Library routines |
@@ -1181,6 +1405,7 @@ CONFIG_NLS_ISO8859_1=y | |||
1181 | CONFIG_BITREVERSE=y | 1405 | CONFIG_BITREVERSE=y |
1182 | # CONFIG_CRC_CCITT is not set | 1406 | # CONFIG_CRC_CCITT is not set |
1183 | # CONFIG_CRC16 is not set | 1407 | # CONFIG_CRC16 is not set |
1408 | # CONFIG_CRC_T10DIF is not set | ||
1184 | # CONFIG_CRC_ITU_T is not set | 1409 | # CONFIG_CRC_ITU_T is not set |
1185 | CONFIG_CRC32=y | 1410 | CONFIG_CRC32=y |
1186 | # CONFIG_CRC7 is not set | 1411 | # CONFIG_CRC7 is not set |
@@ -1191,7 +1416,7 @@ CONFIG_PLIST=y | |||
1191 | CONFIG_HAS_IOMEM=y | 1416 | CONFIG_HAS_IOMEM=y |
1192 | CONFIG_HAS_IOPORT=y | 1417 | CONFIG_HAS_IOPORT=y |
1193 | CONFIG_HAS_DMA=y | 1418 | CONFIG_HAS_DMA=y |
1194 | # CONFIG_INSTRUMENTATION is not set | 1419 | CONFIG_HAVE_LMB=y |
1195 | 1420 | ||
1196 | # | 1421 | # |
1197 | # Kernel hacking | 1422 | # Kernel hacking |
@@ -1199,6 +1424,7 @@ CONFIG_HAS_DMA=y | |||
1199 | CONFIG_PRINTK_TIME=y | 1424 | CONFIG_PRINTK_TIME=y |
1200 | CONFIG_ENABLE_WARN_DEPRECATED=y | 1425 | CONFIG_ENABLE_WARN_DEPRECATED=y |
1201 | CONFIG_ENABLE_MUST_CHECK=y | 1426 | CONFIG_ENABLE_MUST_CHECK=y |
1427 | CONFIG_FRAME_WARN=1024 | ||
1202 | # CONFIG_MAGIC_SYSRQ is not set | 1428 | # CONFIG_MAGIC_SYSRQ is not set |
1203 | # CONFIG_UNUSED_SYMBOLS is not set | 1429 | # CONFIG_UNUSED_SYMBOLS is not set |
1204 | # CONFIG_DEBUG_FS is not set | 1430 | # CONFIG_DEBUG_FS is not set |
@@ -1206,10 +1432,14 @@ CONFIG_ENABLE_MUST_CHECK=y | |||
1206 | CONFIG_DEBUG_KERNEL=y | 1432 | CONFIG_DEBUG_KERNEL=y |
1207 | # CONFIG_DEBUG_SHIRQ is not set | 1433 | # CONFIG_DEBUG_SHIRQ is not set |
1208 | CONFIG_DETECT_SOFTLOCKUP=y | 1434 | CONFIG_DETECT_SOFTLOCKUP=y |
1435 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | ||
1436 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | ||
1209 | CONFIG_SCHED_DEBUG=y | 1437 | CONFIG_SCHED_DEBUG=y |
1210 | # CONFIG_SCHEDSTATS is not set | 1438 | # CONFIG_SCHEDSTATS is not set |
1211 | # CONFIG_TIMER_STATS is not set | 1439 | # CONFIG_TIMER_STATS is not set |
1440 | # CONFIG_DEBUG_OBJECTS is not set | ||
1212 | # CONFIG_SLUB_DEBUG_ON is not set | 1441 | # CONFIG_SLUB_DEBUG_ON is not set |
1442 | # CONFIG_SLUB_STATS is not set | ||
1213 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1443 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1214 | # CONFIG_RT_MUTEX_TESTER is not set | 1444 | # CONFIG_RT_MUTEX_TESTER is not set |
1215 | # CONFIG_DEBUG_SPINLOCK is not set | 1445 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1220,17 +1450,39 @@ CONFIG_SCHED_DEBUG=y | |||
1220 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1450 | # CONFIG_DEBUG_BUGVERBOSE is not set |
1221 | CONFIG_DEBUG_INFO=y | 1451 | CONFIG_DEBUG_INFO=y |
1222 | # CONFIG_DEBUG_VM is not set | 1452 | # CONFIG_DEBUG_VM is not set |
1453 | # CONFIG_DEBUG_WRITECOUNT is not set | ||
1454 | # CONFIG_DEBUG_MEMORY_INIT is not set | ||
1223 | # CONFIG_DEBUG_LIST is not set | 1455 | # CONFIG_DEBUG_LIST is not set |
1224 | # CONFIG_DEBUG_SG is not set | 1456 | # CONFIG_DEBUG_SG is not set |
1225 | CONFIG_FORCED_INLINING=y | ||
1226 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1457 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1227 | # CONFIG_RCU_TORTURE_TEST is not set | 1458 | # CONFIG_RCU_TORTURE_TEST is not set |
1459 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1460 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1461 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
1228 | # CONFIG_FAULT_INJECTION is not set | 1462 | # CONFIG_FAULT_INJECTION is not set |
1463 | # CONFIG_LATENCYTOP is not set | ||
1464 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1465 | |||
1466 | # | ||
1467 | # Tracers | ||
1468 | # | ||
1469 | # CONFIG_FUNCTION_TRACER is not set | ||
1470 | # CONFIG_SCHED_TRACER is not set | ||
1471 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
1472 | # CONFIG_BOOT_TRACER is not set | ||
1473 | # CONFIG_STACK_TRACER is not set | ||
1474 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1229 | # CONFIG_SAMPLES is not set | 1475 | # CONFIG_SAMPLES is not set |
1476 | CONFIG_HAVE_ARCH_KGDB=y | ||
1477 | # CONFIG_KGDB is not set | ||
1230 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1478 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1231 | # CONFIG_DEBUG_STACK_USAGE is not set | 1479 | # CONFIG_DEBUG_STACK_USAGE is not set |
1232 | # CONFIG_DEBUG_PAGEALLOC is not set | 1480 | # CONFIG_DEBUG_PAGEALLOC is not set |
1233 | # CONFIG_DEBUGGER is not set | 1481 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1482 | # CONFIG_FTR_FIXUP_SELFTEST is not set | ||
1483 | # CONFIG_MSI_BITMAP_SELFTEST is not set | ||
1484 | # CONFIG_XMON is not set | ||
1485 | # CONFIG_IRQSTACKS is not set | ||
1234 | # CONFIG_BDI_SWITCH is not set | 1486 | # CONFIG_BDI_SWITCH is not set |
1235 | # CONFIG_BOOTX_TEXT is not set | 1487 | # CONFIG_BOOTX_TEXT is not set |
1236 | # CONFIG_PPC_EARLY_DEBUG is not set | 1488 | # CONFIG_PPC_EARLY_DEBUG is not set |
@@ -1240,47 +1492,98 @@ CONFIG_FORCED_INLINING=y | |||
1240 | # | 1492 | # |
1241 | # CONFIG_KEYS is not set | 1493 | # CONFIG_KEYS is not set |
1242 | # CONFIG_SECURITY is not set | 1494 | # CONFIG_SECURITY is not set |
1495 | # CONFIG_SECURITYFS is not set | ||
1243 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1496 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1244 | CONFIG_CRYPTO=y | 1497 | CONFIG_CRYPTO=y |
1498 | |||
1499 | # | ||
1500 | # Crypto core or helper | ||
1501 | # | ||
1502 | # CONFIG_CRYPTO_FIPS is not set | ||
1245 | CONFIG_CRYPTO_ALGAPI=y | 1503 | CONFIG_CRYPTO_ALGAPI=y |
1504 | CONFIG_CRYPTO_AEAD=y | ||
1246 | CONFIG_CRYPTO_BLKCIPHER=y | 1505 | CONFIG_CRYPTO_BLKCIPHER=y |
1506 | CONFIG_CRYPTO_HASH=y | ||
1507 | CONFIG_CRYPTO_RNG=y | ||
1247 | CONFIG_CRYPTO_MANAGER=y | 1508 | CONFIG_CRYPTO_MANAGER=y |
1509 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1510 | # CONFIG_CRYPTO_NULL is not set | ||
1511 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1512 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1513 | # CONFIG_CRYPTO_TEST is not set | ||
1514 | |||
1515 | # | ||
1516 | # Authenticated Encryption with Associated Data | ||
1517 | # | ||
1518 | # CONFIG_CRYPTO_CCM is not set | ||
1519 | # CONFIG_CRYPTO_GCM is not set | ||
1520 | # CONFIG_CRYPTO_SEQIV is not set | ||
1521 | |||
1522 | # | ||
1523 | # Block modes | ||
1524 | # | ||
1525 | CONFIG_CRYPTO_CBC=y | ||
1526 | # CONFIG_CRYPTO_CTR is not set | ||
1527 | # CONFIG_CRYPTO_CTS is not set | ||
1528 | # CONFIG_CRYPTO_ECB is not set | ||
1529 | # CONFIG_CRYPTO_LRW is not set | ||
1530 | # CONFIG_CRYPTO_PCBC is not set | ||
1531 | # CONFIG_CRYPTO_XTS is not set | ||
1532 | |||
1533 | # | ||
1534 | # Hash modes | ||
1535 | # | ||
1248 | # CONFIG_CRYPTO_HMAC is not set | 1536 | # CONFIG_CRYPTO_HMAC is not set |
1249 | # CONFIG_CRYPTO_XCBC is not set | 1537 | # CONFIG_CRYPTO_XCBC is not set |
1250 | # CONFIG_CRYPTO_NULL is not set | 1538 | |
1539 | # | ||
1540 | # Digest | ||
1541 | # | ||
1542 | # CONFIG_CRYPTO_CRC32C is not set | ||
1251 | # CONFIG_CRYPTO_MD4 is not set | 1543 | # CONFIG_CRYPTO_MD4 is not set |
1252 | CONFIG_CRYPTO_MD5=y | 1544 | CONFIG_CRYPTO_MD5=y |
1545 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1546 | # CONFIG_CRYPTO_RMD128 is not set | ||
1547 | # CONFIG_CRYPTO_RMD160 is not set | ||
1548 | # CONFIG_CRYPTO_RMD256 is not set | ||
1549 | # CONFIG_CRYPTO_RMD320 is not set | ||
1253 | # CONFIG_CRYPTO_SHA1 is not set | 1550 | # CONFIG_CRYPTO_SHA1 is not set |
1254 | # CONFIG_CRYPTO_SHA256 is not set | 1551 | # CONFIG_CRYPTO_SHA256 is not set |
1255 | # CONFIG_CRYPTO_SHA512 is not set | 1552 | # CONFIG_CRYPTO_SHA512 is not set |
1256 | # CONFIG_CRYPTO_WP512 is not set | ||
1257 | # CONFIG_CRYPTO_TGR192 is not set | 1553 | # CONFIG_CRYPTO_TGR192 is not set |
1258 | # CONFIG_CRYPTO_GF128MUL is not set | 1554 | # CONFIG_CRYPTO_WP512 is not set |
1259 | # CONFIG_CRYPTO_ECB is not set | 1555 | |
1260 | CONFIG_CRYPTO_CBC=y | 1556 | # |
1261 | # CONFIG_CRYPTO_PCBC is not set | 1557 | # Ciphers |
1262 | # CONFIG_CRYPTO_LRW is not set | 1558 | # |
1263 | # CONFIG_CRYPTO_XTS is not set | ||
1264 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1265 | CONFIG_CRYPTO_DES=y | ||
1266 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1267 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1268 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1269 | # CONFIG_CRYPTO_SERPENT is not set | ||
1270 | # CONFIG_CRYPTO_AES is not set | 1559 | # CONFIG_CRYPTO_AES is not set |
1560 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1561 | # CONFIG_CRYPTO_ARC4 is not set | ||
1562 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1563 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1271 | # CONFIG_CRYPTO_CAST5 is not set | 1564 | # CONFIG_CRYPTO_CAST5 is not set |
1272 | # CONFIG_CRYPTO_CAST6 is not set | 1565 | # CONFIG_CRYPTO_CAST6 is not set |
1273 | # CONFIG_CRYPTO_TEA is not set | 1566 | CONFIG_CRYPTO_DES=y |
1274 | # CONFIG_CRYPTO_ARC4 is not set | 1567 | # CONFIG_CRYPTO_FCRYPT is not set |
1275 | # CONFIG_CRYPTO_KHAZAD is not set | 1568 | # CONFIG_CRYPTO_KHAZAD is not set |
1276 | # CONFIG_CRYPTO_ANUBIS is not set | 1569 | # CONFIG_CRYPTO_SALSA20 is not set |
1277 | # CONFIG_CRYPTO_SEED is not set | 1570 | # CONFIG_CRYPTO_SEED is not set |
1571 | # CONFIG_CRYPTO_SERPENT is not set | ||
1572 | # CONFIG_CRYPTO_TEA is not set | ||
1573 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1574 | |||
1575 | # | ||
1576 | # Compression | ||
1577 | # | ||
1278 | # CONFIG_CRYPTO_DEFLATE is not set | 1578 | # CONFIG_CRYPTO_DEFLATE is not set |
1279 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1579 | # CONFIG_CRYPTO_LZO is not set |
1280 | # CONFIG_CRYPTO_CRC32C is not set | 1580 | |
1281 | # CONFIG_CRYPTO_CAMELLIA is not set | 1581 | # |
1282 | # CONFIG_CRYPTO_TEST is not set | 1582 | # Random Number Generation |
1283 | # CONFIG_CRYPTO_AUTHENC is not set | 1583 | # |
1584 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | ||
1284 | CONFIG_CRYPTO_HW=y | 1585 | CONFIG_CRYPTO_HW=y |
1586 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1285 | CONFIG_PPC_CLOCK=y | 1587 | CONFIG_PPC_CLOCK=y |
1286 | CONFIG_PPC_LIB_RHEAP=y | 1588 | CONFIG_PPC_LIB_RHEAP=y |
1589 | # CONFIG_VIRTUALIZATION is not set | ||
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig index c15c91deb2ab..4256e2c4534b 100644 --- a/arch/powerpc/configs/ppc40x_defconfig +++ b/arch/powerpc/configs/ppc40x_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.28-rc2 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Oct 28 08:56:44 2008 | 4 | # Fri Nov 14 09:54:44 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -500,15 +500,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
500 | # CONFIG_BLK_DEV_XIP is not set | 500 | # CONFIG_BLK_DEV_XIP is not set |
501 | # CONFIG_CDROM_PKTCDVD is not set | 501 | # CONFIG_CDROM_PKTCDVD is not set |
502 | # CONFIG_ATA_OVER_ETH is not set | 502 | # CONFIG_ATA_OVER_ETH is not set |
503 | # CONFIG_XILINX_SYSACE is not set | 503 | CONFIG_XILINX_SYSACE=m |
504 | # CONFIG_BLK_DEV_HD is not set | 504 | # CONFIG_BLK_DEV_HD is not set |
505 | CONFIG_MISC_DEVICES=y | 505 | CONFIG_MISC_DEVICES=y |
506 | # CONFIG_PHANTOM is not set | 506 | # CONFIG_PHANTOM is not set |
507 | # CONFIG_EEPROM_93CX6 is not set | 507 | # CONFIG_EEPROM_93CX6 is not set |
508 | # CONFIG_SGI_IOC4 is not set | 508 | # CONFIG_SGI_IOC4 is not set |
509 | # CONFIG_TIFM_CORE is not set | 509 | # CONFIG_TIFM_CORE is not set |
510 | # CONFIG_ICS932S401 is not set | ||
510 | # CONFIG_ENCLOSURE_SERVICES is not set | 511 | # CONFIG_ENCLOSURE_SERVICES is not set |
511 | # CONFIG_HP_ILO is not set | 512 | # CONFIG_HP_ILO is not set |
513 | # CONFIG_C2PORT is not set | ||
512 | CONFIG_HAVE_IDE=y | 514 | CONFIG_HAVE_IDE=y |
513 | # CONFIG_IDE is not set | 515 | # CONFIG_IDE is not set |
514 | 516 | ||
@@ -632,7 +634,13 @@ CONFIG_NETDEV_10000=y | |||
632 | # | 634 | # |
633 | # Hardware I/O ports | 635 | # Hardware I/O ports |
634 | # | 636 | # |
635 | # CONFIG_SERIO is not set | 637 | CONFIG_SERIO=m |
638 | # CONFIG_SERIO_I8042 is not set | ||
639 | # CONFIG_SERIO_SERPORT is not set | ||
640 | # CONFIG_SERIO_PCIPS2 is not set | ||
641 | # CONFIG_SERIO_LIBPS2 is not set | ||
642 | # CONFIG_SERIO_RAW is not set | ||
643 | CONFIG_SERIO_XILINX_XPS_PS2=m | ||
636 | # CONFIG_GAMEPORT is not set | 644 | # CONFIG_GAMEPORT is not set |
637 | 645 | ||
638 | # | 646 | # |
@@ -660,7 +668,8 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y | |||
660 | # | 668 | # |
661 | # Non-8250 serial port support | 669 | # Non-8250 serial port support |
662 | # | 670 | # |
663 | # CONFIG_SERIAL_UARTLITE is not set | 671 | CONFIG_SERIAL_UARTLITE=y |
672 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | ||
664 | CONFIG_SERIAL_CORE=y | 673 | CONFIG_SERIAL_CORE=y |
665 | CONFIG_SERIAL_CORE_CONSOLE=y | 674 | CONFIG_SERIAL_CORE_CONSOLE=y |
666 | # CONFIG_SERIAL_JSM is not set | 675 | # CONFIG_SERIAL_JSM is not set |
@@ -757,6 +766,11 @@ CONFIG_GPIOLIB=y | |||
757 | # CONFIG_GPIO_SYSFS is not set | 766 | # CONFIG_GPIO_SYSFS is not set |
758 | 767 | ||
759 | # | 768 | # |
769 | # Memory mapped GPIO expanders: | ||
770 | # | ||
771 | CONFIG_GPIO_XILINX=y | ||
772 | |||
773 | # | ||
760 | # I2C GPIO expanders: | 774 | # I2C GPIO expanders: |
761 | # | 775 | # |
762 | # CONFIG_GPIO_MAX732X is not set | 776 | # CONFIG_GPIO_MAX732X is not set |
@@ -776,11 +790,11 @@ CONFIG_GPIOLIB=y | |||
776 | # CONFIG_HWMON is not set | 790 | # CONFIG_HWMON is not set |
777 | CONFIG_THERMAL=y | 791 | CONFIG_THERMAL=y |
778 | # CONFIG_WATCHDOG is not set | 792 | # CONFIG_WATCHDOG is not set |
793 | CONFIG_SSB_POSSIBLE=y | ||
779 | 794 | ||
780 | # | 795 | # |
781 | # Sonics Silicon Backplane | 796 | # Sonics Silicon Backplane |
782 | # | 797 | # |
783 | CONFIG_SSB_POSSIBLE=y | ||
784 | # CONFIG_SSB is not set | 798 | # CONFIG_SSB is not set |
785 | 799 | ||
786 | # | 800 | # |
@@ -792,6 +806,7 @@ CONFIG_SSB_POSSIBLE=y | |||
792 | # CONFIG_MFD_TMIO is not set | 806 | # CONFIG_MFD_TMIO is not set |
793 | # CONFIG_MFD_WM8400 is not set | 807 | # CONFIG_MFD_WM8400 is not set |
794 | # CONFIG_MFD_WM8350_I2C is not set | 808 | # CONFIG_MFD_WM8350_I2C is not set |
809 | # CONFIG_REGULATOR is not set | ||
795 | 810 | ||
796 | # | 811 | # |
797 | # Multimedia devices | 812 | # Multimedia devices |
@@ -816,13 +831,65 @@ CONFIG_SSB_POSSIBLE=y | |||
816 | # CONFIG_DRM is not set | 831 | # CONFIG_DRM is not set |
817 | # CONFIG_VGASTATE is not set | 832 | # CONFIG_VGASTATE is not set |
818 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 833 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
819 | # CONFIG_FB is not set | 834 | CONFIG_FB=m |
835 | # CONFIG_FIRMWARE_EDID is not set | ||
836 | # CONFIG_FB_DDC is not set | ||
837 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
838 | CONFIG_FB_CFB_FILLRECT=m | ||
839 | CONFIG_FB_CFB_COPYAREA=m | ||
840 | CONFIG_FB_CFB_IMAGEBLIT=m | ||
841 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
842 | # CONFIG_FB_SYS_FILLRECT is not set | ||
843 | # CONFIG_FB_SYS_COPYAREA is not set | ||
844 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
845 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
846 | # CONFIG_FB_SYS_FOPS is not set | ||
847 | # CONFIG_FB_SVGALIB is not set | ||
848 | # CONFIG_FB_MACMODES is not set | ||
849 | # CONFIG_FB_BACKLIGHT is not set | ||
850 | # CONFIG_FB_MODE_HELPERS is not set | ||
851 | # CONFIG_FB_TILEBLITTING is not set | ||
852 | |||
853 | # | ||
854 | # Frame buffer hardware drivers | ||
855 | # | ||
856 | # CONFIG_FB_CIRRUS is not set | ||
857 | # CONFIG_FB_PM2 is not set | ||
858 | # CONFIG_FB_CYBER2000 is not set | ||
859 | # CONFIG_FB_VGA16 is not set | ||
860 | # CONFIG_FB_UVESA is not set | ||
861 | # CONFIG_FB_S1D13XXX is not set | ||
862 | # CONFIG_FB_NVIDIA is not set | ||
863 | # CONFIG_FB_RIVA is not set | ||
864 | # CONFIG_FB_MATROX is not set | ||
865 | # CONFIG_FB_RADEON is not set | ||
866 | # CONFIG_FB_ATY128 is not set | ||
867 | # CONFIG_FB_ATY is not set | ||
868 | # CONFIG_FB_S3 is not set | ||
869 | # CONFIG_FB_SAVAGE is not set | ||
870 | # CONFIG_FB_SIS is not set | ||
871 | # CONFIG_FB_VIA is not set | ||
872 | # CONFIG_FB_NEOMAGIC is not set | ||
873 | # CONFIG_FB_KYRO is not set | ||
874 | # CONFIG_FB_3DFX is not set | ||
875 | # CONFIG_FB_VOODOO1 is not set | ||
876 | # CONFIG_FB_VT8623 is not set | ||
877 | # CONFIG_FB_TRIDENT is not set | ||
878 | # CONFIG_FB_ARK is not set | ||
879 | # CONFIG_FB_PM3 is not set | ||
880 | # CONFIG_FB_CARMINE is not set | ||
881 | # CONFIG_FB_IBM_GXT4500 is not set | ||
882 | CONFIG_FB_XILINX=m | ||
883 | # CONFIG_FB_VIRTUAL is not set | ||
884 | # CONFIG_FB_METRONOME is not set | ||
885 | # CONFIG_FB_MB862XX is not set | ||
820 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 886 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
821 | 887 | ||
822 | # | 888 | # |
823 | # Display device support | 889 | # Display device support |
824 | # | 890 | # |
825 | # CONFIG_DISPLAY_SUPPORT is not set | 891 | # CONFIG_DISPLAY_SUPPORT is not set |
892 | # CONFIG_LOGO is not set | ||
826 | # CONFIG_SOUND is not set | 893 | # CONFIG_SOUND is not set |
827 | CONFIG_USB_SUPPORT=y | 894 | CONFIG_USB_SUPPORT=y |
828 | CONFIG_USB_ARCH_HAS_HCD=y | 895 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -851,6 +918,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
851 | # CONFIG_DMADEVICES is not set | 918 | # CONFIG_DMADEVICES is not set |
852 | # CONFIG_UIO is not set | 919 | # CONFIG_UIO is not set |
853 | # CONFIG_STAGING is not set | 920 | # CONFIG_STAGING is not set |
921 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
854 | 922 | ||
855 | # | 923 | # |
856 | # File systems | 924 | # File systems |
@@ -1077,10 +1145,12 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1077 | # CONFIG_FAULT_INJECTION is not set | 1145 | # CONFIG_FAULT_INJECTION is not set |
1078 | # CONFIG_LATENCYTOP is not set | 1146 | # CONFIG_LATENCYTOP is not set |
1079 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1147 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1080 | CONFIG_NOP_TRACER=y | 1148 | CONFIG_HAVE_FUNCTION_TRACER=y |
1081 | CONFIG_HAVE_FTRACE=y | 1149 | |
1082 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1150 | # |
1083 | # CONFIG_FTRACE is not set | 1151 | # Tracers |
1152 | # | ||
1153 | # CONFIG_FUNCTION_TRACER is not set | ||
1084 | # CONFIG_SCHED_TRACER is not set | 1154 | # CONFIG_SCHED_TRACER is not set |
1085 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1155 | # CONFIG_CONTEXT_SWITCH_TRACER is not set |
1086 | # CONFIG_BOOT_TRACER is not set | 1156 | # CONFIG_BOOT_TRACER is not set |
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig index 55edbd545b61..cfc94cfcf4cb 100644 --- a/arch/powerpc/configs/ppc44x_defconfig +++ b/arch/powerpc/configs/ppc44x_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.28-rc2 | 3 | # Linux kernel version: 2.6.28-rc4 |
4 | # Tue Oct 28 09:28:58 2008 | 4 | # Fri Nov 14 10:06:19 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -506,15 +506,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
506 | # CONFIG_BLK_DEV_XIP is not set | 506 | # CONFIG_BLK_DEV_XIP is not set |
507 | # CONFIG_CDROM_PKTCDVD is not set | 507 | # CONFIG_CDROM_PKTCDVD is not set |
508 | # CONFIG_ATA_OVER_ETH is not set | 508 | # CONFIG_ATA_OVER_ETH is not set |
509 | # CONFIG_XILINX_SYSACE is not set | 509 | CONFIG_XILINX_SYSACE=m |
510 | # CONFIG_BLK_DEV_HD is not set | 510 | # CONFIG_BLK_DEV_HD is not set |
511 | CONFIG_MISC_DEVICES=y | 511 | CONFIG_MISC_DEVICES=y |
512 | # CONFIG_PHANTOM is not set | 512 | # CONFIG_PHANTOM is not set |
513 | # CONFIG_EEPROM_93CX6 is not set | 513 | # CONFIG_EEPROM_93CX6 is not set |
514 | # CONFIG_SGI_IOC4 is not set | 514 | # CONFIG_SGI_IOC4 is not set |
515 | # CONFIG_TIFM_CORE is not set | 515 | # CONFIG_TIFM_CORE is not set |
516 | # CONFIG_ICS932S401 is not set | ||
516 | # CONFIG_ENCLOSURE_SERVICES is not set | 517 | # CONFIG_ENCLOSURE_SERVICES is not set |
517 | # CONFIG_HP_ILO is not set | 518 | # CONFIG_HP_ILO is not set |
519 | # CONFIG_C2PORT is not set | ||
518 | CONFIG_HAVE_IDE=y | 520 | CONFIG_HAVE_IDE=y |
519 | # CONFIG_IDE is not set | 521 | # CONFIG_IDE is not set |
520 | 522 | ||
@@ -680,7 +682,13 @@ CONFIG_NETDEV_10000=y | |||
680 | # | 682 | # |
681 | # Hardware I/O ports | 683 | # Hardware I/O ports |
682 | # | 684 | # |
683 | # CONFIG_SERIO is not set | 685 | CONFIG_SERIO=m |
686 | # CONFIG_SERIO_I8042 is not set | ||
687 | # CONFIG_SERIO_SERPORT is not set | ||
688 | # CONFIG_SERIO_PCIPS2 is not set | ||
689 | # CONFIG_SERIO_LIBPS2 is not set | ||
690 | # CONFIG_SERIO_RAW is not set | ||
691 | CONFIG_SERIO_XILINX_XPS_PS2=m | ||
684 | # CONFIG_GAMEPORT is not set | 692 | # CONFIG_GAMEPORT is not set |
685 | 693 | ||
686 | # | 694 | # |
@@ -708,7 +716,8 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y | |||
708 | # | 716 | # |
709 | # Non-8250 serial port support | 717 | # Non-8250 serial port support |
710 | # | 718 | # |
711 | # CONFIG_SERIAL_UARTLITE is not set | 719 | CONFIG_SERIAL_UARTLITE=y |
720 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | ||
712 | CONFIG_SERIAL_CORE=y | 721 | CONFIG_SERIAL_CORE=y |
713 | CONFIG_SERIAL_CORE_CONSOLE=y | 722 | CONFIG_SERIAL_CORE_CONSOLE=y |
714 | # CONFIG_SERIAL_JSM is not set | 723 | # CONFIG_SERIAL_JSM is not set |
@@ -806,6 +815,11 @@ CONFIG_GPIOLIB=y | |||
806 | # CONFIG_GPIO_SYSFS is not set | 815 | # CONFIG_GPIO_SYSFS is not set |
807 | 816 | ||
808 | # | 817 | # |
818 | # Memory mapped GPIO expanders: | ||
819 | # | ||
820 | CONFIG_GPIO_XILINX=y | ||
821 | |||
822 | # | ||
809 | # I2C GPIO expanders: | 823 | # I2C GPIO expanders: |
810 | # | 824 | # |
811 | # CONFIG_GPIO_MAX732X is not set | 825 | # CONFIG_GPIO_MAX732X is not set |
@@ -826,11 +840,11 @@ CONFIG_GPIOLIB=y | |||
826 | # CONFIG_THERMAL is not set | 840 | # CONFIG_THERMAL is not set |
827 | # CONFIG_THERMAL_HWMON is not set | 841 | # CONFIG_THERMAL_HWMON is not set |
828 | # CONFIG_WATCHDOG is not set | 842 | # CONFIG_WATCHDOG is not set |
843 | CONFIG_SSB_POSSIBLE=y | ||
829 | 844 | ||
830 | # | 845 | # |
831 | # Sonics Silicon Backplane | 846 | # Sonics Silicon Backplane |
832 | # | 847 | # |
833 | CONFIG_SSB_POSSIBLE=y | ||
834 | # CONFIG_SSB is not set | 848 | # CONFIG_SSB is not set |
835 | 849 | ||
836 | # | 850 | # |
@@ -842,6 +856,7 @@ CONFIG_SSB_POSSIBLE=y | |||
842 | # CONFIG_MFD_TMIO is not set | 856 | # CONFIG_MFD_TMIO is not set |
843 | # CONFIG_MFD_WM8400 is not set | 857 | # CONFIG_MFD_WM8400 is not set |
844 | # CONFIG_MFD_WM8350_I2C is not set | 858 | # CONFIG_MFD_WM8350_I2C is not set |
859 | # CONFIG_REGULATOR is not set | ||
845 | 860 | ||
846 | # | 861 | # |
847 | # Multimedia devices | 862 | # Multimedia devices |
@@ -866,13 +881,65 @@ CONFIG_SSB_POSSIBLE=y | |||
866 | # CONFIG_DRM is not set | 881 | # CONFIG_DRM is not set |
867 | # CONFIG_VGASTATE is not set | 882 | # CONFIG_VGASTATE is not set |
868 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 883 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
869 | # CONFIG_FB is not set | 884 | CONFIG_FB=m |
885 | # CONFIG_FIRMWARE_EDID is not set | ||
886 | # CONFIG_FB_DDC is not set | ||
887 | # CONFIG_FB_BOOT_VESA_SUPPORT is not set | ||
888 | CONFIG_FB_CFB_FILLRECT=m | ||
889 | CONFIG_FB_CFB_COPYAREA=m | ||
890 | CONFIG_FB_CFB_IMAGEBLIT=m | ||
891 | # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set | ||
892 | # CONFIG_FB_SYS_FILLRECT is not set | ||
893 | # CONFIG_FB_SYS_COPYAREA is not set | ||
894 | # CONFIG_FB_SYS_IMAGEBLIT is not set | ||
895 | # CONFIG_FB_FOREIGN_ENDIAN is not set | ||
896 | # CONFIG_FB_SYS_FOPS is not set | ||
897 | # CONFIG_FB_SVGALIB is not set | ||
898 | # CONFIG_FB_MACMODES is not set | ||
899 | # CONFIG_FB_BACKLIGHT is not set | ||
900 | # CONFIG_FB_MODE_HELPERS is not set | ||
901 | # CONFIG_FB_TILEBLITTING is not set | ||
902 | |||
903 | # | ||
904 | # Frame buffer hardware drivers | ||
905 | # | ||
906 | # CONFIG_FB_CIRRUS is not set | ||
907 | # CONFIG_FB_PM2 is not set | ||
908 | # CONFIG_FB_CYBER2000 is not set | ||
909 | # CONFIG_FB_VGA16 is not set | ||
910 | # CONFIG_FB_UVESA is not set | ||
911 | # CONFIG_FB_S1D13XXX is not set | ||
912 | # CONFIG_FB_NVIDIA is not set | ||
913 | # CONFIG_FB_RIVA is not set | ||
914 | # CONFIG_FB_MATROX is not set | ||
915 | # CONFIG_FB_RADEON is not set | ||
916 | # CONFIG_FB_ATY128 is not set | ||
917 | # CONFIG_FB_ATY is not set | ||
918 | # CONFIG_FB_S3 is not set | ||
919 | # CONFIG_FB_SAVAGE is not set | ||
920 | # CONFIG_FB_SIS is not set | ||
921 | # CONFIG_FB_VIA is not set | ||
922 | # CONFIG_FB_NEOMAGIC is not set | ||
923 | # CONFIG_FB_KYRO is not set | ||
924 | # CONFIG_FB_3DFX is not set | ||
925 | # CONFIG_FB_VOODOO1 is not set | ||
926 | # CONFIG_FB_VT8623 is not set | ||
927 | # CONFIG_FB_TRIDENT is not set | ||
928 | # CONFIG_FB_ARK is not set | ||
929 | # CONFIG_FB_PM3 is not set | ||
930 | # CONFIG_FB_CARMINE is not set | ||
931 | # CONFIG_FB_IBM_GXT4500 is not set | ||
932 | CONFIG_FB_XILINX=m | ||
933 | # CONFIG_FB_VIRTUAL is not set | ||
934 | # CONFIG_FB_METRONOME is not set | ||
935 | # CONFIG_FB_MB862XX is not set | ||
870 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 936 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
871 | 937 | ||
872 | # | 938 | # |
873 | # Display device support | 939 | # Display device support |
874 | # | 940 | # |
875 | # CONFIG_DISPLAY_SUPPORT is not set | 941 | # CONFIG_DISPLAY_SUPPORT is not set |
942 | # CONFIG_LOGO is not set | ||
876 | # CONFIG_SOUND is not set | 943 | # CONFIG_SOUND is not set |
877 | CONFIG_USB_SUPPORT=y | 944 | CONFIG_USB_SUPPORT=y |
878 | CONFIG_USB_ARCH_HAS_HCD=y | 945 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -1002,6 +1069,7 @@ CONFIG_USB_STORAGE=m | |||
1002 | # CONFIG_DMADEVICES is not set | 1069 | # CONFIG_DMADEVICES is not set |
1003 | # CONFIG_UIO is not set | 1070 | # CONFIG_UIO is not set |
1004 | # CONFIG_STAGING is not set | 1071 | # CONFIG_STAGING is not set |
1072 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
1005 | 1073 | ||
1006 | # | 1074 | # |
1007 | # File systems | 1075 | # File systems |
@@ -1227,10 +1295,12 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1227 | # CONFIG_FAULT_INJECTION is not set | 1295 | # CONFIG_FAULT_INJECTION is not set |
1228 | # CONFIG_LATENCYTOP is not set | 1296 | # CONFIG_LATENCYTOP is not set |
1229 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1297 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1230 | CONFIG_NOP_TRACER=y | 1298 | CONFIG_HAVE_FUNCTION_TRACER=y |
1231 | CONFIG_HAVE_FTRACE=y | 1299 | |
1232 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1300 | # |
1233 | # CONFIG_FTRACE is not set | 1301 | # Tracers |
1302 | # | ||
1303 | # CONFIG_FUNCTION_TRACER is not set | ||
1234 | # CONFIG_SCHED_TRACER is not set | 1304 | # CONFIG_SCHED_TRACER is not set |
1235 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1305 | # CONFIG_CONTEXT_SWITCH_TRACER is not set |
1236 | # CONFIG_BOOT_TRACER is not set | 1306 | # CONFIG_BOOT_TRACER is not set |
diff --git a/arch/powerpc/include/asm/mmu-hash64.h b/arch/powerpc/include/asm/mmu-hash64.h index 5a441742ffba..68b752626808 100644 --- a/arch/powerpc/include/asm/mmu-hash64.h +++ b/arch/powerpc/include/asm/mmu-hash64.h | |||
@@ -280,7 +280,6 @@ extern int hash_huge_page(struct mm_struct *mm, unsigned long access, | |||
280 | extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend, | 280 | extern int htab_bolt_mapping(unsigned long vstart, unsigned long vend, |
281 | unsigned long pstart, unsigned long prot, | 281 | unsigned long pstart, unsigned long prot, |
282 | int psize, int ssize); | 282 | int psize, int ssize); |
283 | extern void set_huge_psize(int psize); | ||
284 | extern void add_gpage(unsigned long addr, unsigned long page_size, | 283 | extern void add_gpage(unsigned long addr, unsigned long page_size, |
285 | unsigned long number_of_pages); | 284 | unsigned long number_of_pages); |
286 | extern void demote_segment_4k(struct mm_struct *mm, unsigned long addr); | 285 | extern void demote_segment_4k(struct mm_struct *mm, unsigned long addr); |
diff --git a/arch/powerpc/include/asm/ptrace.h b/arch/powerpc/include/asm/ptrace.h index 280a90cc9894..c9c678fb2538 100644 --- a/arch/powerpc/include/asm/ptrace.h +++ b/arch/powerpc/include/asm/ptrace.h | |||
@@ -55,8 +55,6 @@ struct pt_regs { | |||
55 | 55 | ||
56 | #ifdef __powerpc64__ | 56 | #ifdef __powerpc64__ |
57 | 57 | ||
58 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
59 | |||
60 | #define STACK_FRAME_OVERHEAD 112 /* size of minimum stack frame */ | 58 | #define STACK_FRAME_OVERHEAD 112 /* size of minimum stack frame */ |
61 | #define STACK_FRAME_LR_SAVE 2 /* Location of LR in stack frame */ | 59 | #define STACK_FRAME_LR_SAVE 2 /* Location of LR in stack frame */ |
62 | #define STACK_FRAME_REGS_MARKER ASM_CONST(0x7265677368657265) | 60 | #define STACK_FRAME_REGS_MARKER ASM_CONST(0x7265677368657265) |
diff --git a/arch/powerpc/kernel/cpu_setup_44x.S b/arch/powerpc/kernel/cpu_setup_44x.S index 80cac984d85d..31c18b52affb 100644 --- a/arch/powerpc/kernel/cpu_setup_44x.S +++ b/arch/powerpc/kernel/cpu_setup_44x.S | |||
@@ -34,7 +34,12 @@ _GLOBAL(__setup_cpu_440grx) | |||
34 | blr | 34 | blr |
35 | _GLOBAL(__setup_cpu_460ex) | 35 | _GLOBAL(__setup_cpu_460ex) |
36 | _GLOBAL(__setup_cpu_460gt) | 36 | _GLOBAL(__setup_cpu_460gt) |
37 | b __init_fpu_44x | 37 | mflr r4 |
38 | bl __init_fpu_44x | ||
39 | bl __fixup_440A_mcheck | ||
40 | mtlr r4 | ||
41 | blr | ||
42 | |||
38 | _GLOBAL(__setup_cpu_440gx) | 43 | _GLOBAL(__setup_cpu_440gx) |
39 | _GLOBAL(__setup_cpu_440spe) | 44 | _GLOBAL(__setup_cpu_440spe) |
40 | b __fixup_440A_mcheck | 45 | b __fixup_440A_mcheck |
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index e6d52845854f..e0bcf9354286 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
@@ -57,12 +57,18 @@ system_call_common: | |||
57 | beq- 1f | 57 | beq- 1f |
58 | ld r1,PACAKSAVE(r13) | 58 | ld r1,PACAKSAVE(r13) |
59 | 1: std r10,0(r1) | 59 | 1: std r10,0(r1) |
60 | crclr so | ||
61 | std r11,_NIP(r1) | 60 | std r11,_NIP(r1) |
62 | std r12,_MSR(r1) | 61 | std r12,_MSR(r1) |
63 | std r0,GPR0(r1) | 62 | std r0,GPR0(r1) |
64 | std r10,GPR1(r1) | 63 | std r10,GPR1(r1) |
65 | ACCOUNT_CPU_USER_ENTRY(r10, r11) | 64 | ACCOUNT_CPU_USER_ENTRY(r10, r11) |
65 | /* | ||
66 | * This "crclr so" clears CR0.SO, which is the error indication on | ||
67 | * return from this system call. There must be no cmp instruction | ||
68 | * between it and the "mfcr r9" below, otherwise if XER.SO is set, | ||
69 | * CR0.SO will get set, causing all system calls to appear to fail. | ||
70 | */ | ||
71 | crclr so | ||
66 | std r2,GPR2(r1) | 72 | std r2,GPR2(r1) |
67 | std r3,GPR3(r1) | 73 | std r3,GPR3(r1) |
68 | std r4,GPR4(r1) | 74 | std r4,GPR4(r1) |
diff --git a/arch/powerpc/kernel/prom_parse.c b/arch/powerpc/kernel/prom_parse.c index bc1fb27368af..a11d68976dc8 100644 --- a/arch/powerpc/kernel/prom_parse.c +++ b/arch/powerpc/kernel/prom_parse.c | |||
@@ -250,8 +250,11 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq) | |||
250 | * parsing | 250 | * parsing |
251 | */ | 251 | */ |
252 | dn = pci_device_to_OF_node(pdev); | 252 | dn = pci_device_to_OF_node(pdev); |
253 | if (dn) | 253 | if (dn) { |
254 | return of_irq_map_one(dn, 0, out_irq); | 254 | rc = of_irq_map_one(dn, 0, out_irq); |
255 | if (!rc) | ||
256 | return rc; | ||
257 | } | ||
255 | 258 | ||
256 | /* Ok, we don't, time to have fun. Let's start by building up an | 259 | /* Ok, we don't, time to have fun. Let's start by building up an |
257 | * interrupt spec. we assume #interrupt-cells is 1, which is standard | 260 | * interrupt spec. we assume #interrupt-cells is 1, which is standard |
diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c index 86a2ffccef25..20885a38237a 100644 --- a/arch/powerpc/kernel/sysfs.c +++ b/arch/powerpc/kernel/sysfs.c | |||
@@ -717,9 +717,11 @@ static void unregister_cpu_online(unsigned int cpu) | |||
717 | 717 | ||
718 | BUG_ON(!c->hotpluggable); | 718 | BUG_ON(!c->hotpluggable); |
719 | 719 | ||
720 | #ifdef CONFIG_PPC64 | ||
720 | if (!firmware_has_feature(FW_FEATURE_ISERIES) && | 721 | if (!firmware_has_feature(FW_FEATURE_ISERIES) && |
721 | cpu_has_feature(CPU_FTR_SMT)) | 722 | cpu_has_feature(CPU_FTR_SMT)) |
722 | sysdev_remove_file(s, &attr_smt_snooze_delay); | 723 | sysdev_remove_file(s, &attr_smt_snooze_delay); |
724 | #endif | ||
723 | 725 | ||
724 | /* PMC stuff */ | 726 | /* PMC stuff */ |
725 | switch (cur_cpu_spec->pmc_type) { | 727 | switch (cur_cpu_spec->pmc_type) { |
diff --git a/arch/powerpc/mm/40x_mmu.c b/arch/powerpc/mm/40x_mmu.c index cecbbc76f624..29954dc28942 100644 --- a/arch/powerpc/mm/40x_mmu.c +++ b/arch/powerpc/mm/40x_mmu.c | |||
@@ -93,7 +93,7 @@ void __init MMU_init_hw(void) | |||
93 | 93 | ||
94 | unsigned long __init mmu_mapin_ram(void) | 94 | unsigned long __init mmu_mapin_ram(void) |
95 | { | 95 | { |
96 | unsigned long v, s; | 96 | unsigned long v, s, mapped; |
97 | phys_addr_t p; | 97 | phys_addr_t p; |
98 | 98 | ||
99 | v = KERNELBASE; | 99 | v = KERNELBASE; |
@@ -130,5 +130,17 @@ unsigned long __init mmu_mapin_ram(void) | |||
130 | s -= LARGE_PAGE_SIZE_4M; | 130 | s -= LARGE_PAGE_SIZE_4M; |
131 | } | 131 | } |
132 | 132 | ||
133 | return total_lowmem - s; | 133 | mapped = total_lowmem - s; |
134 | |||
135 | /* If the size of RAM is not an exact power of two, we may not | ||
136 | * have covered RAM in its entirety with 16 and 4 MiB | ||
137 | * pages. Consequently, restrict the top end of RAM currently | ||
138 | * allocable so that calls to the LMB to allocate PTEs for "tail" | ||
139 | * coverage with normal-sized pages (or other reasons) do not | ||
140 | * attempt to allocate outside the allowed range. | ||
141 | */ | ||
142 | |||
143 | __initial_memory_limit_addr = memstart_addr + mapped; | ||
144 | |||
145 | return mapped; | ||
134 | } | 146 | } |
diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c index a117024ab8cd..7bbf4e4ed430 100644 --- a/arch/powerpc/mm/hugetlbpage.c +++ b/arch/powerpc/mm/hugetlbpage.c | |||
@@ -677,7 +677,7 @@ repeat: | |||
677 | return err; | 677 | return err; |
678 | } | 678 | } |
679 | 679 | ||
680 | void set_huge_psize(int psize) | 680 | static void __init set_huge_psize(int psize) |
681 | { | 681 | { |
682 | /* Check that it is a page size supported by the hardware and | 682 | /* Check that it is a page size supported by the hardware and |
683 | * that it fits within pagetable limits. */ | 683 | * that it fits within pagetable limits. */ |
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index eb505ad34a85..a8397bbad3d4 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c | |||
@@ -865,6 +865,67 @@ static struct notifier_block __cpuinitdata ppc64_numa_nb = { | |||
865 | .priority = 1 /* Must run before sched domains notifier. */ | 865 | .priority = 1 /* Must run before sched domains notifier. */ |
866 | }; | 866 | }; |
867 | 867 | ||
868 | static void mark_reserved_regions_for_nid(int nid) | ||
869 | { | ||
870 | struct pglist_data *node = NODE_DATA(nid); | ||
871 | int i; | ||
872 | |||
873 | for (i = 0; i < lmb.reserved.cnt; i++) { | ||
874 | unsigned long physbase = lmb.reserved.region[i].base; | ||
875 | unsigned long size = lmb.reserved.region[i].size; | ||
876 | unsigned long start_pfn = physbase >> PAGE_SHIFT; | ||
877 | unsigned long end_pfn = ((physbase + size) >> PAGE_SHIFT); | ||
878 | struct node_active_region node_ar; | ||
879 | unsigned long node_end_pfn = node->node_start_pfn + | ||
880 | node->node_spanned_pages; | ||
881 | |||
882 | /* | ||
883 | * Check to make sure that this lmb.reserved area is | ||
884 | * within the bounds of the node that we care about. | ||
885 | * Checking the nid of the start and end points is not | ||
886 | * sufficient because the reserved area could span the | ||
887 | * entire node. | ||
888 | */ | ||
889 | if (end_pfn <= node->node_start_pfn || | ||
890 | start_pfn >= node_end_pfn) | ||
891 | continue; | ||
892 | |||
893 | get_node_active_region(start_pfn, &node_ar); | ||
894 | while (start_pfn < end_pfn && | ||
895 | node_ar.start_pfn < node_ar.end_pfn) { | ||
896 | unsigned long reserve_size = size; | ||
897 | /* | ||
898 | * if reserved region extends past active region | ||
899 | * then trim size to active region | ||
900 | */ | ||
901 | if (end_pfn > node_ar.end_pfn) | ||
902 | reserve_size = (node_ar.end_pfn << PAGE_SHIFT) | ||
903 | - (start_pfn << PAGE_SHIFT); | ||
904 | dbg("reserve_bootmem %lx %lx nid=%d\n", physbase, | ||
905 | reserve_size, node_ar.nid); | ||
906 | reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase, | ||
907 | reserve_size, BOOTMEM_DEFAULT); | ||
908 | /* | ||
909 | * if reserved region is contained in the active region | ||
910 | * then done. | ||
911 | */ | ||
912 | if (end_pfn <= node_ar.end_pfn) | ||
913 | break; | ||
914 | |||
915 | /* | ||
916 | * reserved region extends past the active region | ||
917 | * get next active region that contains this | ||
918 | * reserved region | ||
919 | */ | ||
920 | start_pfn = node_ar.end_pfn; | ||
921 | physbase = start_pfn << PAGE_SHIFT; | ||
922 | size = size - reserve_size; | ||
923 | get_node_active_region(start_pfn, &node_ar); | ||
924 | } | ||
925 | } | ||
926 | } | ||
927 | |||
928 | |||
868 | void __init do_init_bootmem(void) | 929 | void __init do_init_bootmem(void) |
869 | { | 930 | { |
870 | int nid; | 931 | int nid; |
@@ -890,7 +951,13 @@ void __init do_init_bootmem(void) | |||
890 | 951 | ||
891 | get_pfn_range_for_nid(nid, &start_pfn, &end_pfn); | 952 | get_pfn_range_for_nid(nid, &start_pfn, &end_pfn); |
892 | 953 | ||
893 | /* Allocate the node structure node local if possible */ | 954 | /* |
955 | * Allocate the node structure node local if possible | ||
956 | * | ||
957 | * Be careful moving this around, as it relies on all | ||
958 | * previous nodes' bootmem to be initialized and have | ||
959 | * all reserved areas marked. | ||
960 | */ | ||
894 | NODE_DATA(nid) = careful_allocation(nid, | 961 | NODE_DATA(nid) = careful_allocation(nid, |
895 | sizeof(struct pglist_data), | 962 | sizeof(struct pglist_data), |
896 | SMP_CACHE_BYTES, end_pfn); | 963 | SMP_CACHE_BYTES, end_pfn); |
@@ -922,53 +989,14 @@ void __init do_init_bootmem(void) | |||
922 | start_pfn, end_pfn); | 989 | start_pfn, end_pfn); |
923 | 990 | ||
924 | free_bootmem_with_active_regions(nid, end_pfn); | 991 | free_bootmem_with_active_regions(nid, end_pfn); |
925 | } | 992 | /* |
926 | 993 | * Be very careful about moving this around. Future | |
927 | /* Mark reserved regions */ | 994 | * calls to careful_allocation() depend on this getting |
928 | for (i = 0; i < lmb.reserved.cnt; i++) { | 995 | * done correctly. |
929 | unsigned long physbase = lmb.reserved.region[i].base; | 996 | */ |
930 | unsigned long size = lmb.reserved.region[i].size; | 997 | mark_reserved_regions_for_nid(nid); |
931 | unsigned long start_pfn = physbase >> PAGE_SHIFT; | ||
932 | unsigned long end_pfn = ((physbase + size) >> PAGE_SHIFT); | ||
933 | struct node_active_region node_ar; | ||
934 | |||
935 | get_node_active_region(start_pfn, &node_ar); | ||
936 | while (start_pfn < end_pfn && | ||
937 | node_ar.start_pfn < node_ar.end_pfn) { | ||
938 | unsigned long reserve_size = size; | ||
939 | /* | ||
940 | * if reserved region extends past active region | ||
941 | * then trim size to active region | ||
942 | */ | ||
943 | if (end_pfn > node_ar.end_pfn) | ||
944 | reserve_size = (node_ar.end_pfn << PAGE_SHIFT) | ||
945 | - (start_pfn << PAGE_SHIFT); | ||
946 | dbg("reserve_bootmem %lx %lx nid=%d\n", physbase, | ||
947 | reserve_size, node_ar.nid); | ||
948 | reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase, | ||
949 | reserve_size, BOOTMEM_DEFAULT); | ||
950 | /* | ||
951 | * if reserved region is contained in the active region | ||
952 | * then done. | ||
953 | */ | ||
954 | if (end_pfn <= node_ar.end_pfn) | ||
955 | break; | ||
956 | |||
957 | /* | ||
958 | * reserved region extends past the active region | ||
959 | * get next active region that contains this | ||
960 | * reserved region | ||
961 | */ | ||
962 | start_pfn = node_ar.end_pfn; | ||
963 | physbase = start_pfn << PAGE_SHIFT; | ||
964 | size = size - reserve_size; | ||
965 | get_node_active_region(start_pfn, &node_ar); | ||
966 | } | ||
967 | |||
968 | } | ||
969 | |||
970 | for_each_online_node(nid) | ||
971 | sparse_memory_present_with_active_regions(nid); | 998 | sparse_memory_present_with_active_regions(nid); |
999 | } | ||
972 | } | 1000 | } |
973 | 1001 | ||
974 | void __init paging_init(void) | 1002 | void __init paging_init(void) |
diff --git a/arch/powerpc/platforms/cell/axon_msi.c b/arch/powerpc/platforms/cell/axon_msi.c index 896548ba1ca1..442cf36aa172 100644 --- a/arch/powerpc/platforms/cell/axon_msi.c +++ b/arch/powerpc/platforms/cell/axon_msi.c | |||
@@ -95,6 +95,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
95 | struct axon_msic *msic = get_irq_data(irq); | 95 | struct axon_msic *msic = get_irq_data(irq); |
96 | u32 write_offset, msi; | 96 | u32 write_offset, msi; |
97 | int idx; | 97 | int idx; |
98 | int retry = 0; | ||
98 | 99 | ||
99 | write_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG); | 100 | write_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG); |
100 | pr_debug("axon_msi: original write_offset 0x%x\n", write_offset); | 101 | pr_debug("axon_msi: original write_offset 0x%x\n", write_offset); |
@@ -102,7 +103,7 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
102 | /* write_offset doesn't wrap properly, so we have to mask it */ | 103 | /* write_offset doesn't wrap properly, so we have to mask it */ |
103 | write_offset &= MSIC_FIFO_SIZE_MASK; | 104 | write_offset &= MSIC_FIFO_SIZE_MASK; |
104 | 105 | ||
105 | while (msic->read_offset != write_offset) { | 106 | while (msic->read_offset != write_offset && retry < 100) { |
106 | idx = msic->read_offset / sizeof(__le32); | 107 | idx = msic->read_offset / sizeof(__le32); |
107 | msi = le32_to_cpu(msic->fifo_virt[idx]); | 108 | msi = le32_to_cpu(msic->fifo_virt[idx]); |
108 | msi &= 0xFFFF; | 109 | msi &= 0xFFFF; |
@@ -110,13 +111,37 @@ static void axon_msi_cascade(unsigned int irq, struct irq_desc *desc) | |||
110 | pr_debug("axon_msi: woff %x roff %x msi %x\n", | 111 | pr_debug("axon_msi: woff %x roff %x msi %x\n", |
111 | write_offset, msic->read_offset, msi); | 112 | write_offset, msic->read_offset, msi); |
112 | 113 | ||
114 | if (msi < NR_IRQS && irq_map[msi].host == msic->irq_host) { | ||
115 | generic_handle_irq(msi); | ||
116 | msic->fifo_virt[idx] = cpu_to_le32(0xffffffff); | ||
117 | } else { | ||
118 | /* | ||
119 | * Reading the MSIC_WRITE_OFFSET_REG does not | ||
120 | * reliably flush the outstanding DMA to the | ||
121 | * FIFO buffer. Here we were reading stale | ||
122 | * data, so we need to retry. | ||
123 | */ | ||
124 | udelay(1); | ||
125 | retry++; | ||
126 | pr_debug("axon_msi: invalid irq 0x%x!\n", msi); | ||
127 | continue; | ||
128 | } | ||
129 | |||
130 | if (retry) { | ||
131 | pr_debug("axon_msi: late irq 0x%x, retry %d\n", | ||
132 | msi, retry); | ||
133 | retry = 0; | ||
134 | } | ||
135 | |||
113 | msic->read_offset += MSIC_FIFO_ENTRY_SIZE; | 136 | msic->read_offset += MSIC_FIFO_ENTRY_SIZE; |
114 | msic->read_offset &= MSIC_FIFO_SIZE_MASK; | 137 | msic->read_offset &= MSIC_FIFO_SIZE_MASK; |
138 | } | ||
115 | 139 | ||
116 | if (msi < NR_IRQS && irq_map[msi].host == msic->irq_host) | 140 | if (retry) { |
117 | generic_handle_irq(msi); | 141 | printk(KERN_WARNING "axon_msi: irq timed out\n"); |
118 | else | 142 | |
119 | pr_debug("axon_msi: invalid irq 0x%x!\n", msi); | 143 | msic->read_offset += MSIC_FIFO_ENTRY_SIZE; |
144 | msic->read_offset &= MSIC_FIFO_SIZE_MASK; | ||
120 | } | 145 | } |
121 | 146 | ||
122 | desc->chip->eoi(irq); | 147 | desc->chip->eoi(irq); |
@@ -364,6 +389,7 @@ static int axon_msi_probe(struct of_device *device, | |||
364 | dn->full_name); | 389 | dn->full_name); |
365 | goto out_free_fifo; | 390 | goto out_free_fifo; |
366 | } | 391 | } |
392 | memset(msic->fifo_virt, 0xff, MSIC_FIFO_SIZE_BYTES); | ||
367 | 393 | ||
368 | msic->irq_host = irq_alloc_host(dn, IRQ_HOST_MAP_NOMAP, | 394 | msic->irq_host = irq_alloc_host(dn, IRQ_HOST_MAP_NOMAP, |
369 | NR_IRQS, &msic_host_ops, 0); | 395 | NR_IRQS, &msic_host_ops, 0); |
diff --git a/arch/powerpc/platforms/cell/smp.c b/arch/powerpc/platforms/cell/smp.c index c0d86e1f56ea..9046803c8276 100644 --- a/arch/powerpc/platforms/cell/smp.c +++ b/arch/powerpc/platforms/cell/smp.c | |||
@@ -129,10 +129,15 @@ static int __init smp_iic_probe(void) | |||
129 | return cpus_weight(cpu_possible_map); | 129 | return cpus_weight(cpu_possible_map); |
130 | } | 130 | } |
131 | 131 | ||
132 | static void __devinit smp_iic_setup_cpu(int cpu) | 132 | static void __devinit smp_cell_setup_cpu(int cpu) |
133 | { | 133 | { |
134 | if (cpu != boot_cpuid) | 134 | if (cpu != boot_cpuid) |
135 | iic_setup_cpu(); | 135 | iic_setup_cpu(); |
136 | |||
137 | /* | ||
138 | * change default DABRX to allow user watchpoints | ||
139 | */ | ||
140 | mtspr(SPRN_DABRX, DABRX_KERNEL | DABRX_USER); | ||
136 | } | 141 | } |
137 | 142 | ||
138 | static DEFINE_SPINLOCK(timebase_lock); | 143 | static DEFINE_SPINLOCK(timebase_lock); |
@@ -192,7 +197,7 @@ static struct smp_ops_t bpa_iic_smp_ops = { | |||
192 | .message_pass = smp_iic_message_pass, | 197 | .message_pass = smp_iic_message_pass, |
193 | .probe = smp_iic_probe, | 198 | .probe = smp_iic_probe, |
194 | .kick_cpu = smp_cell_kick_cpu, | 199 | .kick_cpu = smp_cell_kick_cpu, |
195 | .setup_cpu = smp_iic_setup_cpu, | 200 | .setup_cpu = smp_cell_setup_cpu, |
196 | .cpu_bootable = smp_cell_cpu_bootable, | 201 | .cpu_bootable = smp_cell_cpu_bootable, |
197 | }; | 202 | }; |
198 | 203 | ||
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index b73c369cc6f1..1b26071a86ca 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
@@ -390,6 +390,9 @@ static int spufs_ps_fault(struct vm_area_struct *vma, | |||
390 | if (offset >= ps_size) | 390 | if (offset >= ps_size) |
391 | return VM_FAULT_SIGBUS; | 391 | return VM_FAULT_SIGBUS; |
392 | 392 | ||
393 | if (fatal_signal_pending(current)) | ||
394 | return VM_FAULT_SIGBUS; | ||
395 | |||
393 | /* | 396 | /* |
394 | * Because we release the mmap_sem, the context may be destroyed while | 397 | * Because we release the mmap_sem, the context may be destroyed while |
395 | * we're in spu_wait. Grab an extra reference so it isn't destroyed | 398 | * we're in spu_wait. Grab an extra reference so it isn't destroyed |
diff --git a/arch/powerpc/sysdev/bestcomm/Kconfig b/arch/powerpc/sysdev/bestcomm/Kconfig index 57cc56562567..0b192a1c429d 100644 --- a/arch/powerpc/sysdev/bestcomm/Kconfig +++ b/arch/powerpc/sysdev/bestcomm/Kconfig | |||
@@ -17,23 +17,20 @@ config PPC_BESTCOMM | |||
17 | answer Y or M. Otherwise say N. | 17 | answer Y or M. Otherwise say N. |
18 | 18 | ||
19 | config PPC_BESTCOMM_ATA | 19 | config PPC_BESTCOMM_ATA |
20 | tristate "Bestcomm ATA task support" | 20 | tristate |
21 | depends on PPC_BESTCOMM | 21 | depends on PPC_BESTCOMM |
22 | default n | ||
23 | help | 22 | help |
24 | This option enables the support for the ATA task. | 23 | This option enables the support for the ATA task. |
25 | 24 | ||
26 | config PPC_BESTCOMM_FEC | 25 | config PPC_BESTCOMM_FEC |
27 | tristate "Bestcomm FEC tasks support" | 26 | tristate |
28 | depends on PPC_BESTCOMM | 27 | depends on PPC_BESTCOMM |
29 | default n | ||
30 | help | 28 | help |
31 | This option enables the support for the FEC tasks. | 29 | This option enables the support for the FEC tasks. |
32 | 30 | ||
33 | config PPC_BESTCOMM_GEN_BD | 31 | config PPC_BESTCOMM_GEN_BD |
34 | tristate "Bestcomm GenBD tasks support" | 32 | tristate |
35 | depends on PPC_BESTCOMM | 33 | depends on PPC_BESTCOMM |
36 | default n | ||
37 | help | 34 | help |
38 | This option enables the support for the GenBD tasks. | 35 | This option enables the support for the GenBD tasks. |
39 | 36 | ||
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index f6299cca7814..b24e1d085557 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
@@ -1271,6 +1271,7 @@ void __init mpic_set_default_senses(struct mpic *mpic, u8 *senses, int count) | |||
1271 | void __init mpic_init(struct mpic *mpic) | 1271 | void __init mpic_init(struct mpic *mpic) |
1272 | { | 1272 | { |
1273 | int i; | 1273 | int i; |
1274 | int cpu; | ||
1274 | 1275 | ||
1275 | BUG_ON(mpic->num_sources == 0); | 1276 | BUG_ON(mpic->num_sources == 0); |
1276 | 1277 | ||
@@ -1313,6 +1314,11 @@ void __init mpic_init(struct mpic *mpic) | |||
1313 | 1314 | ||
1314 | mpic_pasemi_msi_init(mpic); | 1315 | mpic_pasemi_msi_init(mpic); |
1315 | 1316 | ||
1317 | if (mpic->flags & MPIC_PRIMARY) | ||
1318 | cpu = hard_smp_processor_id(); | ||
1319 | else | ||
1320 | cpu = 0; | ||
1321 | |||
1316 | for (i = 0; i < mpic->num_sources; i++) { | 1322 | for (i = 0; i < mpic->num_sources; i++) { |
1317 | /* start with vector = source number, and masked */ | 1323 | /* start with vector = source number, and masked */ |
1318 | u32 vecpri = MPIC_VECPRI_MASK | i | | 1324 | u32 vecpri = MPIC_VECPRI_MASK | i | |
@@ -1323,8 +1329,7 @@ void __init mpic_init(struct mpic *mpic) | |||
1323 | continue; | 1329 | continue; |
1324 | /* init hw */ | 1330 | /* init hw */ |
1325 | mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri); | 1331 | mpic_irq_write(i, MPIC_INFO(IRQ_VECTOR_PRI), vecpri); |
1326 | mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), | 1332 | mpic_irq_write(i, MPIC_INFO(IRQ_DESTINATION), 1 << cpu); |
1327 | 1 << hard_smp_processor_id()); | ||
1328 | } | 1333 | } |
1329 | 1334 | ||
1330 | /* Init spurious vector */ | 1335 | /* Init spurious vector */ |
diff --git a/arch/powerpc/sysdev/xilinx_intc.c b/arch/powerpc/sysdev/xilinx_intc.c index b7aefd0d45cb..a22e1a2df1af 100644 --- a/arch/powerpc/sysdev/xilinx_intc.c +++ b/arch/powerpc/sysdev/xilinx_intc.c | |||
@@ -107,8 +107,8 @@ xilinx_intc_init(struct device_node *np) | |||
107 | } | 107 | } |
108 | regs = ioremap(res.start, 32); | 108 | regs = ioremap(res.start, 32); |
109 | 109 | ||
110 | printk(KERN_INFO "Xilinx intc at 0x%08LX mapped to 0x%p\n", | 110 | printk(KERN_INFO "Xilinx intc at 0x%08llx mapped to 0x%p\n", |
111 | res.start, regs); | 111 | (unsigned long long) res.start, regs); |
112 | 112 | ||
113 | /* Setup interrupt controller */ | 113 | /* Setup interrupt controller */ |
114 | out_be32(regs + XINTC_IER, 0); /* disable all irqs */ | 114 | out_be32(regs + XINTC_IER, 0); /* disable all irqs */ |
diff --git a/arch/s390/defconfig b/arch/s390/defconfig index 9b0bc2c9fba0..a0e748da9909 100644 --- a/arch/s390/defconfig +++ b/arch/s390/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-rc4 | 3 | # Linux kernel version: 2.6.28-rc6 |
4 | # Thu Aug 21 19:43:29 2008 | 4 | # Thu Nov 27 11:00:49 2008 |
5 | # | 5 | # |
6 | CONFIG_SCHED_MC=y | 6 | CONFIG_SCHED_MC=y |
7 | CONFIG_MMU=y | 7 | CONFIG_MMU=y |
@@ -45,6 +45,7 @@ CONFIG_LOG_BUF_SHIFT=17 | |||
45 | CONFIG_CGROUPS=y | 45 | CONFIG_CGROUPS=y |
46 | # CONFIG_CGROUP_DEBUG is not set | 46 | # CONFIG_CGROUP_DEBUG is not set |
47 | CONFIG_CGROUP_NS=y | 47 | CONFIG_CGROUP_NS=y |
48 | # CONFIG_CGROUP_FREEZER is not set | ||
48 | # CONFIG_CGROUP_DEVICE is not set | 49 | # CONFIG_CGROUP_DEVICE is not set |
49 | # CONFIG_CPUSETS is not set | 50 | # CONFIG_CPUSETS is not set |
50 | CONFIG_GROUP_SCHED=y | 51 | CONFIG_GROUP_SCHED=y |
@@ -84,6 +85,7 @@ CONFIG_SIGNALFD=y | |||
84 | CONFIG_TIMERFD=y | 85 | CONFIG_TIMERFD=y |
85 | CONFIG_EVENTFD=y | 86 | CONFIG_EVENTFD=y |
86 | CONFIG_SHMEM=y | 87 | CONFIG_SHMEM=y |
88 | CONFIG_AIO=y | ||
87 | CONFIG_VM_EVENT_COUNTERS=y | 89 | CONFIG_VM_EVENT_COUNTERS=y |
88 | CONFIG_SLAB=y | 90 | CONFIG_SLAB=y |
89 | # CONFIG_SLUB is not set | 91 | # CONFIG_SLUB is not set |
@@ -92,16 +94,10 @@ CONFIG_SLAB=y | |||
92 | # CONFIG_MARKERS is not set | 94 | # CONFIG_MARKERS is not set |
93 | CONFIG_HAVE_OPROFILE=y | 95 | CONFIG_HAVE_OPROFILE=y |
94 | CONFIG_KPROBES=y | 96 | CONFIG_KPROBES=y |
95 | # CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set | ||
96 | CONFIG_KRETPROBES=y | 97 | CONFIG_KRETPROBES=y |
97 | # CONFIG_HAVE_IOREMAP_PROT is not set | ||
98 | CONFIG_HAVE_KPROBES=y | 98 | CONFIG_HAVE_KPROBES=y |
99 | CONFIG_HAVE_KRETPROBES=y | 99 | CONFIG_HAVE_KRETPROBES=y |
100 | # CONFIG_HAVE_ARCH_TRACEHOOK is not set | 100 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
101 | # CONFIG_HAVE_DMA_ATTRS is not set | ||
102 | # CONFIG_USE_GENERIC_SMP_HELPERS is not set | ||
103 | # CONFIG_HAVE_CLK is not set | ||
104 | CONFIG_PROC_PAGE_MONITOR=y | ||
105 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 101 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
106 | CONFIG_SLABINFO=y | 102 | CONFIG_SLABINFO=y |
107 | CONFIG_RT_MUTEXES=y | 103 | CONFIG_RT_MUTEXES=y |
@@ -135,6 +131,7 @@ CONFIG_DEFAULT_DEADLINE=y | |||
135 | CONFIG_DEFAULT_IOSCHED="deadline" | 131 | CONFIG_DEFAULT_IOSCHED="deadline" |
136 | CONFIG_PREEMPT_NOTIFIERS=y | 132 | CONFIG_PREEMPT_NOTIFIERS=y |
137 | CONFIG_CLASSIC_RCU=y | 133 | CONFIG_CLASSIC_RCU=y |
134 | # CONFIG_FREEZER is not set | ||
138 | 135 | ||
139 | # | 136 | # |
140 | # Base setup | 137 | # Base setup |
@@ -189,7 +186,6 @@ CONFIG_SELECT_MEMORY_MODEL=y | |||
189 | CONFIG_SPARSEMEM_MANUAL=y | 186 | CONFIG_SPARSEMEM_MANUAL=y |
190 | CONFIG_SPARSEMEM=y | 187 | CONFIG_SPARSEMEM=y |
191 | CONFIG_HAVE_MEMORY_PRESENT=y | 188 | CONFIG_HAVE_MEMORY_PRESENT=y |
192 | # CONFIG_SPARSEMEM_STATIC is not set | ||
193 | CONFIG_SPARSEMEM_EXTREME=y | 189 | CONFIG_SPARSEMEM_EXTREME=y |
194 | CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y | 190 | CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y |
195 | CONFIG_SPARSEMEM_VMEMMAP=y | 191 | CONFIG_SPARSEMEM_VMEMMAP=y |
@@ -200,9 +196,11 @@ CONFIG_PAGEFLAGS_EXTENDED=y | |||
200 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 196 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
201 | CONFIG_MIGRATION=y | 197 | CONFIG_MIGRATION=y |
202 | CONFIG_RESOURCES_64BIT=y | 198 | CONFIG_RESOURCES_64BIT=y |
199 | CONFIG_PHYS_ADDR_T_64BIT=y | ||
203 | CONFIG_ZONE_DMA_FLAG=1 | 200 | CONFIG_ZONE_DMA_FLAG=1 |
204 | CONFIG_BOUNCE=y | 201 | CONFIG_BOUNCE=y |
205 | CONFIG_VIRT_TO_BUS=y | 202 | CONFIG_VIRT_TO_BUS=y |
203 | CONFIG_UNEVICTABLE_LRU=y | ||
206 | 204 | ||
207 | # | 205 | # |
208 | # I/O subsystem configuration | 206 | # I/O subsystem configuration |
@@ -220,6 +218,8 @@ CONFIG_IPL=y | |||
220 | CONFIG_IPL_VM=y | 218 | CONFIG_IPL_VM=y |
221 | CONFIG_BINFMT_ELF=y | 219 | CONFIG_BINFMT_ELF=y |
222 | CONFIG_COMPAT_BINFMT_ELF=y | 220 | CONFIG_COMPAT_BINFMT_ELF=y |
221 | # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set | ||
222 | # CONFIG_HAVE_AOUT is not set | ||
223 | CONFIG_BINFMT_MISC=m | 223 | CONFIG_BINFMT_MISC=m |
224 | CONFIG_FORCE_MAX_ZONEORDER=9 | 224 | CONFIG_FORCE_MAX_ZONEORDER=9 |
225 | # CONFIG_PROCESS_DEBUG is not set | 225 | # CONFIG_PROCESS_DEBUG is not set |
@@ -255,7 +255,7 @@ CONFIG_XFRM=y | |||
255 | # CONFIG_XFRM_STATISTICS is not set | 255 | # CONFIG_XFRM_STATISTICS is not set |
256 | CONFIG_NET_KEY=y | 256 | CONFIG_NET_KEY=y |
257 | # CONFIG_NET_KEY_MIGRATE is not set | 257 | # CONFIG_NET_KEY_MIGRATE is not set |
258 | CONFIG_IUCV=m | 258 | CONFIG_IUCV=y |
259 | CONFIG_AFIUCV=m | 259 | CONFIG_AFIUCV=m |
260 | CONFIG_INET=y | 260 | CONFIG_INET=y |
261 | CONFIG_IP_MULTICAST=y | 261 | CONFIG_IP_MULTICAST=y |
@@ -282,7 +282,6 @@ CONFIG_INET_TCP_DIAG=y | |||
282 | CONFIG_TCP_CONG_CUBIC=y | 282 | CONFIG_TCP_CONG_CUBIC=y |
283 | CONFIG_DEFAULT_TCP_CONG="cubic" | 283 | CONFIG_DEFAULT_TCP_CONG="cubic" |
284 | # CONFIG_TCP_MD5SIG is not set | 284 | # CONFIG_TCP_MD5SIG is not set |
285 | # CONFIG_IP_VS is not set | ||
286 | CONFIG_IPV6=y | 285 | CONFIG_IPV6=y |
287 | # CONFIG_IPV6_PRIVACY is not set | 286 | # CONFIG_IPV6_PRIVACY is not set |
288 | # CONFIG_IPV6_ROUTER_PREF is not set | 287 | # CONFIG_IPV6_ROUTER_PREF is not set |
@@ -331,10 +330,12 @@ CONFIG_NF_CONNTRACK=m | |||
331 | # CONFIG_NF_CONNTRACK_TFTP is not set | 330 | # CONFIG_NF_CONNTRACK_TFTP is not set |
332 | # CONFIG_NF_CT_NETLINK is not set | 331 | # CONFIG_NF_CT_NETLINK is not set |
333 | # CONFIG_NETFILTER_XTABLES is not set | 332 | # CONFIG_NETFILTER_XTABLES is not set |
333 | # CONFIG_IP_VS is not set | ||
334 | 334 | ||
335 | # | 335 | # |
336 | # IP: Netfilter Configuration | 336 | # IP: Netfilter Configuration |
337 | # | 337 | # |
338 | # CONFIG_NF_DEFRAG_IPV4 is not set | ||
338 | # CONFIG_NF_CONNTRACK_IPV4 is not set | 339 | # CONFIG_NF_CONNTRACK_IPV4 is not set |
339 | # CONFIG_IP_NF_QUEUE is not set | 340 | # CONFIG_IP_NF_QUEUE is not set |
340 | # CONFIG_IP_NF_IPTABLES is not set | 341 | # CONFIG_IP_NF_IPTABLES is not set |
@@ -374,6 +375,7 @@ CONFIG_NET_SCH_CBQ=m | |||
374 | # CONFIG_NET_SCH_HTB is not set | 375 | # CONFIG_NET_SCH_HTB is not set |
375 | # CONFIG_NET_SCH_HFSC is not set | 376 | # CONFIG_NET_SCH_HFSC is not set |
376 | CONFIG_NET_SCH_PRIO=m | 377 | CONFIG_NET_SCH_PRIO=m |
378 | CONFIG_NET_SCH_MULTIQ=y | ||
377 | CONFIG_NET_SCH_RED=m | 379 | CONFIG_NET_SCH_RED=m |
378 | CONFIG_NET_SCH_SFQ=m | 380 | CONFIG_NET_SCH_SFQ=m |
379 | CONFIG_NET_SCH_TEQL=m | 381 | CONFIG_NET_SCH_TEQL=m |
@@ -406,6 +408,7 @@ CONFIG_NET_ACT_POLICE=y | |||
406 | CONFIG_NET_ACT_NAT=m | 408 | CONFIG_NET_ACT_NAT=m |
407 | # CONFIG_NET_ACT_PEDIT is not set | 409 | # CONFIG_NET_ACT_PEDIT is not set |
408 | # CONFIG_NET_ACT_SIMP is not set | 410 | # CONFIG_NET_ACT_SIMP is not set |
411 | # CONFIG_NET_ACT_SKBEDIT is not set | ||
409 | # CONFIG_NET_CLS_IND is not set | 412 | # CONFIG_NET_CLS_IND is not set |
410 | CONFIG_NET_SCH_FIFO=y | 413 | CONFIG_NET_SCH_FIFO=y |
411 | 414 | ||
@@ -424,6 +427,7 @@ CONFIG_CAN_BCM=m | |||
424 | CONFIG_CAN_VCAN=m | 427 | CONFIG_CAN_VCAN=m |
425 | # CONFIG_CAN_DEBUG_DEVICES is not set | 428 | # CONFIG_CAN_DEBUG_DEVICES is not set |
426 | # CONFIG_AF_RXRPC is not set | 429 | # CONFIG_AF_RXRPC is not set |
430 | # CONFIG_PHONET is not set | ||
427 | # CONFIG_RFKILL is not set | 431 | # CONFIG_RFKILL is not set |
428 | # CONFIG_NET_9P is not set | 432 | # CONFIG_NET_9P is not set |
429 | # CONFIG_PCMCIA is not set | 433 | # CONFIG_PCMCIA is not set |
@@ -473,7 +477,7 @@ CONFIG_VIRTIO_BLK=m | |||
473 | CONFIG_MISC_DEVICES=y | 477 | CONFIG_MISC_DEVICES=y |
474 | # CONFIG_EEPROM_93CX6 is not set | 478 | # CONFIG_EEPROM_93CX6 is not set |
475 | # CONFIG_ENCLOSURE_SERVICES is not set | 479 | # CONFIG_ENCLOSURE_SERVICES is not set |
476 | # CONFIG_HAVE_IDE is not set | 480 | # CONFIG_C2PORT is not set |
477 | 481 | ||
478 | # | 482 | # |
479 | # SCSI device support | 483 | # SCSI device support |
@@ -525,6 +529,7 @@ CONFIG_SCSI_DH_EMC=m | |||
525 | CONFIG_SCSI_DH_ALUA=m | 529 | CONFIG_SCSI_DH_ALUA=m |
526 | CONFIG_MD=y | 530 | CONFIG_MD=y |
527 | CONFIG_BLK_DEV_MD=y | 531 | CONFIG_BLK_DEV_MD=y |
532 | CONFIG_MD_AUTODETECT=y | ||
528 | CONFIG_MD_LINEAR=m | 533 | CONFIG_MD_LINEAR=m |
529 | CONFIG_MD_RAID0=m | 534 | CONFIG_MD_RAID0=m |
530 | CONFIG_MD_RAID1=m | 535 | CONFIG_MD_RAID1=m |
@@ -555,6 +560,9 @@ CONFIG_NET_ETHERNET=y | |||
555 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 560 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
556 | # CONFIG_IBM_NEW_EMAC_TAH is not set | 561 | # CONFIG_IBM_NEW_EMAC_TAH is not set |
557 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 562 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
563 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
564 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
565 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
558 | CONFIG_NETDEV_1000=y | 566 | CONFIG_NETDEV_1000=y |
559 | CONFIG_NETDEV_10000=y | 567 | CONFIG_NETDEV_10000=y |
560 | # CONFIG_TR is not set | 568 | # CONFIG_TR is not set |
@@ -632,13 +640,12 @@ CONFIG_S390_VMUR=m | |||
632 | # CONFIG_THERMAL is not set | 640 | # CONFIG_THERMAL is not set |
633 | # CONFIG_THERMAL_HWMON is not set | 641 | # CONFIG_THERMAL_HWMON is not set |
634 | # CONFIG_WATCHDOG is not set | 642 | # CONFIG_WATCHDOG is not set |
635 | 643 | # CONFIG_REGULATOR is not set | |
636 | # | ||
637 | # Sonics Silicon Backplane | ||
638 | # | ||
639 | # CONFIG_MEMSTICK is not set | 644 | # CONFIG_MEMSTICK is not set |
640 | # CONFIG_NEW_LEDS is not set | 645 | # CONFIG_NEW_LEDS is not set |
641 | CONFIG_ACCESSIBILITY=y | 646 | CONFIG_ACCESSIBILITY=y |
647 | # CONFIG_STAGING is not set | ||
648 | CONFIG_STAGING_EXCLUDE_BUILD=y | ||
642 | 649 | ||
643 | # | 650 | # |
644 | # File systems | 651 | # File systems |
@@ -650,13 +657,14 @@ CONFIG_EXT3_FS=y | |||
650 | CONFIG_EXT3_FS_XATTR=y | 657 | CONFIG_EXT3_FS_XATTR=y |
651 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 658 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
652 | # CONFIG_EXT3_FS_SECURITY is not set | 659 | # CONFIG_EXT3_FS_SECURITY is not set |
653 | # CONFIG_EXT4DEV_FS is not set | 660 | # CONFIG_EXT4_FS is not set |
654 | CONFIG_JBD=y | 661 | CONFIG_JBD=y |
655 | # CONFIG_JBD_DEBUG is not set | 662 | # CONFIG_JBD_DEBUG is not set |
656 | CONFIG_FS_MBCACHE=y | 663 | CONFIG_FS_MBCACHE=y |
657 | # CONFIG_REISERFS_FS is not set | 664 | # CONFIG_REISERFS_FS is not set |
658 | # CONFIG_JFS_FS is not set | 665 | # CONFIG_JFS_FS is not set |
659 | CONFIG_FS_POSIX_ACL=y | 666 | CONFIG_FS_POSIX_ACL=y |
667 | CONFIG_FILE_LOCKING=y | ||
660 | # CONFIG_XFS_FS is not set | 668 | # CONFIG_XFS_FS is not set |
661 | # CONFIG_GFS2_FS is not set | 669 | # CONFIG_GFS2_FS is not set |
662 | # CONFIG_OCFS2_FS is not set | 670 | # CONFIG_OCFS2_FS is not set |
@@ -688,6 +696,7 @@ CONFIG_GENERIC_ACL=y | |||
688 | CONFIG_PROC_FS=y | 696 | CONFIG_PROC_FS=y |
689 | CONFIG_PROC_KCORE=y | 697 | CONFIG_PROC_KCORE=y |
690 | CONFIG_PROC_SYSCTL=y | 698 | CONFIG_PROC_SYSCTL=y |
699 | CONFIG_PROC_PAGE_MONITOR=y | ||
691 | CONFIG_SYSFS=y | 700 | CONFIG_SYSFS=y |
692 | CONFIG_TMPFS=y | 701 | CONFIG_TMPFS=y |
693 | CONFIG_TMPFS_POSIX_ACL=y | 702 | CONFIG_TMPFS_POSIX_ACL=y |
@@ -728,6 +737,7 @@ CONFIG_LOCKD_V4=y | |||
728 | CONFIG_EXPORTFS=y | 737 | CONFIG_EXPORTFS=y |
729 | CONFIG_NFS_COMMON=y | 738 | CONFIG_NFS_COMMON=y |
730 | CONFIG_SUNRPC=y | 739 | CONFIG_SUNRPC=y |
740 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
731 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 741 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
732 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 742 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
733 | # CONFIG_SMB_FS is not set | 743 | # CONFIG_SMB_FS is not set |
@@ -800,12 +810,24 @@ CONFIG_DEBUG_MEMORY_INIT=y | |||
800 | # CONFIG_DEBUG_SG is not set | 810 | # CONFIG_DEBUG_SG is not set |
801 | # CONFIG_FRAME_POINTER is not set | 811 | # CONFIG_FRAME_POINTER is not set |
802 | # CONFIG_RCU_TORTURE_TEST is not set | 812 | # CONFIG_RCU_TORTURE_TEST is not set |
813 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
803 | # CONFIG_KPROBES_SANITY_TEST is not set | 814 | # CONFIG_KPROBES_SANITY_TEST is not set |
804 | # CONFIG_BACKTRACE_SELF_TEST is not set | 815 | # CONFIG_BACKTRACE_SELF_TEST is not set |
816 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | ||
805 | # CONFIG_LKDTM is not set | 817 | # CONFIG_LKDTM is not set |
806 | # CONFIG_FAULT_INJECTION is not set | 818 | # CONFIG_FAULT_INJECTION is not set |
807 | # CONFIG_LATENCYTOP is not set | 819 | # CONFIG_LATENCYTOP is not set |
808 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 820 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
821 | |||
822 | # | ||
823 | # Tracers | ||
824 | # | ||
825 | # CONFIG_IRQSOFF_TRACER is not set | ||
826 | # CONFIG_PREEMPT_TRACER is not set | ||
827 | # CONFIG_SCHED_TRACER is not set | ||
828 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
829 | # CONFIG_BOOT_TRACER is not set | ||
830 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
809 | CONFIG_SAMPLES=y | 831 | CONFIG_SAMPLES=y |
810 | # CONFIG_SAMPLE_KOBJECT is not set | 832 | # CONFIG_SAMPLE_KOBJECT is not set |
811 | # CONFIG_SAMPLE_KPROBES is not set | 833 | # CONFIG_SAMPLE_KPROBES is not set |
@@ -816,16 +838,19 @@ CONFIG_SAMPLES=y | |||
816 | # | 838 | # |
817 | # CONFIG_KEYS is not set | 839 | # CONFIG_KEYS is not set |
818 | # CONFIG_SECURITY is not set | 840 | # CONFIG_SECURITY is not set |
841 | # CONFIG_SECURITYFS is not set | ||
819 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 842 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
820 | CONFIG_CRYPTO=y | 843 | CONFIG_CRYPTO=y |
821 | 844 | ||
822 | # | 845 | # |
823 | # Crypto core or helper | 846 | # Crypto core or helper |
824 | # | 847 | # |
848 | CONFIG_CRYPTO_FIPS=y | ||
825 | CONFIG_CRYPTO_ALGAPI=y | 849 | CONFIG_CRYPTO_ALGAPI=y |
826 | CONFIG_CRYPTO_AEAD=m | 850 | CONFIG_CRYPTO_AEAD=y |
827 | CONFIG_CRYPTO_BLKCIPHER=y | 851 | CONFIG_CRYPTO_BLKCIPHER=y |
828 | CONFIG_CRYPTO_HASH=m | 852 | CONFIG_CRYPTO_HASH=y |
853 | CONFIG_CRYPTO_RNG=y | ||
829 | CONFIG_CRYPTO_MANAGER=y | 854 | CONFIG_CRYPTO_MANAGER=y |
830 | CONFIG_CRYPTO_GF128MUL=m | 855 | CONFIG_CRYPTO_GF128MUL=m |
831 | # CONFIG_CRYPTO_NULL is not set | 856 | # CONFIG_CRYPTO_NULL is not set |
@@ -877,7 +902,7 @@ CONFIG_CRYPTO_SHA1=m | |||
877 | # | 902 | # |
878 | # Ciphers | 903 | # Ciphers |
879 | # | 904 | # |
880 | # CONFIG_CRYPTO_AES is not set | 905 | CONFIG_CRYPTO_AES=m |
881 | # CONFIG_CRYPTO_ANUBIS is not set | 906 | # CONFIG_CRYPTO_ANUBIS is not set |
882 | # CONFIG_CRYPTO_ARC4 is not set | 907 | # CONFIG_CRYPTO_ARC4 is not set |
883 | # CONFIG_CRYPTO_BLOWFISH is not set | 908 | # CONFIG_CRYPTO_BLOWFISH is not set |
@@ -898,6 +923,11 @@ CONFIG_CRYPTO_SEED=m | |||
898 | # | 923 | # |
899 | # CONFIG_CRYPTO_DEFLATE is not set | 924 | # CONFIG_CRYPTO_DEFLATE is not set |
900 | CONFIG_CRYPTO_LZO=m | 925 | CONFIG_CRYPTO_LZO=m |
926 | |||
927 | # | ||
928 | # Random Number Generation | ||
929 | # | ||
930 | CONFIG_CRYPTO_ANSI_CPRNG=m | ||
901 | CONFIG_CRYPTO_HW=y | 931 | CONFIG_CRYPTO_HW=y |
902 | CONFIG_ZCRYPT=m | 932 | CONFIG_ZCRYPT=m |
903 | # CONFIG_ZCRYPT_MONOLITHIC is not set | 933 | # CONFIG_ZCRYPT_MONOLITHIC is not set |
@@ -912,8 +942,6 @@ CONFIG_S390_PRNG=m | |||
912 | # Library routines | 942 | # Library routines |
913 | # | 943 | # |
914 | CONFIG_BITREVERSE=m | 944 | CONFIG_BITREVERSE=m |
915 | # CONFIG_GENERIC_FIND_FIRST_BIT is not set | ||
916 | # CONFIG_GENERIC_FIND_NEXT_BIT is not set | ||
917 | # CONFIG_CRC_CCITT is not set | 945 | # CONFIG_CRC_CCITT is not set |
918 | # CONFIG_CRC16 is not set | 946 | # CONFIG_CRC16 is not set |
919 | CONFIG_CRC_T10DIF=y | 947 | CONFIG_CRC_T10DIF=y |
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 7fc76133b3e4..5caddd4f7bed 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h | |||
@@ -679,8 +679,6 @@ static inline void pmd_clear(pmd_t *pmd) | |||
679 | 679 | ||
680 | static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) | 680 | static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep) |
681 | { | 681 | { |
682 | if (mm->context.has_pgste) | ||
683 | ptep_rcp_copy(ptep); | ||
684 | pte_val(*ptep) = _PAGE_TYPE_EMPTY; | 682 | pte_val(*ptep) = _PAGE_TYPE_EMPTY; |
685 | if (mm->context.noexec) | 683 | if (mm->context.noexec) |
686 | pte_val(ptep[PTRS_PER_PTE]) = _PAGE_TYPE_EMPTY; | 684 | pte_val(ptep[PTRS_PER_PTE]) = _PAGE_TYPE_EMPTY; |
diff --git a/arch/s390/include/asm/ptrace.h b/arch/s390/include/asm/ptrace.h index a7226f8143fb..5396f9f12263 100644 --- a/arch/s390/include/asm/ptrace.h +++ b/arch/s390/include/asm/ptrace.h | |||
@@ -321,8 +321,8 @@ struct pt_regs | |||
321 | psw_t psw; | 321 | psw_t psw; |
322 | unsigned long gprs[NUM_GPRS]; | 322 | unsigned long gprs[NUM_GPRS]; |
323 | unsigned long orig_gpr2; | 323 | unsigned long orig_gpr2; |
324 | unsigned short svcnr; | ||
324 | unsigned short ilc; | 325 | unsigned short ilc; |
325 | unsigned short trap; | ||
326 | }; | 326 | }; |
327 | #endif | 327 | #endif |
328 | 328 | ||
@@ -486,8 +486,6 @@ struct task_struct; | |||
486 | extern void user_enable_single_step(struct task_struct *); | 486 | extern void user_enable_single_step(struct task_struct *); |
487 | extern void user_disable_single_step(struct task_struct *); | 487 | extern void user_disable_single_step(struct task_struct *); |
488 | 488 | ||
489 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
490 | |||
491 | #define user_mode(regs) (((regs)->psw.mask & PSW_MASK_PSTATE) != 0) | 489 | #define user_mode(regs) (((regs)->psw.mask & PSW_MASK_PSTATE) != 0) |
492 | #define instruction_pointer(regs) ((regs)->psw.addr & PSW_ADDR_INSN) | 490 | #define instruction_pointer(regs) ((regs)->psw.addr & PSW_ADDR_INSN) |
493 | #define user_stack_pointer(regs)((regs)->gprs[15]) | 491 | #define user_stack_pointer(regs)((regs)->gprs[15]) |
diff --git a/arch/s390/include/asm/syscall.h b/arch/s390/include/asm/syscall.h index 6e623971fbb9..2429b87eb28d 100644 --- a/arch/s390/include/asm/syscall.h +++ b/arch/s390/include/asm/syscall.h | |||
@@ -17,9 +17,7 @@ | |||
17 | static inline long syscall_get_nr(struct task_struct *task, | 17 | static inline long syscall_get_nr(struct task_struct *task, |
18 | struct pt_regs *regs) | 18 | struct pt_regs *regs) |
19 | { | 19 | { |
20 | if (regs->trap != __LC_SVC_OLD_PSW) | 20 | return regs->svcnr ? regs->svcnr : -1; |
21 | return -1; | ||
22 | return regs->gprs[2]; | ||
23 | } | 21 | } |
24 | 22 | ||
25 | static inline void syscall_rollback(struct task_struct *task, | 23 | static inline void syscall_rollback(struct task_struct *task, |
@@ -52,18 +50,20 @@ static inline void syscall_get_arguments(struct task_struct *task, | |||
52 | unsigned int i, unsigned int n, | 50 | unsigned int i, unsigned int n, |
53 | unsigned long *args) | 51 | unsigned long *args) |
54 | { | 52 | { |
53 | unsigned long mask = -1UL; | ||
54 | |||
55 | BUG_ON(i + n > 6); | 55 | BUG_ON(i + n > 6); |
56 | #ifdef CONFIG_COMPAT | 56 | #ifdef CONFIG_COMPAT |
57 | if (test_tsk_thread_flag(task, TIF_31BIT)) { | 57 | if (test_tsk_thread_flag(task, TIF_31BIT)) |
58 | if (i + n == 6) | 58 | mask = 0xffffffff; |
59 | args[--n] = (u32) regs->args[0]; | ||
60 | while (n-- > 0) | ||
61 | args[n] = (u32) regs->gprs[2 + i + n]; | ||
62 | } | ||
63 | #endif | 59 | #endif |
64 | if (i + n == 6) | 60 | if (i + n == 6) |
65 | args[--n] = regs->args[0]; | 61 | args[--n] = regs->args[0] & mask; |
66 | memcpy(args, ®s->gprs[2 + i], n * sizeof(args[0])); | 62 | while (n-- > 0) |
63 | if (i + n > 0) | ||
64 | args[n] = regs->gprs[2 + i + n] & mask; | ||
65 | if (i == 0) | ||
66 | args[0] = regs->orig_gpr2 & mask; | ||
67 | } | 67 | } |
68 | 68 | ||
69 | static inline void syscall_set_arguments(struct task_struct *task, | 69 | static inline void syscall_set_arguments(struct task_struct *task, |
@@ -74,7 +74,11 @@ static inline void syscall_set_arguments(struct task_struct *task, | |||
74 | BUG_ON(i + n > 6); | 74 | BUG_ON(i + n > 6); |
75 | if (i + n == 6) | 75 | if (i + n == 6) |
76 | regs->args[0] = args[--n]; | 76 | regs->args[0] = args[--n]; |
77 | memcpy(®s->gprs[2 + i], args, n * sizeof(args[0])); | 77 | while (n-- > 0) |
78 | if (i + n > 0) | ||
79 | regs->gprs[2 + i + n] = args[n]; | ||
80 | if (i == 0) | ||
81 | regs->orig_gpr2 = args[0]; | ||
78 | } | 82 | } |
79 | 83 | ||
80 | #endif /* _ASM_SYSCALL_H */ | 84 | #endif /* _ASM_SYSCALL_H */ |
diff --git a/arch/s390/kernel/asm-offsets.c b/arch/s390/kernel/asm-offsets.c index fa28ecae636b..3d144e6020c6 100644 --- a/arch/s390/kernel/asm-offsets.c +++ b/arch/s390/kernel/asm-offsets.c | |||
@@ -32,7 +32,7 @@ int main(void) | |||
32 | DEFINE(__PT_GPRS, offsetof(struct pt_regs, gprs)); | 32 | DEFINE(__PT_GPRS, offsetof(struct pt_regs, gprs)); |
33 | DEFINE(__PT_ORIG_GPR2, offsetof(struct pt_regs, orig_gpr2)); | 33 | DEFINE(__PT_ORIG_GPR2, offsetof(struct pt_regs, orig_gpr2)); |
34 | DEFINE(__PT_ILC, offsetof(struct pt_regs, ilc)); | 34 | DEFINE(__PT_ILC, offsetof(struct pt_regs, ilc)); |
35 | DEFINE(__PT_TRAP, offsetof(struct pt_regs, trap)); | 35 | DEFINE(__PT_SVCNR, offsetof(struct pt_regs, svcnr)); |
36 | DEFINE(__PT_SIZE, sizeof(struct pt_regs)); | 36 | DEFINE(__PT_SIZE, sizeof(struct pt_regs)); |
37 | BLANK(); | 37 | BLANK(); |
38 | DEFINE(__SF_BACKCHAIN, offsetof(struct stack_frame, back_chain)); | 38 | DEFINE(__SF_BACKCHAIN, offsetof(struct stack_frame, back_chain)); |
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c index c7f02e777af2..b537cb0e9b55 100644 --- a/arch/s390/kernel/compat_signal.c +++ b/arch/s390/kernel/compat_signal.c | |||
@@ -340,7 +340,7 @@ static int restore_sigregs32(struct pt_regs *regs,_sigregs32 __user *sregs) | |||
340 | return err; | 340 | return err; |
341 | 341 | ||
342 | restore_fp_regs(¤t->thread.fp_regs); | 342 | restore_fp_regs(¤t->thread.fp_regs); |
343 | regs->trap = -1; /* disable syscall checks */ | 343 | regs->svcnr = 0; /* disable syscall checks */ |
344 | return 0; | 344 | return 0; |
345 | } | 345 | } |
346 | 346 | ||
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 08844fc24a2e..198ea18a534d 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -46,7 +46,7 @@ SP_R14 = STACK_FRAME_OVERHEAD + __PT_GPRS + 56 | |||
46 | SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 60 | 46 | SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 60 |
47 | SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2 | 47 | SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2 |
48 | SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC | 48 | SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC |
49 | SP_TRAP = STACK_FRAME_OVERHEAD + __PT_TRAP | 49 | SP_SVCNR = STACK_FRAME_OVERHEAD + __PT_SVCNR |
50 | SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE | 50 | SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE |
51 | 51 | ||
52 | _TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \ | 52 | _TIF_WORK_SVC = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \ |
@@ -183,11 +183,10 @@ STACK_SIZE = 1 << STACK_SHIFT | |||
183 | .macro CREATE_STACK_FRAME psworg,savearea | 183 | .macro CREATE_STACK_FRAME psworg,savearea |
184 | s %r15,BASED(.Lc_spsize) # make room for registers & psw | 184 | s %r15,BASED(.Lc_spsize) # make room for registers & psw |
185 | mvc SP_PSW(8,%r15),0(%r12) # move user PSW to stack | 185 | mvc SP_PSW(8,%r15),0(%r12) # move user PSW to stack |
186 | la %r12,\psworg | ||
187 | st %r2,SP_ORIG_R2(%r15) # store original content of gpr 2 | 186 | st %r2,SP_ORIG_R2(%r15) # store original content of gpr 2 |
188 | icm %r12,12,__LC_SVC_ILC | 187 | icm %r12,3,__LC_SVC_ILC |
189 | stm %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack | 188 | stm %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack |
190 | st %r12,SP_ILC(%r15) | 189 | st %r12,SP_SVCNR(%r15) |
191 | mvc SP_R12(16,%r15),\savearea # move %r12-%r15 to stack | 190 | mvc SP_R12(16,%r15),\savearea # move %r12-%r15 to stack |
192 | la %r12,0 | 191 | la %r12,0 |
193 | st %r12,__SF_BACKCHAIN(%r15) # clear back chain | 192 | st %r12,__SF_BACKCHAIN(%r15) # clear back chain |
@@ -264,16 +263,17 @@ sysc_update: | |||
264 | #endif | 263 | #endif |
265 | sysc_do_svc: | 264 | sysc_do_svc: |
266 | l %r9,__LC_THREAD_INFO # load pointer to thread_info struct | 265 | l %r9,__LC_THREAD_INFO # load pointer to thread_info struct |
267 | sla %r7,2 # *4 and test for svc 0 | 266 | ltr %r7,%r7 # test for svc 0 |
268 | bnz BASED(sysc_nr_ok) # svc number > 0 | 267 | bnz BASED(sysc_nr_ok) # svc number > 0 |
269 | # svc 0: system call number in %r1 | 268 | # svc 0: system call number in %r1 |
270 | cl %r1,BASED(.Lnr_syscalls) | 269 | cl %r1,BASED(.Lnr_syscalls) |
271 | bnl BASED(sysc_nr_ok) | 270 | bnl BASED(sysc_nr_ok) |
272 | lr %r7,%r1 # copy svc number to %r7 | 271 | lr %r7,%r1 # copy svc number to %r7 |
273 | sla %r7,2 # *4 | ||
274 | sysc_nr_ok: | 272 | sysc_nr_ok: |
275 | mvc SP_ARGS(4,%r15),SP_R7(%r15) | 273 | mvc SP_ARGS(4,%r15),SP_R7(%r15) |
276 | sysc_do_restart: | 274 | sysc_do_restart: |
275 | sth %r7,SP_SVCNR(%r15) | ||
276 | sll %r7,2 # svc number *4 | ||
277 | l %r8,BASED(.Lsysc_table) | 277 | l %r8,BASED(.Lsysc_table) |
278 | tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT) | 278 | tm __TI_flags+3(%r9),(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT) |
279 | l %r8,0(%r7,%r8) # get system call addr. | 279 | l %r8,0(%r7,%r8) # get system call addr. |
@@ -376,7 +376,6 @@ sysc_notify_resume: | |||
376 | sysc_restart: | 376 | sysc_restart: |
377 | ni __TI_flags+3(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC | 377 | ni __TI_flags+3(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC |
378 | l %r7,SP_R2(%r15) # load new svc number | 378 | l %r7,SP_R2(%r15) # load new svc number |
379 | sla %r7,2 | ||
380 | mvc SP_R2(4,%r15),SP_ORIG_R2(%r15) # restore first argument | 379 | mvc SP_R2(4,%r15),SP_ORIG_R2(%r15) # restore first argument |
381 | lm %r2,%r6,SP_R2(%r15) # load svc arguments | 380 | lm %r2,%r6,SP_R2(%r15) # load svc arguments |
382 | b BASED(sysc_do_restart) # restart svc | 381 | b BASED(sysc_do_restart) # restart svc |
@@ -386,7 +385,8 @@ sysc_restart: | |||
386 | # | 385 | # |
387 | sysc_singlestep: | 386 | sysc_singlestep: |
388 | ni __TI_flags+3(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP | 387 | ni __TI_flags+3(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP |
389 | mvi SP_TRAP+1(%r15),0x28 # set trap indication to pgm check | 388 | mvi SP_SVCNR(%r15),0xff # set trap indication to pgm check |
389 | mvi SP_SVCNR+1(%r15),0xff | ||
390 | la %r2,SP_PTREGS(%r15) # address of register-save area | 390 | la %r2,SP_PTREGS(%r15) # address of register-save area |
391 | l %r1,BASED(.Lhandle_per) # load adr. of per handler | 391 | l %r1,BASED(.Lhandle_per) # load adr. of per handler |
392 | la %r14,BASED(sysc_return) # load adr. of system return | 392 | la %r14,BASED(sysc_return) # load adr. of system return |
@@ -407,7 +407,7 @@ sysc_tracesys: | |||
407 | bnl BASED(sysc_tracenogo) | 407 | bnl BASED(sysc_tracenogo) |
408 | l %r8,BASED(.Lsysc_table) | 408 | l %r8,BASED(.Lsysc_table) |
409 | lr %r7,%r2 | 409 | lr %r7,%r2 |
410 | sll %r7,2 # *4 | 410 | sll %r7,2 # svc number *4 |
411 | l %r8,0(%r7,%r8) | 411 | l %r8,0(%r7,%r8) |
412 | sysc_tracego: | 412 | sysc_tracego: |
413 | lm %r3,%r6,SP_R3(%r15) | 413 | lm %r3,%r6,SP_R3(%r15) |
@@ -586,7 +586,8 @@ pgm_svcper: | |||
586 | # per was called from kernel, must be kprobes | 586 | # per was called from kernel, must be kprobes |
587 | # | 587 | # |
588 | kernel_per: | 588 | kernel_per: |
589 | mvi SP_TRAP+1(%r15),0x28 # set trap indication to pgm check | 589 | mvi SP_SVCNR(%r15),0xff # set trap indication to pgm check |
590 | mvi SP_SVCNR+1(%r15),0xff | ||
590 | la %r2,SP_PTREGS(%r15) # address of register-save area | 591 | la %r2,SP_PTREGS(%r15) # address of register-save area |
591 | l %r1,BASED(.Lhandle_per) # load adr. of per handler | 592 | l %r1,BASED(.Lhandle_per) # load adr. of per handler |
592 | la %r14,BASED(sysc_restore)# load adr. of system return | 593 | la %r14,BASED(sysc_restore)# load adr. of system return |
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 41aca06682aa..89c121ae6339 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -46,7 +46,7 @@ SP_R14 = STACK_FRAME_OVERHEAD + __PT_GPRS + 112 | |||
46 | SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 120 | 46 | SP_R15 = STACK_FRAME_OVERHEAD + __PT_GPRS + 120 |
47 | SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2 | 47 | SP_ORIG_R2 = STACK_FRAME_OVERHEAD + __PT_ORIG_GPR2 |
48 | SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC | 48 | SP_ILC = STACK_FRAME_OVERHEAD + __PT_ILC |
49 | SP_TRAP = STACK_FRAME_OVERHEAD + __PT_TRAP | 49 | SP_SVCNR = STACK_FRAME_OVERHEAD + __PT_SVCNR |
50 | SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE | 50 | SP_SIZE = STACK_FRAME_OVERHEAD + __PT_SIZE |
51 | 51 | ||
52 | STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER | 52 | STACK_SHIFT = PAGE_SHIFT + THREAD_ORDER |
@@ -171,11 +171,10 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | \ | |||
171 | .macro CREATE_STACK_FRAME psworg,savearea | 171 | .macro CREATE_STACK_FRAME psworg,savearea |
172 | aghi %r15,-SP_SIZE # make room for registers & psw | 172 | aghi %r15,-SP_SIZE # make room for registers & psw |
173 | mvc SP_PSW(16,%r15),0(%r12) # move user PSW to stack | 173 | mvc SP_PSW(16,%r15),0(%r12) # move user PSW to stack |
174 | la %r12,\psworg | ||
175 | stg %r2,SP_ORIG_R2(%r15) # store original content of gpr 2 | 174 | stg %r2,SP_ORIG_R2(%r15) # store original content of gpr 2 |
176 | icm %r12,12,__LC_SVC_ILC | 175 | icm %r12,3,__LC_SVC_ILC |
177 | stmg %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack | 176 | stmg %r0,%r11,SP_R0(%r15) # store gprs %r0-%r11 to kernel stack |
178 | st %r12,SP_ILC(%r15) | 177 | st %r12,SP_SVCNR(%r15) |
179 | mvc SP_R12(32,%r15),\savearea # move %r12-%r15 to stack | 178 | mvc SP_R12(32,%r15),\savearea # move %r12-%r15 to stack |
180 | la %r12,0 | 179 | la %r12,0 |
181 | stg %r12,__SF_BACKCHAIN(%r15) | 180 | stg %r12,__SF_BACKCHAIN(%r15) |
@@ -250,16 +249,17 @@ sysc_update: | |||
250 | #endif | 249 | #endif |
251 | sysc_do_svc: | 250 | sysc_do_svc: |
252 | lg %r9,__LC_THREAD_INFO # load pointer to thread_info struct | 251 | lg %r9,__LC_THREAD_INFO # load pointer to thread_info struct |
253 | slag %r7,%r7,2 # *4 and test for svc 0 | 252 | ltgr %r7,%r7 # test for svc 0 |
254 | jnz sysc_nr_ok | 253 | jnz sysc_nr_ok |
255 | # svc 0: system call number in %r1 | 254 | # svc 0: system call number in %r1 |
256 | cl %r1,BASED(.Lnr_syscalls) | 255 | cl %r1,BASED(.Lnr_syscalls) |
257 | jnl sysc_nr_ok | 256 | jnl sysc_nr_ok |
258 | lgfr %r7,%r1 # clear high word in r1 | 257 | lgfr %r7,%r1 # clear high word in r1 |
259 | slag %r7,%r7,2 # svc 0: system call number in %r1 | ||
260 | sysc_nr_ok: | 258 | sysc_nr_ok: |
261 | mvc SP_ARGS(8,%r15),SP_R7(%r15) | 259 | mvc SP_ARGS(8,%r15),SP_R7(%r15) |
262 | sysc_do_restart: | 260 | sysc_do_restart: |
261 | sth %r7,SP_SVCNR(%r15) | ||
262 | sllg %r7,%r7,2 # svc number * 4 | ||
263 | larl %r10,sys_call_table | 263 | larl %r10,sys_call_table |
264 | #ifdef CONFIG_COMPAT | 264 | #ifdef CONFIG_COMPAT |
265 | tm __TI_flags+5(%r9),(_TIF_31BIT>>16) # running in 31 bit mode ? | 265 | tm __TI_flags+5(%r9),(_TIF_31BIT>>16) # running in 31 bit mode ? |
@@ -363,7 +363,6 @@ sysc_notify_resume: | |||
363 | sysc_restart: | 363 | sysc_restart: |
364 | ni __TI_flags+7(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC | 364 | ni __TI_flags+7(%r9),255-_TIF_RESTART_SVC # clear TIF_RESTART_SVC |
365 | lg %r7,SP_R2(%r15) # load new svc number | 365 | lg %r7,SP_R2(%r15) # load new svc number |
366 | slag %r7,%r7,2 # *4 | ||
367 | mvc SP_R2(8,%r15),SP_ORIG_R2(%r15) # restore first argument | 366 | mvc SP_R2(8,%r15),SP_ORIG_R2(%r15) # restore first argument |
368 | lmg %r2,%r6,SP_R2(%r15) # load svc arguments | 367 | lmg %r2,%r6,SP_R2(%r15) # load svc arguments |
369 | j sysc_do_restart # restart svc | 368 | j sysc_do_restart # restart svc |
@@ -372,9 +371,8 @@ sysc_restart: | |||
372 | # _TIF_SINGLE_STEP is set, call do_single_step | 371 | # _TIF_SINGLE_STEP is set, call do_single_step |
373 | # | 372 | # |
374 | sysc_singlestep: | 373 | sysc_singlestep: |
375 | ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP | 374 | ni __TI_flags+7(%r9),255-_TIF_SINGLE_STEP # clear TIF_SINGLE_STEP |
376 | lhi %r0,__LC_PGM_OLD_PSW | 375 | xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number |
377 | sth %r0,SP_TRAP(%r15) # set trap indication to pgm check | ||
378 | la %r2,SP_PTREGS(%r15) # address of register-save area | 376 | la %r2,SP_PTREGS(%r15) # address of register-save area |
379 | larl %r14,sysc_return # load adr. of system return | 377 | larl %r14,sysc_return # load adr. of system return |
380 | jg do_single_step # branch to do_sigtrap | 378 | jg do_single_step # branch to do_sigtrap |
@@ -392,7 +390,7 @@ sysc_tracesys: | |||
392 | lghi %r0,NR_syscalls | 390 | lghi %r0,NR_syscalls |
393 | clgr %r0,%r2 | 391 | clgr %r0,%r2 |
394 | jnh sysc_tracenogo | 392 | jnh sysc_tracenogo |
395 | slag %r7,%r2,2 # *4 | 393 | sllg %r7,%r2,2 # svc number *4 |
396 | lgf %r8,0(%r7,%r10) | 394 | lgf %r8,0(%r7,%r10) |
397 | sysc_tracego: | 395 | sysc_tracego: |
398 | lmg %r3,%r6,SP_R3(%r15) | 396 | lmg %r3,%r6,SP_R3(%r15) |
@@ -567,8 +565,7 @@ pgm_svcper: | |||
567 | # per was called from kernel, must be kprobes | 565 | # per was called from kernel, must be kprobes |
568 | # | 566 | # |
569 | kernel_per: | 567 | kernel_per: |
570 | lhi %r0,__LC_PGM_OLD_PSW | 568 | xc SP_SVCNR(2,%r15),SP_SVCNR(%r15) # clear svc number |
571 | sth %r0,SP_TRAP(%r15) # set trap indication to pgm check | ||
572 | la %r2,SP_PTREGS(%r15) # address of register-save area | 569 | la %r2,SP_PTREGS(%r15) # address of register-save area |
573 | larl %r14,sysc_restore # load adr. of system ret, no work | 570 | larl %r14,sysc_restore # load adr. of system ret, no work |
574 | jg do_single_step # branch to do_single_step | 571 | jg do_single_step # branch to do_single_step |
diff --git a/arch/s390/kernel/init_task.c b/arch/s390/kernel/init_task.c index 7ad003969251..e80716843619 100644 --- a/arch/s390/kernel/init_task.c +++ b/arch/s390/kernel/init_task.c | |||
@@ -26,7 +26,7 @@ EXPORT_SYMBOL(init_mm); | |||
26 | /* | 26 | /* |
27 | * Initial thread structure. | 27 | * Initial thread structure. |
28 | * | 28 | * |
29 | * We need to make sure that this is 8192-byte aligned due to the | 29 | * We need to make sure that this is THREAD_SIZE aligned due to the |
30 | * way process stacks are handled. This is done by having a special | 30 | * way process stacks are handled. This is done by having a special |
31 | * "init_task" linker map entry.. | 31 | * "init_task" linker map entry.. |
32 | */ | 32 | */ |
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 1f31be1ecc4b..38ff2bce1203 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -657,7 +657,7 @@ asmlinkage long do_syscall_trace_enter(struct pt_regs *regs) | |||
657 | * debugger stored an invalid system call number. Skip | 657 | * debugger stored an invalid system call number. Skip |
658 | * the system call and the system call restart handling. | 658 | * the system call and the system call restart handling. |
659 | */ | 659 | */ |
660 | regs->trap = -1; | 660 | regs->svcnr = 0; |
661 | ret = -1; | 661 | ret = -1; |
662 | } | 662 | } |
663 | 663 | ||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 4f7fc3059a8e..8e6812a22670 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -160,7 +160,7 @@ static int restore_sigregs(struct pt_regs *regs, _sigregs __user *sregs) | |||
160 | current->thread.fp_regs.fpc &= FPC_VALID_MASK; | 160 | current->thread.fp_regs.fpc &= FPC_VALID_MASK; |
161 | 161 | ||
162 | restore_fp_regs(¤t->thread.fp_regs); | 162 | restore_fp_regs(¤t->thread.fp_regs); |
163 | regs->trap = -1; /* disable syscall checks */ | 163 | regs->svcnr = 0; /* disable syscall checks */ |
164 | return 0; | 164 | return 0; |
165 | } | 165 | } |
166 | 166 | ||
@@ -445,7 +445,7 @@ void do_signal(struct pt_regs *regs) | |||
445 | oldset = ¤t->blocked; | 445 | oldset = ¤t->blocked; |
446 | 446 | ||
447 | /* Are we from a system call? */ | 447 | /* Are we from a system call? */ |
448 | if (regs->trap == __LC_SVC_OLD_PSW) { | 448 | if (regs->svcnr) { |
449 | continue_addr = regs->psw.addr; | 449 | continue_addr = regs->psw.addr; |
450 | restart_addr = continue_addr - regs->ilc; | 450 | restart_addr = continue_addr - regs->ilc; |
451 | retval = regs->gprs[2]; | 451 | retval = regs->gprs[2]; |
@@ -462,7 +462,7 @@ void do_signal(struct pt_regs *regs) | |||
462 | case -ERESTART_RESTARTBLOCK: | 462 | case -ERESTART_RESTARTBLOCK: |
463 | regs->gprs[2] = -EINTR; | 463 | regs->gprs[2] = -EINTR; |
464 | } | 464 | } |
465 | regs->trap = -1; /* Don't deal with this again. */ | 465 | regs->svcnr = 0; /* Don't deal with this again. */ |
466 | } | 466 | } |
467 | 467 | ||
468 | /* Get signal to deliver. When running under ptrace, at this point | 468 | /* Get signal to deliver. When running under ptrace, at this point |
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index b94e9e3b694a..eccefbbff887 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c | |||
@@ -59,7 +59,7 @@ | |||
59 | 59 | ||
60 | static ext_int_info_t ext_int_info_cc; | 60 | static ext_int_info_t ext_int_info_cc; |
61 | static ext_int_info_t ext_int_etr_cc; | 61 | static ext_int_info_t ext_int_etr_cc; |
62 | static u64 jiffies_timer_cc; | 62 | static u64 sched_clock_base_cc; |
63 | 63 | ||
64 | static DEFINE_PER_CPU(struct clock_event_device, comparators); | 64 | static DEFINE_PER_CPU(struct clock_event_device, comparators); |
65 | 65 | ||
@@ -68,7 +68,7 @@ static DEFINE_PER_CPU(struct clock_event_device, comparators); | |||
68 | */ | 68 | */ |
69 | unsigned long long sched_clock(void) | 69 | unsigned long long sched_clock(void) |
70 | { | 70 | { |
71 | return ((get_clock_xt() - jiffies_timer_cc) * 125) >> 9; | 71 | return ((get_clock_xt() - sched_clock_base_cc) * 125) >> 9; |
72 | } | 72 | } |
73 | 73 | ||
74 | /* | 74 | /* |
@@ -229,13 +229,10 @@ static struct clocksource clocksource_tod = { | |||
229 | */ | 229 | */ |
230 | void __init time_init(void) | 230 | void __init time_init(void) |
231 | { | 231 | { |
232 | u64 init_timer_cc; | 232 | sched_clock_base_cc = reset_tod_clock(); |
233 | |||
234 | init_timer_cc = reset_tod_clock(); | ||
235 | jiffies_timer_cc = init_timer_cc - jiffies_64 * CLK_TICKS_PER_JIFFY; | ||
236 | 233 | ||
237 | /* set xtime */ | 234 | /* set xtime */ |
238 | tod_to_timeval(init_timer_cc - TOD_UNIX_EPOCH, &xtime); | 235 | tod_to_timeval(sched_clock_base_cc - TOD_UNIX_EPOCH, &xtime); |
239 | set_normalized_timespec(&wall_to_monotonic, | 236 | set_normalized_timespec(&wall_to_monotonic, |
240 | -xtime.tv_sec, -xtime.tv_nsec); | 237 | -xtime.tv_sec, -xtime.tv_nsec); |
241 | 238 | ||
@@ -289,7 +286,7 @@ static unsigned long long adjust_time(unsigned long long old, | |||
289 | delta = -delta; | 286 | delta = -delta; |
290 | adjust.offset = -ticks * (1000000 / HZ); | 287 | adjust.offset = -ticks * (1000000 / HZ); |
291 | } | 288 | } |
292 | jiffies_timer_cc += delta; | 289 | sched_clock_base_cc += delta; |
293 | if (adjust.offset != 0) { | 290 | if (adjust.offset != 0) { |
294 | printk(KERN_NOTICE "etr: time adjusted by %li micro-seconds\n", | 291 | printk(KERN_NOTICE "etr: time adjusted by %li micro-seconds\n", |
295 | adjust.offset); | 292 | adjust.offset); |
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 607bd67a18ce..d796d05c9c01 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
@@ -2,6 +2,7 @@ | |||
2 | * Written by Martin Schwidefsky (schwidefsky@de.ibm.com) | 2 | * Written by Martin Schwidefsky (schwidefsky@de.ibm.com) |
3 | */ | 3 | */ |
4 | 4 | ||
5 | #include <asm/thread_info.h> | ||
5 | #include <asm/page.h> | 6 | #include <asm/page.h> |
6 | #include <asm-generic/vmlinux.lds.h> | 7 | #include <asm-generic/vmlinux.lds.h> |
7 | 8 | ||
@@ -86,7 +87,7 @@ SECTIONS | |||
86 | } | 87 | } |
87 | _edata = .; /* End of data section */ | 88 | _edata = .; /* End of data section */ |
88 | 89 | ||
89 | . = ALIGN(2 * PAGE_SIZE); /* init_task */ | 90 | . = ALIGN(THREAD_SIZE); /* init_task */ |
90 | .data.init_task : { | 91 | .data.init_task : { |
91 | *(.data.init_task) | 92 | *(.data.init_task) |
92 | } | 93 | } |
diff --git a/arch/sparc/include/asm/ptrace_64.h b/arch/sparc/include/asm/ptrace_64.h index 3d3e9c161d8b..84e969f06afe 100644 --- a/arch/sparc/include/asm/ptrace_64.h +++ b/arch/sparc/include/asm/ptrace_64.h | |||
@@ -142,8 +142,6 @@ struct global_reg_snapshot { | |||
142 | }; | 142 | }; |
143 | extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; | 143 | extern struct global_reg_snapshot global_reg_snapshot[NR_CPUS]; |
144 | 144 | ||
145 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
146 | |||
147 | #define force_successful_syscall_return() \ | 145 | #define force_successful_syscall_return() \ |
148 | do { current_thread_info()->syscall_noerror = 1; \ | 146 | do { current_thread_info()->syscall_noerror = 1; \ |
149 | } while (0) | 147 | } while (0) |
diff --git a/arch/sparc/kernel/cpu.c b/arch/sparc/kernel/cpu.c index e7a0edfc1a32..1fc17f59c6bf 100644 --- a/arch/sparc/kernel/cpu.c +++ b/arch/sparc/kernel/cpu.c | |||
@@ -126,7 +126,7 @@ char *sparc_fpu_type; | |||
126 | 126 | ||
127 | unsigned int fsr_storage; | 127 | unsigned int fsr_storage; |
128 | 128 | ||
129 | void __init cpu_probe(void) | 129 | void __cpuinit cpu_probe(void) |
130 | { | 130 | { |
131 | int psr_impl, psr_vers, fpu_vers; | 131 | int psr_impl, psr_vers, fpu_vers; |
132 | int i, psr; | 132 | int i, psr; |
diff --git a/arch/sparc/kernel/head.S b/arch/sparc/kernel/head.S index 2d325fd84579..51b40426f9c6 100644 --- a/arch/sparc/kernel/head.S +++ b/arch/sparc/kernel/head.S | |||
@@ -72,7 +72,7 @@ sun4e_notsup: | |||
72 | .align 4 | 72 | .align 4 |
73 | 73 | ||
74 | /* The Sparc trap table, bootloader gives us control at _start. */ | 74 | /* The Sparc trap table, bootloader gives us control at _start. */ |
75 | .text | 75 | .section .text.head,"ax" |
76 | .globl start, _stext, _start, __stext | 76 | .globl start, _stext, _start, __stext |
77 | .globl trapbase | 77 | .globl trapbase |
78 | _start: /* danger danger */ | 78 | _start: /* danger danger */ |
diff --git a/arch/sparc/kernel/smp.c b/arch/sparc/kernel/smp.c index 1619ec15c099..e396c1f17a92 100644 --- a/arch/sparc/kernel/smp.c +++ b/arch/sparc/kernel/smp.c | |||
@@ -35,7 +35,7 @@ | |||
35 | 35 | ||
36 | #include "irq.h" | 36 | #include "irq.h" |
37 | 37 | ||
38 | volatile unsigned long cpu_callin_map[NR_CPUS] __initdata = {0,}; | 38 | volatile unsigned long cpu_callin_map[NR_CPUS] __cpuinitdata = {0,}; |
39 | unsigned char boot_cpu_id = 0; | 39 | unsigned char boot_cpu_id = 0; |
40 | unsigned char boot_cpu_id4 = 0; /* boot_cpu_id << 2 */ | 40 | unsigned char boot_cpu_id4 = 0; /* boot_cpu_id << 2 */ |
41 | 41 | ||
@@ -120,7 +120,7 @@ void cpu_panic(void) | |||
120 | panic("SMP bolixed\n"); | 120 | panic("SMP bolixed\n"); |
121 | } | 121 | } |
122 | 122 | ||
123 | struct linux_prom_registers smp_penguin_ctable __initdata = { 0 }; | 123 | struct linux_prom_registers smp_penguin_ctable __cpuinitdata = { 0 }; |
124 | 124 | ||
125 | void smp_send_reschedule(int cpu) | 125 | void smp_send_reschedule(int cpu) |
126 | { | 126 | { |
diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c index 7a6a5e795928..16ab0cb731c5 100644 --- a/arch/sparc/kernel/sun4d_smp.c +++ b/arch/sparc/kernel/sun4d_smp.c | |||
@@ -83,7 +83,7 @@ static inline void show_leds(int cpuid) | |||
83 | "i" (ASI_M_CTL)); | 83 | "i" (ASI_M_CTL)); |
84 | } | 84 | } |
85 | 85 | ||
86 | void __init smp4d_callin(void) | 86 | void __cpuinit smp4d_callin(void) |
87 | { | 87 | { |
88 | int cpuid = hard_smp4d_processor_id(); | 88 | int cpuid = hard_smp4d_processor_id(); |
89 | extern spinlock_t sun4d_imsk_lock; | 89 | extern spinlock_t sun4d_imsk_lock; |
@@ -386,7 +386,7 @@ void smp4d_percpu_timer_interrupt(struct pt_regs *regs) | |||
386 | 386 | ||
387 | extern unsigned int lvl14_resolution; | 387 | extern unsigned int lvl14_resolution; |
388 | 388 | ||
389 | static void __init smp_setup_percpu_timer(void) | 389 | static void __cpuinit smp_setup_percpu_timer(void) |
390 | { | 390 | { |
391 | int cpu = hard_smp4d_processor_id(); | 391 | int cpu = hard_smp4d_processor_id(); |
392 | 392 | ||
diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c index 5fc386d08c47..4f8d60586b07 100644 --- a/arch/sparc/kernel/sun4m_smp.c +++ b/arch/sparc/kernel/sun4m_smp.c | |||
@@ -343,7 +343,7 @@ void smp4m_percpu_timer_interrupt(struct pt_regs *regs) | |||
343 | 343 | ||
344 | extern unsigned int lvl14_resolution; | 344 | extern unsigned int lvl14_resolution; |
345 | 345 | ||
346 | static void __init smp_setup_percpu_timer(void) | 346 | static void __cpuinit smp_setup_percpu_timer(void) |
347 | { | 347 | { |
348 | int cpu = smp_processor_id(); | 348 | int cpu = smp_processor_id(); |
349 | 349 | ||
diff --git a/arch/sparc/kernel/trampoline.S b/arch/sparc/kernel/trampoline.S index 356c56aebc62..5e235c52d667 100644 --- a/arch/sparc/kernel/trampoline.S +++ b/arch/sparc/kernel/trampoline.S | |||
@@ -18,7 +18,7 @@ | |||
18 | .globl sun4m_cpu_startup, __smp4m_processor_id | 18 | .globl sun4m_cpu_startup, __smp4m_processor_id |
19 | .globl sun4d_cpu_startup, __smp4d_processor_id | 19 | .globl sun4d_cpu_startup, __smp4d_processor_id |
20 | 20 | ||
21 | __INIT | 21 | __CPUINIT |
22 | .align 4 | 22 | .align 4 |
23 | 23 | ||
24 | /* When we start up a cpu for the first time it enters this routine. | 24 | /* When we start up a cpu for the first time it enters this routine. |
@@ -109,7 +109,7 @@ __smp4d_processor_id: | |||
109 | /* CPUID in bootbus can be found at PA 0xff0140000 */ | 109 | /* CPUID in bootbus can be found at PA 0xff0140000 */ |
110 | #define SUN4D_BOOTBUS_CPUID 0xf0140000 | 110 | #define SUN4D_BOOTBUS_CPUID 0xf0140000 |
111 | 111 | ||
112 | __INIT | 112 | __CPUINIT |
113 | .align 4 | 113 | .align 4 |
114 | 114 | ||
115 | sun4d_cpu_startup: | 115 | sun4d_cpu_startup: |
diff --git a/arch/sparc/kernel/vmlinux.lds.S b/arch/sparc/kernel/vmlinux.lds.S index b1002c607196..5b7e69a8c32f 100644 --- a/arch/sparc/kernel/vmlinux.lds.S +++ b/arch/sparc/kernel/vmlinux.lds.S | |||
@@ -13,6 +13,7 @@ SECTIONS | |||
13 | .text 0xf0004000 : | 13 | .text 0xf0004000 : |
14 | { | 14 | { |
15 | _text = .; | 15 | _text = .; |
16 | *(.text.head) | ||
16 | TEXT_TEXT | 17 | TEXT_TEXT |
17 | SCHED_TEXT | 18 | SCHED_TEXT |
18 | LOCK_TEXT | 19 | LOCK_TEXT |
diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index 6a5d7cabc044..dd8aa36f366c 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c | |||
@@ -1251,7 +1251,7 @@ static inline void map_kernel(void) | |||
1251 | /* Paging initialization on the Sparc Reference MMU. */ | 1251 | /* Paging initialization on the Sparc Reference MMU. */ |
1252 | extern void sparc_context_init(int); | 1252 | extern void sparc_context_init(int); |
1253 | 1253 | ||
1254 | void (*poke_srmmu)(void) __initdata = NULL; | 1254 | void (*poke_srmmu)(void) __cpuinitdata = NULL; |
1255 | 1255 | ||
1256 | extern unsigned long bootmem_init(unsigned long *pages_avail); | 1256 | extern unsigned long bootmem_init(unsigned long *pages_avail); |
1257 | 1257 | ||
@@ -1446,7 +1446,7 @@ static void __init init_vac_layout(void) | |||
1446 | (int)vac_cache_size, (int)vac_line_size); | 1446 | (int)vac_cache_size, (int)vac_line_size); |
1447 | } | 1447 | } |
1448 | 1448 | ||
1449 | static void __init poke_hypersparc(void) | 1449 | static void __cpuinit poke_hypersparc(void) |
1450 | { | 1450 | { |
1451 | volatile unsigned long clear; | 1451 | volatile unsigned long clear; |
1452 | unsigned long mreg = srmmu_get_mmureg(); | 1452 | unsigned long mreg = srmmu_get_mmureg(); |
@@ -1501,7 +1501,7 @@ static void __init init_hypersparc(void) | |||
1501 | hypersparc_setup_blockops(); | 1501 | hypersparc_setup_blockops(); |
1502 | } | 1502 | } |
1503 | 1503 | ||
1504 | static void __init poke_cypress(void) | 1504 | static void __cpuinit poke_cypress(void) |
1505 | { | 1505 | { |
1506 | unsigned long mreg = srmmu_get_mmureg(); | 1506 | unsigned long mreg = srmmu_get_mmureg(); |
1507 | unsigned long faddr, tagval; | 1507 | unsigned long faddr, tagval; |
@@ -1589,7 +1589,7 @@ static void __init init_cypress_605(unsigned long mrev) | |||
1589 | init_cypress_common(); | 1589 | init_cypress_common(); |
1590 | } | 1590 | } |
1591 | 1591 | ||
1592 | static void __init poke_swift(void) | 1592 | static void __cpuinit poke_swift(void) |
1593 | { | 1593 | { |
1594 | unsigned long mreg; | 1594 | unsigned long mreg; |
1595 | 1595 | ||
@@ -1771,7 +1771,7 @@ static void turbosparc_flush_tlb_page(struct vm_area_struct *vma, unsigned long | |||
1771 | } | 1771 | } |
1772 | 1772 | ||
1773 | 1773 | ||
1774 | static void __init poke_turbosparc(void) | 1774 | static void __cpuinit poke_turbosparc(void) |
1775 | { | 1775 | { |
1776 | unsigned long mreg = srmmu_get_mmureg(); | 1776 | unsigned long mreg = srmmu_get_mmureg(); |
1777 | unsigned long ccreg; | 1777 | unsigned long ccreg; |
@@ -1834,7 +1834,7 @@ static void __init init_turbosparc(void) | |||
1834 | poke_srmmu = poke_turbosparc; | 1834 | poke_srmmu = poke_turbosparc; |
1835 | } | 1835 | } |
1836 | 1836 | ||
1837 | static void __init poke_tsunami(void) | 1837 | static void __cpuinit poke_tsunami(void) |
1838 | { | 1838 | { |
1839 | unsigned long mreg = srmmu_get_mmureg(); | 1839 | unsigned long mreg = srmmu_get_mmureg(); |
1840 | 1840 | ||
@@ -1876,7 +1876,7 @@ static void __init init_tsunami(void) | |||
1876 | tsunami_setup_blockops(); | 1876 | tsunami_setup_blockops(); |
1877 | } | 1877 | } |
1878 | 1878 | ||
1879 | static void __init poke_viking(void) | 1879 | static void __cpuinit poke_viking(void) |
1880 | { | 1880 | { |
1881 | unsigned long mreg = srmmu_get_mmureg(); | 1881 | unsigned long mreg = srmmu_get_mmureg(); |
1882 | static int smp_catch; | 1882 | static int smp_catch; |
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c index e5627118e613..f500b0618bb0 100644 --- a/arch/sparc64/kernel/smp.c +++ b/arch/sparc64/kernel/smp.c | |||
@@ -282,7 +282,7 @@ static unsigned long kimage_addr_to_ra(void *p) | |||
282 | return kern_base + (val - KERNBASE); | 282 | return kern_base + (val - KERNBASE); |
283 | } | 283 | } |
284 | 284 | ||
285 | static void ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg) | 285 | static void __cpuinit ldom_startcpu_cpuid(unsigned int cpu, unsigned long thread_reg) |
286 | { | 286 | { |
287 | extern unsigned long sparc64_ttable_tl0; | 287 | extern unsigned long sparc64_ttable_tl0; |
288 | extern unsigned long kern_locked_tte_data; | 288 | extern unsigned long kern_locked_tte_data; |
@@ -343,7 +343,7 @@ extern unsigned long sparc64_cpu_startup; | |||
343 | */ | 343 | */ |
344 | static struct thread_info *cpu_new_thread = NULL; | 344 | static struct thread_info *cpu_new_thread = NULL; |
345 | 345 | ||
346 | static int __devinit smp_boot_one_cpu(unsigned int cpu) | 346 | static int __cpuinit smp_boot_one_cpu(unsigned int cpu) |
347 | { | 347 | { |
348 | struct trap_per_cpu *tb = &trap_block[cpu]; | 348 | struct trap_per_cpu *tb = &trap_block[cpu]; |
349 | unsigned long entry = | 349 | unsigned long entry = |
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 3c10daf8fc01..185f34679110 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
@@ -956,7 +956,7 @@ int of_node_to_nid(struct device_node *dp) | |||
956 | return nid; | 956 | return nid; |
957 | } | 957 | } |
958 | 958 | ||
959 | static void add_node_ranges(void) | 959 | static void __init add_node_ranges(void) |
960 | { | 960 | { |
961 | int i; | 961 | int i; |
962 | 962 | ||
diff --git a/arch/x86/boot/tty.c b/arch/x86/boot/tty.c index 0be77b39328a..7e8e8b25f5f6 100644 --- a/arch/x86/boot/tty.c +++ b/arch/x86/boot/tty.c | |||
@@ -74,7 +74,7 @@ static int kbd_pending(void) | |||
74 | { | 74 | { |
75 | u8 pending; | 75 | u8 pending; |
76 | asm volatile("int $0x16; setnz %0" | 76 | asm volatile("int $0x16; setnz %0" |
77 | : "=rm" (pending) | 77 | : "=qm" (pending) |
78 | : "a" (0x0100)); | 78 | : "a" (0x0100)); |
79 | return pending; | 79 | return pending; |
80 | } | 80 | } |
diff --git a/arch/x86/include/asm/ds.h b/arch/x86/include/asm/ds.h index 72c5a190bf48..a95008457ea4 100644 --- a/arch/x86/include/asm/ds.h +++ b/arch/x86/include/asm/ds.h | |||
@@ -23,12 +23,13 @@ | |||
23 | #ifndef _ASM_X86_DS_H | 23 | #ifndef _ASM_X86_DS_H |
24 | #define _ASM_X86_DS_H | 24 | #define _ASM_X86_DS_H |
25 | 25 | ||
26 | #ifdef CONFIG_X86_DS | ||
27 | 26 | ||
28 | #include <linux/types.h> | 27 | #include <linux/types.h> |
29 | #include <linux/init.h> | 28 | #include <linux/init.h> |
30 | 29 | ||
31 | 30 | ||
31 | #ifdef CONFIG_X86_DS | ||
32 | |||
32 | struct task_struct; | 33 | struct task_struct; |
33 | 34 | ||
34 | /* | 35 | /* |
@@ -232,7 +233,8 @@ extern void ds_free(struct ds_context *context); | |||
232 | 233 | ||
233 | #else /* CONFIG_X86_DS */ | 234 | #else /* CONFIG_X86_DS */ |
234 | 235 | ||
235 | #define ds_init_intel(config) do {} while (0) | 236 | struct cpuinfo_x86; |
237 | static inline void __cpuinit ds_init_intel(struct cpuinfo_x86 *ignored) {} | ||
236 | 238 | ||
237 | #endif /* CONFIG_X86_DS */ | 239 | #endif /* CONFIG_X86_DS */ |
238 | #endif /* _ASM_X86_DS_H */ | 240 | #endif /* _ASM_X86_DS_H */ |
diff --git a/arch/x86/include/asm/pci_64.h b/arch/x86/include/asm/pci_64.h index 5b28995d664e..d02d936840a3 100644 --- a/arch/x86/include/asm/pci_64.h +++ b/arch/x86/include/asm/pci_64.h | |||
@@ -34,8 +34,6 @@ extern void pci_iommu_alloc(void); | |||
34 | */ | 34 | */ |
35 | #define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys) | 35 | #define PCI_DMA_BUS_IS_PHYS (dma_ops->is_phys) |
36 | 36 | ||
37 | #if defined(CONFIG_GART_IOMMU) || defined(CONFIG_CALGARY_IOMMU) | ||
38 | |||
39 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ | 37 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) \ |
40 | dma_addr_t ADDR_NAME; | 38 | dma_addr_t ADDR_NAME; |
41 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ | 39 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) \ |
@@ -49,18 +47,6 @@ extern void pci_iommu_alloc(void); | |||
49 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ | 47 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) \ |
50 | (((PTR)->LEN_NAME) = (VAL)) | 48 | (((PTR)->LEN_NAME) = (VAL)) |
51 | 49 | ||
52 | #else | ||
53 | /* No IOMMU */ | ||
54 | |||
55 | #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) | ||
56 | #define DECLARE_PCI_UNMAP_LEN(LEN_NAME) | ||
57 | #define pci_unmap_addr(PTR, ADDR_NAME) (0) | ||
58 | #define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0) | ||
59 | #define pci_unmap_len(PTR, LEN_NAME) (0) | ||
60 | #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) | ||
61 | |||
62 | #endif | ||
63 | |||
64 | #endif /* __KERNEL__ */ | 50 | #endif /* __KERNEL__ */ |
65 | 51 | ||
66 | #endif /* _ASM_X86_PCI_64_H */ | 52 | #endif /* _ASM_X86_PCI_64_H */ |
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h index d1531c8480b7..eefb0594b058 100644 --- a/arch/x86/include/asm/ptrace.h +++ b/arch/x86/include/asm/ptrace.h | |||
@@ -271,8 +271,6 @@ extern int do_get_thread_area(struct task_struct *p, int idx, | |||
271 | extern int do_set_thread_area(struct task_struct *p, int idx, | 271 | extern int do_set_thread_area(struct task_struct *p, int idx, |
272 | struct user_desc __user *info, int can_allocate); | 272 | struct user_desc __user *info, int can_allocate); |
273 | 273 | ||
274 | #define __ARCH_WANT_COMPAT_SYS_PTRACE | ||
275 | |||
276 | #endif /* __KERNEL__ */ | 274 | #endif /* __KERNEL__ */ |
277 | 275 | ||
278 | #endif /* !__ASSEMBLY__ */ | 276 | #endif /* !__ASSEMBLY__ */ |
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile index 1d8ed95da846..af2bc36ca1c4 100644 --- a/arch/x86/kernel/Makefile +++ b/arch/x86/kernel/Makefile | |||
@@ -46,7 +46,7 @@ obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o | |||
46 | obj-y += process.o | 46 | obj-y += process.o |
47 | obj-y += i387.o xsave.o | 47 | obj-y += i387.o xsave.o |
48 | obj-y += ptrace.o | 48 | obj-y += ptrace.o |
49 | obj-y += ds.o | 49 | obj-$(CONFIG_X86_DS) += ds.o |
50 | obj-$(CONFIG_X86_32) += tls.o | 50 | obj-$(CONFIG_X86_32) += tls.o |
51 | obj-$(CONFIG_IA32_EMULATION) += tls.o | 51 | obj-$(CONFIG_IA32_EMULATION) += tls.o |
52 | obj-y += step.o | 52 | obj-y += step.o |
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c index 04a7f960bbc0..16f94879b525 100644 --- a/arch/x86/kernel/apic.c +++ b/arch/x86/kernel/apic.c | |||
@@ -1315,7 +1315,7 @@ void enable_x2apic(void) | |||
1315 | } | 1315 | } |
1316 | } | 1316 | } |
1317 | 1317 | ||
1318 | void enable_IR_x2apic(void) | 1318 | void __init enable_IR_x2apic(void) |
1319 | { | 1319 | { |
1320 | #ifdef CONFIG_INTR_REMAP | 1320 | #ifdef CONFIG_INTR_REMAP |
1321 | int ret; | 1321 | int ret; |
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c index d3dcd58b87cd..7f05f44b97e9 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -115,9 +115,20 @@ static int query_current_values_with_pending_wait(struct powernow_k8_data *data) | |||
115 | u32 i = 0; | 115 | u32 i = 0; |
116 | 116 | ||
117 | if (cpu_family == CPU_HW_PSTATE) { | 117 | if (cpu_family == CPU_HW_PSTATE) { |
118 | rdmsr(MSR_PSTATE_STATUS, lo, hi); | 118 | if (data->currpstate == HW_PSTATE_INVALID) { |
119 | i = lo & HW_PSTATE_MASK; | 119 | /* read (initial) hw pstate if not yet set */ |
120 | data->currpstate = i; | 120 | rdmsr(MSR_PSTATE_STATUS, lo, hi); |
121 | i = lo & HW_PSTATE_MASK; | ||
122 | |||
123 | /* | ||
124 | * a workaround for family 11h erratum 311 might cause | ||
125 | * an "out-of-range Pstate if the core is in Pstate-0 | ||
126 | */ | ||
127 | if (i >= data->numps) | ||
128 | data->currpstate = HW_PSTATE_0; | ||
129 | else | ||
130 | data->currpstate = i; | ||
131 | } | ||
121 | return 0; | 132 | return 0; |
122 | } | 133 | } |
123 | do { | 134 | do { |
@@ -1121,6 +1132,7 @@ static int __cpuinit powernowk8_cpu_init(struct cpufreq_policy *pol) | |||
1121 | } | 1132 | } |
1122 | 1133 | ||
1123 | data->cpu = pol->cpu; | 1134 | data->cpu = pol->cpu; |
1135 | data->currpstate = HW_PSTATE_INVALID; | ||
1124 | 1136 | ||
1125 | if (powernow_k8_cpu_init_acpi(data)) { | 1137 | if (powernow_k8_cpu_init_acpi(data)) { |
1126 | /* | 1138 | /* |
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.h b/arch/x86/kernel/cpu/cpufreq/powernow-k8.h index ab48cfed4d96..65cfb5d7f77f 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.h +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.h | |||
@@ -5,6 +5,19 @@ | |||
5 | * http://www.gnu.org/licenses/gpl.html | 5 | * http://www.gnu.org/licenses/gpl.html |
6 | */ | 6 | */ |
7 | 7 | ||
8 | |||
9 | enum pstate { | ||
10 | HW_PSTATE_INVALID = 0xff, | ||
11 | HW_PSTATE_0 = 0, | ||
12 | HW_PSTATE_1 = 1, | ||
13 | HW_PSTATE_2 = 2, | ||
14 | HW_PSTATE_3 = 3, | ||
15 | HW_PSTATE_4 = 4, | ||
16 | HW_PSTATE_5 = 5, | ||
17 | HW_PSTATE_6 = 6, | ||
18 | HW_PSTATE_7 = 7, | ||
19 | }; | ||
20 | |||
8 | struct powernow_k8_data { | 21 | struct powernow_k8_data { |
9 | unsigned int cpu; | 22 | unsigned int cpu; |
10 | 23 | ||
@@ -23,7 +36,9 @@ struct powernow_k8_data { | |||
23 | u32 exttype; /* extended interface = 1 */ | 36 | u32 exttype; /* extended interface = 1 */ |
24 | 37 | ||
25 | /* keep track of the current fid / vid or pstate */ | 38 | /* keep track of the current fid / vid or pstate */ |
26 | u32 currvid, currfid, currpstate; | 39 | u32 currvid; |
40 | u32 currfid; | ||
41 | enum pstate currpstate; | ||
27 | 42 | ||
28 | /* the powernow_table includes all frequency and vid/fid pairings: | 43 | /* the powernow_table includes all frequency and vid/fid pairings: |
29 | * fid are the lower 8 bits of the index, vid are the upper 8 bits. | 44 | * fid are the lower 8 bits of the index, vid are the upper 8 bits. |
diff --git a/arch/x86/kernel/ds.c b/arch/x86/kernel/ds.c index d1a121443bde..a2d1176c38ee 100644 --- a/arch/x86/kernel/ds.c +++ b/arch/x86/kernel/ds.c | |||
@@ -21,8 +21,6 @@ | |||
21 | */ | 21 | */ |
22 | 22 | ||
23 | 23 | ||
24 | #ifdef CONFIG_X86_DS | ||
25 | |||
26 | #include <asm/ds.h> | 24 | #include <asm/ds.h> |
27 | 25 | ||
28 | #include <linux/errno.h> | 26 | #include <linux/errno.h> |
@@ -211,14 +209,15 @@ static DEFINE_PER_CPU(struct ds_context *, system_context); | |||
211 | static inline struct ds_context *ds_get_context(struct task_struct *task) | 209 | static inline struct ds_context *ds_get_context(struct task_struct *task) |
212 | { | 210 | { |
213 | struct ds_context *context; | 211 | struct ds_context *context; |
212 | unsigned long irq; | ||
214 | 213 | ||
215 | spin_lock(&ds_lock); | 214 | spin_lock_irqsave(&ds_lock, irq); |
216 | 215 | ||
217 | context = (task ? task->thread.ds_ctx : this_system_context); | 216 | context = (task ? task->thread.ds_ctx : this_system_context); |
218 | if (context) | 217 | if (context) |
219 | context->count++; | 218 | context->count++; |
220 | 219 | ||
221 | spin_unlock(&ds_lock); | 220 | spin_unlock_irqrestore(&ds_lock, irq); |
222 | 221 | ||
223 | return context; | 222 | return context; |
224 | } | 223 | } |
@@ -226,55 +225,46 @@ static inline struct ds_context *ds_get_context(struct task_struct *task) | |||
226 | /* | 225 | /* |
227 | * Same as ds_get_context, but allocates the context and it's DS | 226 | * Same as ds_get_context, but allocates the context and it's DS |
228 | * structure, if necessary; returns NULL; if out of memory. | 227 | * structure, if necessary; returns NULL; if out of memory. |
229 | * | ||
230 | * pre: requires ds_lock to be held | ||
231 | */ | 228 | */ |
232 | static inline struct ds_context *ds_alloc_context(struct task_struct *task) | 229 | static inline struct ds_context *ds_alloc_context(struct task_struct *task) |
233 | { | 230 | { |
234 | struct ds_context **p_context = | 231 | struct ds_context **p_context = |
235 | (task ? &task->thread.ds_ctx : &this_system_context); | 232 | (task ? &task->thread.ds_ctx : &this_system_context); |
236 | struct ds_context *context = *p_context; | 233 | struct ds_context *context = *p_context; |
234 | unsigned long irq; | ||
237 | 235 | ||
238 | if (!context) { | 236 | if (!context) { |
239 | spin_unlock(&ds_lock); | ||
240 | |||
241 | context = kzalloc(sizeof(*context), GFP_KERNEL); | 237 | context = kzalloc(sizeof(*context), GFP_KERNEL); |
242 | 238 | if (!context) | |
243 | if (!context) { | ||
244 | spin_lock(&ds_lock); | ||
245 | return NULL; | 239 | return NULL; |
246 | } | ||
247 | 240 | ||
248 | context->ds = kzalloc(ds_cfg.sizeof_ds, GFP_KERNEL); | 241 | context->ds = kzalloc(ds_cfg.sizeof_ds, GFP_KERNEL); |
249 | if (!context->ds) { | 242 | if (!context->ds) { |
250 | kfree(context); | 243 | kfree(context); |
251 | spin_lock(&ds_lock); | ||
252 | return NULL; | 244 | return NULL; |
253 | } | 245 | } |
254 | 246 | ||
255 | spin_lock(&ds_lock); | 247 | spin_lock_irqsave(&ds_lock, irq); |
256 | /* | 248 | |
257 | * Check for race - another CPU could have allocated | ||
258 | * it meanwhile: | ||
259 | */ | ||
260 | if (*p_context) { | 249 | if (*p_context) { |
261 | kfree(context->ds); | 250 | kfree(context->ds); |
262 | kfree(context); | 251 | kfree(context); |
263 | return *p_context; | ||
264 | } | ||
265 | 252 | ||
266 | *p_context = context; | 253 | context = *p_context; |
254 | } else { | ||
255 | *p_context = context; | ||
267 | 256 | ||
268 | context->this = p_context; | 257 | context->this = p_context; |
269 | context->task = task; | 258 | context->task = task; |
270 | 259 | ||
271 | if (task) | 260 | if (task) |
272 | set_tsk_thread_flag(task, TIF_DS_AREA_MSR); | 261 | set_tsk_thread_flag(task, TIF_DS_AREA_MSR); |
273 | 262 | ||
274 | if (!task || (task == current)) | 263 | if (!task || (task == current)) |
275 | wrmsr(MSR_IA32_DS_AREA, (unsigned long)context->ds, 0); | 264 | wrmsrl(MSR_IA32_DS_AREA, |
276 | 265 | (unsigned long)context->ds); | |
277 | get_tracer(task); | 266 | } |
267 | spin_unlock_irqrestore(&ds_lock, irq); | ||
278 | } | 268 | } |
279 | 269 | ||
280 | context->count++; | 270 | context->count++; |
@@ -288,10 +278,12 @@ static inline struct ds_context *ds_alloc_context(struct task_struct *task) | |||
288 | */ | 278 | */ |
289 | static inline void ds_put_context(struct ds_context *context) | 279 | static inline void ds_put_context(struct ds_context *context) |
290 | { | 280 | { |
281 | unsigned long irq; | ||
282 | |||
291 | if (!context) | 283 | if (!context) |
292 | return; | 284 | return; |
293 | 285 | ||
294 | spin_lock(&ds_lock); | 286 | spin_lock_irqsave(&ds_lock, irq); |
295 | 287 | ||
296 | if (--context->count) | 288 | if (--context->count) |
297 | goto out; | 289 | goto out; |
@@ -313,7 +305,7 @@ static inline void ds_put_context(struct ds_context *context) | |||
313 | kfree(context->ds); | 305 | kfree(context->ds); |
314 | kfree(context); | 306 | kfree(context); |
315 | out: | 307 | out: |
316 | spin_unlock(&ds_lock); | 308 | spin_unlock_irqrestore(&ds_lock, irq); |
317 | } | 309 | } |
318 | 310 | ||
319 | 311 | ||
@@ -384,6 +376,7 @@ static int ds_request(struct task_struct *task, void *base, size_t size, | |||
384 | struct ds_context *context; | 376 | struct ds_context *context; |
385 | unsigned long buffer, adj; | 377 | unsigned long buffer, adj; |
386 | const unsigned long alignment = (1 << 3); | 378 | const unsigned long alignment = (1 << 3); |
379 | unsigned long irq; | ||
387 | int error = 0; | 380 | int error = 0; |
388 | 381 | ||
389 | if (!ds_cfg.sizeof_ds) | 382 | if (!ds_cfg.sizeof_ds) |
@@ -398,26 +391,27 @@ static int ds_request(struct task_struct *task, void *base, size_t size, | |||
398 | return -EOPNOTSUPP; | 391 | return -EOPNOTSUPP; |
399 | 392 | ||
400 | 393 | ||
401 | spin_lock(&ds_lock); | ||
402 | |||
403 | error = -ENOMEM; | ||
404 | context = ds_alloc_context(task); | 394 | context = ds_alloc_context(task); |
405 | if (!context) | 395 | if (!context) |
406 | goto out_unlock; | 396 | return -ENOMEM; |
397 | |||
398 | spin_lock_irqsave(&ds_lock, irq); | ||
407 | 399 | ||
408 | error = -EPERM; | 400 | error = -EPERM; |
409 | if (!check_tracer(task)) | 401 | if (!check_tracer(task)) |
410 | goto out_unlock; | 402 | goto out_unlock; |
411 | 403 | ||
404 | get_tracer(task); | ||
405 | |||
412 | error = -EALREADY; | 406 | error = -EALREADY; |
413 | if (context->owner[qual] == current) | 407 | if (context->owner[qual] == current) |
414 | goto out_unlock; | 408 | goto out_put_tracer; |
415 | error = -EPERM; | 409 | error = -EPERM; |
416 | if (context->owner[qual] != NULL) | 410 | if (context->owner[qual] != NULL) |
417 | goto out_unlock; | 411 | goto out_put_tracer; |
418 | context->owner[qual] = current; | 412 | context->owner[qual] = current; |
419 | 413 | ||
420 | spin_unlock(&ds_lock); | 414 | spin_unlock_irqrestore(&ds_lock, irq); |
421 | 415 | ||
422 | 416 | ||
423 | error = -ENOMEM; | 417 | error = -ENOMEM; |
@@ -465,10 +459,17 @@ static int ds_request(struct task_struct *task, void *base, size_t size, | |||
465 | out_release: | 459 | out_release: |
466 | context->owner[qual] = NULL; | 460 | context->owner[qual] = NULL; |
467 | ds_put_context(context); | 461 | ds_put_context(context); |
462 | put_tracer(task); | ||
463 | return error; | ||
464 | |||
465 | out_put_tracer: | ||
466 | spin_unlock_irqrestore(&ds_lock, irq); | ||
467 | ds_put_context(context); | ||
468 | put_tracer(task); | ||
468 | return error; | 469 | return error; |
469 | 470 | ||
470 | out_unlock: | 471 | out_unlock: |
471 | spin_unlock(&ds_lock); | 472 | spin_unlock_irqrestore(&ds_lock, irq); |
472 | ds_put_context(context); | 473 | ds_put_context(context); |
473 | return error; | 474 | return error; |
474 | } | 475 | } |
@@ -818,13 +819,21 @@ static const struct ds_configuration ds_cfg_var = { | |||
818 | .sizeof_ds = sizeof(long) * 12, | 819 | .sizeof_ds = sizeof(long) * 12, |
819 | .sizeof_field = sizeof(long), | 820 | .sizeof_field = sizeof(long), |
820 | .sizeof_rec[ds_bts] = sizeof(long) * 3, | 821 | .sizeof_rec[ds_bts] = sizeof(long) * 3, |
822 | #ifdef __i386__ | ||
821 | .sizeof_rec[ds_pebs] = sizeof(long) * 10 | 823 | .sizeof_rec[ds_pebs] = sizeof(long) * 10 |
824 | #else | ||
825 | .sizeof_rec[ds_pebs] = sizeof(long) * 18 | ||
826 | #endif | ||
822 | }; | 827 | }; |
823 | static const struct ds_configuration ds_cfg_64 = { | 828 | static const struct ds_configuration ds_cfg_64 = { |
824 | .sizeof_ds = 8 * 12, | 829 | .sizeof_ds = 8 * 12, |
825 | .sizeof_field = 8, | 830 | .sizeof_field = 8, |
826 | .sizeof_rec[ds_bts] = 8 * 3, | 831 | .sizeof_rec[ds_bts] = 8 * 3, |
832 | #ifdef __i386__ | ||
827 | .sizeof_rec[ds_pebs] = 8 * 10 | 833 | .sizeof_rec[ds_pebs] = 8 * 10 |
834 | #else | ||
835 | .sizeof_rec[ds_pebs] = 8 * 18 | ||
836 | #endif | ||
828 | }; | 837 | }; |
829 | 838 | ||
830 | static inline void | 839 | static inline void |
@@ -878,4 +887,3 @@ void ds_free(struct ds_context *context) | |||
878 | while (leftovers--) | 887 | while (leftovers--) |
879 | ds_put_context(context); | 888 | ds_put_context(context); |
880 | } | 889 | } |
881 | #endif /* CONFIG_X86_DS */ | ||
diff --git a/arch/x86/kernel/i387.c b/arch/x86/kernel/i387.c index 1f20608d4ca8..b0f61f0dcd0a 100644 --- a/arch/x86/kernel/i387.c +++ b/arch/x86/kernel/i387.c | |||
@@ -58,7 +58,7 @@ void __cpuinit mxcsr_feature_mask_init(void) | |||
58 | stts(); | 58 | stts(); |
59 | } | 59 | } |
60 | 60 | ||
61 | void __init init_thread_xstate(void) | 61 | void __cpuinit init_thread_xstate(void) |
62 | { | 62 | { |
63 | if (!HAVE_HWFP) { | 63 | if (!HAVE_HWFP) { |
64 | xstate_size = sizeof(struct i387_soft_struct); | 64 | xstate_size = sizeof(struct i387_soft_struct); |
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c index c9513e1ff28d..9043251210fb 100644 --- a/arch/x86/kernel/io_apic.c +++ b/arch/x86/kernel/io_apic.c | |||
@@ -3608,27 +3608,7 @@ int __init io_apic_get_redir_entries (int ioapic) | |||
3608 | 3608 | ||
3609 | int __init probe_nr_irqs(void) | 3609 | int __init probe_nr_irqs(void) |
3610 | { | 3610 | { |
3611 | int idx; | 3611 | return NR_IRQS; |
3612 | int nr = 0; | ||
3613 | #ifndef CONFIG_XEN | ||
3614 | int nr_min = 32; | ||
3615 | #else | ||
3616 | int nr_min = NR_IRQS; | ||
3617 | #endif | ||
3618 | |||
3619 | for (idx = 0; idx < nr_ioapics; idx++) | ||
3620 | nr += io_apic_get_redir_entries(idx) + 1; | ||
3621 | |||
3622 | /* double it for hotplug and msi and nmi */ | ||
3623 | nr <<= 1; | ||
3624 | |||
3625 | /* something wrong ? */ | ||
3626 | if (nr < nr_min) | ||
3627 | nr = nr_min; | ||
3628 | if (WARN_ON(nr > NR_IRQS)) | ||
3629 | nr = NR_IRQS; | ||
3630 | |||
3631 | return nr; | ||
3632 | } | 3612 | } |
3633 | 3613 | ||
3634 | /* -------------------------------------------------------------------------- | 3614 | /* -------------------------------------------------------------------------- |
@@ -3775,7 +3755,9 @@ int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity) | |||
3775 | void __init setup_ioapic_dest(void) | 3755 | void __init setup_ioapic_dest(void) |
3776 | { | 3756 | { |
3777 | int pin, ioapic, irq, irq_entry; | 3757 | int pin, ioapic, irq, irq_entry; |
3758 | struct irq_desc *desc; | ||
3778 | struct irq_cfg *cfg; | 3759 | struct irq_cfg *cfg; |
3760 | cpumask_t mask; | ||
3779 | 3761 | ||
3780 | if (skip_ioapic_setup == 1) | 3762 | if (skip_ioapic_setup == 1) |
3781 | return; | 3763 | return; |
@@ -3792,16 +3774,30 @@ void __init setup_ioapic_dest(void) | |||
3792 | * cpu is online. | 3774 | * cpu is online. |
3793 | */ | 3775 | */ |
3794 | cfg = irq_cfg(irq); | 3776 | cfg = irq_cfg(irq); |
3795 | if (!cfg->vector) | 3777 | if (!cfg->vector) { |
3796 | setup_IO_APIC_irq(ioapic, pin, irq, | 3778 | setup_IO_APIC_irq(ioapic, pin, irq, |
3797 | irq_trigger(irq_entry), | 3779 | irq_trigger(irq_entry), |
3798 | irq_polarity(irq_entry)); | 3780 | irq_polarity(irq_entry)); |
3781 | continue; | ||
3782 | |||
3783 | } | ||
3784 | |||
3785 | /* | ||
3786 | * Honour affinities which have been set in early boot | ||
3787 | */ | ||
3788 | desc = irq_to_desc(irq); | ||
3789 | if (desc->status & | ||
3790 | (IRQ_NO_BALANCING | IRQ_AFFINITY_SET)) | ||
3791 | mask = desc->affinity; | ||
3792 | else | ||
3793 | mask = TARGET_CPUS; | ||
3794 | |||
3799 | #ifdef CONFIG_INTR_REMAP | 3795 | #ifdef CONFIG_INTR_REMAP |
3800 | else if (intr_remapping_enabled) | 3796 | if (intr_remapping_enabled) |
3801 | set_ir_ioapic_affinity_irq(irq, TARGET_CPUS); | 3797 | set_ir_ioapic_affinity_irq(irq, mask); |
3802 | #endif | ||
3803 | else | 3798 | else |
3804 | set_ioapic_affinity_irq(irq, TARGET_CPUS); | 3799 | #endif |
3800 | set_ioapic_affinity_irq(irq, mask); | ||
3805 | } | 3801 | } |
3806 | 3802 | ||
3807 | } | 3803 | } |
diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c index 1c9cc431ea4f..e169ae9b6a62 100644 --- a/arch/x86/kernel/kvmclock.c +++ b/arch/x86/kernel/kvmclock.c | |||
@@ -128,7 +128,7 @@ static int kvm_register_clock(char *txt) | |||
128 | } | 128 | } |
129 | 129 | ||
130 | #ifdef CONFIG_X86_LOCAL_APIC | 130 | #ifdef CONFIG_X86_LOCAL_APIC |
131 | static void __devinit kvm_setup_secondary_clock(void) | 131 | static void __cpuinit kvm_setup_secondary_clock(void) |
132 | { | 132 | { |
133 | /* | 133 | /* |
134 | * Now that the first cpu already had this clocksource initialized, | 134 | * Now that the first cpu already had this clocksource initialized, |
diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c index e1e731d78f38..d28bbdc35e4e 100644 --- a/arch/x86/kernel/pci-calgary_64.c +++ b/arch/x86/kernel/pci-calgary_64.c | |||
@@ -1567,7 +1567,7 @@ static int __init calgary_parse_options(char *p) | |||
1567 | ++p; | 1567 | ++p; |
1568 | if (*p == '\0') | 1568 | if (*p == '\0') |
1569 | break; | 1569 | break; |
1570 | bridge = simple_strtol(p, &endp, 0); | 1570 | bridge = simple_strtoul(p, &endp, 0); |
1571 | if (p == endp) | 1571 | if (p == endp) |
1572 | break; | 1572 | break; |
1573 | 1573 | ||
diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c index b13acb75e822..15c3e6999182 100644 --- a/arch/x86/kernel/xsave.c +++ b/arch/x86/kernel/xsave.c | |||
@@ -310,7 +310,7 @@ static void __init setup_xstate_init(void) | |||
310 | /* | 310 | /* |
311 | * Enable and initialize the xsave feature. | 311 | * Enable and initialize the xsave feature. |
312 | */ | 312 | */ |
313 | void __init xsave_cntxt_init(void) | 313 | void __ref xsave_cntxt_init(void) |
314 | { | 314 | { |
315 | unsigned int eax, ebx, ecx, edx; | 315 | unsigned int eax, ebx, ecx, edx; |
316 | 316 | ||
diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c index 3f1b81a83e2e..716d26f0e5d4 100644 --- a/arch/x86/oprofile/op_model_ppro.c +++ b/arch/x86/oprofile/op_model_ppro.c | |||
@@ -69,7 +69,7 @@ static void ppro_setup_ctrs(struct op_msrs const * const msrs) | |||
69 | int i; | 69 | int i; |
70 | 70 | ||
71 | if (!reset_value) { | 71 | if (!reset_value) { |
72 | reset_value = kmalloc(sizeof(unsigned) * num_counters, | 72 | reset_value = kmalloc(sizeof(reset_value[0]) * num_counters, |
73 | GFP_ATOMIC); | 73 | GFP_ATOMIC); |
74 | if (!reset_value) | 74 | if (!reset_value) |
75 | return; | 75 | return; |
diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c index 3c27a809393b..2051dc96b8e9 100644 --- a/arch/x86/pci/fixup.c +++ b/arch/x86/pci/fixup.c | |||
@@ -496,21 +496,24 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SIEMENS, 0x0015, | |||
496 | pci_siemens_interrupt_controller); | 496 | pci_siemens_interrupt_controller); |
497 | 497 | ||
498 | /* | 498 | /* |
499 | * Regular PCI devices have 256 bytes, but AMD Family 10h Opteron ext config | 499 | * Regular PCI devices have 256 bytes, but AMD Family 10h/11h CPUs have |
500 | * have 4096 bytes. Even if the device is capable, that doesn't mean we can | 500 | * 4096 bytes configuration space for each function of their processor |
501 | * access it. Maybe we don't have a way to generate extended config space | 501 | * configuration space. |
502 | * accesses. So check it | ||
503 | */ | 502 | */ |
504 | static void fam10h_pci_cfg_space_size(struct pci_dev *dev) | 503 | static void amd_cpu_pci_cfg_space_size(struct pci_dev *dev) |
505 | { | 504 | { |
506 | dev->cfg_size = pci_cfg_space_size_ext(dev); | 505 | dev->cfg_size = pci_cfg_space_size_ext(dev); |
507 | } | 506 | } |
508 | 507 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1200, amd_cpu_pci_cfg_space_size); | |
509 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1200, fam10h_pci_cfg_space_size); | 508 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1201, amd_cpu_pci_cfg_space_size); |
510 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1201, fam10h_pci_cfg_space_size); | 509 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1202, amd_cpu_pci_cfg_space_size); |
511 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1202, fam10h_pci_cfg_space_size); | 510 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1203, amd_cpu_pci_cfg_space_size); |
512 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1203, fam10h_pci_cfg_space_size); | 511 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1204, amd_cpu_pci_cfg_space_size); |
513 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1204, fam10h_pci_cfg_space_size); | 512 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1300, amd_cpu_pci_cfg_space_size); |
513 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1301, amd_cpu_pci_cfg_space_size); | ||
514 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1302, amd_cpu_pci_cfg_space_size); | ||
515 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1303, amd_cpu_pci_cfg_space_size); | ||
516 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, 0x1304, amd_cpu_pci_cfg_space_size); | ||
514 | 517 | ||
515 | /* | 518 | /* |
516 | * SB600: Disable BAR1 on device 14.0 to avoid HPET resources from | 519 | * SB600: Disable BAR1 on device 14.0 to avoid HPET resources from |
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index 688936044dc9..636ef4caa52d 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c | |||
@@ -661,12 +661,11 @@ void xen_set_pgd(pgd_t *ptr, pgd_t val) | |||
661 | * For 64-bit, we must skip the Xen hole in the middle of the address | 661 | * For 64-bit, we must skip the Xen hole in the middle of the address |
662 | * space, just after the big x86-64 virtual hole. | 662 | * space, just after the big x86-64 virtual hole. |
663 | */ | 663 | */ |
664 | static int xen_pgd_walk(struct mm_struct *mm, | 664 | static int __xen_pgd_walk(struct mm_struct *mm, pgd_t *pgd, |
665 | int (*func)(struct mm_struct *mm, struct page *, | 665 | int (*func)(struct mm_struct *mm, struct page *, |
666 | enum pt_level), | 666 | enum pt_level), |
667 | unsigned long limit) | 667 | unsigned long limit) |
668 | { | 668 | { |
669 | pgd_t *pgd = mm->pgd; | ||
670 | int flush = 0; | 669 | int flush = 0; |
671 | unsigned hole_low, hole_high; | 670 | unsigned hole_low, hole_high; |
672 | unsigned pgdidx_limit, pudidx_limit, pmdidx_limit; | 671 | unsigned pgdidx_limit, pudidx_limit, pmdidx_limit; |
@@ -753,6 +752,14 @@ out: | |||
753 | return flush; | 752 | return flush; |
754 | } | 753 | } |
755 | 754 | ||
755 | static int xen_pgd_walk(struct mm_struct *mm, | ||
756 | int (*func)(struct mm_struct *mm, struct page *, | ||
757 | enum pt_level), | ||
758 | unsigned long limit) | ||
759 | { | ||
760 | return __xen_pgd_walk(mm, mm->pgd, func, limit); | ||
761 | } | ||
762 | |||
756 | /* If we're using split pte locks, then take the page's lock and | 763 | /* If we're using split pte locks, then take the page's lock and |
757 | return a pointer to it. Otherwise return NULL. */ | 764 | return a pointer to it. Otherwise return NULL. */ |
758 | static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm) | 765 | static spinlock_t *xen_pte_lock(struct page *page, struct mm_struct *mm) |
@@ -854,7 +861,7 @@ static void __xen_pgd_pin(struct mm_struct *mm, pgd_t *pgd) | |||
854 | 861 | ||
855 | xen_mc_batch(); | 862 | xen_mc_batch(); |
856 | 863 | ||
857 | if (xen_pgd_walk(mm, xen_pin_page, USER_LIMIT)) { | 864 | if (__xen_pgd_walk(mm, pgd, xen_pin_page, USER_LIMIT)) { |
858 | /* re-enable interrupts for flushing */ | 865 | /* re-enable interrupts for flushing */ |
859 | xen_mc_issue(0); | 866 | xen_mc_issue(0); |
860 | 867 | ||
@@ -998,7 +1005,7 @@ static void __xen_pgd_unpin(struct mm_struct *mm, pgd_t *pgd) | |||
998 | PT_PMD); | 1005 | PT_PMD); |
999 | #endif | 1006 | #endif |
1000 | 1007 | ||
1001 | xen_pgd_walk(mm, xen_unpin_page, USER_LIMIT); | 1008 | __xen_pgd_walk(mm, pgd, xen_unpin_page, USER_LIMIT); |
1002 | 1009 | ||
1003 | xen_mc_issue(0); | 1010 | xen_mc_issue(0); |
1004 | } | 1011 | } |
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index d77da613b1d2..acd9b6705e02 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c | |||
@@ -362,7 +362,7 @@ static void xen_cpu_die(unsigned int cpu) | |||
362 | alternatives_smp_switch(0); | 362 | alternatives_smp_switch(0); |
363 | } | 363 | } |
364 | 364 | ||
365 | static void xen_play_dead(void) | 365 | static void __cpuinit xen_play_dead(void) /* used only with CPU_HOTPLUG */ |
366 | { | 366 | { |
367 | play_dead_common(); | 367 | play_dead_common(); |
368 | HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); | 368 | HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL); |
diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h index d7422dc2a55c..9e1afae8461f 100644 --- a/arch/x86/xen/xen-ops.h +++ b/arch/x86/xen/xen-ops.h | |||
@@ -49,7 +49,7 @@ bool xen_vcpu_stolen(int vcpu); | |||
49 | 49 | ||
50 | void xen_mark_init_mm_pinned(void); | 50 | void xen_mark_init_mm_pinned(void); |
51 | 51 | ||
52 | void __init xen_setup_vcpu_info_placement(void); | 52 | void xen_setup_vcpu_info_placement(void); |
53 | 53 | ||
54 | #ifdef CONFIG_SMP | 54 | #ifdef CONFIG_SMP |
55 | void xen_smp_init(void); | 55 | void xen_smp_init(void); |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index 1423b0c0cd2e..a0a178dd189c 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -174,6 +174,15 @@ static int acpi_battery_get_property(struct power_supply *psy, | |||
174 | break; | 174 | break; |
175 | case POWER_SUPPLY_PROP_CURRENT_NOW: | 175 | case POWER_SUPPLY_PROP_CURRENT_NOW: |
176 | val->intval = battery->current_now * 1000; | 176 | val->intval = battery->current_now * 1000; |
177 | /* if power units are mW, convert to mA by | ||
178 | dividing by current voltage (mV/1000) */ | ||
179 | if (!battery->power_unit) { | ||
180 | if (battery->voltage_now) { | ||
181 | val->intval /= battery->voltage_now; | ||
182 | val->intval *= 1000; | ||
183 | } else | ||
184 | val->intval = -1; | ||
185 | } | ||
177 | break; | 186 | break; |
178 | case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: | 187 | case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN: |
179 | case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN: | 188 | case POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN: |
diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c index ea92bac42c53..09c69806c1fc 100644 --- a/drivers/acpi/blacklist.c +++ b/drivers/acpi/blacklist.c | |||
@@ -176,16 +176,6 @@ static int __init dmi_enable_osi_linux(const struct dmi_system_id *d) | |||
176 | acpi_dmi_osi_linux(1, d); /* enable */ | 176 | acpi_dmi_osi_linux(1, d); /* enable */ |
177 | return 0; | 177 | return 0; |
178 | } | 178 | } |
179 | static int __init dmi_disable_osi_linux(const struct dmi_system_id *d) | ||
180 | { | ||
181 | acpi_dmi_osi_linux(0, d); /* disable */ | ||
182 | return 0; | ||
183 | } | ||
184 | static int __init dmi_unknown_osi_linux(const struct dmi_system_id *d) | ||
185 | { | ||
186 | acpi_dmi_osi_linux(-1, d); /* unknown */ | ||
187 | return 0; | ||
188 | } | ||
189 | static int __init dmi_disable_osi_vista(const struct dmi_system_id *d) | 179 | static int __init dmi_disable_osi_vista(const struct dmi_system_id *d) |
190 | { | 180 | { |
191 | printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident); | 181 | printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident); |
@@ -193,295 +183,21 @@ static int __init dmi_disable_osi_vista(const struct dmi_system_id *d) | |||
193 | return 0; | 183 | return 0; |
194 | } | 184 | } |
195 | 185 | ||
196 | /* | ||
197 | * Most BIOS that invoke OSI(Linux) do nothing with it. | ||
198 | * But some cause Linux to break. | ||
199 | * Only a couple use it to make Linux run better. | ||
200 | * | ||
201 | * Thus, Linux should continue to disable OSI(Linux) by default, | ||
202 | * should continue to discourage BIOS writers from using it, and | ||
203 | * should whitelist the few existing systems that require it. | ||
204 | * | ||
205 | * If it appears clear a vendor isn't using OSI(Linux) | ||
206 | * for anything constructive, blacklist them by name to disable | ||
207 | * unnecessary dmesg warnings on all of their products. | ||
208 | */ | ||
209 | |||
210 | static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | 186 | static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { |
211 | /* | ||
212 | * Disable OSI(Linux) warnings on all "Acer, inc." | ||
213 | * | ||
214 | * _OSI(Linux) disables the latest Windows BIOS code: | ||
215 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 3100"), | ||
216 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5050"), | ||
217 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5100"), | ||
218 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5580"), | ||
219 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 3010"), | ||
220 | * _OSI(Linux) effect unknown: | ||
221 | * DMI_MATCH(DMI_PRODUCT_NAME, "Ferrari 5000"), | ||
222 | */ | ||
223 | /* | ||
224 | * note that dmi_check_system() uses strstr() | ||
225 | * to match sub-strings rather than !strcmp(), | ||
226 | * so "Acer" below matches "Acer, inc." above. | ||
227 | */ | ||
228 | /* | ||
229 | * Disable OSI(Linux) warnings on all "Acer" | ||
230 | * | ||
231 | * _OSI(Linux) effect unknown: | ||
232 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5610"), | ||
233 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 7720Z"), | ||
234 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 5520"), | ||
235 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 6460"), | ||
236 | * DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 7510"), | ||
237 | * | ||
238 | * _OSI(Linux) is a NOP: | ||
239 | * DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 5315"), | ||
240 | * DMI_MATCH(DMI_PRODUCT_NAME, "Extensa 5220"), | ||
241 | */ | ||
242 | { | ||
243 | .callback = dmi_disable_osi_linux, | ||
244 | .ident = "Acer", | ||
245 | .matches = { | ||
246 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
247 | }, | ||
248 | }, | ||
249 | /* | ||
250 | * Disable OSI(Linux) warnings on all "Apple Computer, Inc." | ||
251 | * Disable OSI(Linux) warnings on all "Apple Inc." | ||
252 | * | ||
253 | * _OSI(Linux) confirmed to be a NOP: | ||
254 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"), | ||
255 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBook2,1"), | ||
256 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro2,2"), | ||
257 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro3,1"), | ||
258 | * _OSI(Linux) effect unknown: | ||
259 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacPro2,1"), | ||
260 | * DMI_MATCH(DMI_PRODUCT_NAME, "MacBookPro1,1"), | ||
261 | */ | ||
262 | { | ||
263 | .callback = dmi_disable_osi_linux, | ||
264 | .ident = "Apple", | ||
265 | .matches = { | ||
266 | DMI_MATCH(DMI_SYS_VENDOR, "Apple"), | ||
267 | }, | ||
268 | }, | ||
269 | /* | ||
270 | * Disable OSI(Linux) warnings on all "BenQ" | ||
271 | * | ||
272 | * _OSI(Linux) confirmed to be a NOP: | ||
273 | * DMI_MATCH(DMI_PRODUCT_NAME, "Joybook S31"), | ||
274 | */ | ||
275 | { | ||
276 | .callback = dmi_disable_osi_linux, | ||
277 | .ident = "BenQ", | ||
278 | .matches = { | ||
279 | DMI_MATCH(DMI_SYS_VENDOR, "BenQ"), | ||
280 | }, | ||
281 | }, | ||
282 | /* | ||
283 | * Disable OSI(Linux) warnings on all "Clevo Co." | ||
284 | * | ||
285 | * _OSI(Linux) confirmed to be a NOP: | ||
286 | * DMI_MATCH(DMI_PRODUCT_NAME, "M570RU"), | ||
287 | */ | ||
288 | { | ||
289 | .callback = dmi_disable_osi_linux, | ||
290 | .ident = "Clevo", | ||
291 | .matches = { | ||
292 | DMI_MATCH(DMI_SYS_VENDOR, "Clevo Co."), | ||
293 | }, | ||
294 | }, | ||
295 | /* | ||
296 | * Disable OSI(Linux) warnings on all "COMPAL" | ||
297 | * | ||
298 | * _OSI(Linux) confirmed to be a NOP: | ||
299 | * DMI_MATCH(DMI_BOARD_NAME, "HEL8X"), | ||
300 | * _OSI(Linux) unknown effect: | ||
301 | * DMI_MATCH(DMI_BOARD_NAME, "IFL91"), | ||
302 | */ | ||
303 | { | ||
304 | .callback = dmi_disable_osi_linux, | ||
305 | .ident = "Compal", | ||
306 | .matches = { | ||
307 | DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"), | ||
308 | }, | ||
309 | }, | ||
310 | { /* OSI(Linux) touches USB, unknown side-effect */ | ||
311 | .callback = dmi_disable_osi_linux, | ||
312 | .ident = "Dell Dimension 5150", | ||
313 | .matches = { | ||
314 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
315 | DMI_MATCH(DMI_PRODUCT_NAME, "Dell DM051"), | ||
316 | }, | ||
317 | }, | ||
318 | { /* OSI(Linux) is a NOP */ | ||
319 | .callback = dmi_disable_osi_linux, | ||
320 | .ident = "Dell i1501", | ||
321 | .matches = { | ||
322 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
323 | DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 1501"), | ||
324 | }, | ||
325 | }, | ||
326 | { /* OSI(Linux) effect unknown */ | ||
327 | .callback = dmi_unknown_osi_linux, | ||
328 | .ident = "Dell Latitude D830", | ||
329 | .matches = { | ||
330 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
331 | DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D830"), | ||
332 | }, | ||
333 | }, | ||
334 | { /* OSI(Linux) effect unknown */ | ||
335 | .callback = dmi_unknown_osi_linux, | ||
336 | .ident = "Dell OptiPlex GX620", | ||
337 | .matches = { | ||
338 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
339 | DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex GX620"), | ||
340 | }, | ||
341 | }, | ||
342 | { /* OSI(Linux) causes some USB initialization to not run */ | ||
343 | .callback = dmi_unknown_osi_linux, | ||
344 | .ident = "Dell OptiPlex 755", | ||
345 | .matches = { | ||
346 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
347 | DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 755"), | ||
348 | }, | ||
349 | }, | ||
350 | { /* OSI(Linux) effect unknown */ | ||
351 | .callback = dmi_unknown_osi_linux, | ||
352 | .ident = "Dell PE 1900", | ||
353 | .matches = { | ||
354 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
355 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1900"), | ||
356 | }, | ||
357 | }, | ||
358 | { /* OSI(Linux) is a NOP */ | ||
359 | .callback = dmi_unknown_osi_linux, | ||
360 | .ident = "Dell PE 1950", | ||
361 | .matches = { | ||
362 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
363 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge 1950"), | ||
364 | }, | ||
365 | }, | ||
366 | { /* OSI(Linux) is a NOP */ | ||
367 | .callback = dmi_disable_osi_linux, | ||
368 | .ident = "Dell PE R200", | ||
369 | .matches = { | ||
370 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
371 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge R200"), | ||
372 | }, | ||
373 | }, | ||
374 | { /* OSI(Linux) touches USB */ | ||
375 | .callback = dmi_disable_osi_linux, | ||
376 | .ident = "Dell PR 390", | ||
377 | .matches = { | ||
378 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
379 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation 390"), | ||
380 | }, | ||
381 | }, | ||
382 | { /* OSI(Linux) touches USB */ | ||
383 | .callback = dmi_unknown_osi_linux, | ||
384 | .ident = "Dell PR 390", | ||
385 | .matches = { | ||
386 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
387 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision WorkStation 690"), | ||
388 | }, | ||
389 | }, | ||
390 | { /* OSI(Linux) unknown - ASL looks benign, but may effect dock/SMM */ | ||
391 | .callback = dmi_unknown_osi_linux, | ||
392 | .ident = "Dell PR M4300", | ||
393 | .matches = { | ||
394 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
395 | DMI_MATCH(DMI_PRODUCT_NAME, "Precision M4300"), | ||
396 | }, | ||
397 | }, | ||
398 | { /* OSI(Linux) is a NOP */ | ||
399 | .callback = dmi_disable_osi_linux, | ||
400 | .ident = "Dell Vostro 1000", | ||
401 | .matches = { | ||
402 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
403 | DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 1000"), | ||
404 | }, | ||
405 | }, | ||
406 | { /* OSI(Linux) effect unknown */ | ||
407 | .callback = dmi_unknown_osi_linux, | ||
408 | .ident = "Dell PE SC440", | ||
409 | .matches = { | ||
410 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
411 | DMI_MATCH(DMI_PRODUCT_NAME, "PowerEdge SC440"), | ||
412 | }, | ||
413 | }, | ||
414 | { /* OSI(Linux) effect unknown */ | ||
415 | .callback = dmi_unknown_osi_linux, | ||
416 | .ident = "Dialogue Flybook V5", | ||
417 | .matches = { | ||
418 | DMI_MATCH(DMI_SYS_VENDOR, "Dialogue Technology Corporation"), | ||
419 | DMI_MATCH(DMI_PRODUCT_NAME, "Flybook V5"), | ||
420 | }, | ||
421 | }, | ||
422 | /* | ||
423 | * Disable OSI(Linux) warnings on all "FUJITSU SIEMENS" | ||
424 | * | ||
425 | * _OSI(Linux) disables latest Windows BIOS code: | ||
426 | * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pa 2510"), | ||
427 | * _OSI(Linux) confirmed to be a NOP: | ||
428 | * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 1536"), | ||
429 | * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Pi 1556"), | ||
430 | * DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 1546"), | ||
431 | * DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"), | ||
432 | * _OSI(Linux) unknown effect: | ||
433 | * DMI_MATCH(DMI_PRODUCT_NAME, "Amilo M1425"), | ||
434 | * DMI_MATCH(DMI_PRODUCT_NAME, "Amilo Si 1520"), | ||
435 | */ | ||
436 | { | ||
437 | .callback = dmi_disable_osi_linux, | ||
438 | .ident = "Fujitsu Siemens", | ||
439 | .matches = { | ||
440 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | ||
441 | }, | ||
442 | }, | ||
443 | { | 187 | { |
444 | .callback = dmi_disable_osi_vista, | 188 | .callback = dmi_disable_osi_vista, |
445 | .ident = "Fujitsu Siemens", | 189 | .ident = "Fujitsu Siemens", |
446 | .matches = { | 190 | .matches = { |
447 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), | 191 | DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"), |
448 | DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"), | 192 | DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO Mobile V5505"), |
449 | }, | 193 | }, |
450 | }, | 194 | }, |
195 | |||
451 | /* | 196 | /* |
452 | * Disable OSI(Linux) warnings on all "Hewlett-Packard" | 197 | * BIOS invocation of _OSI(Linux) is almost always a BIOS bug. |
453 | * | 198 | * Linux ignores it, except for the machines enumerated below. |
454 | * _OSI(Linux) confirmed to be a NOP: | ||
455 | * .ident = "HP Pavilion tx 1000" | ||
456 | * DMI_MATCH(DMI_BOARD_NAME, "30BF"), | ||
457 | * .ident = "HP Pavilion dv2000" | ||
458 | * DMI_MATCH(DMI_BOARD_NAME, "30B5"), | ||
459 | * .ident = "HP Pavilion dv5000", | ||
460 | * DMI_MATCH(DMI_BOARD_NAME, "30A7"), | ||
461 | * .ident = "HP Pavilion dv6300 30BC", | ||
462 | * DMI_MATCH(DMI_BOARD_NAME, "30BC"), | ||
463 | * .ident = "HP Pavilion dv6000", | ||
464 | * DMI_MATCH(DMI_BOARD_NAME, "30B7"), | ||
465 | * DMI_MATCH(DMI_BOARD_NAME, "30B8"), | ||
466 | * .ident = "HP Pavilion dv9000", | ||
467 | * DMI_MATCH(DMI_BOARD_NAME, "30B9"), | ||
468 | * .ident = "HP Pavilion dv9500", | ||
469 | * DMI_MATCH(DMI_BOARD_NAME, "30CB"), | ||
470 | * .ident = "HP/Compaq Presario C500", | ||
471 | * DMI_MATCH(DMI_BOARD_NAME, "30C6"), | ||
472 | * .ident = "HP/Compaq Presario F500", | ||
473 | * DMI_MATCH(DMI_BOARD_NAME, "30D3"), | ||
474 | * _OSI(Linux) unknown effect: | ||
475 | * .ident = "HP Pavilion dv6500", | ||
476 | * DMI_MATCH(DMI_BOARD_NAME, "30D0"), | ||
477 | */ | 199 | */ |
478 | { | 200 | |
479 | .callback = dmi_disable_osi_linux, | ||
480 | .ident = "Hewlett-Packard", | ||
481 | .matches = { | ||
482 | DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), | ||
483 | }, | ||
484 | }, | ||
485 | /* | 201 | /* |
486 | * Lenovo has a mix of systems OSI(Linux) situations | 202 | * Lenovo has a mix of systems OSI(Linux) situations |
487 | * and thus we can not wildcard the vendor. | 203 | * and thus we can not wildcard the vendor. |
@@ -519,113 +235,6 @@ static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { | |||
519 | DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"), | 235 | DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X61"), |
520 | }, | 236 | }, |
521 | }, | 237 | }, |
522 | { | ||
523 | .callback = dmi_disable_osi_linux, | ||
524 | .ident = "Lenovo 3000 V100", | ||
525 | .matches = { | ||
526 | DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), | ||
527 | DMI_MATCH(DMI_PRODUCT_VERSION, "LENOVO3000 V100"), | ||
528 | }, | ||
529 | }, | ||
530 | { | ||
531 | .callback = dmi_disable_osi_linux, | ||
532 | .ident = "Lenovo 3000 N100", | ||
533 | .matches = { | ||
534 | DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), | ||
535 | DMI_MATCH(DMI_PRODUCT_VERSION, "3000 N100"), | ||
536 | }, | ||
537 | }, | ||
538 | /* | ||
539 | * Disable OSI(Linux) warnings on all "LG Electronics" | ||
540 | * | ||
541 | * _OSI(Linux) confirmed to be a NOP: | ||
542 | * DMI_MATCH(DMI_PRODUCT_NAME, "P1-J150B"), | ||
543 | * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"), | ||
544 | * | ||
545 | * unknown: | ||
546 | * DMI_MATCH(DMI_PRODUCT_NAME, "S1-MDGDG"), | ||
547 | * with DMI_MATCH(DMI_BOARD_NAME, "ROCKY"), | ||
548 | */ | ||
549 | { | ||
550 | .callback = dmi_disable_osi_linux, | ||
551 | .ident = "LG", | ||
552 | .matches = { | ||
553 | DMI_MATCH(DMI_SYS_VENDOR, "LG Electronics"), | ||
554 | }, | ||
555 | }, | ||
556 | /* NEC - OSI(Linux) effect unknown */ | ||
557 | { | ||
558 | .callback = dmi_unknown_osi_linux, | ||
559 | .ident = "NEC VERSA M360", | ||
560 | .matches = { | ||
561 | DMI_MATCH(DMI_SYS_VENDOR, "NEC Computers SAS"), | ||
562 | DMI_MATCH(DMI_PRODUCT_NAME, "NEC VERSA M360"), | ||
563 | }, | ||
564 | }, | ||
565 | /* Panasonic */ | ||
566 | { | ||
567 | .callback = dmi_unknown_osi_linux, | ||
568 | .ident = "Panasonic", | ||
569 | .matches = { | ||
570 | DMI_MATCH(DMI_SYS_VENDOR, "Matsushita"), | ||
571 | /* Toughbook CF-52 */ | ||
572 | DMI_MATCH(DMI_PRODUCT_NAME, "CF-52CCABVBG"), | ||
573 | }, | ||
574 | }, | ||
575 | /* | ||
576 | * Disable OSI(Linux) warnings on all "Samsung Electronics" | ||
577 | * | ||
578 | * OSI(Linux) disables PNP0C32 and other BIOS code for Windows: | ||
579 | * DMI_MATCH(DMI_PRODUCT_NAME, "R40P/R41P"), | ||
580 | * DMI_MATCH(DMI_PRODUCT_NAME, "R59P/R60P/R61P"), | ||
581 | */ | ||
582 | { | ||
583 | .callback = dmi_disable_osi_linux, | ||
584 | .ident = "Samsung", | ||
585 | .matches = { | ||
586 | DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."), | ||
587 | }, | ||
588 | }, | ||
589 | /* | ||
590 | * Disable OSI(Linux) warnings on all "Sony Corporation" | ||
591 | * | ||
592 | * _OSI(Linux) is a NOP: | ||
593 | * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-NR11S_S"), | ||
594 | * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SZ38GP_C"), | ||
595 | * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-SZ650N"), | ||
596 | * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-TZ21MN_N"), | ||
597 | * _OSI(Linux) unknown effect: | ||
598 | * DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FZ11M"), | ||
599 | */ | ||
600 | { | ||
601 | .callback = dmi_disable_osi_linux, | ||
602 | .ident = "Sony", | ||
603 | .matches = { | ||
604 | DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), | ||
605 | }, | ||
606 | }, | ||
607 | /* | ||
608 | * Disable OSI(Linux) warnings on all "TOSHIBA" | ||
609 | * | ||
610 | * _OSI(Linux) breaks sound (bugzilla 7787): | ||
611 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P100"), | ||
612 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P105"), | ||
613 | * _OSI(Linux) is a NOP: | ||
614 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A100"), | ||
615 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A210"), | ||
616 | * _OSI(Linux) unknown effect: | ||
617 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A135"), | ||
618 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A200"), | ||
619 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P205"), | ||
620 | * DMI_MATCH(DMI_PRODUCT_NAME, "Satellite U305"), | ||
621 | */ | ||
622 | { | ||
623 | .callback = dmi_disable_osi_linux, | ||
624 | .ident = "Toshiba", | ||
625 | .matches = { | ||
626 | DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), | ||
627 | }, | ||
628 | }, | ||
629 | {} | 238 | {} |
630 | }; | 239 | }; |
631 | 240 | ||
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index cf41f9fc24a7..30f3ef236ecb 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -219,7 +219,8 @@ static void gpe_transaction(struct acpi_ec *ec, u8 status) | |||
219 | goto unlock; | 219 | goto unlock; |
220 | err: | 220 | err: |
221 | /* false interrupt, state didn't change */ | 221 | /* false interrupt, state didn't change */ |
222 | ++ec->curr->irq_count; | 222 | if (in_interrupt()) |
223 | ++ec->curr->irq_count; | ||
223 | unlock: | 224 | unlock: |
224 | spin_unlock_irqrestore(&ec->curr_lock, flags); | 225 | spin_unlock_irqrestore(&ec->curr_lock, flags); |
225 | } | 226 | } |
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c index 4be252145cb4..c8111424dcb8 100644 --- a/drivers/acpi/osl.c +++ b/drivers/acpi/osl.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <linux/interrupt.h> | 35 | #include <linux/interrupt.h> |
36 | #include <linux/kmod.h> | 36 | #include <linux/kmod.h> |
37 | #include <linux/delay.h> | 37 | #include <linux/delay.h> |
38 | #include <linux/dmi.h> | ||
39 | #include <linux/workqueue.h> | 38 | #include <linux/workqueue.h> |
40 | #include <linux/nmi.h> | 39 | #include <linux/nmi.h> |
41 | #include <linux/acpi.h> | 40 | #include <linux/acpi.h> |
@@ -97,54 +96,44 @@ static DEFINE_SPINLOCK(acpi_res_lock); | |||
97 | static char osi_additional_string[OSI_STRING_LENGTH_MAX]; | 96 | static char osi_additional_string[OSI_STRING_LENGTH_MAX]; |
98 | 97 | ||
99 | /* | 98 | /* |
100 | * "Ode to _OSI(Linux)" | 99 | * The story of _OSI(Linux) |
101 | * | 100 | * |
102 | * osi_linux -- Control response to BIOS _OSI(Linux) query. | 101 | * From pre-history through Linux-2.6.22, |
102 | * Linux responded TRUE upon a BIOS OSI(Linux) query. | ||
103 | * | 103 | * |
104 | * As Linux evolves, the features that it supports change. | 104 | * Unfortunately, reference BIOS writers got wind of this |
105 | * So an OSI string such as "Linux" is not specific enough | 105 | * and put OSI(Linux) in their example code, quickly exposing |
106 | * to be useful across multiple versions of Linux. It | 106 | * this string as ill-conceived and opening the door to |
107 | * doesn't identify any particular feature, interface, | 107 | * an un-bounded number of BIOS incompatibilities. |
108 | * or even any particular version of Linux... | ||
109 | * | 108 | * |
110 | * Unfortunately, Linux-2.6.22 and earlier responded "yes" | 109 | * For example, OSI(Linux) was used on resume to re-POST a |
111 | * to a BIOS _OSI(Linux) query. When | 110 | * video card on one system, because Linux at that time |
112 | * a reference mobile BIOS started using it, its use | 111 | * could not do a speedy restore in its native driver. |
113 | * started to spread to many vendor platforms. | 112 | * But then upon gaining quick native restore capability, |
114 | * As it is not supportable, we need to halt that spread. | 113 | * Linux has no way to tell the BIOS to skip the time-consuming |
114 | * POST -- putting Linux at a permanent performance disadvantage. | ||
115 | * On another system, the BIOS writer used OSI(Linux) | ||
116 | * to infer native OS support for IPMI! On other systems, | ||
117 | * OSI(Linux) simply got in the way of Linux claiming to | ||
118 | * be compatible with other operating systems, exposing | ||
119 | * BIOS issues such as skipped device initialization. | ||
115 | * | 120 | * |
116 | * Today, most BIOS references to _OSI(Linux) are noise -- | 121 | * So "Linux" turned out to be a really poor chose of |
117 | * they have no functional effect and are just dead code | 122 | * OSI string, and from Linux-2.6.23 onward we respond FALSE. |
118 | * carried over from the reference BIOS. | ||
119 | * | ||
120 | * The next most common case is that _OSI(Linux) harms Linux, | ||
121 | * usually by causing the BIOS to follow paths that are | ||
122 | * not tested during Windows validation. | ||
123 | * | ||
124 | * Finally, there is a short list of platforms | ||
125 | * where OSI(Linux) benefits Linux. | ||
126 | * | ||
127 | * In Linux-2.6.23, OSI(Linux) is first disabled by default. | ||
128 | * DMI is used to disable the dmesg warning about OSI(Linux) | ||
129 | * on platforms where it is known to have no effect. | ||
130 | * But a dmesg warning remains for systems where | ||
131 | * we do not know if OSI(Linux) is good or bad for the system. | ||
132 | * DMI is also used to enable OSI(Linux) for the machines | ||
133 | * that are known to need it. | ||
134 | * | 123 | * |
135 | * BIOS writers should NOT query _OSI(Linux) on future systems. | 124 | * BIOS writers should NOT query _OSI(Linux) on future systems. |
136 | * It will be ignored by default, and to get Linux to | 125 | * Linux will complain on the console when it sees it, and return FALSE. |
137 | * not ignore it will require a kernel source update to | 126 | * To get Linux to return TRUE for your system will require |
138 | * add a DMI entry, or a boot-time "acpi_osi=Linux" invocation. | 127 | * a kernel source update to add a DMI entry, |
128 | * or boot with "acpi_osi=Linux" | ||
139 | */ | 129 | */ |
140 | #define OSI_LINUX_ENABLE 0 | ||
141 | 130 | ||
142 | static struct osi_linux { | 131 | static struct osi_linux { |
143 | unsigned int enable:1; | 132 | unsigned int enable:1; |
144 | unsigned int dmi:1; | 133 | unsigned int dmi:1; |
145 | unsigned int cmdline:1; | 134 | unsigned int cmdline:1; |
146 | unsigned int known:1; | 135 | unsigned int known:1; |
147 | } osi_linux = { OSI_LINUX_ENABLE, 0, 0, 0}; | 136 | } osi_linux = { 0, 0, 0, 0}; |
148 | 137 | ||
149 | static void __init acpi_request_region (struct acpi_generic_address *addr, | 138 | static void __init acpi_request_region (struct acpi_generic_address *addr, |
150 | unsigned int length, char *desc) | 139 | unsigned int length, char *desc) |
@@ -1296,34 +1285,6 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object) | |||
1296 | return (AE_OK); | 1285 | return (AE_OK); |
1297 | } | 1286 | } |
1298 | 1287 | ||
1299 | /** | ||
1300 | * acpi_dmi_dump - dump DMI slots needed for blacklist entry | ||
1301 | * | ||
1302 | * Returns 0 on success | ||
1303 | */ | ||
1304 | static int acpi_dmi_dump(void) | ||
1305 | { | ||
1306 | |||
1307 | if (!dmi_available) | ||
1308 | return -1; | ||
1309 | |||
1310 | printk(KERN_NOTICE PREFIX "DMI System Vendor: %s\n", | ||
1311 | dmi_get_system_info(DMI_SYS_VENDOR)); | ||
1312 | printk(KERN_NOTICE PREFIX "DMI Product Name: %s\n", | ||
1313 | dmi_get_system_info(DMI_PRODUCT_NAME)); | ||
1314 | printk(KERN_NOTICE PREFIX "DMI Product Version: %s\n", | ||
1315 | dmi_get_system_info(DMI_PRODUCT_VERSION)); | ||
1316 | printk(KERN_NOTICE PREFIX "DMI Board Name: %s\n", | ||
1317 | dmi_get_system_info(DMI_BOARD_NAME)); | ||
1318 | printk(KERN_NOTICE PREFIX "DMI BIOS Vendor: %s\n", | ||
1319 | dmi_get_system_info(DMI_BIOS_VENDOR)); | ||
1320 | printk(KERN_NOTICE PREFIX "DMI BIOS Date: %s\n", | ||
1321 | dmi_get_system_info(DMI_BIOS_DATE)); | ||
1322 | |||
1323 | return 0; | ||
1324 | } | ||
1325 | |||
1326 | |||
1327 | /****************************************************************************** | 1288 | /****************************************************************************** |
1328 | * | 1289 | * |
1329 | * FUNCTION: acpi_os_validate_interface | 1290 | * FUNCTION: acpi_os_validate_interface |
@@ -1350,21 +1311,6 @@ acpi_os_validate_interface (char *interface) | |||
1350 | osi_linux.cmdline ? " via cmdline" : | 1311 | osi_linux.cmdline ? " via cmdline" : |
1351 | osi_linux.dmi ? " via DMI" : ""); | 1312 | osi_linux.dmi ? " via DMI" : ""); |
1352 | 1313 | ||
1353 | if (!osi_linux.dmi) { | ||
1354 | if (acpi_dmi_dump()) | ||
1355 | printk(KERN_NOTICE PREFIX | ||
1356 | "[please extract dmidecode output]\n"); | ||
1357 | printk(KERN_NOTICE PREFIX | ||
1358 | "Please send DMI info above to " | ||
1359 | "linux-acpi@vger.kernel.org\n"); | ||
1360 | } | ||
1361 | if (!osi_linux.known && !osi_linux.cmdline) { | ||
1362 | printk(KERN_NOTICE PREFIX | ||
1363 | "If \"acpi_osi=%sLinux\" works better, " | ||
1364 | "please notify linux-acpi@vger.kernel.org\n", | ||
1365 | osi_linux.enable ? "!" : ""); | ||
1366 | } | ||
1367 | |||
1368 | if (osi_linux.enable) | 1314 | if (osi_linux.enable) |
1369 | return AE_OK; | 1315 | return AE_OK; |
1370 | } | 1316 | } |
diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c index bd5253ee5c85..39b7233c3485 100644 --- a/drivers/acpi/scan.c +++ b/drivers/acpi/scan.c | |||
@@ -751,16 +751,6 @@ static int acpi_bus_get_wakeup_device_flags(struct acpi_device *device) | |||
751 | if (!acpi_match_device_ids(device, button_device_ids)) | 751 | if (!acpi_match_device_ids(device, button_device_ids)) |
752 | device->wakeup.flags.run_wake = 1; | 752 | device->wakeup.flags.run_wake = 1; |
753 | 753 | ||
754 | /* | ||
755 | * Don't set Power button GPE as run_wake | ||
756 | * if Fixed Power button is used | ||
757 | */ | ||
758 | if (!strcmp(device->pnp.hardware_id, "PNP0C0C") && | ||
759 | !(acpi_gbl_FADT.flags & ACPI_FADT_POWER_BUTTON)) { | ||
760 | device->wakeup.flags.run_wake = 0; | ||
761 | device->wakeup.flags.valid = 0; | ||
762 | } | ||
763 | |||
764 | end: | 754 | end: |
765 | if (ACPI_FAILURE(status)) | 755 | if (ACPI_FAILURE(status)) |
766 | device->flags.wake_capable = 0; | 756 | device->flags.wake_capable = 0; |
diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index 80c0868d0480..28a691cc625e 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c | |||
@@ -90,6 +90,18 @@ void __init acpi_old_suspend_ordering(void) | |||
90 | old_suspend_ordering = true; | 90 | old_suspend_ordering = true; |
91 | } | 91 | } |
92 | 92 | ||
93 | /* | ||
94 | * According to the ACPI specification the BIOS should make sure that ACPI is | ||
95 | * enabled and SCI_EN bit is set on wake-up from S1 - S3 sleep states. Still, | ||
96 | * some BIOSes don't do that and therefore we use acpi_enable() to enable ACPI | ||
97 | * on such systems during resume. Unfortunately that doesn't help in | ||
98 | * particularly pathological cases in which SCI_EN has to be set directly on | ||
99 | * resume, although the specification states very clearly that this flag is | ||
100 | * owned by the hardware. The set_sci_en_on_resume variable will be set in such | ||
101 | * cases. | ||
102 | */ | ||
103 | static bool set_sci_en_on_resume; | ||
104 | |||
93 | /** | 105 | /** |
94 | * acpi_pm_disable_gpes - Disable the GPEs. | 106 | * acpi_pm_disable_gpes - Disable the GPEs. |
95 | */ | 107 | */ |
@@ -235,7 +247,11 @@ static int acpi_suspend_enter(suspend_state_t pm_state) | |||
235 | } | 247 | } |
236 | 248 | ||
237 | /* If ACPI is not enabled by the BIOS, we need to enable it here. */ | 249 | /* If ACPI is not enabled by the BIOS, we need to enable it here. */ |
238 | acpi_enable(); | 250 | if (set_sci_en_on_resume) |
251 | acpi_set_register(ACPI_BITREG_SCI_ENABLE, 1); | ||
252 | else | ||
253 | acpi_enable(); | ||
254 | |||
239 | /* Reprogram control registers and execute _BFS */ | 255 | /* Reprogram control registers and execute _BFS */ |
240 | acpi_leave_sleep_state_prep(acpi_state); | 256 | acpi_leave_sleep_state_prep(acpi_state); |
241 | 257 | ||
@@ -323,6 +339,12 @@ static int __init init_old_suspend_ordering(const struct dmi_system_id *d) | |||
323 | return 0; | 339 | return 0; |
324 | } | 340 | } |
325 | 341 | ||
342 | static int __init init_set_sci_en_on_resume(const struct dmi_system_id *d) | ||
343 | { | ||
344 | set_sci_en_on_resume = true; | ||
345 | return 0; | ||
346 | } | ||
347 | |||
326 | static struct dmi_system_id __initdata acpisleep_dmi_table[] = { | 348 | static struct dmi_system_id __initdata acpisleep_dmi_table[] = { |
327 | { | 349 | { |
328 | .callback = init_old_suspend_ordering, | 350 | .callback = init_old_suspend_ordering, |
@@ -340,6 +362,22 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = { | |||
340 | DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), | 362 | DMI_MATCH(DMI_PRODUCT_NAME, "HP xw4600 Workstation"), |
341 | }, | 363 | }, |
342 | }, | 364 | }, |
365 | { | ||
366 | .callback = init_set_sci_en_on_resume, | ||
367 | .ident = "Apple MacBook 1,1", | ||
368 | .matches = { | ||
369 | DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."), | ||
370 | DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"), | ||
371 | }, | ||
372 | }, | ||
373 | { | ||
374 | .callback = init_set_sci_en_on_resume, | ||
375 | .ident = "Apple MacMini 1,1", | ||
376 | .matches = { | ||
377 | DMI_MATCH(DMI_SYS_VENDOR, "Apple Computer, Inc."), | ||
378 | DMI_MATCH(DMI_PRODUCT_NAME, "Macmini1,1"), | ||
379 | }, | ||
380 | }, | ||
343 | {}, | 381 | {}, |
344 | }; | 382 | }; |
345 | #endif /* CONFIG_SUSPEND */ | 383 | #endif /* CONFIG_SUSPEND */ |
diff --git a/drivers/acpi/toshiba_acpi.c b/drivers/acpi/toshiba_acpi.c index 66aac06f2ac5..25f531d892de 100644 --- a/drivers/acpi/toshiba_acpi.c +++ b/drivers/acpi/toshiba_acpi.c | |||
@@ -848,8 +848,6 @@ static int __init toshiba_acpi_init(void) | |||
848 | ret = input_register_polled_device(toshiba_acpi.poll_dev); | 848 | ret = input_register_polled_device(toshiba_acpi.poll_dev); |
849 | if (ret) { | 849 | if (ret) { |
850 | printk(MY_ERR "unable to register kill-switch input device\n"); | 850 | printk(MY_ERR "unable to register kill-switch input device\n"); |
851 | rfkill_free(toshiba_acpi.rfk_dev); | ||
852 | toshiba_acpi.rfk_dev = NULL; | ||
853 | toshiba_acpi_exit(); | 851 | toshiba_acpi_exit(); |
854 | return ret; | 852 | return ret; |
855 | } | 853 | } |
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c index e827be36ee8d..f844941089bb 100644 --- a/drivers/acpi/utils.c +++ b/drivers/acpi/utils.c | |||
@@ -259,34 +259,26 @@ acpi_evaluate_integer(acpi_handle handle, | |||
259 | struct acpi_object_list *arguments, unsigned long long *data) | 259 | struct acpi_object_list *arguments, unsigned long long *data) |
260 | { | 260 | { |
261 | acpi_status status = AE_OK; | 261 | acpi_status status = AE_OK; |
262 | union acpi_object *element; | 262 | union acpi_object element; |
263 | struct acpi_buffer buffer = { 0, NULL }; | 263 | struct acpi_buffer buffer = { 0, NULL }; |
264 | 264 | ||
265 | |||
266 | if (!data) | 265 | if (!data) |
267 | return AE_BAD_PARAMETER; | 266 | return AE_BAD_PARAMETER; |
268 | 267 | ||
269 | element = kzalloc(sizeof(union acpi_object), irqs_disabled() ? GFP_ATOMIC: GFP_KERNEL); | ||
270 | if (!element) | ||
271 | return AE_NO_MEMORY; | ||
272 | |||
273 | buffer.length = sizeof(union acpi_object); | 268 | buffer.length = sizeof(union acpi_object); |
274 | buffer.pointer = element; | 269 | buffer.pointer = &element; |
275 | status = acpi_evaluate_object(handle, pathname, arguments, &buffer); | 270 | status = acpi_evaluate_object(handle, pathname, arguments, &buffer); |
276 | if (ACPI_FAILURE(status)) { | 271 | if (ACPI_FAILURE(status)) { |
277 | acpi_util_eval_error(handle, pathname, status); | 272 | acpi_util_eval_error(handle, pathname, status); |
278 | kfree(element); | ||
279 | return status; | 273 | return status; |
280 | } | 274 | } |
281 | 275 | ||
282 | if (element->type != ACPI_TYPE_INTEGER) { | 276 | if (element.type != ACPI_TYPE_INTEGER) { |
283 | acpi_util_eval_error(handle, pathname, AE_BAD_DATA); | 277 | acpi_util_eval_error(handle, pathname, AE_BAD_DATA); |
284 | kfree(element); | ||
285 | return AE_BAD_DATA; | 278 | return AE_BAD_DATA; |
286 | } | 279 | } |
287 | 280 | ||
288 | *data = element->integer.value; | 281 | *data = element.integer.value; |
289 | kfree(element); | ||
290 | 282 | ||
291 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Return value [%llu]\n", *data)); | 283 | ACPI_DEBUG_PRINT((ACPI_DB_INFO, "Return value [%llu]\n", *data)); |
292 | 284 | ||
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c index 8e37be19bbf5..d6d97d8f3fa4 100644 --- a/drivers/ata/ata_piix.c +++ b/drivers/ata/ata_piix.c | |||
@@ -1066,6 +1066,21 @@ static int piix_broken_suspend(void) | |||
1066 | if (dmi_find_device(DMI_DEV_TYPE_OEM_STRING, oemstrs[i], NULL)) | 1066 | if (dmi_find_device(DMI_DEV_TYPE_OEM_STRING, oemstrs[i], NULL)) |
1067 | return 1; | 1067 | return 1; |
1068 | 1068 | ||
1069 | /* TECRA M4 sometimes forgets its identify and reports bogus | ||
1070 | * DMI information. As the bogus information is a bit | ||
1071 | * generic, match as many entries as possible. This manual | ||
1072 | * matching is necessary because dmi_system_id.matches is | ||
1073 | * limited to four entries. | ||
1074 | */ | ||
1075 | if (!strcmp(dmi_get_system_info(DMI_SYS_VENDOR), "TOSHIBA") && | ||
1076 | !strcmp(dmi_get_system_info(DMI_PRODUCT_NAME), "000000") && | ||
1077 | !strcmp(dmi_get_system_info(DMI_PRODUCT_VERSION), "000000") && | ||
1078 | !strcmp(dmi_get_system_info(DMI_PRODUCT_SERIAL), "000000") && | ||
1079 | !strcmp(dmi_get_system_info(DMI_BOARD_VENDOR), "TOSHIBA") && | ||
1080 | !strcmp(dmi_get_system_info(DMI_BOARD_NAME), "Portable PC") && | ||
1081 | !strcmp(dmi_get_system_info(DMI_BOARD_VERSION), "Version A0")) | ||
1082 | return 1; | ||
1083 | |||
1069 | return 0; | 1084 | return 0; |
1070 | } | 1085 | } |
1071 | 1086 | ||
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index 4214bfb13bbd..5e2eb740df46 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -2492,6 +2492,13 @@ int ata_dev_configure(struct ata_device *dev) | |||
2492 | } | 2492 | } |
2493 | } | 2493 | } |
2494 | 2494 | ||
2495 | if ((dev->horkage & ATA_HORKAGE_FIRMWARE_WARN) && print_info) { | ||
2496 | ata_dev_printk(dev, KERN_WARNING, "WARNING: device requires " | ||
2497 | "firmware update to be fully functional.\n"); | ||
2498 | ata_dev_printk(dev, KERN_WARNING, " contact the vendor " | ||
2499 | "or visit http://ata.wiki.kernel.org.\n"); | ||
2500 | } | ||
2501 | |||
2495 | return 0; | 2502 | return 0; |
2496 | 2503 | ||
2497 | err_out_nosup: | 2504 | err_out_nosup: |
@@ -4042,6 +4049,20 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { | |||
4042 | { "ST380817AS", "3.42", ATA_HORKAGE_NONCQ }, | 4049 | { "ST380817AS", "3.42", ATA_HORKAGE_NONCQ }, |
4043 | { "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ }, | 4050 | { "ST3160023AS", "3.42", ATA_HORKAGE_NONCQ }, |
4044 | 4051 | ||
4052 | /* Seagate NCQ + FLUSH CACHE firmware bug */ | ||
4053 | { "ST31500341AS", "9JU138", ATA_HORKAGE_NONCQ | | ||
4054 | ATA_HORKAGE_FIRMWARE_WARN }, | ||
4055 | { "ST31000333AS", "9FZ136", ATA_HORKAGE_NONCQ | | ||
4056 | ATA_HORKAGE_FIRMWARE_WARN }, | ||
4057 | { "ST3640623AS", "9FZ164", ATA_HORKAGE_NONCQ | | ||
4058 | ATA_HORKAGE_FIRMWARE_WARN }, | ||
4059 | { "ST3640323AS", "9FZ134", ATA_HORKAGE_NONCQ | | ||
4060 | ATA_HORKAGE_FIRMWARE_WARN }, | ||
4061 | { "ST3320813AS", "9FZ182", ATA_HORKAGE_NONCQ | | ||
4062 | ATA_HORKAGE_FIRMWARE_WARN }, | ||
4063 | { "ST3320613AS", "9FZ162", ATA_HORKAGE_NONCQ | | ||
4064 | ATA_HORKAGE_FIRMWARE_WARN }, | ||
4065 | |||
4045 | /* Blacklist entries taken from Silicon Image 3124/3132 | 4066 | /* Blacklist entries taken from Silicon Image 3124/3132 |
4046 | Windows driver .inf file - also several Linux problem reports */ | 4067 | Windows driver .inf file - also several Linux problem reports */ |
4047 | { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, }, | 4068 | { "HTS541060G9SA00", "MB3OC60D", ATA_HORKAGE_NONCQ, }, |
diff --git a/drivers/ata/pata_rb532_cf.c b/drivers/ata/pata_rb532_cf.c index f8b3ffc8ae9e..c2e6fb9f2ef9 100644 --- a/drivers/ata/pata_rb532_cf.c +++ b/drivers/ata/pata_rb532_cf.c | |||
@@ -39,9 +39,11 @@ | |||
39 | #define RB500_CF_MAXPORTS 1 | 39 | #define RB500_CF_MAXPORTS 1 |
40 | #define RB500_CF_IO_DELAY 400 | 40 | #define RB500_CF_IO_DELAY 400 |
41 | 41 | ||
42 | #define RB500_CF_REG_CMD 0x0800 | 42 | #define RB500_CF_REG_BASE 0x0800 |
43 | #define RB500_CF_REG_ERR 0x080D | ||
43 | #define RB500_CF_REG_CTRL 0x080E | 44 | #define RB500_CF_REG_CTRL 0x080E |
44 | #define RB500_CF_REG_DATA 0x0C00 | 45 | /* 32bit buffered data register offset */ |
46 | #define RB500_CF_REG_DBUF32 0x0C00 | ||
45 | 47 | ||
46 | struct rb532_cf_info { | 48 | struct rb532_cf_info { |
47 | void __iomem *iobase; | 49 | void __iomem *iobase; |
@@ -72,11 +74,12 @@ static void rb532_pata_exec_command(struct ata_port *ap, | |||
72 | rb532_pata_finish_io(ap); | 74 | rb532_pata_finish_io(ap); |
73 | } | 75 | } |
74 | 76 | ||
75 | static void rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf, | 77 | static unsigned int rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf, |
76 | unsigned int buflen, int write_data) | 78 | unsigned int buflen, int write_data) |
77 | { | 79 | { |
78 | struct ata_port *ap = adev->link->ap; | 80 | struct ata_port *ap = adev->link->ap; |
79 | void __iomem *ioaddr = ap->ioaddr.data_addr; | 81 | void __iomem *ioaddr = ap->ioaddr.data_addr; |
82 | int retlen = buflen; | ||
80 | 83 | ||
81 | if (write_data) { | 84 | if (write_data) { |
82 | for (; buflen > 0; buflen--, buf++) | 85 | for (; buflen > 0; buflen--, buf++) |
@@ -87,6 +90,7 @@ static void rb532_pata_data_xfer(struct ata_device *adev, unsigned char *buf, | |||
87 | } | 90 | } |
88 | 91 | ||
89 | rb532_pata_finish_io(adev->link->ap); | 92 | rb532_pata_finish_io(adev->link->ap); |
93 | return retlen; | ||
90 | } | 94 | } |
91 | 95 | ||
92 | static void rb532_pata_freeze(struct ata_port *ap) | 96 | static void rb532_pata_freeze(struct ata_port *ap) |
@@ -146,13 +150,14 @@ static void rb532_pata_setup_ports(struct ata_host *ah) | |||
146 | ap->pio_mask = 0x1f; /* PIO4 */ | 150 | ap->pio_mask = 0x1f; /* PIO4 */ |
147 | ap->flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_MMIO; | 151 | ap->flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_MMIO; |
148 | 152 | ||
149 | ap->ioaddr.cmd_addr = info->iobase + RB500_CF_REG_CMD; | 153 | ap->ioaddr.cmd_addr = info->iobase + RB500_CF_REG_BASE; |
150 | ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL; | 154 | ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL; |
151 | ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL; | 155 | ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL; |
152 | 156 | ||
153 | ata_sff_std_ports(&ap->ioaddr); | 157 | ata_sff_std_ports(&ap->ioaddr); |
154 | 158 | ||
155 | ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DATA; | 159 | ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DBUF32; |
160 | ap->ioaddr.error_addr = info->iobase + RB500_CF_REG_ERR; | ||
156 | } | 161 | } |
157 | 162 | ||
158 | static __devinit int rb532_pata_driver_probe(struct platform_device *pdev) | 163 | static __devinit int rb532_pata_driver_probe(struct platform_device *pdev) |
diff --git a/drivers/block/xsysace.c b/drivers/block/xsysace.c index ecab9e67d47a..29e1dfafb7c6 100644 --- a/drivers/block/xsysace.c +++ b/drivers/block/xsysace.c | |||
@@ -194,7 +194,7 @@ struct ace_device { | |||
194 | int in_irq; | 194 | int in_irq; |
195 | 195 | ||
196 | /* Details of hardware device */ | 196 | /* Details of hardware device */ |
197 | unsigned long physaddr; | 197 | resource_size_t physaddr; |
198 | void __iomem *baseaddr; | 198 | void __iomem *baseaddr; |
199 | int irq; | 199 | int irq; |
200 | int bus_width; /* 0 := 8 bit; 1 := 16 bit */ | 200 | int bus_width; /* 0 := 8 bit; 1 := 16 bit */ |
@@ -628,8 +628,8 @@ static void ace_fsm_dostate(struct ace_device *ace) | |||
628 | 628 | ||
629 | /* Okay, it's a data request, set it up for transfer */ | 629 | /* Okay, it's a data request, set it up for transfer */ |
630 | dev_dbg(ace->dev, | 630 | dev_dbg(ace->dev, |
631 | "request: sec=%lx hcnt=%lx, ccnt=%x, dir=%i\n", | 631 | "request: sec=%llx hcnt=%lx, ccnt=%x, dir=%i\n", |
632 | req->sector, req->hard_nr_sectors, | 632 | (unsigned long long) req->sector, req->hard_nr_sectors, |
633 | req->current_nr_sectors, rq_data_dir(req)); | 633 | req->current_nr_sectors, rq_data_dir(req)); |
634 | 634 | ||
635 | ace->req = req; | 635 | ace->req = req; |
@@ -935,7 +935,8 @@ static int __devinit ace_setup(struct ace_device *ace) | |||
935 | int rc; | 935 | int rc; |
936 | 936 | ||
937 | dev_dbg(ace->dev, "ace_setup(ace=0x%p)\n", ace); | 937 | dev_dbg(ace->dev, "ace_setup(ace=0x%p)\n", ace); |
938 | dev_dbg(ace->dev, "physaddr=0x%lx irq=%i\n", ace->physaddr, ace->irq); | 938 | dev_dbg(ace->dev, "physaddr=0x%llx irq=%i\n", |
939 | (unsigned long long)ace->physaddr, ace->irq); | ||
939 | 940 | ||
940 | spin_lock_init(&ace->lock); | 941 | spin_lock_init(&ace->lock); |
941 | init_completion(&ace->id_completion); | 942 | init_completion(&ace->id_completion); |
@@ -1017,8 +1018,8 @@ static int __devinit ace_setup(struct ace_device *ace) | |||
1017 | /* Print the identification */ | 1018 | /* Print the identification */ |
1018 | dev_info(ace->dev, "Xilinx SystemACE revision %i.%i.%i\n", | 1019 | dev_info(ace->dev, "Xilinx SystemACE revision %i.%i.%i\n", |
1019 | (version >> 12) & 0xf, (version >> 8) & 0x0f, version & 0xff); | 1020 | (version >> 12) & 0xf, (version >> 8) & 0x0f, version & 0xff); |
1020 | dev_dbg(ace->dev, "physaddr 0x%lx, mapped to 0x%p, irq=%i\n", | 1021 | dev_dbg(ace->dev, "physaddr 0x%llx, mapped to 0x%p, irq=%i\n", |
1021 | ace->physaddr, ace->baseaddr, ace->irq); | 1022 | (unsigned long long) ace->physaddr, ace->baseaddr, ace->irq); |
1022 | 1023 | ||
1023 | ace->media_change = 1; | 1024 | ace->media_change = 1; |
1024 | ace_revalidate_disk(ace->gd); | 1025 | ace_revalidate_disk(ace->gd); |
@@ -1035,8 +1036,8 @@ err_alloc_disk: | |||
1035 | err_blk_initq: | 1036 | err_blk_initq: |
1036 | iounmap(ace->baseaddr); | 1037 | iounmap(ace->baseaddr); |
1037 | err_ioremap: | 1038 | err_ioremap: |
1038 | dev_info(ace->dev, "xsysace: error initializing device at 0x%lx\n", | 1039 | dev_info(ace->dev, "xsysace: error initializing device at 0x%llx\n", |
1039 | ace->physaddr); | 1040 | (unsigned long long) ace->physaddr); |
1040 | return -ENOMEM; | 1041 | return -ENOMEM; |
1041 | } | 1042 | } |
1042 | 1043 | ||
@@ -1059,7 +1060,7 @@ static void __devexit ace_teardown(struct ace_device *ace) | |||
1059 | } | 1060 | } |
1060 | 1061 | ||
1061 | static int __devinit | 1062 | static int __devinit |
1062 | ace_alloc(struct device *dev, int id, unsigned long physaddr, | 1063 | ace_alloc(struct device *dev, int id, resource_size_t physaddr, |
1063 | int irq, int bus_width) | 1064 | int irq, int bus_width) |
1064 | { | 1065 | { |
1065 | struct ace_device *ace; | 1066 | struct ace_device *ace; |
@@ -1119,7 +1120,7 @@ static void __devexit ace_free(struct device *dev) | |||
1119 | 1120 | ||
1120 | static int __devinit ace_probe(struct platform_device *dev) | 1121 | static int __devinit ace_probe(struct platform_device *dev) |
1121 | { | 1122 | { |
1122 | unsigned long physaddr = 0; | 1123 | resource_size_t physaddr = 0; |
1123 | int bus_width = ACE_BUS_WIDTH_16; /* FIXME: should not be hard coded */ | 1124 | int bus_width = ACE_BUS_WIDTH_16; /* FIXME: should not be hard coded */ |
1124 | int id = dev->id; | 1125 | int id = dev->id; |
1125 | int irq = NO_IRQ; | 1126 | int irq = NO_IRQ; |
@@ -1165,7 +1166,7 @@ static int __devinit | |||
1165 | ace_of_probe(struct of_device *op, const struct of_device_id *match) | 1166 | ace_of_probe(struct of_device *op, const struct of_device_id *match) |
1166 | { | 1167 | { |
1167 | struct resource res; | 1168 | struct resource res; |
1168 | unsigned long physaddr; | 1169 | resource_size_t physaddr; |
1169 | const u32 *id; | 1170 | const u32 *id; |
1170 | int irq, bus_width, rc; | 1171 | int irq, bus_width, rc; |
1171 | 1172 | ||
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c index 0f004b65ec03..03f95ec08f59 100644 --- a/drivers/char/agp/uninorth-agp.c +++ b/drivers/char/agp/uninorth-agp.c | |||
@@ -27,7 +27,7 @@ | |||
27 | static int uninorth_rev; | 27 | static int uninorth_rev; |
28 | static int is_u3; | 28 | static int is_u3; |
29 | 29 | ||
30 | static char __devinitdata *aperture = NULL; | 30 | static char *aperture = NULL; |
31 | 31 | ||
32 | static int uninorth_fetch_size(void) | 32 | static int uninorth_fetch_size(void) |
33 | { | 33 | { |
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index 44e5d60f517e..4b10770fa937 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c | |||
@@ -3739,7 +3739,7 @@ static int stli_getbrdnr(void) | |||
3739 | * do is go probing around in the usual places hoping we can find it. | 3739 | * do is go probing around in the usual places hoping we can find it. |
3740 | */ | 3740 | */ |
3741 | 3741 | ||
3742 | static int stli_findeisabrds(void) | 3742 | static int __init stli_findeisabrds(void) |
3743 | { | 3743 | { |
3744 | struct stlibrd *brdp; | 3744 | struct stlibrd *brdp; |
3745 | unsigned int iobase, eid, i; | 3745 | unsigned int iobase, eid, i; |
@@ -3935,7 +3935,7 @@ static struct stlibrd *stli_allocbrd(void) | |||
3935 | * can find. | 3935 | * can find. |
3936 | */ | 3936 | */ |
3937 | 3937 | ||
3938 | static int stli_initbrds(void) | 3938 | static int __init stli_initbrds(void) |
3939 | { | 3939 | { |
3940 | struct stlibrd *brdp, *nxtbrdp; | 3940 | struct stlibrd *brdp, *nxtbrdp; |
3941 | struct stlconf conf; | 3941 | struct stlconf conf; |
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index 59f472143f08..1412a8d1e58d 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
@@ -1795,12 +1795,15 @@ retry_open: | |||
1795 | } | 1795 | } |
1796 | #endif | 1796 | #endif |
1797 | if (device == MKDEV(TTYAUX_MAJOR, 1)) { | 1797 | if (device == MKDEV(TTYAUX_MAJOR, 1)) { |
1798 | driver = tty_driver_kref_get(console_device(&index)); | 1798 | struct tty_driver *console_driver = console_device(&index); |
1799 | if (driver) { | 1799 | if (console_driver) { |
1800 | /* Don't let /dev/console block */ | 1800 | driver = tty_driver_kref_get(console_driver); |
1801 | filp->f_flags |= O_NONBLOCK; | 1801 | if (driver) { |
1802 | noctty = 1; | 1802 | /* Don't let /dev/console block */ |
1803 | goto got_driver; | 1803 | filp->f_flags |= O_NONBLOCK; |
1804 | noctty = 1; | ||
1805 | goto got_driver; | ||
1806 | } | ||
1804 | } | 1807 | } |
1805 | mutex_unlock(&tty_mutex); | 1808 | mutex_unlock(&tty_mutex); |
1806 | return -ENODEV; | 1809 | return -ENODEV; |
diff --git a/drivers/char/xilinx_hwicap/xilinx_hwicap.c b/drivers/char/xilinx_hwicap/xilinx_hwicap.c index ed132fe55d3d..d16131949097 100644 --- a/drivers/char/xilinx_hwicap/xilinx_hwicap.c +++ b/drivers/char/xilinx_hwicap/xilinx_hwicap.c | |||
@@ -626,7 +626,7 @@ static int __devinit hwicap_setup(struct device *dev, int id, | |||
626 | if (!request_mem_region(drvdata->mem_start, | 626 | if (!request_mem_region(drvdata->mem_start, |
627 | drvdata->mem_size, DRIVER_NAME)) { | 627 | drvdata->mem_size, DRIVER_NAME)) { |
628 | dev_err(dev, "Couldn't lock memory region at %Lx\n", | 628 | dev_err(dev, "Couldn't lock memory region at %Lx\n", |
629 | regs_res->start); | 629 | (unsigned long long) regs_res->start); |
630 | retval = -EBUSY; | 630 | retval = -EBUSY; |
631 | goto failed1; | 631 | goto failed1; |
632 | } | 632 | } |
@@ -645,9 +645,10 @@ static int __devinit hwicap_setup(struct device *dev, int id, | |||
645 | mutex_init(&drvdata->sem); | 645 | mutex_init(&drvdata->sem); |
646 | drvdata->is_open = 0; | 646 | drvdata->is_open = 0; |
647 | 647 | ||
648 | dev_info(dev, "ioremap %lx to %p with size %Lx\n", | 648 | dev_info(dev, "ioremap %llx to %p with size %llx\n", |
649 | (unsigned long int)drvdata->mem_start, | 649 | (unsigned long long) drvdata->mem_start, |
650 | drvdata->base_address, drvdata->mem_size); | 650 | drvdata->base_address, |
651 | (unsigned long long) drvdata->mem_size); | ||
651 | 652 | ||
652 | cdev_init(&drvdata->cdev, &hwicap_fops); | 653 | cdev_init(&drvdata->cdev, &hwicap_fops); |
653 | drvdata->cdev.owner = THIS_MODULE; | 654 | drvdata->cdev.owner = THIS_MODULE; |
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c index b6ad3ac5916e..24607669a52b 100644 --- a/drivers/crypto/talitos.c +++ b/drivers/crypto/talitos.c | |||
@@ -1357,7 +1357,7 @@ static int hw_supports(struct device *dev, __be32 desc_hdr_template) | |||
1357 | return ret; | 1357 | return ret; |
1358 | } | 1358 | } |
1359 | 1359 | ||
1360 | static int __devexit talitos_remove(struct of_device *ofdev) | 1360 | static int talitos_remove(struct of_device *ofdev) |
1361 | { | 1361 | { |
1362 | struct device *dev = &ofdev->dev; | 1362 | struct device *dev = &ofdev->dev; |
1363 | struct talitos_private *priv = dev_get_drvdata(dev); | 1363 | struct talitos_private *priv = dev_get_drvdata(dev); |
@@ -1622,7 +1622,7 @@ static struct of_platform_driver talitos_driver = { | |||
1622 | .name = "talitos", | 1622 | .name = "talitos", |
1623 | .match_table = talitos_match, | 1623 | .match_table = talitos_match, |
1624 | .probe = talitos_probe, | 1624 | .probe = talitos_probe, |
1625 | .remove = __devexit_p(talitos_remove), | 1625 | .remove = talitos_remove, |
1626 | }; | 1626 | }; |
1627 | 1627 | ||
1628 | static int __init talitos_init(void) | 1628 | static int __init talitos_init(void) |
diff --git a/drivers/edac/i82875p_edac.c b/drivers/edac/i82875p_edac.c index e43bdc43a1bf..ebb037b78758 100644 --- a/drivers/edac/i82875p_edac.c +++ b/drivers/edac/i82875p_edac.c | |||
@@ -182,8 +182,6 @@ static struct pci_dev *mci_pdev; /* init dev: in case that AGP code has | |||
182 | * already registered driver | 182 | * already registered driver |
183 | */ | 183 | */ |
184 | 184 | ||
185 | static int i82875p_registered = 1; | ||
186 | |||
187 | static struct edac_pci_ctl_info *i82875p_pci; | 185 | static struct edac_pci_ctl_info *i82875p_pci; |
188 | 186 | ||
189 | static void i82875p_get_error_info(struct mem_ctl_info *mci, | 187 | static void i82875p_get_error_info(struct mem_ctl_info *mci, |
@@ -295,6 +293,7 @@ static int i82875p_setup_overfl_dev(struct pci_dev *pdev, | |||
295 | "%s(): pci_bus_add_device() Failed\n", | 293 | "%s(): pci_bus_add_device() Failed\n", |
296 | __func__); | 294 | __func__); |
297 | } | 295 | } |
296 | pci_bus_assign_resources(dev->bus); | ||
298 | } | 297 | } |
299 | 298 | ||
300 | *ovrfl_pdev = dev; | 299 | *ovrfl_pdev = dev; |
@@ -409,6 +408,9 @@ static int i82875p_probe1(struct pci_dev *pdev, int dev_idx) | |||
409 | goto fail0; | 408 | goto fail0; |
410 | } | 409 | } |
411 | 410 | ||
411 | /* Keeps mci available after edac_mc_del_mc() till edac_mc_free() */ | ||
412 | kobject_get(&mci->edac_mci_kobj); | ||
413 | |||
412 | debugf3("%s(): init mci\n", __func__); | 414 | debugf3("%s(): init mci\n", __func__); |
413 | mci->dev = &pdev->dev; | 415 | mci->dev = &pdev->dev; |
414 | mci->mtype_cap = MEM_FLAG_DDR; | 416 | mci->mtype_cap = MEM_FLAG_DDR; |
@@ -451,6 +453,7 @@ static int i82875p_probe1(struct pci_dev *pdev, int dev_idx) | |||
451 | return 0; | 453 | return 0; |
452 | 454 | ||
453 | fail1: | 455 | fail1: |
456 | kobject_put(&mci->edac_mci_kobj); | ||
454 | edac_mc_free(mci); | 457 | edac_mc_free(mci); |
455 | 458 | ||
456 | fail0: | 459 | fail0: |
@@ -578,12 +581,11 @@ static void __exit i82875p_exit(void) | |||
578 | { | 581 | { |
579 | debugf3("%s()\n", __func__); | 582 | debugf3("%s()\n", __func__); |
580 | 583 | ||
584 | i82875p_remove_one(mci_pdev); | ||
585 | pci_dev_put(mci_pdev); | ||
586 | |||
581 | pci_unregister_driver(&i82875p_driver); | 587 | pci_unregister_driver(&i82875p_driver); |
582 | 588 | ||
583 | if (!i82875p_registered) { | ||
584 | i82875p_remove_one(mci_pdev); | ||
585 | pci_dev_put(mci_pdev); | ||
586 | } | ||
587 | } | 589 | } |
588 | 590 | ||
589 | module_init(i82875p_init); | 591 | module_init(i82875p_init); |
diff --git a/drivers/firewire/fw-sbp2.c b/drivers/firewire/fw-sbp2.c index 97df6dac3a82..e54403ee59e7 100644 --- a/drivers/firewire/fw-sbp2.c +++ b/drivers/firewire/fw-sbp2.c | |||
@@ -372,6 +372,11 @@ static const struct { | |||
372 | }, | 372 | }, |
373 | /* iPod mini */ { | 373 | /* iPod mini */ { |
374 | .firmware_revision = 0x0a2700, | 374 | .firmware_revision = 0x0a2700, |
375 | .model = 0x000022, | ||
376 | .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, | ||
377 | }, | ||
378 | /* iPod mini */ { | ||
379 | .firmware_revision = 0x0a2700, | ||
375 | .model = 0x000023, | 380 | .model = 0x000023, |
376 | .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, | 381 | .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, |
377 | }, | 382 | }, |
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 3ab1e9cc4692..996097acb5e7 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c | |||
@@ -305,6 +305,8 @@ static void drm_cleanup(struct drm_device * dev) | |||
305 | return; | 305 | return; |
306 | } | 306 | } |
307 | 307 | ||
308 | drm_vblank_cleanup(dev); | ||
309 | |||
308 | drm_lastclose(dev); | 310 | drm_lastclose(dev); |
309 | 311 | ||
310 | if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && | 312 | if (drm_core_has_MTRR(dev) && drm_core_has_AGP(dev) && |
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c index 15c8dabc3e97..1e787f894b3c 100644 --- a/drivers/gpu/drm/drm_irq.c +++ b/drivers/gpu/drm/drm_irq.c | |||
@@ -94,7 +94,7 @@ static void vblank_disable_fn(unsigned long arg) | |||
94 | } | 94 | } |
95 | } | 95 | } |
96 | 96 | ||
97 | static void drm_vblank_cleanup(struct drm_device *dev) | 97 | void drm_vblank_cleanup(struct drm_device *dev) |
98 | { | 98 | { |
99 | /* Bail if the driver didn't call drm_vblank_init() */ | 99 | /* Bail if the driver didn't call drm_vblank_init() */ |
100 | if (dev->num_crtcs == 0) | 100 | if (dev->num_crtcs == 0) |
@@ -278,8 +278,6 @@ int drm_irq_uninstall(struct drm_device * dev) | |||
278 | 278 | ||
279 | free_irq(dev->pdev->irq, dev); | 279 | free_irq(dev->pdev->irq, dev); |
280 | 280 | ||
281 | drm_vblank_cleanup(dev); | ||
282 | |||
283 | return 0; | 281 | return 0; |
284 | } | 282 | } |
285 | EXPORT_SYMBOL(drm_irq_uninstall); | 283 | EXPORT_SYMBOL(drm_irq_uninstall); |
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 0d215e38606a..ba89b42f790a 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -856,6 +856,13 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) | |||
856 | 856 | ||
857 | spin_lock_init(&dev_priv->user_irq_lock); | 857 | spin_lock_init(&dev_priv->user_irq_lock); |
858 | 858 | ||
859 | ret = drm_vblank_init(dev, I915_NUM_PIPE); | ||
860 | |||
861 | if (ret) { | ||
862 | (void) i915_driver_unload(dev); | ||
863 | return ret; | ||
864 | } | ||
865 | |||
859 | return ret; | 866 | return ret; |
860 | } | 867 | } |
861 | 868 | ||
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index ef1c0b8f8d07..0a4f39b9a0ec 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -47,6 +47,8 @@ enum pipe { | |||
47 | PIPE_B, | 47 | PIPE_B, |
48 | }; | 48 | }; |
49 | 49 | ||
50 | #define I915_NUM_PIPE 2 | ||
51 | |||
50 | /* Interface history: | 52 | /* Interface history: |
51 | * | 53 | * |
52 | * 1.1: Original. | 54 | * 1.1: Original. |
@@ -132,6 +134,7 @@ typedef struct drm_i915_private { | |||
132 | int user_irq_refcount; | 134 | int user_irq_refcount; |
133 | /** Cached value of IMR to avoid reads in updating the bitfield */ | 135 | /** Cached value of IMR to avoid reads in updating the bitfield */ |
134 | u32 irq_mask_reg; | 136 | u32 irq_mask_reg; |
137 | u32 pipestat[2]; | ||
135 | 138 | ||
136 | int tex_lru_log_granularity; | 139 | int tex_lru_log_granularity; |
137 | int allow_batchbuffer; | 140 | int allow_batchbuffer; |
@@ -147,6 +150,7 @@ typedef struct drm_i915_private { | |||
147 | u32 saveDSPBCNTR; | 150 | u32 saveDSPBCNTR; |
148 | u32 saveDSPARB; | 151 | u32 saveDSPARB; |
149 | u32 saveRENDERSTANDBY; | 152 | u32 saveRENDERSTANDBY; |
153 | u32 saveHWS; | ||
150 | u32 savePIPEACONF; | 154 | u32 savePIPEACONF; |
151 | u32 savePIPEBCONF; | 155 | u32 savePIPEBCONF; |
152 | u32 savePIPEASRC; | 156 | u32 savePIPEASRC; |
@@ -446,6 +450,13 @@ extern int i915_vblank_swap(struct drm_device *dev, void *data, | |||
446 | struct drm_file *file_priv); | 450 | struct drm_file *file_priv); |
447 | extern void i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask); | 451 | extern void i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask); |
448 | 452 | ||
453 | void | ||
454 | i915_enable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask); | ||
455 | |||
456 | void | ||
457 | i915_disable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask); | ||
458 | |||
459 | |||
449 | /* i915_mem.c */ | 460 | /* i915_mem.c */ |
450 | extern int i915_mem_alloc(struct drm_device *dev, void *data, | 461 | extern int i915_mem_alloc(struct drm_device *dev, void *data, |
451 | struct drm_file *file_priv); | 462 | struct drm_file *file_priv); |
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 6b4a2bd20640..d58ddef468f8 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -31,6 +31,8 @@ | |||
31 | #include "i915_drv.h" | 31 | #include "i915_drv.h" |
32 | #include <linux/swap.h> | 32 | #include <linux/swap.h> |
33 | 33 | ||
34 | #define I915_GEM_GPU_DOMAINS (~(I915_GEM_DOMAIN_CPU | I915_GEM_DOMAIN_GTT)) | ||
35 | |||
34 | static int | 36 | static int |
35 | i915_gem_object_set_domain(struct drm_gem_object *obj, | 37 | i915_gem_object_set_domain(struct drm_gem_object *obj, |
36 | uint32_t read_domains, | 38 | uint32_t read_domains, |
@@ -83,20 +85,14 @@ int | |||
83 | i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, | 85 | i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, |
84 | struct drm_file *file_priv) | 86 | struct drm_file *file_priv) |
85 | { | 87 | { |
86 | drm_i915_private_t *dev_priv = dev->dev_private; | ||
87 | struct drm_i915_gem_get_aperture *args = data; | 88 | struct drm_i915_gem_get_aperture *args = data; |
88 | struct drm_i915_gem_object *obj_priv; | ||
89 | 89 | ||
90 | if (!(dev->driver->driver_features & DRIVER_GEM)) | 90 | if (!(dev->driver->driver_features & DRIVER_GEM)) |
91 | return -ENODEV; | 91 | return -ENODEV; |
92 | 92 | ||
93 | args->aper_size = dev->gtt_total; | 93 | args->aper_size = dev->gtt_total; |
94 | args->aper_available_size = args->aper_size; | 94 | args->aper_available_size = (args->aper_size - |
95 | 95 | atomic_read(&dev->pin_memory)); | |
96 | list_for_each_entry(obj_priv, &dev_priv->mm.active_list, list) { | ||
97 | if (obj_priv->pin_count > 0) | ||
98 | args->aper_available_size -= obj_priv->obj->size; | ||
99 | } | ||
100 | 96 | ||
101 | return 0; | 97 | return 0; |
102 | } | 98 | } |
@@ -1870,17 +1866,6 @@ i915_gem_execbuffer(struct drm_device *dev, void *data, | |||
1870 | 1866 | ||
1871 | for (i = 0; i < args->buffer_count; i++) { | 1867 | for (i = 0; i < args->buffer_count; i++) { |
1872 | struct drm_gem_object *obj = object_list[i]; | 1868 | struct drm_gem_object *obj = object_list[i]; |
1873 | struct drm_i915_gem_object *obj_priv = obj->driver_private; | ||
1874 | |||
1875 | if (obj_priv->gtt_space == NULL) { | ||
1876 | /* We evicted the buffer in the process of validating | ||
1877 | * our set of buffers in. We could try to recover by | ||
1878 | * kicking them everything out and trying again from | ||
1879 | * the start. | ||
1880 | */ | ||
1881 | ret = -ENOMEM; | ||
1882 | goto err; | ||
1883 | } | ||
1884 | 1869 | ||
1885 | /* make sure all previous memory operations have passed */ | 1870 | /* make sure all previous memory operations have passed */ |
1886 | ret = i915_gem_object_set_domain(obj, | 1871 | ret = i915_gem_object_set_domain(obj, |
@@ -2299,29 +2284,52 @@ i915_gem_idle(struct drm_device *dev) | |||
2299 | 2284 | ||
2300 | i915_gem_retire_requests(dev); | 2285 | i915_gem_retire_requests(dev); |
2301 | 2286 | ||
2302 | /* Active and flushing should now be empty as we've | 2287 | if (!dev_priv->mm.wedged) { |
2303 | * waited for a sequence higher than any pending execbuffer | 2288 | /* Active and flushing should now be empty as we've |
2304 | */ | 2289 | * waited for a sequence higher than any pending execbuffer |
2305 | BUG_ON(!list_empty(&dev_priv->mm.active_list)); | 2290 | */ |
2306 | BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); | 2291 | WARN_ON(!list_empty(&dev_priv->mm.active_list)); |
2292 | WARN_ON(!list_empty(&dev_priv->mm.flushing_list)); | ||
2293 | /* Request should now be empty as we've also waited | ||
2294 | * for the last request in the list | ||
2295 | */ | ||
2296 | WARN_ON(!list_empty(&dev_priv->mm.request_list)); | ||
2297 | } | ||
2307 | 2298 | ||
2308 | /* Request should now be empty as we've also waited | 2299 | /* Empty the active and flushing lists to inactive. If there's |
2309 | * for the last request in the list | 2300 | * anything left at this point, it means that we're wedged and |
2301 | * nothing good's going to happen by leaving them there. So strip | ||
2302 | * the GPU domains and just stuff them onto inactive. | ||
2310 | */ | 2303 | */ |
2311 | BUG_ON(!list_empty(&dev_priv->mm.request_list)); | 2304 | while (!list_empty(&dev_priv->mm.active_list)) { |
2305 | struct drm_i915_gem_object *obj_priv; | ||
2306 | |||
2307 | obj_priv = list_first_entry(&dev_priv->mm.active_list, | ||
2308 | struct drm_i915_gem_object, | ||
2309 | list); | ||
2310 | obj_priv->obj->write_domain &= ~I915_GEM_GPU_DOMAINS; | ||
2311 | i915_gem_object_move_to_inactive(obj_priv->obj); | ||
2312 | } | ||
2313 | |||
2314 | while (!list_empty(&dev_priv->mm.flushing_list)) { | ||
2315 | struct drm_i915_gem_object *obj_priv; | ||
2316 | |||
2317 | obj_priv = list_first_entry(&dev_priv->mm.flushing_list, | ||
2318 | struct drm_i915_gem_object, | ||
2319 | list); | ||
2320 | obj_priv->obj->write_domain &= ~I915_GEM_GPU_DOMAINS; | ||
2321 | i915_gem_object_move_to_inactive(obj_priv->obj); | ||
2322 | } | ||
2312 | 2323 | ||
2313 | /* Move all buffers out of the GTT. */ | 2324 | |
2325 | /* Move all inactive buffers out of the GTT. */ | ||
2314 | ret = i915_gem_evict_from_list(dev, &dev_priv->mm.inactive_list); | 2326 | ret = i915_gem_evict_from_list(dev, &dev_priv->mm.inactive_list); |
2327 | WARN_ON(!list_empty(&dev_priv->mm.inactive_list)); | ||
2315 | if (ret) { | 2328 | if (ret) { |
2316 | mutex_unlock(&dev->struct_mutex); | 2329 | mutex_unlock(&dev->struct_mutex); |
2317 | return ret; | 2330 | return ret; |
2318 | } | 2331 | } |
2319 | 2332 | ||
2320 | BUG_ON(!list_empty(&dev_priv->mm.active_list)); | ||
2321 | BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); | ||
2322 | BUG_ON(!list_empty(&dev_priv->mm.inactive_list)); | ||
2323 | BUG_ON(!list_empty(&dev_priv->mm.request_list)); | ||
2324 | |||
2325 | i915_gem_cleanup_ringbuffer(dev); | 2333 | i915_gem_cleanup_ringbuffer(dev); |
2326 | mutex_unlock(&dev->struct_mutex); | 2334 | mutex_unlock(&dev->struct_mutex); |
2327 | 2335 | ||
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 82752d6177a4..69b9a42da95e 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -33,11 +33,23 @@ | |||
33 | 33 | ||
34 | #define MAX_NOPID ((u32)~0) | 34 | #define MAX_NOPID ((u32)~0) |
35 | 35 | ||
36 | /** These are the interrupts used by the driver */ | 36 | /** |
37 | #define I915_INTERRUPT_ENABLE_MASK (I915_USER_INTERRUPT | \ | 37 | * Interrupts that are always left unmasked. |
38 | I915_ASLE_INTERRUPT | \ | 38 | * |
39 | I915_DISPLAY_PIPE_A_EVENT_INTERRUPT | \ | 39 | * Since pipe events are edge-triggered from the PIPESTAT register to IIR, |
40 | I915_DISPLAY_PIPE_B_EVENT_INTERRUPT) | 40 | * we leave them always unmasked in IMR and then control enabling them through |
41 | * PIPESTAT alone. | ||
42 | */ | ||
43 | #define I915_INTERRUPT_ENABLE_FIX (I915_ASLE_INTERRUPT | \ | ||
44 | I915_DISPLAY_PIPE_A_EVENT_INTERRUPT | \ | ||
45 | I915_DISPLAY_PIPE_B_EVENT_INTERRUPT) | ||
46 | |||
47 | /** Interrupts that we mask and unmask at runtime. */ | ||
48 | #define I915_INTERRUPT_ENABLE_VAR (I915_USER_INTERRUPT) | ||
49 | |||
50 | /** These are all of the interrupts used by the driver */ | ||
51 | #define I915_INTERRUPT_ENABLE_MASK (I915_INTERRUPT_ENABLE_FIX | \ | ||
52 | I915_INTERRUPT_ENABLE_VAR) | ||
41 | 53 | ||
42 | void | 54 | void |
43 | i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask) | 55 | i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask) |
@@ -59,6 +71,41 @@ i915_disable_irq(drm_i915_private_t *dev_priv, u32 mask) | |||
59 | } | 71 | } |
60 | } | 72 | } |
61 | 73 | ||
74 | static inline u32 | ||
75 | i915_pipestat(int pipe) | ||
76 | { | ||
77 | if (pipe == 0) | ||
78 | return PIPEASTAT; | ||
79 | if (pipe == 1) | ||
80 | return PIPEBSTAT; | ||
81 | BUG(); | ||
82 | } | ||
83 | |||
84 | void | ||
85 | i915_enable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask) | ||
86 | { | ||
87 | if ((dev_priv->pipestat[pipe] & mask) != mask) { | ||
88 | u32 reg = i915_pipestat(pipe); | ||
89 | |||
90 | dev_priv->pipestat[pipe] |= mask; | ||
91 | /* Enable the interrupt, clear any pending status */ | ||
92 | I915_WRITE(reg, dev_priv->pipestat[pipe] | (mask >> 16)); | ||
93 | (void) I915_READ(reg); | ||
94 | } | ||
95 | } | ||
96 | |||
97 | void | ||
98 | i915_disable_pipestat(drm_i915_private_t *dev_priv, int pipe, u32 mask) | ||
99 | { | ||
100 | if ((dev_priv->pipestat[pipe] & mask) != 0) { | ||
101 | u32 reg = i915_pipestat(pipe); | ||
102 | |||
103 | dev_priv->pipestat[pipe] &= ~mask; | ||
104 | I915_WRITE(reg, dev_priv->pipestat[pipe]); | ||
105 | (void) I915_READ(reg); | ||
106 | } | ||
107 | } | ||
108 | |||
62 | /** | 109 | /** |
63 | * i915_pipe_enabled - check if a pipe is enabled | 110 | * i915_pipe_enabled - check if a pipe is enabled |
64 | * @dev: DRM device | 111 | * @dev: DRM device |
@@ -121,80 +168,102 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) | |||
121 | { | 168 | { |
122 | struct drm_device *dev = (struct drm_device *) arg; | 169 | struct drm_device *dev = (struct drm_device *) arg; |
123 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 170 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
124 | u32 iir; | 171 | u32 iir, new_iir; |
125 | u32 pipea_stats, pipeb_stats; | 172 | u32 pipea_stats, pipeb_stats; |
173 | u32 vblank_status; | ||
174 | u32 vblank_enable; | ||
126 | int vblank = 0; | 175 | int vblank = 0; |
176 | unsigned long irqflags; | ||
177 | int irq_received; | ||
178 | int ret = IRQ_NONE; | ||
127 | 179 | ||
128 | atomic_inc(&dev_priv->irq_received); | 180 | atomic_inc(&dev_priv->irq_received); |
129 | 181 | ||
130 | if (dev->pdev->msi_enabled) | ||
131 | I915_WRITE(IMR, ~0); | ||
132 | iir = I915_READ(IIR); | 182 | iir = I915_READ(IIR); |
133 | 183 | ||
134 | if (iir == 0) { | 184 | if (IS_I965G(dev)) { |
135 | if (dev->pdev->msi_enabled) { | 185 | vblank_status = I915_START_VBLANK_INTERRUPT_STATUS; |
136 | I915_WRITE(IMR, dev_priv->irq_mask_reg); | 186 | vblank_enable = PIPE_START_VBLANK_INTERRUPT_ENABLE; |
137 | (void) I915_READ(IMR); | 187 | } else { |
138 | } | 188 | vblank_status = I915_VBLANK_INTERRUPT_STATUS; |
139 | return IRQ_NONE; | 189 | vblank_enable = I915_VBLANK_INTERRUPT_ENABLE; |
140 | } | 190 | } |
141 | 191 | ||
142 | /* | 192 | for (;;) { |
143 | * Clear the PIPE(A|B)STAT regs before the IIR otherwise | 193 | irq_received = iir != 0; |
144 | * we may get extra interrupts. | 194 | |
145 | */ | 195 | /* Can't rely on pipestat interrupt bit in iir as it might |
146 | if (iir & I915_DISPLAY_PIPE_A_EVENT_INTERRUPT) { | 196 | * have been cleared after the pipestat interrupt was received. |
197 | * It doesn't set the bit in iir again, but it still produces | ||
198 | * interrupts (for non-MSI). | ||
199 | */ | ||
200 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); | ||
147 | pipea_stats = I915_READ(PIPEASTAT); | 201 | pipea_stats = I915_READ(PIPEASTAT); |
148 | if (!(dev_priv->vblank_pipe & DRM_I915_VBLANK_PIPE_A)) | 202 | pipeb_stats = I915_READ(PIPEBSTAT); |
149 | pipea_stats &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE | | 203 | /* |
150 | PIPE_VBLANK_INTERRUPT_ENABLE); | 204 | * Clear the PIPE(A|B)STAT regs before the IIR |
151 | else if (pipea_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS| | 205 | */ |
152 | PIPE_VBLANK_INTERRUPT_STATUS)) { | 206 | if (pipea_stats & 0x8000ffff) { |
207 | I915_WRITE(PIPEASTAT, pipea_stats); | ||
208 | irq_received = 1; | ||
209 | } | ||
210 | |||
211 | if (pipeb_stats & 0x8000ffff) { | ||
212 | I915_WRITE(PIPEBSTAT, pipeb_stats); | ||
213 | irq_received = 1; | ||
214 | } | ||
215 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); | ||
216 | |||
217 | if (!irq_received) | ||
218 | break; | ||
219 | |||
220 | ret = IRQ_HANDLED; | ||
221 | |||
222 | I915_WRITE(IIR, iir); | ||
223 | new_iir = I915_READ(IIR); /* Flush posted writes */ | ||
224 | |||
225 | if (dev_priv->sarea_priv) | ||
226 | dev_priv->sarea_priv->last_dispatch = | ||
227 | READ_BREADCRUMB(dev_priv); | ||
228 | |||
229 | if (iir & I915_USER_INTERRUPT) { | ||
230 | dev_priv->mm.irq_gem_seqno = i915_get_gem_seqno(dev); | ||
231 | DRM_WAKEUP(&dev_priv->irq_queue); | ||
232 | } | ||
233 | |||
234 | if (pipea_stats & vblank_status) { | ||
153 | vblank++; | 235 | vblank++; |
154 | drm_handle_vblank(dev, 0); | 236 | drm_handle_vblank(dev, 0); |
155 | } | 237 | } |
156 | 238 | ||
157 | I915_WRITE(PIPEASTAT, pipea_stats); | 239 | if (pipeb_stats & vblank_status) { |
158 | } | ||
159 | if (iir & I915_DISPLAY_PIPE_B_EVENT_INTERRUPT) { | ||
160 | pipeb_stats = I915_READ(PIPEBSTAT); | ||
161 | /* Ack the event */ | ||
162 | I915_WRITE(PIPEBSTAT, pipeb_stats); | ||
163 | |||
164 | /* The vblank interrupt gets enabled even if we didn't ask for | ||
165 | it, so make sure it's shut down again */ | ||
166 | if (!(dev_priv->vblank_pipe & DRM_I915_VBLANK_PIPE_B)) | ||
167 | pipeb_stats &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE | | ||
168 | PIPE_VBLANK_INTERRUPT_ENABLE); | ||
169 | else if (pipeb_stats & (PIPE_START_VBLANK_INTERRUPT_STATUS| | ||
170 | PIPE_VBLANK_INTERRUPT_STATUS)) { | ||
171 | vblank++; | 240 | vblank++; |
172 | drm_handle_vblank(dev, 1); | 241 | drm_handle_vblank(dev, 1); |
173 | } | 242 | } |
174 | 243 | ||
175 | if (pipeb_stats & I915_LEGACY_BLC_EVENT_STATUS) | 244 | if ((pipeb_stats & I915_LEGACY_BLC_EVENT_STATUS) || |
245 | (iir & I915_ASLE_INTERRUPT)) | ||
176 | opregion_asle_intr(dev); | 246 | opregion_asle_intr(dev); |
177 | I915_WRITE(PIPEBSTAT, pipeb_stats); | ||
178 | } | ||
179 | |||
180 | I915_WRITE(IIR, iir); | ||
181 | if (dev->pdev->msi_enabled) | ||
182 | I915_WRITE(IMR, dev_priv->irq_mask_reg); | ||
183 | (void) I915_READ(IIR); /* Flush posted writes */ | ||
184 | |||
185 | if (dev_priv->sarea_priv) | ||
186 | dev_priv->sarea_priv->last_dispatch = | ||
187 | READ_BREADCRUMB(dev_priv); | ||
188 | 247 | ||
189 | if (iir & I915_USER_INTERRUPT) { | 248 | /* With MSI, interrupts are only generated when iir |
190 | dev_priv->mm.irq_gem_seqno = i915_get_gem_seqno(dev); | 249 | * transitions from zero to nonzero. If another bit got |
191 | DRM_WAKEUP(&dev_priv->irq_queue); | 250 | * set while we were handling the existing iir bits, then |
251 | * we would never get another interrupt. | ||
252 | * | ||
253 | * This is fine on non-MSI as well, as if we hit this path | ||
254 | * we avoid exiting the interrupt handler only to generate | ||
255 | * another one. | ||
256 | * | ||
257 | * Note that for MSI this could cause a stray interrupt report | ||
258 | * if an interrupt landed in the time between writing IIR and | ||
259 | * the posting read. This should be rare enough to never | ||
260 | * trigger the 99% of 100,000 interrupts test for disabling | ||
261 | * stray interrupts. | ||
262 | */ | ||
263 | iir = new_iir; | ||
192 | } | 264 | } |
193 | 265 | ||
194 | if (iir & I915_ASLE_INTERRUPT) | 266 | return ret; |
195 | opregion_asle_intr(dev); | ||
196 | |||
197 | return IRQ_HANDLED; | ||
198 | } | 267 | } |
199 | 268 | ||
200 | static int i915_emit_irq(struct drm_device * dev) | 269 | static int i915_emit_irq(struct drm_device * dev) |
@@ -330,48 +399,16 @@ int i915_irq_wait(struct drm_device *dev, void *data, | |||
330 | int i915_enable_vblank(struct drm_device *dev, int pipe) | 399 | int i915_enable_vblank(struct drm_device *dev, int pipe) |
331 | { | 400 | { |
332 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 401 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
333 | u32 pipestat_reg = 0; | ||
334 | u32 pipestat; | ||
335 | u32 interrupt = 0; | ||
336 | unsigned long irqflags; | 402 | unsigned long irqflags; |
337 | 403 | ||
338 | switch (pipe) { | ||
339 | case 0: | ||
340 | pipestat_reg = PIPEASTAT; | ||
341 | interrupt = I915_DISPLAY_PIPE_A_EVENT_INTERRUPT; | ||
342 | break; | ||
343 | case 1: | ||
344 | pipestat_reg = PIPEBSTAT; | ||
345 | interrupt = I915_DISPLAY_PIPE_B_EVENT_INTERRUPT; | ||
346 | break; | ||
347 | default: | ||
348 | DRM_ERROR("tried to enable vblank on non-existent pipe %d\n", | ||
349 | pipe); | ||
350 | return 0; | ||
351 | } | ||
352 | |||
353 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); | 404 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); |
354 | /* Enabling vblank events in IMR comes before PIPESTAT write, or | ||
355 | * there's a race where the PIPESTAT vblank bit gets set to 1, so | ||
356 | * the OR of enabled PIPESTAT bits goes to 1, so the PIPExEVENT in | ||
357 | * ISR flashes to 1, but the IIR bit doesn't get set to 1 because | ||
358 | * IMR masks it. It doesn't ever get set after we clear the masking | ||
359 | * in IMR because the ISR bit is edge, not level-triggered, on the | ||
360 | * OR of PIPESTAT bits. | ||
361 | */ | ||
362 | i915_enable_irq(dev_priv, interrupt); | ||
363 | pipestat = I915_READ(pipestat_reg); | ||
364 | if (IS_I965G(dev)) | 405 | if (IS_I965G(dev)) |
365 | pipestat |= PIPE_START_VBLANK_INTERRUPT_ENABLE; | 406 | i915_enable_pipestat(dev_priv, pipe, |
407 | PIPE_START_VBLANK_INTERRUPT_ENABLE); | ||
366 | else | 408 | else |
367 | pipestat |= PIPE_VBLANK_INTERRUPT_ENABLE; | 409 | i915_enable_pipestat(dev_priv, pipe, |
368 | /* Clear any stale interrupt status */ | 410 | PIPE_VBLANK_INTERRUPT_ENABLE); |
369 | pipestat |= (PIPE_START_VBLANK_INTERRUPT_STATUS | | ||
370 | PIPE_VBLANK_INTERRUPT_STATUS); | ||
371 | I915_WRITE(pipestat_reg, pipestat); | ||
372 | (void) I915_READ(pipestat_reg); /* Posting read */ | ||
373 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); | 411 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); |
374 | |||
375 | return 0; | 412 | return 0; |
376 | } | 413 | } |
377 | 414 | ||
@@ -381,37 +418,12 @@ int i915_enable_vblank(struct drm_device *dev, int pipe) | |||
381 | void i915_disable_vblank(struct drm_device *dev, int pipe) | 418 | void i915_disable_vblank(struct drm_device *dev, int pipe) |
382 | { | 419 | { |
383 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 420 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
384 | u32 pipestat_reg = 0; | ||
385 | u32 pipestat; | ||
386 | u32 interrupt = 0; | ||
387 | unsigned long irqflags; | 421 | unsigned long irqflags; |
388 | 422 | ||
389 | switch (pipe) { | ||
390 | case 0: | ||
391 | pipestat_reg = PIPEASTAT; | ||
392 | interrupt = I915_DISPLAY_PIPE_A_EVENT_INTERRUPT; | ||
393 | break; | ||
394 | case 1: | ||
395 | pipestat_reg = PIPEBSTAT; | ||
396 | interrupt = I915_DISPLAY_PIPE_B_EVENT_INTERRUPT; | ||
397 | break; | ||
398 | default: | ||
399 | DRM_ERROR("tried to disable vblank on non-existent pipe %d\n", | ||
400 | pipe); | ||
401 | return; | ||
402 | break; | ||
403 | } | ||
404 | |||
405 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); | 423 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); |
406 | i915_disable_irq(dev_priv, interrupt); | 424 | i915_disable_pipestat(dev_priv, pipe, |
407 | pipestat = I915_READ(pipestat_reg); | 425 | PIPE_VBLANK_INTERRUPT_ENABLE | |
408 | pipestat &= ~(PIPE_START_VBLANK_INTERRUPT_ENABLE | | 426 | PIPE_START_VBLANK_INTERRUPT_ENABLE); |
409 | PIPE_VBLANK_INTERRUPT_ENABLE); | ||
410 | /* Clear any stale interrupt status */ | ||
411 | pipestat |= (PIPE_START_VBLANK_INTERRUPT_STATUS | | ||
412 | PIPE_VBLANK_INTERRUPT_STATUS); | ||
413 | I915_WRITE(pipestat_reg, pipestat); | ||
414 | (void) I915_READ(pipestat_reg); /* Posting read */ | ||
415 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); | 427 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); |
416 | } | 428 | } |
417 | 429 | ||
@@ -476,32 +488,35 @@ void i915_driver_irq_preinstall(struct drm_device * dev) | |||
476 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 488 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
477 | 489 | ||
478 | I915_WRITE(HWSTAM, 0xeffe); | 490 | I915_WRITE(HWSTAM, 0xeffe); |
491 | I915_WRITE(PIPEASTAT, 0); | ||
492 | I915_WRITE(PIPEBSTAT, 0); | ||
479 | I915_WRITE(IMR, 0xffffffff); | 493 | I915_WRITE(IMR, 0xffffffff); |
480 | I915_WRITE(IER, 0x0); | 494 | I915_WRITE(IER, 0x0); |
495 | (void) I915_READ(IER); | ||
481 | } | 496 | } |
482 | 497 | ||
483 | int i915_driver_irq_postinstall(struct drm_device *dev) | 498 | int i915_driver_irq_postinstall(struct drm_device *dev) |
484 | { | 499 | { |
485 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 500 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
486 | int ret, num_pipes = 2; | ||
487 | |||
488 | /* Set initial unmasked IRQs to just the selected vblank pipes. */ | ||
489 | dev_priv->irq_mask_reg = ~0; | ||
490 | |||
491 | ret = drm_vblank_init(dev, num_pipes); | ||
492 | if (ret) | ||
493 | return ret; | ||
494 | 501 | ||
495 | dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B; | 502 | dev_priv->vblank_pipe = DRM_I915_VBLANK_PIPE_A | DRM_I915_VBLANK_PIPE_B; |
496 | dev_priv->irq_mask_reg &= ~I915_DISPLAY_PIPE_A_VBLANK_INTERRUPT; | ||
497 | dev_priv->irq_mask_reg &= ~I915_DISPLAY_PIPE_B_VBLANK_INTERRUPT; | ||
498 | 503 | ||
499 | dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ | 504 | dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ |
500 | 505 | ||
501 | dev_priv->irq_mask_reg &= I915_INTERRUPT_ENABLE_MASK; | 506 | /* Unmask the interrupts that we always want on. */ |
507 | dev_priv->irq_mask_reg = ~I915_INTERRUPT_ENABLE_FIX; | ||
508 | |||
509 | dev_priv->pipestat[0] = 0; | ||
510 | dev_priv->pipestat[1] = 0; | ||
511 | |||
512 | /* Disable pipe interrupt enables, clear pending pipe status */ | ||
513 | I915_WRITE(PIPEASTAT, I915_READ(PIPEASTAT) & 0x8000ffff); | ||
514 | I915_WRITE(PIPEBSTAT, I915_READ(PIPEBSTAT) & 0x8000ffff); | ||
515 | /* Clear pending interrupt status */ | ||
516 | I915_WRITE(IIR, I915_READ(IIR)); | ||
502 | 517 | ||
503 | I915_WRITE(IMR, dev_priv->irq_mask_reg); | ||
504 | I915_WRITE(IER, I915_INTERRUPT_ENABLE_MASK); | 518 | I915_WRITE(IER, I915_INTERRUPT_ENABLE_MASK); |
519 | I915_WRITE(IMR, dev_priv->irq_mask_reg); | ||
505 | (void) I915_READ(IER); | 520 | (void) I915_READ(IER); |
506 | 521 | ||
507 | opregion_enable_asle(dev); | 522 | opregion_enable_asle(dev); |
@@ -513,7 +528,6 @@ int i915_driver_irq_postinstall(struct drm_device *dev) | |||
513 | void i915_driver_irq_uninstall(struct drm_device * dev) | 528 | void i915_driver_irq_uninstall(struct drm_device * dev) |
514 | { | 529 | { |
515 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 530 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
516 | u32 temp; | ||
517 | 531 | ||
518 | if (!dev_priv) | 532 | if (!dev_priv) |
519 | return; | 533 | return; |
@@ -521,13 +535,12 @@ void i915_driver_irq_uninstall(struct drm_device * dev) | |||
521 | dev_priv->vblank_pipe = 0; | 535 | dev_priv->vblank_pipe = 0; |
522 | 536 | ||
523 | I915_WRITE(HWSTAM, 0xffffffff); | 537 | I915_WRITE(HWSTAM, 0xffffffff); |
538 | I915_WRITE(PIPEASTAT, 0); | ||
539 | I915_WRITE(PIPEBSTAT, 0); | ||
524 | I915_WRITE(IMR, 0xffffffff); | 540 | I915_WRITE(IMR, 0xffffffff); |
525 | I915_WRITE(IER, 0x0); | 541 | I915_WRITE(IER, 0x0); |
526 | 542 | ||
527 | temp = I915_READ(PIPEASTAT); | 543 | I915_WRITE(PIPEASTAT, I915_READ(PIPEASTAT) & 0x8000ffff); |
528 | I915_WRITE(PIPEASTAT, temp); | 544 | I915_WRITE(PIPEBSTAT, I915_READ(PIPEBSTAT) & 0x8000ffff); |
529 | temp = I915_READ(PIPEBSTAT); | 545 | I915_WRITE(IIR, I915_READ(IIR)); |
530 | I915_WRITE(PIPEBSTAT, temp); | ||
531 | temp = I915_READ(IIR); | ||
532 | I915_WRITE(IIR, temp); | ||
533 | } | 546 | } |
diff --git a/drivers/gpu/drm/i915/i915_opregion.c b/drivers/gpu/drm/i915/i915_opregion.c index 1787a0c7e3ab..13ae731a33db 100644 --- a/drivers/gpu/drm/i915/i915_opregion.c +++ b/drivers/gpu/drm/i915/i915_opregion.c | |||
@@ -235,17 +235,15 @@ void opregion_enable_asle(struct drm_device *dev) | |||
235 | struct opregion_asle *asle = dev_priv->opregion.asle; | 235 | struct opregion_asle *asle = dev_priv->opregion.asle; |
236 | 236 | ||
237 | if (asle) { | 237 | if (asle) { |
238 | u32 pipeb_stats = I915_READ(PIPEBSTAT); | ||
239 | if (IS_MOBILE(dev)) { | 238 | if (IS_MOBILE(dev)) { |
240 | /* Many devices trigger events with a write to the | 239 | unsigned long irqflags; |
241 | legacy backlight controller, so we need to ensure | 240 | |
242 | that it's able to generate interrupts */ | 241 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); |
243 | I915_WRITE(PIPEBSTAT, pipeb_stats |= | 242 | i915_enable_pipestat(dev_priv, 1, |
244 | I915_LEGACY_BLC_EVENT_ENABLE); | 243 | I915_LEGACY_BLC_EVENT_ENABLE); |
245 | i915_enable_irq(dev_priv, I915_ASLE_INTERRUPT | | 244 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, |
246 | I915_DISPLAY_PIPE_B_EVENT_INTERRUPT); | 245 | irqflags); |
247 | } else | 246 | } |
248 | i915_enable_irq(dev_priv, I915_ASLE_INTERRUPT); | ||
249 | 247 | ||
250 | asle->tche = ASLE_ALS_EN | ASLE_BLC_EN | ASLE_PFIT_EN | | 248 | asle->tche = ASLE_ALS_EN | ASLE_BLC_EN | ASLE_PFIT_EN | |
251 | ASLE_PFMB_EN; | 249 | ASLE_PFMB_EN; |
diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c index 5ddc6e595c0c..5d84027ee8f3 100644 --- a/drivers/gpu/drm/i915/i915_suspend.c +++ b/drivers/gpu/drm/i915/i915_suspend.c | |||
@@ -244,6 +244,9 @@ int i915_save_state(struct drm_device *dev) | |||
244 | if (IS_I965G(dev) && IS_MOBILE(dev)) | 244 | if (IS_I965G(dev) && IS_MOBILE(dev)) |
245 | dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY); | 245 | dev_priv->saveRENDERSTANDBY = I915_READ(MCHBAR_RENDER_STANDBY); |
246 | 246 | ||
247 | /* Hardware status page */ | ||
248 | dev_priv->saveHWS = I915_READ(HWS_PGA); | ||
249 | |||
247 | /* Display arbitration control */ | 250 | /* Display arbitration control */ |
248 | dev_priv->saveDSPARB = I915_READ(DSPARB); | 251 | dev_priv->saveDSPARB = I915_READ(DSPARB); |
249 | 252 | ||
@@ -373,6 +376,9 @@ int i915_restore_state(struct drm_device *dev) | |||
373 | if (IS_I965G(dev) && IS_MOBILE(dev)) | 376 | if (IS_I965G(dev) && IS_MOBILE(dev)) |
374 | I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY); | 377 | I915_WRITE(MCHBAR_RENDER_STANDBY, dev_priv->saveRENDERSTANDBY); |
375 | 378 | ||
379 | /* Hardware status page */ | ||
380 | I915_WRITE(HWS_PGA, dev_priv->saveHWS); | ||
381 | |||
376 | /* Display arbitration */ | 382 | /* Display arbitration */ |
377 | I915_WRITE(DSPARB, dev_priv->saveDSPARB); | 383 | I915_WRITE(DSPARB, dev_priv->saveDSPARB); |
378 | 384 | ||
diff --git a/drivers/gpu/drm/mga/mga_dma.c b/drivers/gpu/drm/mga/mga_dma.c index c1d12dbfa8d8..b49c5ff29585 100644 --- a/drivers/gpu/drm/mga/mga_dma.c +++ b/drivers/gpu/drm/mga/mga_dma.c | |||
@@ -396,6 +396,7 @@ int mga_freelist_put(struct drm_device * dev, struct drm_buf * buf) | |||
396 | int mga_driver_load(struct drm_device * dev, unsigned long flags) | 396 | int mga_driver_load(struct drm_device * dev, unsigned long flags) |
397 | { | 397 | { |
398 | drm_mga_private_t *dev_priv; | 398 | drm_mga_private_t *dev_priv; |
399 | int ret; | ||
399 | 400 | ||
400 | dev_priv = drm_alloc(sizeof(drm_mga_private_t), DRM_MEM_DRIVER); | 401 | dev_priv = drm_alloc(sizeof(drm_mga_private_t), DRM_MEM_DRIVER); |
401 | if (!dev_priv) | 402 | if (!dev_priv) |
@@ -415,6 +416,13 @@ int mga_driver_load(struct drm_device * dev, unsigned long flags) | |||
415 | dev->types[7] = _DRM_STAT_PRIMARY; | 416 | dev->types[7] = _DRM_STAT_PRIMARY; |
416 | dev->types[8] = _DRM_STAT_SECONDARY; | 417 | dev->types[8] = _DRM_STAT_SECONDARY; |
417 | 418 | ||
419 | ret = drm_vblank_init(dev, 1); | ||
420 | |||
421 | if (ret) { | ||
422 | (void) mga_driver_unload(dev); | ||
423 | return ret; | ||
424 | } | ||
425 | |||
418 | return 0; | 426 | return 0; |
419 | } | 427 | } |
420 | 428 | ||
diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c index bab42f41188b..daa6041a483a 100644 --- a/drivers/gpu/drm/mga/mga_irq.c +++ b/drivers/gpu/drm/mga/mga_irq.c | |||
@@ -152,11 +152,6 @@ void mga_driver_irq_preinstall(struct drm_device * dev) | |||
152 | int mga_driver_irq_postinstall(struct drm_device *dev) | 152 | int mga_driver_irq_postinstall(struct drm_device *dev) |
153 | { | 153 | { |
154 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 154 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
155 | int ret; | ||
156 | |||
157 | ret = drm_vblank_init(dev, 1); | ||
158 | if (ret) | ||
159 | return ret; | ||
160 | 155 | ||
161 | DRM_INIT_WAITQUEUE(&dev_priv->fence_queue); | 156 | DRM_INIT_WAITQUEUE(&dev_priv->fence_queue); |
162 | 157 | ||
diff --git a/drivers/gpu/drm/r128/r128_drv.c b/drivers/gpu/drm/r128/r128_drv.c index 3265d53ba91f..601f4c0e5da5 100644 --- a/drivers/gpu/drm/r128/r128_drv.c +++ b/drivers/gpu/drm/r128/r128_drv.c | |||
@@ -45,6 +45,7 @@ static struct drm_driver driver = { | |||
45 | DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG | | 45 | DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG | |
46 | DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED, | 46 | DRIVER_HAVE_DMA | DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED, |
47 | .dev_priv_size = sizeof(drm_r128_buf_priv_t), | 47 | .dev_priv_size = sizeof(drm_r128_buf_priv_t), |
48 | .load = r128_driver_load, | ||
48 | .preclose = r128_driver_preclose, | 49 | .preclose = r128_driver_preclose, |
49 | .lastclose = r128_driver_lastclose, | 50 | .lastclose = r128_driver_lastclose, |
50 | .get_vblank_counter = r128_get_vblank_counter, | 51 | .get_vblank_counter = r128_get_vblank_counter, |
@@ -84,6 +85,11 @@ static struct drm_driver driver = { | |||
84 | .patchlevel = DRIVER_PATCHLEVEL, | 85 | .patchlevel = DRIVER_PATCHLEVEL, |
85 | }; | 86 | }; |
86 | 87 | ||
88 | int r128_driver_load(struct drm_device * dev, unsigned long flags) | ||
89 | { | ||
90 | return drm_vblank_init(dev, 1); | ||
91 | } | ||
92 | |||
87 | static int __init r128_init(void) | 93 | static int __init r128_init(void) |
88 | { | 94 | { |
89 | driver.num_ioctls = r128_max_ioctl; | 95 | driver.num_ioctls = r128_max_ioctl; |
diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h index 5898b274279d..797a26c42dab 100644 --- a/drivers/gpu/drm/r128/r128_drv.h +++ b/drivers/gpu/drm/r128/r128_drv.h | |||
@@ -159,6 +159,7 @@ extern void r128_driver_irq_preinstall(struct drm_device * dev); | |||
159 | extern int r128_driver_irq_postinstall(struct drm_device *dev); | 159 | extern int r128_driver_irq_postinstall(struct drm_device *dev); |
160 | extern void r128_driver_irq_uninstall(struct drm_device * dev); | 160 | extern void r128_driver_irq_uninstall(struct drm_device * dev); |
161 | extern void r128_driver_lastclose(struct drm_device * dev); | 161 | extern void r128_driver_lastclose(struct drm_device * dev); |
162 | extern int r128_driver_load(struct drm_device * dev, unsigned long flags); | ||
162 | extern void r128_driver_preclose(struct drm_device * dev, | 163 | extern void r128_driver_preclose(struct drm_device * dev, |
163 | struct drm_file *file_priv); | 164 | struct drm_file *file_priv); |
164 | 165 | ||
diff --git a/drivers/gpu/drm/r128/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c index d7349012a680..69810fb8ac49 100644 --- a/drivers/gpu/drm/r128/r128_irq.c +++ b/drivers/gpu/drm/r128/r128_irq.c | |||
@@ -102,7 +102,7 @@ void r128_driver_irq_preinstall(struct drm_device * dev) | |||
102 | 102 | ||
103 | int r128_driver_irq_postinstall(struct drm_device *dev) | 103 | int r128_driver_irq_postinstall(struct drm_device *dev) |
104 | { | 104 | { |
105 | return drm_vblank_init(dev, 1); | 105 | return 0; |
106 | } | 106 | } |
107 | 107 | ||
108 | void r128_driver_irq_uninstall(struct drm_device * dev) | 108 | void r128_driver_irq_uninstall(struct drm_device * dev) |
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c index abdc1ae38467..dcebb4bee7aa 100644 --- a/drivers/gpu/drm/radeon/radeon_cp.c +++ b/drivers/gpu/drm/radeon/radeon_cp.c | |||
@@ -1757,6 +1757,12 @@ int radeon_driver_load(struct drm_device *dev, unsigned long flags) | |||
1757 | if (ret != 0) | 1757 | if (ret != 0) |
1758 | return ret; | 1758 | return ret; |
1759 | 1759 | ||
1760 | ret = drm_vblank_init(dev, 2); | ||
1761 | if (ret) { | ||
1762 | radeon_driver_unload(dev); | ||
1763 | return ret; | ||
1764 | } | ||
1765 | |||
1760 | DRM_DEBUG("%s card detected\n", | 1766 | DRM_DEBUG("%s card detected\n", |
1761 | ((dev_priv->flags & RADEON_IS_AGP) ? "AGP" : (((dev_priv->flags & RADEON_IS_PCIE) ? "PCIE" : "PCI")))); | 1767 | ((dev_priv->flags & RADEON_IS_AGP) ? "AGP" : (((dev_priv->flags & RADEON_IS_PCIE) ? "PCIE" : "PCI")))); |
1762 | return ret; | 1768 | return ret; |
diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c index 5079f7054a2f..97c0599fdb1e 100644 --- a/drivers/gpu/drm/radeon/radeon_irq.c +++ b/drivers/gpu/drm/radeon/radeon_irq.c | |||
@@ -337,15 +337,10 @@ int radeon_driver_irq_postinstall(struct drm_device *dev) | |||
337 | { | 337 | { |
338 | drm_radeon_private_t *dev_priv = | 338 | drm_radeon_private_t *dev_priv = |
339 | (drm_radeon_private_t *) dev->dev_private; | 339 | (drm_radeon_private_t *) dev->dev_private; |
340 | int ret; | ||
341 | 340 | ||
342 | atomic_set(&dev_priv->swi_emitted, 0); | 341 | atomic_set(&dev_priv->swi_emitted, 0); |
343 | DRM_INIT_WAITQUEUE(&dev_priv->swi_queue); | 342 | DRM_INIT_WAITQUEUE(&dev_priv->swi_queue); |
344 | 343 | ||
345 | ret = drm_vblank_init(dev, 2); | ||
346 | if (ret) | ||
347 | return ret; | ||
348 | |||
349 | dev->max_vblank_count = 0x001fffff; | 344 | dev->max_vblank_count = 0x001fffff; |
350 | 345 | ||
351 | radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1); | 346 | radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1); |
diff --git a/drivers/gpu/drm/via/via_irq.c b/drivers/gpu/drm/via/via_irq.c index 665d319b927b..c248c1d37268 100644 --- a/drivers/gpu/drm/via/via_irq.c +++ b/drivers/gpu/drm/via/via_irq.c | |||
@@ -314,7 +314,6 @@ int via_driver_irq_postinstall(struct drm_device *dev) | |||
314 | if (!dev_priv) | 314 | if (!dev_priv) |
315 | return -EINVAL; | 315 | return -EINVAL; |
316 | 316 | ||
317 | drm_vblank_init(dev, 1); | ||
318 | status = VIA_READ(VIA_REG_INTERRUPT); | 317 | status = VIA_READ(VIA_REG_INTERRUPT); |
319 | VIA_WRITE(VIA_REG_INTERRUPT, status | VIA_IRQ_GLOBAL | 318 | VIA_WRITE(VIA_REG_INTERRUPT, status | VIA_IRQ_GLOBAL |
320 | | dev_priv->irq_enable_mask); | 319 | | dev_priv->irq_enable_mask); |
diff --git a/drivers/gpu/drm/via/via_map.c b/drivers/gpu/drm/via/via_map.c index a967556be014..2c4f0b485792 100644 --- a/drivers/gpu/drm/via/via_map.c +++ b/drivers/gpu/drm/via/via_map.c | |||
@@ -107,8 +107,17 @@ int via_driver_load(struct drm_device *dev, unsigned long chipset) | |||
107 | ret = drm_sman_init(&dev_priv->sman, 2, 12, 8); | 107 | ret = drm_sman_init(&dev_priv->sman, 2, 12, 8); |
108 | if (ret) { | 108 | if (ret) { |
109 | drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER); | 109 | drm_free(dev_priv, sizeof(*dev_priv), DRM_MEM_DRIVER); |
110 | return ret; | ||
110 | } | 111 | } |
111 | return ret; | 112 | |
113 | ret = drm_vblank_init(dev, 1); | ||
114 | if (ret) { | ||
115 | drm_sman_takedown(&dev_priv->sman); | ||
116 | drm_free(dev_priv, sizeof(drm_via_private_t), DRM_MEM_DRIVER); | ||
117 | return ret; | ||
118 | } | ||
119 | |||
120 | return 0; | ||
112 | } | 121 | } |
113 | 122 | ||
114 | int via_driver_unload(struct drm_device *dev) | 123 | int via_driver_unload(struct drm_device *dev) |
diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c index 9b97795e45ad..aa28aed0e46c 100644 --- a/drivers/hid/hid-apple.c +++ b/drivers/hid/hid-apple.c | |||
@@ -400,12 +400,12 @@ static const struct hid_device_id apple_devices[] = { | |||
400 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS), | 400 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS), |
401 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | | 401 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | |
402 | APPLE_RDESC_JIS }, | 402 | APPLE_RDESC_JIS }, |
403 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI), | 403 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI), |
404 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, | 404 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, |
405 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO), | 405 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO), |
406 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | | 406 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN | |
407 | APPLE_ISO_KEYBOARD }, | 407 | APPLE_ISO_KEYBOARD }, |
408 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS), | 408 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS), |
409 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, | 409 | .driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN }, |
410 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI), | 410 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI), |
411 | .driver_data = APPLE_HAS_FN }, | 411 | .driver_data = APPLE_HAS_FN }, |
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index 147ec591a806..40df3e1b4bd1 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -1241,9 +1241,9 @@ static const struct hid_device_id hid_blacklist[] = { | |||
1241 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI) }, | 1241 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI) }, |
1242 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO) }, | 1242 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO) }, |
1243 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS) }, | 1243 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS) }, |
1244 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI) }, | 1244 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI) }, |
1245 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO) }, | 1245 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO) }, |
1246 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS) }, | 1246 | { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_JIS) }, |
1247 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI) }, | 1247 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ANSI) }, |
1248 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO) }, | 1248 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_ISO) }, |
1249 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS) }, | 1249 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING_JIS) }, |
@@ -1266,6 +1266,9 @@ static const struct hid_device_id hid_blacklist[] = { | |||
1266 | { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_SK8115) }, | 1266 | { HID_USB_DEVICE(USB_VENDOR_ID_DELL, USB_DEVICE_ID_DELL_SK8115) }, |
1267 | { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) }, | 1267 | { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) }, |
1268 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERIC_13BA, USB_DEVICE_ID_GENERIC_13BA_KBD_MOUSE) }, | 1268 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERIC_13BA, USB_DEVICE_ID_GENERIC_13BA_KBD_MOUSE) }, |
1269 | { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) }, | ||
1270 | { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR) }, | ||
1271 | { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003) }, | ||
1269 | { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE) }, | 1272 | { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE) }, |
1270 | { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_2) }, | 1273 | { HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_2) }, |
1271 | { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) }, | 1274 | { HID_USB_DEVICE(USB_VENDOR_ID_LABTEC, USB_DEVICE_ID_LABTEC_WIRELESS_KEYBOARD) }, |
@@ -1420,7 +1423,6 @@ static const struct hid_device_id hid_ignore_list[] = { | |||
1420 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EARTHMATE) }, | 1423 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EARTHMATE) }, |
1421 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20) }, | 1424 | { HID_USB_DEVICE(USB_VENDOR_ID_DELORME, USB_DEVICE_ID_DELORME_EM_LT20) }, |
1422 | { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) }, | 1425 | { HID_USB_DEVICE(USB_VENDOR_ID_ESSENTIAL_REALITY, USB_DEVICE_ID_ESSENTIAL_REALITY_P5) }, |
1423 | { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) }, | ||
1424 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) }, | 1426 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0001) }, |
1425 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) }, | 1427 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0002) }, |
1426 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) }, | 1428 | { HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 0x0003) }, |
@@ -1436,7 +1438,6 @@ static const struct hid_device_id hid_ignore_list[] = { | |||
1436 | { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_SUPER_Q2) }, | 1438 | { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_SUPER_Q2) }, |
1437 | { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_GOGOPEN) }, | 1439 | { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_GOGOPEN) }, |
1438 | { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_PENPOWER) }, | 1440 | { HID_USB_DEVICE(USB_VENDOR_ID_GOTOP, USB_DEVICE_ID_PENPOWER) }, |
1439 | { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003) }, | ||
1440 | { HID_USB_DEVICE(USB_VENDOR_ID_GRETAGMACBETH, USB_DEVICE_ID_GRETAGMACBETH_HUEY) }, | 1441 | { HID_USB_DEVICE(USB_VENDOR_ID_GRETAGMACBETH, USB_DEVICE_ID_GRETAGMACBETH_HUEY) }, |
1441 | { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE) }, | 1442 | { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_POWERMATE) }, |
1442 | { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB) }, | 1443 | { HID_USB_DEVICE(USB_VENDOR_ID_GRIFFIN, USB_DEVICE_ID_SOUNDKNOB) }, |
@@ -1576,9 +1577,6 @@ static const struct hid_device_id hid_mouse_ignore_list[] = { | |||
1576 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) }, | 1577 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ANSI) }, |
1577 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) }, | 1578 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_ISO) }, |
1578 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) }, | 1579 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING2_JIS) }, |
1579 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ANSI) }, | ||
1580 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_ISO) }, | ||
1581 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING3_JIS) }, | ||
1582 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, | 1580 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) }, |
1583 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, | 1581 | { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, |
1584 | { } | 1582 | { } |
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h index d70075dd3d81..39289699c32f 100644 --- a/drivers/hid/hid-ids.h +++ b/drivers/hid/hid-ids.h | |||
@@ -163,6 +163,7 @@ | |||
163 | 163 | ||
164 | #define USB_VENDOR_ID_GAMERON 0x0810 | 164 | #define USB_VENDOR_ID_GAMERON 0x0810 |
165 | #define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001 | 165 | #define USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR 0x0001 |
166 | #define USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR 0x0002 | ||
166 | 167 | ||
167 | #define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc | 168 | #define USB_VENDOR_ID_GENERAL_TOUCH 0x0dfc |
168 | 169 | ||
diff --git a/drivers/hid/hid-pl.c b/drivers/hid/hid-pl.c index acd815586182..46941f979b9d 100644 --- a/drivers/hid/hid-pl.c +++ b/drivers/hid/hid-pl.c | |||
@@ -178,6 +178,8 @@ err: | |||
178 | static const struct hid_device_id pl_devices[] = { | 178 | static const struct hid_device_id pl_devices[] = { |
179 | { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR), | 179 | { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR), |
180 | .driver_data = 1 }, /* Twin USB Joystick */ | 180 | .driver_data = 1 }, /* Twin USB Joystick */ |
181 | { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PCS_ADAPTOR), | ||
182 | .driver_data = 1 }, /* Twin USB Joystick */ | ||
181 | { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003), }, /* GreenAsia Inc. USB Joystick */ | 183 | { HID_USB_DEVICE(USB_VENDOR_ID_GREENASIA, 0x0003), }, /* GreenAsia Inc. USB Joystick */ |
182 | { } | 184 | { } |
183 | }; | 185 | }; |
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index d746bf8284dd..606369ea24ca 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c | |||
@@ -796,7 +796,6 @@ static int usbhid_start(struct hid_device *hid) | |||
796 | if (insize > HID_MAX_BUFFER_SIZE) | 796 | if (insize > HID_MAX_BUFFER_SIZE) |
797 | insize = HID_MAX_BUFFER_SIZE; | 797 | insize = HID_MAX_BUFFER_SIZE; |
798 | 798 | ||
799 | mutex_lock(&usbhid->setup); | ||
800 | if (hid_alloc_buffers(dev, hid)) { | 799 | if (hid_alloc_buffers(dev, hid)) { |
801 | ret = -ENOMEM; | 800 | ret = -ENOMEM; |
802 | goto fail; | 801 | goto fail; |
@@ -876,7 +875,6 @@ static int usbhid_start(struct hid_device *hid) | |||
876 | hid_dump_device(hid); | 875 | hid_dump_device(hid); |
877 | 876 | ||
878 | set_bit(HID_STARTED, &usbhid->iofl); | 877 | set_bit(HID_STARTED, &usbhid->iofl); |
879 | mutex_unlock(&usbhid->setup); | ||
880 | 878 | ||
881 | return 0; | 879 | return 0; |
882 | 880 | ||
@@ -888,7 +886,6 @@ fail: | |||
888 | usbhid->urbout = NULL; | 886 | usbhid->urbout = NULL; |
889 | usbhid->urbctrl = NULL; | 887 | usbhid->urbctrl = NULL; |
890 | hid_free_buffers(dev, hid); | 888 | hid_free_buffers(dev, hid); |
891 | mutex_unlock(&usbhid->setup); | ||
892 | return ret; | 889 | return ret; |
893 | } | 890 | } |
894 | 891 | ||
@@ -899,7 +896,6 @@ static void usbhid_stop(struct hid_device *hid) | |||
899 | if (WARN_ON(!usbhid)) | 896 | if (WARN_ON(!usbhid)) |
900 | return; | 897 | return; |
901 | 898 | ||
902 | mutex_lock(&usbhid->setup); | ||
903 | clear_bit(HID_STARTED, &usbhid->iofl); | 899 | clear_bit(HID_STARTED, &usbhid->iofl); |
904 | spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ | 900 | spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ |
905 | set_bit(HID_DISCONNECTED, &usbhid->iofl); | 901 | set_bit(HID_DISCONNECTED, &usbhid->iofl); |
@@ -928,7 +924,6 @@ static void usbhid_stop(struct hid_device *hid) | |||
928 | usbhid->urbout = NULL; | 924 | usbhid->urbout = NULL; |
929 | 925 | ||
930 | hid_free_buffers(hid_to_usb_dev(hid), hid); | 926 | hid_free_buffers(hid_to_usb_dev(hid), hid); |
931 | mutex_unlock(&usbhid->setup); | ||
932 | } | 927 | } |
933 | 928 | ||
934 | static struct hid_ll_driver usb_hid_driver = { | 929 | static struct hid_ll_driver usb_hid_driver = { |
@@ -1016,7 +1011,6 @@ static int hid_probe(struct usb_interface *intf, const struct usb_device_id *id) | |||
1016 | 1011 | ||
1017 | hid->driver_data = usbhid; | 1012 | hid->driver_data = usbhid; |
1018 | usbhid->hid = hid; | 1013 | usbhid->hid = hid; |
1019 | mutex_init(&usbhid->setup); /* needed on suspend/resume */ | ||
1020 | 1014 | ||
1021 | ret = hid_add_device(hid); | 1015 | ret = hid_add_device(hid); |
1022 | if (ret) { | 1016 | if (ret) { |
@@ -1051,18 +1045,14 @@ static int hid_suspend(struct usb_interface *intf, pm_message_t message) | |||
1051 | struct hid_device *hid = usb_get_intfdata (intf); | 1045 | struct hid_device *hid = usb_get_intfdata (intf); |
1052 | struct usbhid_device *usbhid = hid->driver_data; | 1046 | struct usbhid_device *usbhid = hid->driver_data; |
1053 | 1047 | ||
1054 | mutex_lock(&usbhid->setup); | 1048 | if (!test_bit(HID_STARTED, &usbhid->iofl)) |
1055 | if (!test_bit(HID_STARTED, &usbhid->iofl)) { | ||
1056 | mutex_unlock(&usbhid->setup); | ||
1057 | return 0; | 1049 | return 0; |
1058 | } | ||
1059 | 1050 | ||
1060 | spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ | 1051 | spin_lock_irq(&usbhid->inlock); /* Sync with error handler */ |
1061 | set_bit(HID_SUSPENDED, &usbhid->iofl); | 1052 | set_bit(HID_SUSPENDED, &usbhid->iofl); |
1062 | spin_unlock_irq(&usbhid->inlock); | 1053 | spin_unlock_irq(&usbhid->inlock); |
1063 | del_timer_sync(&usbhid->io_retry); | 1054 | del_timer_sync(&usbhid->io_retry); |
1064 | usb_kill_urb(usbhid->urbin); | 1055 | usb_kill_urb(usbhid->urbin); |
1065 | mutex_unlock(&usbhid->setup); | ||
1066 | dev_dbg(&intf->dev, "suspend\n"); | 1056 | dev_dbg(&intf->dev, "suspend\n"); |
1067 | return 0; | 1057 | return 0; |
1068 | } | 1058 | } |
@@ -1073,16 +1063,12 @@ static int hid_resume(struct usb_interface *intf) | |||
1073 | struct usbhid_device *usbhid = hid->driver_data; | 1063 | struct usbhid_device *usbhid = hid->driver_data; |
1074 | int status; | 1064 | int status; |
1075 | 1065 | ||
1076 | mutex_lock(&usbhid->setup); | 1066 | if (!test_bit(HID_STARTED, &usbhid->iofl)) |
1077 | if (!test_bit(HID_STARTED, &usbhid->iofl)) { | ||
1078 | mutex_unlock(&usbhid->setup); | ||
1079 | return 0; | 1067 | return 0; |
1080 | } | ||
1081 | 1068 | ||
1082 | clear_bit(HID_SUSPENDED, &usbhid->iofl); | 1069 | clear_bit(HID_SUSPENDED, &usbhid->iofl); |
1083 | usbhid->retry_delay = 0; | 1070 | usbhid->retry_delay = 0; |
1084 | status = hid_start_in(hid); | 1071 | status = hid_start_in(hid); |
1085 | mutex_unlock(&usbhid->setup); | ||
1086 | dev_dbg(&intf->dev, "resume status %d\n", status); | 1072 | dev_dbg(&intf->dev, "resume status %d\n", status); |
1087 | return status; | 1073 | return status; |
1088 | } | 1074 | } |
diff --git a/drivers/hid/usbhid/usbhid.h b/drivers/hid/usbhid/usbhid.h index 55973ff54008..332abcdf9956 100644 --- a/drivers/hid/usbhid/usbhid.h +++ b/drivers/hid/usbhid/usbhid.h | |||
@@ -74,7 +74,6 @@ struct usbhid_device { | |||
74 | dma_addr_t outbuf_dma; /* Output buffer dma */ | 74 | dma_addr_t outbuf_dma; /* Output buffer dma */ |
75 | spinlock_t outlock; /* Output fifo spinlock */ | 75 | spinlock_t outlock; /* Output fifo spinlock */ |
76 | 76 | ||
77 | struct mutex setup; | ||
78 | unsigned long iofl; /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */ | 77 | unsigned long iofl; /* I/O flags (CTRL_RUNNING, OUT_RUNNING) */ |
79 | struct timer_list io_retry; /* Retry timer */ | 78 | struct timer_list io_retry; /* Retry timer */ |
80 | unsigned long stop_retry; /* Time to give up, in jiffies */ | 79 | unsigned long stop_retry; /* Time to give up, in jiffies */ |
diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c index f7dce8b9f64b..086c2a5cef0b 100644 --- a/drivers/hwmon/applesmc.c +++ b/drivers/hwmon/applesmc.c | |||
@@ -1564,3 +1564,4 @@ module_exit(applesmc_exit); | |||
1564 | MODULE_AUTHOR("Nicolas Boichat"); | 1564 | MODULE_AUTHOR("Nicolas Boichat"); |
1565 | MODULE_DESCRIPTION("Apple SMC"); | 1565 | MODULE_DESCRIPTION("Apple SMC"); |
1566 | MODULE_LICENSE("GPL v2"); | 1566 | MODULE_LICENSE("GPL v2"); |
1567 | MODULE_DEVICE_TABLE(dmi, applesmc_whitelist); | ||
diff --git a/drivers/i2c/busses/i2c-parport.c b/drivers/i2c/busses/i2c-parport.c index 59ba2086d2f9..a257cd5cd134 100644 --- a/drivers/i2c/busses/i2c-parport.c +++ b/drivers/i2c/busses/i2c-parport.c | |||
@@ -189,8 +189,6 @@ static void i2c_parport_attach (struct parport *port) | |||
189 | if (adapter_parm[type].init.val) | 189 | if (adapter_parm[type].init.val) |
190 | line_set(port, 1, &adapter_parm[type].init); | 190 | line_set(port, 1, &adapter_parm[type].init); |
191 | 191 | ||
192 | parport_release(adapter->pdev); | ||
193 | |||
194 | if (i2c_bit_add_bus(&adapter->adapter) < 0) { | 192 | if (i2c_bit_add_bus(&adapter->adapter) < 0) { |
195 | printk(KERN_ERR "i2c-parport: Unable to register with I2C\n"); | 193 | printk(KERN_ERR "i2c-parport: Unable to register with I2C\n"); |
196 | goto ERROR1; | 194 | goto ERROR1; |
@@ -202,6 +200,7 @@ static void i2c_parport_attach (struct parport *port) | |||
202 | return; | 200 | return; |
203 | 201 | ||
204 | ERROR1: | 202 | ERROR1: |
203 | parport_release(adapter->pdev); | ||
205 | parport_unregister_device(adapter->pdev); | 204 | parport_unregister_device(adapter->pdev); |
206 | ERROR0: | 205 | ERROR0: |
207 | kfree(adapter); | 206 | kfree(adapter); |
@@ -221,6 +220,7 @@ static void i2c_parport_detach (struct parport *port) | |||
221 | if (adapter_parm[type].init.val) | 220 | if (adapter_parm[type].init.val) |
222 | line_set(port, 0, &adapter_parm[type].init); | 221 | line_set(port, 0, &adapter_parm[type].init); |
223 | 222 | ||
223 | parport_release(adapter->pdev); | ||
224 | parport_unregister_device(adapter->pdev); | 224 | parport_unregister_device(adapter->pdev); |
225 | if (prev) | 225 | if (prev) |
226 | prev->next = adapter->next; | 226 | prev->next = adapter->next; |
diff --git a/drivers/i2c/chips/isp1301_omap.c b/drivers/i2c/chips/isp1301_omap.c index 28902ebd5539..e0d56ef2bcb0 100644 --- a/drivers/i2c/chips/isp1301_omap.c +++ b/drivers/i2c/chips/isp1301_omap.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
28 | #include <linux/gpio.h> | ||
28 | #include <linux/usb/ch9.h> | 29 | #include <linux/usb/ch9.h> |
29 | #include <linux/usb/gadget.h> | 30 | #include <linux/usb/gadget.h> |
30 | #include <linux/usb.h> | 31 | #include <linux/usb.h> |
@@ -33,7 +34,10 @@ | |||
33 | #include <linux/workqueue.h> | 34 | #include <linux/workqueue.h> |
34 | 35 | ||
35 | #include <asm/irq.h> | 36 | #include <asm/irq.h> |
37 | #include <asm/mach-types.h> | ||
38 | |||
36 | #include <mach/usb.h> | 39 | #include <mach/usb.h> |
40 | #include <mach/mux.h> | ||
37 | 41 | ||
38 | 42 | ||
39 | #ifndef DEBUG | 43 | #ifndef DEBUG |
@@ -88,14 +92,9 @@ struct isp1301 { | |||
88 | 92 | ||
89 | /*-------------------------------------------------------------------------*/ | 93 | /*-------------------------------------------------------------------------*/ |
90 | 94 | ||
91 | #ifdef CONFIG_MACH_OMAP_H2 | ||
92 | |||
93 | /* board-specific PM hooks */ | 95 | /* board-specific PM hooks */ |
94 | 96 | ||
95 | #include <asm/gpio.h> | 97 | #if defined(CONFIG_MACH_OMAP_H2) || defined(CONFIG_MACH_OMAP_H3) |
96 | #include <mach/mux.h> | ||
97 | #include <asm/mach-types.h> | ||
98 | |||
99 | 98 | ||
100 | #if defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE) | 99 | #if defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE) |
101 | 100 | ||
@@ -135,6 +134,33 @@ static inline void notresponding(struct isp1301 *isp) | |||
135 | 134 | ||
136 | #endif | 135 | #endif |
137 | 136 | ||
137 | #if defined(CONFIG_MACH_OMAP_H4) | ||
138 | |||
139 | static void enable_vbus_draw(struct isp1301 *isp, unsigned mA) | ||
140 | { | ||
141 | /* H4 controls this by DIP switch S2.4; no soft control. | ||
142 | * ON means the charger is always enabled. Leave it OFF | ||
143 | * unless the OTG port is used only in B-peripheral mode. | ||
144 | */ | ||
145 | } | ||
146 | |||
147 | static void enable_vbus_source(struct isp1301 *isp) | ||
148 | { | ||
149 | /* this board won't supply more than 8mA vbus power. | ||
150 | * some boards can switch a 100ma "unit load" (or more). | ||
151 | */ | ||
152 | } | ||
153 | |||
154 | |||
155 | /* products will deliver OTG messages with LEDs, GUI, etc */ | ||
156 | static inline void notresponding(struct isp1301 *isp) | ||
157 | { | ||
158 | printk(KERN_NOTICE "OTG device not responding.\n"); | ||
159 | } | ||
160 | |||
161 | |||
162 | #endif | ||
163 | |||
138 | /*-------------------------------------------------------------------------*/ | 164 | /*-------------------------------------------------------------------------*/ |
139 | 165 | ||
140 | static struct i2c_driver isp1301_driver; | 166 | static struct i2c_driver isp1301_driver; |
@@ -334,8 +360,7 @@ static int gadget_suspend(struct isp1301 *isp) | |||
334 | * NOTE: guaranteeing certain response times might mean we shouldn't | 360 | * NOTE: guaranteeing certain response times might mean we shouldn't |
335 | * share keventd's work queue; a realtime task might be safest. | 361 | * share keventd's work queue; a realtime task might be safest. |
336 | */ | 362 | */ |
337 | void | 363 | static void isp1301_defer_work(struct isp1301 *isp, int work) |
338 | isp1301_defer_work(struct isp1301 *isp, int work) | ||
339 | { | 364 | { |
340 | int status; | 365 | int status; |
341 | 366 | ||
@@ -512,7 +537,6 @@ static void update_otg1(struct isp1301 *isp, u8 int_src) | |||
512 | otg_ctrl &= ~OTG_XCEIV_INPUTS; | 537 | otg_ctrl &= ~OTG_XCEIV_INPUTS; |
513 | otg_ctrl &= ~(OTG_ID|OTG_ASESSVLD|OTG_VBUSVLD); | 538 | otg_ctrl &= ~(OTG_ID|OTG_ASESSVLD|OTG_VBUSVLD); |
514 | 539 | ||
515 | |||
516 | if (int_src & INTR_SESS_VLD) | 540 | if (int_src & INTR_SESS_VLD) |
517 | otg_ctrl |= OTG_ASESSVLD; | 541 | otg_ctrl |= OTG_ASESSVLD; |
518 | else if (isp->otg.state == OTG_STATE_A_WAIT_VFALL) { | 542 | else if (isp->otg.state == OTG_STATE_A_WAIT_VFALL) { |
@@ -886,11 +910,11 @@ static int otg_probe(struct platform_device *dev) | |||
886 | 910 | ||
887 | static int otg_remove(struct platform_device *dev) | 911 | static int otg_remove(struct platform_device *dev) |
888 | { | 912 | { |
889 | otg_dev = 0; | 913 | otg_dev = NULL; |
890 | return 0; | 914 | return 0; |
891 | } | 915 | } |
892 | 916 | ||
893 | struct platform_driver omap_otg_driver = { | 917 | static struct platform_driver omap_otg_driver = { |
894 | .probe = otg_probe, | 918 | .probe = otg_probe, |
895 | .remove = otg_remove, | 919 | .remove = otg_remove, |
896 | .driver = { | 920 | .driver = { |
@@ -1212,6 +1236,8 @@ static void isp1301_release(struct device *dev) | |||
1212 | 1236 | ||
1213 | isp = dev_get_drvdata(dev); | 1237 | isp = dev_get_drvdata(dev); |
1214 | 1238 | ||
1239 | /* FIXME -- not with a "new style" driver, it doesn't!! */ | ||
1240 | |||
1215 | /* ugly -- i2c hijacks our memory hook to wait_for_completion() */ | 1241 | /* ugly -- i2c hijacks our memory hook to wait_for_completion() */ |
1216 | if (isp->i2c_release) | 1242 | if (isp->i2c_release) |
1217 | isp->i2c_release(dev); | 1243 | isp->i2c_release(dev); |
@@ -1233,7 +1259,7 @@ static int __exit isp1301_remove(struct i2c_client *i2c) | |||
1233 | otg_unbind(isp); | 1259 | otg_unbind(isp); |
1234 | #endif | 1260 | #endif |
1235 | if (machine_is_omap_h2()) | 1261 | if (machine_is_omap_h2()) |
1236 | omap_free_gpio(2); | 1262 | gpio_free(2); |
1237 | 1263 | ||
1238 | isp->timer.data = 0; | 1264 | isp->timer.data = 0; |
1239 | set_bit(WORK_STOP, &isp->todo); | 1265 | set_bit(WORK_STOP, &isp->todo); |
@@ -1241,7 +1267,7 @@ static int __exit isp1301_remove(struct i2c_client *i2c) | |||
1241 | flush_scheduled_work(); | 1267 | flush_scheduled_work(); |
1242 | 1268 | ||
1243 | put_device(&i2c->dev); | 1269 | put_device(&i2c->dev); |
1244 | the_transceiver = 0; | 1270 | the_transceiver = NULL; |
1245 | 1271 | ||
1246 | return 0; | 1272 | return 0; |
1247 | } | 1273 | } |
@@ -1295,7 +1321,7 @@ isp1301_set_host(struct otg_transceiver *otg, struct usb_bus *host) | |||
1295 | if (!host) { | 1321 | if (!host) { |
1296 | omap_writew(0, OTG_IRQ_EN); | 1322 | omap_writew(0, OTG_IRQ_EN); |
1297 | power_down(isp); | 1323 | power_down(isp); |
1298 | isp->otg.host = 0; | 1324 | isp->otg.host = NULL; |
1299 | return 0; | 1325 | return 0; |
1300 | } | 1326 | } |
1301 | 1327 | ||
@@ -1344,7 +1370,9 @@ static int | |||
1344 | isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget) | 1370 | isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget) |
1345 | { | 1371 | { |
1346 | struct isp1301 *isp = container_of(otg, struct isp1301, otg); | 1372 | struct isp1301 *isp = container_of(otg, struct isp1301, otg); |
1373 | #ifndef CONFIG_USB_OTG | ||
1347 | u32 l; | 1374 | u32 l; |
1375 | #endif | ||
1348 | 1376 | ||
1349 | if (!otg || isp != the_transceiver) | 1377 | if (!otg || isp != the_transceiver) |
1350 | return -ENODEV; | 1378 | return -ENODEV; |
@@ -1354,7 +1382,7 @@ isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget) | |||
1354 | if (!isp->otg.default_a) | 1382 | if (!isp->otg.default_a) |
1355 | enable_vbus_draw(isp, 0); | 1383 | enable_vbus_draw(isp, 0); |
1356 | usb_gadget_vbus_disconnect(isp->otg.gadget); | 1384 | usb_gadget_vbus_disconnect(isp->otg.gadget); |
1357 | isp->otg.gadget = 0; | 1385 | isp->otg.gadget = NULL; |
1358 | power_down(isp); | 1386 | power_down(isp); |
1359 | return 0; | 1387 | return 0; |
1360 | } | 1388 | } |
@@ -1379,7 +1407,7 @@ isp1301_set_peripheral(struct otg_transceiver *otg, struct usb_gadget *gadget) | |||
1379 | power_up(isp); | 1407 | power_up(isp); |
1380 | isp->otg.state = OTG_STATE_B_IDLE; | 1408 | isp->otg.state = OTG_STATE_B_IDLE; |
1381 | 1409 | ||
1382 | if (machine_is_omap_h2()) | 1410 | if (machine_is_omap_h2() || machine_is_omap_h3()) |
1383 | isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); | 1411 | isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0); |
1384 | 1412 | ||
1385 | isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, | 1413 | isp1301_set_bits(isp, ISP1301_INTERRUPT_RISING, |
@@ -1499,7 +1527,8 @@ isp1301_start_hnp(struct otg_transceiver *dev) | |||
1499 | 1527 | ||
1500 | /*-------------------------------------------------------------------------*/ | 1528 | /*-------------------------------------------------------------------------*/ |
1501 | 1529 | ||
1502 | static int __init isp1301_probe(struct i2c_client *i2c) | 1530 | static int __init |
1531 | isp1301_probe(struct i2c_client *i2c, const struct i2c_device_id *id) | ||
1503 | { | 1532 | { |
1504 | int status; | 1533 | int status; |
1505 | struct isp1301 *isp; | 1534 | struct isp1301 *isp; |
@@ -1647,7 +1676,7 @@ module_init(isp_init); | |||
1647 | static void __exit isp_exit(void) | 1676 | static void __exit isp_exit(void) |
1648 | { | 1677 | { |
1649 | if (the_transceiver) | 1678 | if (the_transceiver) |
1650 | otg_set_transceiver(0); | 1679 | otg_set_transceiver(NULL); |
1651 | i2c_del_driver(&isp1301_driver); | 1680 | i2c_del_driver(&isp1301_driver); |
1652 | } | 1681 | } |
1653 | module_exit(isp_exit); | 1682 | module_exit(isp_exit); |
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 5a485c22660a..c6a63f46bc15 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -631,7 +631,7 @@ int i2c_del_adapter(struct i2c_adapter *adap) | |||
631 | 631 | ||
632 | /* detach any active clients. This must be done first, because | 632 | /* detach any active clients. This must be done first, because |
633 | * it can fail; in which case we give up. */ | 633 | * it can fail; in which case we give up. */ |
634 | list_for_each_entry_safe(client, _n, &adap->clients, list) { | 634 | list_for_each_entry_safe_reverse(client, _n, &adap->clients, list) { |
635 | struct i2c_driver *driver; | 635 | struct i2c_driver *driver; |
636 | 636 | ||
637 | driver = client->driver; | 637 | driver = client->driver; |
diff --git a/drivers/ide/icside.c b/drivers/ide/icside.c index 2d848010499d..81f70caeb40f 100644 --- a/drivers/ide/icside.c +++ b/drivers/ide/icside.c | |||
@@ -419,7 +419,7 @@ static void icside_setup_ports(hw_regs_t *hw, void __iomem *base, | |||
419 | hw->chipset = ide_acorn; | 419 | hw->chipset = ide_acorn; |
420 | } | 420 | } |
421 | 421 | ||
422 | static int __init | 422 | static int __devinit |
423 | icside_register_v5(struct icside_state *state, struct expansion_card *ec) | 423 | icside_register_v5(struct icside_state *state, struct expansion_card *ec) |
424 | { | 424 | { |
425 | void __iomem *base; | 425 | void __iomem *base; |
@@ -473,7 +473,7 @@ static const struct ide_port_info icside_v6_port_info __initdata = { | |||
473 | .swdma_mask = ATA_SWDMA2, | 473 | .swdma_mask = ATA_SWDMA2, |
474 | }; | 474 | }; |
475 | 475 | ||
476 | static int __init | 476 | static int __devinit |
477 | icside_register_v6(struct icside_state *state, struct expansion_card *ec) | 477 | icside_register_v6(struct icside_state *state, struct expansion_card *ec) |
478 | { | 478 | { |
479 | void __iomem *ioc_base, *easi_base; | 479 | void __iomem *ioc_base, *easi_base; |
diff --git a/drivers/ieee1394/highlevel.c b/drivers/ieee1394/highlevel.c index 918ffc4fc8ac..272543a42a43 100644 --- a/drivers/ieee1394/highlevel.c +++ b/drivers/ieee1394/highlevel.c | |||
@@ -46,10 +46,6 @@ static DEFINE_RWLOCK(hl_irqs_lock); | |||
46 | 46 | ||
47 | static DEFINE_RWLOCK(addr_space_lock); | 47 | static DEFINE_RWLOCK(addr_space_lock); |
48 | 48 | ||
49 | /* addr_space list will have zero and max already included as bounds */ | ||
50 | static struct hpsb_address_ops dummy_ops = { NULL, NULL, NULL, NULL }; | ||
51 | static struct hpsb_address_serve dummy_zero_addr, dummy_max_addr; | ||
52 | |||
53 | 49 | ||
54 | static struct hl_host_info *hl_get_hostinfo(struct hpsb_highlevel *hl, | 50 | static struct hl_host_info *hl_get_hostinfo(struct hpsb_highlevel *hl, |
55 | struct hpsb_host *host) | 51 | struct hpsb_host *host) |
@@ -481,20 +477,23 @@ int hpsb_unregister_addrspace(struct hpsb_highlevel *hl, struct hpsb_host *host, | |||
481 | return retval; | 477 | return retval; |
482 | } | 478 | } |
483 | 479 | ||
480 | static struct hpsb_address_ops dummy_ops; | ||
481 | |||
482 | /* dummy address spaces as lower and upper bounds of the host's a.s. list */ | ||
484 | static void init_hpsb_highlevel(struct hpsb_host *host) | 483 | static void init_hpsb_highlevel(struct hpsb_host *host) |
485 | { | 484 | { |
486 | INIT_LIST_HEAD(&dummy_zero_addr.host_list); | 485 | INIT_LIST_HEAD(&host->dummy_zero_addr.host_list); |
487 | INIT_LIST_HEAD(&dummy_zero_addr.hl_list); | 486 | INIT_LIST_HEAD(&host->dummy_zero_addr.hl_list); |
488 | INIT_LIST_HEAD(&dummy_max_addr.host_list); | 487 | INIT_LIST_HEAD(&host->dummy_max_addr.host_list); |
489 | INIT_LIST_HEAD(&dummy_max_addr.hl_list); | 488 | INIT_LIST_HEAD(&host->dummy_max_addr.hl_list); |
490 | 489 | ||
491 | dummy_zero_addr.op = dummy_max_addr.op = &dummy_ops; | 490 | host->dummy_zero_addr.op = host->dummy_max_addr.op = &dummy_ops; |
492 | 491 | ||
493 | dummy_zero_addr.start = dummy_zero_addr.end = 0; | 492 | host->dummy_zero_addr.start = host->dummy_zero_addr.end = 0; |
494 | dummy_max_addr.start = dummy_max_addr.end = ((u64) 1) << 48; | 493 | host->dummy_max_addr.start = host->dummy_max_addr.end = ((u64) 1) << 48; |
495 | 494 | ||
496 | list_add_tail(&dummy_zero_addr.host_list, &host->addr_space); | 495 | list_add_tail(&host->dummy_zero_addr.host_list, &host->addr_space); |
497 | list_add_tail(&dummy_max_addr.host_list, &host->addr_space); | 496 | list_add_tail(&host->dummy_max_addr.host_list, &host->addr_space); |
498 | } | 497 | } |
499 | 498 | ||
500 | void highlevel_add_host(struct hpsb_host *host) | 499 | void highlevel_add_host(struct hpsb_host *host) |
diff --git a/drivers/ieee1394/hosts.h b/drivers/ieee1394/hosts.h index e4e8aeb4d778..dd229950acca 100644 --- a/drivers/ieee1394/hosts.h +++ b/drivers/ieee1394/hosts.h | |||
@@ -13,6 +13,7 @@ struct module; | |||
13 | 13 | ||
14 | #include "ieee1394_types.h" | 14 | #include "ieee1394_types.h" |
15 | #include "csr.h" | 15 | #include "csr.h" |
16 | #include "highlevel.h" | ||
16 | 17 | ||
17 | struct hpsb_packet; | 18 | struct hpsb_packet; |
18 | struct hpsb_iso; | 19 | struct hpsb_iso; |
@@ -72,6 +73,9 @@ struct hpsb_host { | |||
72 | struct { DECLARE_BITMAP(map, 64); } tl_pool[ALL_NODES]; | 73 | struct { DECLARE_BITMAP(map, 64); } tl_pool[ALL_NODES]; |
73 | 74 | ||
74 | struct csr_control csr; | 75 | struct csr_control csr; |
76 | |||
77 | struct hpsb_address_serve dummy_zero_addr; | ||
78 | struct hpsb_address_serve dummy_max_addr; | ||
75 | }; | 79 | }; |
76 | 80 | ||
77 | enum devctl_cmd { | 81 | enum devctl_cmd { |
diff --git a/drivers/ieee1394/sbp2.c b/drivers/ieee1394/sbp2.c index c52f6e6e8af2..a373c18cf7b8 100644 --- a/drivers/ieee1394/sbp2.c +++ b/drivers/ieee1394/sbp2.c | |||
@@ -402,6 +402,11 @@ static const struct { | |||
402 | }, | 402 | }, |
403 | /* iPod mini */ { | 403 | /* iPod mini */ { |
404 | .firmware_revision = 0x0a2700, | 404 | .firmware_revision = 0x0a2700, |
405 | .model_id = 0x000022, | ||
406 | .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, | ||
407 | }, | ||
408 | /* iPod mini */ { | ||
409 | .firmware_revision = 0x0a2700, | ||
405 | .model_id = 0x000023, | 410 | .model_id = 0x000023, |
406 | .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, | 411 | .workarounds = SBP2_WORKAROUND_FIX_CAPACITY, |
407 | }, | 412 | }, |
@@ -890,12 +895,13 @@ static void sbp2_host_reset(struct hpsb_host *host) | |||
890 | return; | 895 | return; |
891 | 896 | ||
892 | read_lock_irqsave(&sbp2_hi_logical_units_lock, flags); | 897 | read_lock_irqsave(&sbp2_hi_logical_units_lock, flags); |
898 | |||
893 | list_for_each_entry(lu, &hi->logical_units, lu_list) | 899 | list_for_each_entry(lu, &hi->logical_units, lu_list) |
894 | if (likely(atomic_read(&lu->state) != | 900 | if (atomic_cmpxchg(&lu->state, |
895 | SBP2LU_STATE_IN_SHUTDOWN)) { | 901 | SBP2LU_STATE_RUNNING, SBP2LU_STATE_IN_RESET) |
896 | atomic_set(&lu->state, SBP2LU_STATE_IN_RESET); | 902 | == SBP2LU_STATE_RUNNING) |
897 | scsi_block_requests(lu->shost); | 903 | scsi_block_requests(lu->shost); |
898 | } | 904 | |
899 | read_unlock_irqrestore(&sbp2_hi_logical_units_lock, flags); | 905 | read_unlock_irqrestore(&sbp2_hi_logical_units_lock, flags); |
900 | } | 906 | } |
901 | 907 | ||
diff --git a/drivers/infiniband/hw/ehca/ehca_classes.h b/drivers/infiniband/hw/ehca/ehca_classes.h index 4df887af66a5..7fc35cf0cddf 100644 --- a/drivers/infiniband/hw/ehca/ehca_classes.h +++ b/drivers/infiniband/hw/ehca/ehca_classes.h | |||
@@ -163,7 +163,8 @@ struct ehca_mod_qp_parm { | |||
163 | /* struct for tracking if cqes have been reported to the application */ | 163 | /* struct for tracking if cqes have been reported to the application */ |
164 | struct ehca_qmap_entry { | 164 | struct ehca_qmap_entry { |
165 | u16 app_wr_id; | 165 | u16 app_wr_id; |
166 | u16 reported; | 166 | u8 reported; |
167 | u8 cqe_req; | ||
167 | }; | 168 | }; |
168 | 169 | ||
169 | struct ehca_queue_map { | 170 | struct ehca_queue_map { |
@@ -171,6 +172,7 @@ struct ehca_queue_map { | |||
171 | unsigned int entries; | 172 | unsigned int entries; |
172 | unsigned int tail; | 173 | unsigned int tail; |
173 | unsigned int left_to_poll; | 174 | unsigned int left_to_poll; |
175 | unsigned int next_wqe_idx; /* Idx to first wqe to be flushed */ | ||
174 | }; | 176 | }; |
175 | 177 | ||
176 | struct ehca_qp { | 178 | struct ehca_qp { |
diff --git a/drivers/infiniband/hw/ehca/ehca_main.c b/drivers/infiniband/hw/ehca/ehca_main.c index bb02a86aa526..bec7e0249358 100644 --- a/drivers/infiniband/hw/ehca/ehca_main.c +++ b/drivers/infiniband/hw/ehca/ehca_main.c | |||
@@ -994,8 +994,7 @@ static int ehca_mem_notifier(struct notifier_block *nb, | |||
994 | if (printk_timed_ratelimit(&ehca_dmem_warn_time, | 994 | if (printk_timed_ratelimit(&ehca_dmem_warn_time, |
995 | 30 * 1000)) | 995 | 30 * 1000)) |
996 | ehca_gen_err("DMEM operations are not allowed" | 996 | ehca_gen_err("DMEM operations are not allowed" |
997 | "as long as an ehca adapter is" | 997 | "in conjunction with eHCA"); |
998 | "attached to the LPAR"); | ||
999 | return NOTIFY_BAD; | 998 | return NOTIFY_BAD; |
1000 | } | 999 | } |
1001 | } | 1000 | } |
diff --git a/drivers/infiniband/hw/ehca/ehca_qp.c b/drivers/infiniband/hw/ehca/ehca_qp.c index 9e05ee2db39b..cadbf0cdd910 100644 --- a/drivers/infiniband/hw/ehca/ehca_qp.c +++ b/drivers/infiniband/hw/ehca/ehca_qp.c | |||
@@ -435,9 +435,13 @@ static void reset_queue_map(struct ehca_queue_map *qmap) | |||
435 | { | 435 | { |
436 | int i; | 436 | int i; |
437 | 437 | ||
438 | qmap->tail = 0; | 438 | qmap->tail = qmap->entries - 1; |
439 | for (i = 0; i < qmap->entries; i++) | 439 | qmap->left_to_poll = 0; |
440 | qmap->next_wqe_idx = 0; | ||
441 | for (i = 0; i < qmap->entries; i++) { | ||
440 | qmap->map[i].reported = 1; | 442 | qmap->map[i].reported = 1; |
443 | qmap->map[i].cqe_req = 0; | ||
444 | } | ||
441 | } | 445 | } |
442 | 446 | ||
443 | /* | 447 | /* |
@@ -1121,6 +1125,7 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue, | |||
1121 | void *wqe_v; | 1125 | void *wqe_v; |
1122 | u64 q_ofs; | 1126 | u64 q_ofs; |
1123 | u32 wqe_idx; | 1127 | u32 wqe_idx; |
1128 | unsigned int tail_idx; | ||
1124 | 1129 | ||
1125 | /* convert real to abs address */ | 1130 | /* convert real to abs address */ |
1126 | wqe_p = wqe_p & (~(1UL << 63)); | 1131 | wqe_p = wqe_p & (~(1UL << 63)); |
@@ -1133,12 +1138,17 @@ static int calc_left_cqes(u64 wqe_p, struct ipz_queue *ipz_queue, | |||
1133 | return -EFAULT; | 1138 | return -EFAULT; |
1134 | } | 1139 | } |
1135 | 1140 | ||
1141 | tail_idx = (qmap->tail + 1) % qmap->entries; | ||
1136 | wqe_idx = q_ofs / ipz_queue->qe_size; | 1142 | wqe_idx = q_ofs / ipz_queue->qe_size; |
1137 | if (wqe_idx < qmap->tail) | ||
1138 | qmap->left_to_poll = (qmap->entries - qmap->tail) + wqe_idx; | ||
1139 | else | ||
1140 | qmap->left_to_poll = wqe_idx - qmap->tail; | ||
1141 | 1143 | ||
1144 | /* check all processed wqes, whether a cqe is requested or not */ | ||
1145 | while (tail_idx != wqe_idx) { | ||
1146 | if (qmap->map[tail_idx].cqe_req) | ||
1147 | qmap->left_to_poll++; | ||
1148 | tail_idx = (tail_idx + 1) % qmap->entries; | ||
1149 | } | ||
1150 | /* save index in queue, where we have to start flushing */ | ||
1151 | qmap->next_wqe_idx = wqe_idx; | ||
1142 | return 0; | 1152 | return 0; |
1143 | } | 1153 | } |
1144 | 1154 | ||
@@ -1185,10 +1195,14 @@ static int check_for_left_cqes(struct ehca_qp *my_qp, struct ehca_shca *shca) | |||
1185 | } else { | 1195 | } else { |
1186 | spin_lock_irqsave(&my_qp->send_cq->spinlock, flags); | 1196 | spin_lock_irqsave(&my_qp->send_cq->spinlock, flags); |
1187 | my_qp->sq_map.left_to_poll = 0; | 1197 | my_qp->sq_map.left_to_poll = 0; |
1198 | my_qp->sq_map.next_wqe_idx = (my_qp->sq_map.tail + 1) % | ||
1199 | my_qp->sq_map.entries; | ||
1188 | spin_unlock_irqrestore(&my_qp->send_cq->spinlock, flags); | 1200 | spin_unlock_irqrestore(&my_qp->send_cq->spinlock, flags); |
1189 | 1201 | ||
1190 | spin_lock_irqsave(&my_qp->recv_cq->spinlock, flags); | 1202 | spin_lock_irqsave(&my_qp->recv_cq->spinlock, flags); |
1191 | my_qp->rq_map.left_to_poll = 0; | 1203 | my_qp->rq_map.left_to_poll = 0; |
1204 | my_qp->rq_map.next_wqe_idx = (my_qp->rq_map.tail + 1) % | ||
1205 | my_qp->rq_map.entries; | ||
1192 | spin_unlock_irqrestore(&my_qp->recv_cq->spinlock, flags); | 1206 | spin_unlock_irqrestore(&my_qp->recv_cq->spinlock, flags); |
1193 | } | 1207 | } |
1194 | 1208 | ||
diff --git a/drivers/infiniband/hw/ehca/ehca_reqs.c b/drivers/infiniband/hw/ehca/ehca_reqs.c index 64928079eafa..00a648f4316c 100644 --- a/drivers/infiniband/hw/ehca/ehca_reqs.c +++ b/drivers/infiniband/hw/ehca/ehca_reqs.c | |||
@@ -179,6 +179,7 @@ static inline int ehca_write_swqe(struct ehca_qp *qp, | |||
179 | 179 | ||
180 | qmap_entry->app_wr_id = get_app_wr_id(send_wr->wr_id); | 180 | qmap_entry->app_wr_id = get_app_wr_id(send_wr->wr_id); |
181 | qmap_entry->reported = 0; | 181 | qmap_entry->reported = 0; |
182 | qmap_entry->cqe_req = 0; | ||
182 | 183 | ||
183 | switch (send_wr->opcode) { | 184 | switch (send_wr->opcode) { |
184 | case IB_WR_SEND: | 185 | case IB_WR_SEND: |
@@ -203,8 +204,10 @@ static inline int ehca_write_swqe(struct ehca_qp *qp, | |||
203 | 204 | ||
204 | if ((send_wr->send_flags & IB_SEND_SIGNALED || | 205 | if ((send_wr->send_flags & IB_SEND_SIGNALED || |
205 | qp->init_attr.sq_sig_type == IB_SIGNAL_ALL_WR) | 206 | qp->init_attr.sq_sig_type == IB_SIGNAL_ALL_WR) |
206 | && !hidden) | 207 | && !hidden) { |
207 | wqe_p->wr_flag |= WQE_WRFLAG_REQ_SIGNAL_COM; | 208 | wqe_p->wr_flag |= WQE_WRFLAG_REQ_SIGNAL_COM; |
209 | qmap_entry->cqe_req = 1; | ||
210 | } | ||
208 | 211 | ||
209 | if (send_wr->opcode == IB_WR_SEND_WITH_IMM || | 212 | if (send_wr->opcode == IB_WR_SEND_WITH_IMM || |
210 | send_wr->opcode == IB_WR_RDMA_WRITE_WITH_IMM) { | 213 | send_wr->opcode == IB_WR_RDMA_WRITE_WITH_IMM) { |
@@ -569,6 +572,7 @@ static int internal_post_recv(struct ehca_qp *my_qp, | |||
569 | qmap_entry = &my_qp->rq_map.map[rq_map_idx]; | 572 | qmap_entry = &my_qp->rq_map.map[rq_map_idx]; |
570 | qmap_entry->app_wr_id = get_app_wr_id(cur_recv_wr->wr_id); | 573 | qmap_entry->app_wr_id = get_app_wr_id(cur_recv_wr->wr_id); |
571 | qmap_entry->reported = 0; | 574 | qmap_entry->reported = 0; |
575 | qmap_entry->cqe_req = 1; | ||
572 | 576 | ||
573 | wqe_cnt++; | 577 | wqe_cnt++; |
574 | } /* eof for cur_recv_wr */ | 578 | } /* eof for cur_recv_wr */ |
@@ -706,27 +710,34 @@ repoll: | |||
706 | goto repoll; | 710 | goto repoll; |
707 | wc->qp = &my_qp->ib_qp; | 711 | wc->qp = &my_qp->ib_qp; |
708 | 712 | ||
713 | qmap_tail_idx = get_app_wr_id(cqe->work_request_id); | ||
714 | if (!(cqe->w_completion_flags & WC_SEND_RECEIVE_BIT)) | ||
715 | /* We got a send completion. */ | ||
716 | qmap = &my_qp->sq_map; | ||
717 | else | ||
718 | /* We got a receive completion. */ | ||
719 | qmap = &my_qp->rq_map; | ||
720 | |||
721 | /* advance the tail pointer */ | ||
722 | qmap->tail = qmap_tail_idx; | ||
723 | |||
709 | if (is_error) { | 724 | if (is_error) { |
710 | /* | 725 | /* |
711 | * set left_to_poll to 0 because in error state, we will not | 726 | * set left_to_poll to 0 because in error state, we will not |
712 | * get any additional CQEs | 727 | * get any additional CQEs |
713 | */ | 728 | */ |
714 | ehca_add_to_err_list(my_qp, 1); | 729 | my_qp->sq_map.next_wqe_idx = (my_qp->sq_map.tail + 1) % |
730 | my_qp->sq_map.entries; | ||
715 | my_qp->sq_map.left_to_poll = 0; | 731 | my_qp->sq_map.left_to_poll = 0; |
732 | ehca_add_to_err_list(my_qp, 1); | ||
716 | 733 | ||
734 | my_qp->rq_map.next_wqe_idx = (my_qp->rq_map.tail + 1) % | ||
735 | my_qp->rq_map.entries; | ||
736 | my_qp->rq_map.left_to_poll = 0; | ||
717 | if (HAS_RQ(my_qp)) | 737 | if (HAS_RQ(my_qp)) |
718 | ehca_add_to_err_list(my_qp, 0); | 738 | ehca_add_to_err_list(my_qp, 0); |
719 | my_qp->rq_map.left_to_poll = 0; | ||
720 | } | 739 | } |
721 | 740 | ||
722 | qmap_tail_idx = get_app_wr_id(cqe->work_request_id); | ||
723 | if (!(cqe->w_completion_flags & WC_SEND_RECEIVE_BIT)) | ||
724 | /* We got a send completion. */ | ||
725 | qmap = &my_qp->sq_map; | ||
726 | else | ||
727 | /* We got a receive completion. */ | ||
728 | qmap = &my_qp->rq_map; | ||
729 | |||
730 | qmap_entry = &qmap->map[qmap_tail_idx]; | 741 | qmap_entry = &qmap->map[qmap_tail_idx]; |
731 | if (qmap_entry->reported) { | 742 | if (qmap_entry->reported) { |
732 | ehca_warn(cq->device, "Double cqe on qp_num=%#x", | 743 | ehca_warn(cq->device, "Double cqe on qp_num=%#x", |
@@ -738,10 +749,6 @@ repoll: | |||
738 | wc->wr_id = replace_wr_id(cqe->work_request_id, qmap_entry->app_wr_id); | 749 | wc->wr_id = replace_wr_id(cqe->work_request_id, qmap_entry->app_wr_id); |
739 | qmap_entry->reported = 1; | 750 | qmap_entry->reported = 1; |
740 | 751 | ||
741 | /* this is a proper completion, we need to advance the tail pointer */ | ||
742 | if (++qmap->tail == qmap->entries) | ||
743 | qmap->tail = 0; | ||
744 | |||
745 | /* if left_to_poll is decremented to 0, add the QP to the error list */ | 752 | /* if left_to_poll is decremented to 0, add the QP to the error list */ |
746 | if (qmap->left_to_poll > 0) { | 753 | if (qmap->left_to_poll > 0) { |
747 | qmap->left_to_poll--; | 754 | qmap->left_to_poll--; |
@@ -805,13 +812,14 @@ static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq, | |||
805 | else | 812 | else |
806 | qmap = &my_qp->rq_map; | 813 | qmap = &my_qp->rq_map; |
807 | 814 | ||
808 | qmap_entry = &qmap->map[qmap->tail]; | 815 | qmap_entry = &qmap->map[qmap->next_wqe_idx]; |
809 | 816 | ||
810 | while ((nr < num_entries) && (qmap_entry->reported == 0)) { | 817 | while ((nr < num_entries) && (qmap_entry->reported == 0)) { |
811 | /* generate flush CQE */ | 818 | /* generate flush CQE */ |
819 | |||
812 | memset(wc, 0, sizeof(*wc)); | 820 | memset(wc, 0, sizeof(*wc)); |
813 | 821 | ||
814 | offset = qmap->tail * ipz_queue->qe_size; | 822 | offset = qmap->next_wqe_idx * ipz_queue->qe_size; |
815 | wqe = (struct ehca_wqe *)ipz_qeit_calc(ipz_queue, offset); | 823 | wqe = (struct ehca_wqe *)ipz_qeit_calc(ipz_queue, offset); |
816 | if (!wqe) { | 824 | if (!wqe) { |
817 | ehca_err(cq->device, "Invalid wqe offset=%#lx on " | 825 | ehca_err(cq->device, "Invalid wqe offset=%#lx on " |
@@ -850,11 +858,12 @@ static int generate_flush_cqes(struct ehca_qp *my_qp, struct ib_cq *cq, | |||
850 | 858 | ||
851 | wc->qp = &my_qp->ib_qp; | 859 | wc->qp = &my_qp->ib_qp; |
852 | 860 | ||
853 | /* mark as reported and advance tail pointer */ | 861 | /* mark as reported and advance next_wqe pointer */ |
854 | qmap_entry->reported = 1; | 862 | qmap_entry->reported = 1; |
855 | if (++qmap->tail == qmap->entries) | 863 | qmap->next_wqe_idx++; |
856 | qmap->tail = 0; | 864 | if (qmap->next_wqe_idx == qmap->entries) |
857 | qmap_entry = &qmap->map[qmap->tail]; | 865 | qmap->next_wqe_idx = 0; |
866 | qmap_entry = &qmap->map[qmap->next_wqe_idx]; | ||
858 | 867 | ||
859 | wc++; nr++; | 868 | wc++; nr++; |
860 | } | 869 | } |
diff --git a/drivers/infiniband/hw/mlx4/cq.c b/drivers/infiniband/hw/mlx4/cq.c index d0866a3636e2..18308494a195 100644 --- a/drivers/infiniband/hw/mlx4/cq.c +++ b/drivers/infiniband/hw/mlx4/cq.c | |||
@@ -343,6 +343,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata) | |||
343 | { | 343 | { |
344 | struct mlx4_ib_dev *dev = to_mdev(ibcq->device); | 344 | struct mlx4_ib_dev *dev = to_mdev(ibcq->device); |
345 | struct mlx4_ib_cq *cq = to_mcq(ibcq); | 345 | struct mlx4_ib_cq *cq = to_mcq(ibcq); |
346 | struct mlx4_mtt mtt; | ||
346 | int outst_cqe; | 347 | int outst_cqe; |
347 | int err; | 348 | int err; |
348 | 349 | ||
@@ -376,10 +377,13 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata) | |||
376 | goto out; | 377 | goto out; |
377 | } | 378 | } |
378 | 379 | ||
380 | mtt = cq->buf.mtt; | ||
381 | |||
379 | err = mlx4_cq_resize(dev->dev, &cq->mcq, entries, &cq->resize_buf->buf.mtt); | 382 | err = mlx4_cq_resize(dev->dev, &cq->mcq, entries, &cq->resize_buf->buf.mtt); |
380 | if (err) | 383 | if (err) |
381 | goto err_buf; | 384 | goto err_buf; |
382 | 385 | ||
386 | mlx4_mtt_cleanup(dev->dev, &mtt); | ||
383 | if (ibcq->uobject) { | 387 | if (ibcq->uobject) { |
384 | cq->buf = cq->resize_buf->buf; | 388 | cq->buf = cq->resize_buf->buf; |
385 | cq->ibcq.cqe = cq->resize_buf->cqe; | 389 | cq->ibcq.cqe = cq->resize_buf->cqe; |
@@ -406,6 +410,7 @@ int mlx4_ib_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata) | |||
406 | goto out; | 410 | goto out; |
407 | 411 | ||
408 | err_buf: | 412 | err_buf: |
413 | mlx4_mtt_cleanup(dev->dev, &cq->resize_buf->buf.mtt); | ||
409 | if (!ibcq->uobject) | 414 | if (!ibcq->uobject) |
410 | mlx4_ib_free_cq_buf(dev, &cq->resize_buf->buf, | 415 | mlx4_ib_free_cq_buf(dev, &cq->resize_buf->buf, |
411 | cq->resize_buf->cqe); | 416 | cq->resize_buf->cqe); |
diff --git a/drivers/input/ff-memless.c b/drivers/input/ff-memless.c index 6790e975a98c..bc4e40f3ede7 100644 --- a/drivers/input/ff-memless.c +++ b/drivers/input/ff-memless.c | |||
@@ -397,8 +397,9 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value) | |||
397 | { | 397 | { |
398 | struct ml_device *ml = dev->ff->private; | 398 | struct ml_device *ml = dev->ff->private; |
399 | struct ml_effect_state *state = &ml->states[effect_id]; | 399 | struct ml_effect_state *state = &ml->states[effect_id]; |
400 | unsigned long flags; | ||
400 | 401 | ||
401 | spin_lock_bh(&ml->timer_lock); | 402 | spin_lock_irqsave(&ml->timer_lock, flags); |
402 | 403 | ||
403 | if (value > 0) { | 404 | if (value > 0) { |
404 | debug("initiated play"); | 405 | debug("initiated play"); |
@@ -424,7 +425,7 @@ static int ml_ff_playback(struct input_dev *dev, int effect_id, int value) | |||
424 | ml_play_effects(ml); | 425 | ml_play_effects(ml); |
425 | } | 426 | } |
426 | 427 | ||
427 | spin_unlock_bh(&ml->timer_lock); | 428 | spin_unlock_irqrestore(&ml->timer_lock, flags); |
428 | 429 | ||
429 | return 0; | 430 | return 0; |
430 | } | 431 | } |
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index 22016ca15351..379b7ff354ec 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c | |||
@@ -824,7 +824,7 @@ static void atkbd_disconnect(struct serio *serio) | |||
824 | atkbd_disable(atkbd); | 824 | atkbd_disable(atkbd); |
825 | 825 | ||
826 | /* make sure we don't have a command in flight */ | 826 | /* make sure we don't have a command in flight */ |
827 | flush_scheduled_work(); | 827 | cancel_delayed_work_sync(&atkbd->event_work); |
828 | 828 | ||
829 | sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group); | 829 | sysfs_remove_group(&serio->dev.kobj, &atkbd_attribute_group); |
830 | input_unregister_device(atkbd->dev); | 830 | input_unregister_device(atkbd->dev); |
@@ -868,6 +868,22 @@ static void atkbd_hp_keymap_fixup(struct atkbd *atkbd) | |||
868 | } | 868 | } |
869 | 869 | ||
870 | /* | 870 | /* |
871 | * Inventec system with broken key release on volume keys | ||
872 | */ | ||
873 | static void atkbd_inventec_keymap_fixup(struct atkbd *atkbd) | ||
874 | { | ||
875 | const unsigned int forced_release_keys[] = { | ||
876 | 0xae, 0xb0, | ||
877 | }; | ||
878 | int i; | ||
879 | |||
880 | if (atkbd->set == 2) | ||
881 | for (i = 0; i < ARRAY_SIZE(forced_release_keys); i++) | ||
882 | __set_bit(forced_release_keys[i], | ||
883 | atkbd->force_release_mask); | ||
884 | } | ||
885 | |||
886 | /* | ||
871 | * atkbd_set_keycode_table() initializes keyboard's keycode table | 887 | * atkbd_set_keycode_table() initializes keyboard's keycode table |
872 | * according to the selected scancode set | 888 | * according to the selected scancode set |
873 | */ | 889 | */ |
@@ -1468,6 +1484,15 @@ static struct dmi_system_id atkbd_dmi_quirk_table[] __initdata = { | |||
1468 | .callback = atkbd_setup_fixup, | 1484 | .callback = atkbd_setup_fixup, |
1469 | .driver_data = atkbd_hp_keymap_fixup, | 1485 | .driver_data = atkbd_hp_keymap_fixup, |
1470 | }, | 1486 | }, |
1487 | { | ||
1488 | .ident = "Inventec Symphony", | ||
1489 | .matches = { | ||
1490 | DMI_MATCH(DMI_SYS_VENDOR, "INVENTEC"), | ||
1491 | DMI_MATCH(DMI_PRODUCT_NAME, "SYMPHONY 6.0/7.0"), | ||
1492 | }, | ||
1493 | .callback = atkbd_setup_fixup, | ||
1494 | .driver_data = atkbd_inventec_keymap_fixup, | ||
1495 | }, | ||
1471 | { } | 1496 | { } |
1472 | }; | 1497 | }; |
1473 | 1498 | ||
diff --git a/drivers/input/misc/cm109.c b/drivers/input/misc/cm109.c index bce160f4349b..86457feccfc4 100644 --- a/drivers/input/misc/cm109.c +++ b/drivers/input/misc/cm109.c | |||
@@ -42,7 +42,7 @@ | |||
42 | 42 | ||
43 | static char *phone = "kip1000"; | 43 | static char *phone = "kip1000"; |
44 | module_param(phone, charp, S_IRUSR); | 44 | module_param(phone, charp, S_IRUSR); |
45 | MODULE_PARM_DESC(phone, "Phone name {kip1000, gtalk, usbph01}"); | 45 | MODULE_PARM_DESC(phone, "Phone name {kip1000, gtalk, usbph01, atcom}"); |
46 | 46 | ||
47 | enum { | 47 | enum { |
48 | /* HID Registers */ | 48 | /* HID Registers */ |
@@ -258,6 +258,37 @@ static unsigned short keymap_usbph01(int scancode) | |||
258 | } | 258 | } |
259 | } | 259 | } |
260 | 260 | ||
261 | /* | ||
262 | * Keymap for ATCom AU-100 | ||
263 | * http://www.atcom.cn/En_products_AU100.html | ||
264 | * http://www.packetizer.com/products/au100/ | ||
265 | * http://www.voip-info.org/wiki/view/AU-100 | ||
266 | * | ||
267 | * Contributed by daniel@gimpelevich.san-francisco.ca.us | ||
268 | */ | ||
269 | static unsigned short keymap_atcom(int scancode) | ||
270 | { | ||
271 | switch (scancode) { /* phone key: */ | ||
272 | case 0x82: return KEY_NUMERIC_0; /* 0 */ | ||
273 | case 0x11: return KEY_NUMERIC_1; /* 1 */ | ||
274 | case 0x12: return KEY_NUMERIC_2; /* 2 */ | ||
275 | case 0x14: return KEY_NUMERIC_3; /* 3 */ | ||
276 | case 0x21: return KEY_NUMERIC_4; /* 4 */ | ||
277 | case 0x22: return KEY_NUMERIC_5; /* 5 */ | ||
278 | case 0x24: return KEY_NUMERIC_6; /* 6 */ | ||
279 | case 0x41: return KEY_NUMERIC_7; /* 7 */ | ||
280 | case 0x42: return KEY_NUMERIC_8; /* 8 */ | ||
281 | case 0x44: return KEY_NUMERIC_9; /* 9 */ | ||
282 | case 0x84: return KEY_NUMERIC_POUND; /* # */ | ||
283 | case 0x81: return KEY_NUMERIC_STAR; /* * */ | ||
284 | case 0x18: return KEY_ENTER; /* pickup */ | ||
285 | case 0x28: return KEY_ESC; /* hangup */ | ||
286 | case 0x48: return KEY_LEFT; /* left arrow */ | ||
287 | case 0x88: return KEY_RIGHT; /* right arrow */ | ||
288 | default: return special_keymap(scancode); | ||
289 | } | ||
290 | } | ||
291 | |||
261 | static unsigned short (*keymap)(int) = keymap_kip1000; | 292 | static unsigned short (*keymap)(int) = keymap_kip1000; |
262 | 293 | ||
263 | /* | 294 | /* |
@@ -840,6 +871,10 @@ static int __init cm109_select_keymap(void) | |||
840 | keymap = keymap_usbph01; | 871 | keymap = keymap_usbph01; |
841 | printk(KERN_INFO KBUILD_MODNAME ": " | 872 | printk(KERN_INFO KBUILD_MODNAME ": " |
842 | "Keymap for Allied-Telesis Corega USBPH01 phone loaded\n"); | 873 | "Keymap for Allied-Telesis Corega USBPH01 phone loaded\n"); |
874 | } else if (!strcasecmp(phone, "atcom")) { | ||
875 | keymap = keymap_atcom; | ||
876 | printk(KERN_INFO KBUILD_MODNAME ": " | ||
877 | "Keymap for ATCom AU-100 phone loaded\n"); | ||
843 | } else { | 878 | } else { |
844 | printk(KERN_ERR KBUILD_MODNAME ": " | 879 | printk(KERN_ERR KBUILD_MODNAME ": " |
845 | "Unsupported phone: %s\n", phone); | 880 | "Unsupported phone: %s\n", phone); |
diff --git a/drivers/input/mouse/hgpk.c b/drivers/input/mouse/hgpk.c index e82d34201e97..88f04bf2ad6c 100644 --- a/drivers/input/mouse/hgpk.c +++ b/drivers/input/mouse/hgpk.c | |||
@@ -125,7 +125,7 @@ static void hgpk_spewing_hack(struct psmouse *psmouse, | |||
125 | */ | 125 | */ |
126 | static int hgpk_validate_byte(unsigned char *packet) | 126 | static int hgpk_validate_byte(unsigned char *packet) |
127 | { | 127 | { |
128 | return (packet[0] & 0x0C) == 0x08; | 128 | return (packet[0] & 0x0C) != 0x08; |
129 | } | 129 | } |
130 | 130 | ||
131 | static void hgpk_process_packet(struct psmouse *psmouse) | 131 | static void hgpk_process_packet(struct psmouse *psmouse) |
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index eec375cd10e6..29e686388a2c 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
@@ -337,6 +337,20 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | |||
337 | DMI_MATCH(DMI_PRODUCT_NAME, "2656"), | 337 | DMI_MATCH(DMI_PRODUCT_NAME, "2656"), |
338 | }, | 338 | }, |
339 | }, | 339 | }, |
340 | { | ||
341 | .ident = "Dell XPS M1530", | ||
342 | .matches = { | ||
343 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
344 | DMI_MATCH(DMI_PRODUCT_NAME, "XPS M1530"), | ||
345 | }, | ||
346 | }, | ||
347 | { | ||
348 | .ident = "Compal HEL80I", | ||
349 | .matches = { | ||
350 | DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"), | ||
351 | DMI_MATCH(DMI_PRODUCT_NAME, "HEL80I"), | ||
352 | }, | ||
353 | }, | ||
340 | { } | 354 | { } |
341 | }; | 355 | }; |
342 | 356 | ||
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h index ca62ec639f8f..677680e9f54f 100644 --- a/drivers/input/tablet/wacom.h +++ b/drivers/input/tablet/wacom.h | |||
@@ -66,6 +66,7 @@ | |||
66 | * - Support Intuos3 4x6 | 66 | * - Support Intuos3 4x6 |
67 | * v1.47 (pc) - Added support for Bamboo | 67 | * v1.47 (pc) - Added support for Bamboo |
68 | * v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX | 68 | * v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX |
69 | * v1.49 (pc) - Added support for USB Tablet PC (0x90, 0x93, and 0x9A) | ||
69 | */ | 70 | */ |
70 | 71 | ||
71 | /* | 72 | /* |
@@ -86,7 +87,7 @@ | |||
86 | /* | 87 | /* |
87 | * Version Information | 88 | * Version Information |
88 | */ | 89 | */ |
89 | #define DRIVER_VERSION "v1.48" | 90 | #define DRIVER_VERSION "v1.49" |
90 | #define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" | 91 | #define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" |
91 | #define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" | 92 | #define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" |
92 | #define DRIVER_LICENSE "GPL" | 93 | #define DRIVER_LICENSE "GPL" |
@@ -103,15 +104,15 @@ struct wacom { | |||
103 | struct usb_device *usbdev; | 104 | struct usb_device *usbdev; |
104 | struct usb_interface *intf; | 105 | struct usb_interface *intf; |
105 | struct urb *irq; | 106 | struct urb *irq; |
106 | struct wacom_wac * wacom_wac; | 107 | struct wacom_wac *wacom_wac; |
107 | struct mutex lock; | 108 | struct mutex lock; |
108 | unsigned int open:1; | 109 | unsigned int open:1; |
109 | char phys[32]; | 110 | char phys[32]; |
110 | }; | 111 | }; |
111 | 112 | ||
112 | struct wacom_combo { | 113 | struct wacom_combo { |
113 | struct wacom * wacom; | 114 | struct wacom *wacom; |
114 | struct urb * urb; | 115 | struct urb *urb; |
115 | }; | 116 | }; |
116 | 117 | ||
117 | extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo); | 118 | extern int wacom_wac_irq(struct wacom_wac * wacom_wac, void * wcombo); |
@@ -132,7 +133,7 @@ extern void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wa | |||
132 | extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac); | 133 | extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac); |
133 | extern __u16 wacom_le16_to_cpu(unsigned char *data); | 134 | extern __u16 wacom_le16_to_cpu(unsigned char *data); |
134 | extern __u16 wacom_be16_to_cpu(unsigned char *data); | 135 | extern __u16 wacom_be16_to_cpu(unsigned char *data); |
135 | extern struct wacom_features * get_wacom_feature(const struct usb_device_id *id); | 136 | extern struct wacom_features *get_wacom_feature(const struct usb_device_id *id); |
136 | extern const struct usb_device_id * get_device_table(void); | 137 | extern const struct usb_device_id *get_device_table(void); |
137 | 138 | ||
138 | #endif | 139 | #endif |
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c index 09e227aa0d49..484496daa0f3 100644 --- a/drivers/input/tablet/wacom_sys.c +++ b/drivers/input/tablet/wacom_sys.c | |||
@@ -14,8 +14,41 @@ | |||
14 | #include "wacom.h" | 14 | #include "wacom.h" |
15 | #include "wacom_wac.h" | 15 | #include "wacom_wac.h" |
16 | 16 | ||
17 | /* defines to get HID report descriptor */ | ||
18 | #define HID_DEVICET_HID (USB_TYPE_CLASS | 0x01) | ||
19 | #define HID_DEVICET_REPORT (USB_TYPE_CLASS | 0x02) | ||
20 | #define HID_USAGE_UNDEFINED 0x00 | ||
21 | #define HID_USAGE_PAGE 0x05 | ||
22 | #define HID_USAGE_PAGE_DIGITIZER 0x0d | ||
23 | #define HID_USAGE_PAGE_DESKTOP 0x01 | ||
24 | #define HID_USAGE 0x09 | ||
25 | #define HID_USAGE_X 0x30 | ||
26 | #define HID_USAGE_Y 0x31 | ||
27 | #define HID_USAGE_X_TILT 0x3d | ||
28 | #define HID_USAGE_Y_TILT 0x3e | ||
29 | #define HID_USAGE_FINGER 0x22 | ||
30 | #define HID_USAGE_STYLUS 0x20 | ||
31 | #define HID_COLLECTION 0xc0 | ||
32 | |||
33 | enum { | ||
34 | WCM_UNDEFINED = 0, | ||
35 | WCM_DESKTOP, | ||
36 | WCM_DIGITIZER, | ||
37 | }; | ||
38 | |||
39 | struct hid_descriptor { | ||
40 | struct usb_descriptor_header header; | ||
41 | __le16 bcdHID; | ||
42 | u8 bCountryCode; | ||
43 | u8 bNumDescriptors; | ||
44 | u8 bDescriptorType; | ||
45 | __le16 wDescriptorLength; | ||
46 | } __attribute__ ((packed)); | ||
47 | |||
48 | /* defines to get/set USB message */ | ||
17 | #define USB_REQ_GET_REPORT 0x01 | 49 | #define USB_REQ_GET_REPORT 0x01 |
18 | #define USB_REQ_SET_REPORT 0x09 | 50 | #define USB_REQ_SET_REPORT 0x09 |
51 | #define WAC_HID_FEATURE_REPORT 0x03 | ||
19 | 52 | ||
20 | static int usb_get_report(struct usb_interface *intf, unsigned char type, | 53 | static int usb_get_report(struct usb_interface *intf, unsigned char type, |
21 | unsigned char id, void *buf, int size) | 54 | unsigned char id, void *buf, int size) |
@@ -80,25 +113,21 @@ static void wacom_sys_irq(struct urb *urb) | |||
80 | void wacom_report_key(void *wcombo, unsigned int key_type, int key_data) | 113 | void wacom_report_key(void *wcombo, unsigned int key_type, int key_data) |
81 | { | 114 | { |
82 | input_report_key(get_input_dev((struct wacom_combo *)wcombo), key_type, key_data); | 115 | input_report_key(get_input_dev((struct wacom_combo *)wcombo), key_type, key_data); |
83 | return; | ||
84 | } | 116 | } |
85 | 117 | ||
86 | void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data) | 118 | void wacom_report_abs(void *wcombo, unsigned int abs_type, int abs_data) |
87 | { | 119 | { |
88 | input_report_abs(get_input_dev((struct wacom_combo *)wcombo), abs_type, abs_data); | 120 | input_report_abs(get_input_dev((struct wacom_combo *)wcombo), abs_type, abs_data); |
89 | return; | ||
90 | } | 121 | } |
91 | 122 | ||
92 | void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data) | 123 | void wacom_report_rel(void *wcombo, unsigned int rel_type, int rel_data) |
93 | { | 124 | { |
94 | input_report_rel(get_input_dev((struct wacom_combo *)wcombo), rel_type, rel_data); | 125 | input_report_rel(get_input_dev((struct wacom_combo *)wcombo), rel_type, rel_data); |
95 | return; | ||
96 | } | 126 | } |
97 | 127 | ||
98 | void wacom_input_event(void *wcombo, unsigned int type, unsigned int code, int value) | 128 | void wacom_input_event(void *wcombo, unsigned int type, unsigned int code, int value) |
99 | { | 129 | { |
100 | input_event(get_input_dev((struct wacom_combo *)wcombo), type, code, value); | 130 | input_event(get_input_dev((struct wacom_combo *)wcombo), type, code, value); |
101 | return; | ||
102 | } | 131 | } |
103 | 132 | ||
104 | __u16 wacom_be16_to_cpu(unsigned char *data) | 133 | __u16 wacom_be16_to_cpu(unsigned char *data) |
@@ -118,7 +147,6 @@ __u16 wacom_le16_to_cpu(unsigned char *data) | |||
118 | void wacom_input_sync(void *wcombo) | 147 | void wacom_input_sync(void *wcombo) |
119 | { | 148 | { |
120 | input_sync(get_input_dev((struct wacom_combo *)wcombo)); | 149 | input_sync(get_input_dev((struct wacom_combo *)wcombo)); |
121 | return; | ||
122 | } | 150 | } |
123 | 151 | ||
124 | static int wacom_open(struct input_dev *dev) | 152 | static int wacom_open(struct input_dev *dev) |
@@ -160,7 +188,7 @@ static void wacom_close(struct input_dev *dev) | |||
160 | 188 | ||
161 | void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 189 | void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
162 | { | 190 | { |
163 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_1) | | 191 | input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_1) | |
164 | BIT_MASK(BTN_5); | 192 | BIT_MASK(BTN_5); |
165 | input_set_abs_params(input_dev, ABS_WHEEL, 0, 71, 0, 0); | 193 | input_set_abs_params(input_dev, ABS_WHEEL, 0, 71, 0, 0); |
166 | } | 194 | } |
@@ -170,7 +198,7 @@ void input_dev_g4(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
170 | input_dev->evbit[0] |= BIT_MASK(EV_MSC); | 198 | input_dev->evbit[0] |= BIT_MASK(EV_MSC); |
171 | input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL); | 199 | input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL); |
172 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER); | 200 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER); |
173 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_0) | | 201 | input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_0) | |
174 | BIT_MASK(BTN_4); | 202 | BIT_MASK(BTN_4); |
175 | } | 203 | } |
176 | 204 | ||
@@ -178,7 +206,7 @@ void input_dev_g(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
178 | { | 206 | { |
179 | input_dev->evbit[0] |= BIT_MASK(EV_REL); | 207 | input_dev->evbit[0] |= BIT_MASK(EV_REL); |
180 | input_dev->relbit[0] |= BIT_MASK(REL_WHEEL); | 208 | input_dev->relbit[0] |= BIT_MASK(REL_WHEEL); |
181 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_LEFT) | | 209 | input_dev->keybit[BIT_WORD(BTN_MOUSE)] |= BIT_MASK(BTN_LEFT) | |
182 | BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE); | 210 | BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE); |
183 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) | | 211 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) | |
184 | BIT_MASK(BTN_TOOL_MOUSE) | BIT_MASK(BTN_STYLUS2); | 212 | BIT_MASK(BTN_TOOL_MOUSE) | BIT_MASK(BTN_STYLUS2); |
@@ -188,7 +216,7 @@ void input_dev_g(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
188 | void input_dev_i3s(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 216 | void input_dev_i3s(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
189 | { | 217 | { |
190 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER); | 218 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_FINGER); |
191 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_0) | | 219 | input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_0) | |
192 | BIT_MASK(BTN_1) | BIT_MASK(BTN_2) | BIT_MASK(BTN_3); | 220 | BIT_MASK(BTN_1) | BIT_MASK(BTN_2) | BIT_MASK(BTN_3); |
193 | input_set_abs_params(input_dev, ABS_RX, 0, 4096, 0, 0); | 221 | input_set_abs_params(input_dev, ABS_RX, 0, 4096, 0, 0); |
194 | input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); | 222 | input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); |
@@ -196,14 +224,14 @@ void input_dev_i3s(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
196 | 224 | ||
197 | void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 225 | void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
198 | { | 226 | { |
199 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_4) | | 227 | input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_4) | |
200 | BIT_MASK(BTN_5) | BIT_MASK(BTN_6) | BIT_MASK(BTN_7); | 228 | BIT_MASK(BTN_5) | BIT_MASK(BTN_6) | BIT_MASK(BTN_7); |
201 | input_set_abs_params(input_dev, ABS_RY, 0, 4096, 0, 0); | 229 | input_set_abs_params(input_dev, ABS_RY, 0, 4096, 0, 0); |
202 | } | 230 | } |
203 | 231 | ||
204 | void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 232 | void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
205 | { | 233 | { |
206 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_8) | BIT_MASK(BTN_9); | 234 | input_dev->keybit[BIT_WORD(BTN_MISC)] |= BIT_MASK(BTN_8) | BIT_MASK(BTN_9); |
207 | } | 235 | } |
208 | 236 | ||
209 | void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 237 | void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
@@ -211,7 +239,7 @@ void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
211 | input_dev->evbit[0] |= BIT_MASK(EV_MSC) | BIT_MASK(EV_REL); | 239 | input_dev->evbit[0] |= BIT_MASK(EV_MSC) | BIT_MASK(EV_REL); |
212 | input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL); | 240 | input_dev->mscbit[0] |= BIT_MASK(MSC_SERIAL); |
213 | input_dev->relbit[0] |= BIT_MASK(REL_WHEEL); | 241 | input_dev->relbit[0] |= BIT_MASK(REL_WHEEL); |
214 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_LEFT) | | 242 | input_dev->keybit[BIT_WORD(BTN_MOUSE)] |= BIT_MASK(BTN_LEFT) | |
215 | BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE) | | 243 | BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE) | |
216 | BIT_MASK(BTN_SIDE) | BIT_MASK(BTN_EXTRA); | 244 | BIT_MASK(BTN_SIDE) | BIT_MASK(BTN_EXTRA); |
217 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) | | 245 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER) | |
@@ -228,8 +256,7 @@ void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
228 | 256 | ||
229 | void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 257 | void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
230 | { | 258 | { |
231 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_STYLUS2) | | 259 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_STYLUS2); |
232 | BIT_MASK(BTN_TOOL_RUBBER); | ||
233 | } | 260 | } |
234 | 261 | ||
235 | void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 262 | void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
@@ -237,15 +264,129 @@ void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
237 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER); | 264 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_RUBBER); |
238 | } | 265 | } |
239 | 266 | ||
267 | static int wacom_parse_hid(struct usb_interface *intf, struct hid_descriptor *hid_desc, | ||
268 | struct wacom_wac *wacom_wac) | ||
269 | { | ||
270 | struct usb_device *dev = interface_to_usbdev(intf); | ||
271 | struct wacom_features *features = wacom_wac->features; | ||
272 | char limit = 0, result = 0; | ||
273 | int i = 0, usage = WCM_UNDEFINED, finger = 0, pen = 0; | ||
274 | unsigned char *report; | ||
275 | |||
276 | report = kzalloc(hid_desc->wDescriptorLength, GFP_KERNEL); | ||
277 | if (!report) | ||
278 | return -ENOMEM; | ||
279 | |||
280 | /* retrive report descriptors */ | ||
281 | do { | ||
282 | result = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), | ||
283 | USB_REQ_GET_DESCRIPTOR, | ||
284 | USB_RECIP_INTERFACE | USB_DIR_IN, | ||
285 | HID_DEVICET_REPORT << 8, | ||
286 | intf->altsetting[0].desc.bInterfaceNumber, /* interface */ | ||
287 | report, | ||
288 | hid_desc->wDescriptorLength, | ||
289 | 5000); /* 5 secs */ | ||
290 | } while (result < 0 && limit++ < 5); | ||
291 | |||
292 | if (result < 0) | ||
293 | goto out; | ||
294 | |||
295 | for (i = 0; i < hid_desc->wDescriptorLength; i++) { | ||
296 | |||
297 | switch (report[i]) { | ||
298 | case HID_USAGE_PAGE: | ||
299 | switch (report[i + 1]) { | ||
300 | case HID_USAGE_PAGE_DIGITIZER: | ||
301 | usage = WCM_DIGITIZER; | ||
302 | i++; | ||
303 | break; | ||
304 | |||
305 | case HID_USAGE_PAGE_DESKTOP: | ||
306 | usage = WCM_DESKTOP; | ||
307 | i++; | ||
308 | break; | ||
309 | } | ||
310 | break; | ||
311 | |||
312 | case HID_USAGE: | ||
313 | switch (report[i + 1]) { | ||
314 | case HID_USAGE_X: | ||
315 | if (usage == WCM_DESKTOP) { | ||
316 | if (finger) { | ||
317 | features->touch_x_max = | ||
318 | features->touch_y_max = | ||
319 | wacom_le16_to_cpu(&report[i + 3]); | ||
320 | features->x_max = | ||
321 | wacom_le16_to_cpu(&report[i + 6]); | ||
322 | i += 7; | ||
323 | } else if (pen) { | ||
324 | features->x_max = | ||
325 | wacom_le16_to_cpu(&report[i + 3]); | ||
326 | i += 4; | ||
327 | } | ||
328 | } else if (usage == WCM_DIGITIZER) { | ||
329 | /* max pressure isn't reported | ||
330 | features->pressure_max = (unsigned short) | ||
331 | (report[i+4] << 8 | report[i + 3]); | ||
332 | */ | ||
333 | features->pressure_max = 255; | ||
334 | i += 4; | ||
335 | } | ||
336 | break; | ||
337 | |||
338 | case HID_USAGE_Y: | ||
339 | if (usage == WCM_DESKTOP) | ||
340 | features->y_max = | ||
341 | wacom_le16_to_cpu(&report[i + 3]); | ||
342 | i += 4; | ||
343 | break; | ||
344 | |||
345 | case HID_USAGE_FINGER: | ||
346 | finger = 1; | ||
347 | i++; | ||
348 | break; | ||
349 | |||
350 | case HID_USAGE_STYLUS: | ||
351 | pen = 1; | ||
352 | i++; | ||
353 | break; | ||
354 | |||
355 | case HID_USAGE_UNDEFINED: | ||
356 | if (usage == WCM_DESKTOP && finger) /* capacity */ | ||
357 | features->pressure_max = | ||
358 | wacom_le16_to_cpu(&report[i + 3]); | ||
359 | i += 4; | ||
360 | break; | ||
361 | } | ||
362 | break; | ||
363 | |||
364 | case HID_COLLECTION: | ||
365 | /* reset UsagePage ans Finger */ | ||
366 | finger = usage = 0; | ||
367 | break; | ||
368 | } | ||
369 | } | ||
370 | |||
371 | result = 0; | ||
372 | |||
373 | out: | ||
374 | kfree(report); | ||
375 | return result; | ||
376 | } | ||
377 | |||
240 | static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *id) | 378 | static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *id) |
241 | { | 379 | { |
242 | struct usb_device *dev = interface_to_usbdev(intf); | 380 | struct usb_device *dev = interface_to_usbdev(intf); |
381 | struct usb_host_interface *interface = intf->cur_altsetting; | ||
243 | struct usb_endpoint_descriptor *endpoint; | 382 | struct usb_endpoint_descriptor *endpoint; |
244 | struct wacom *wacom; | 383 | struct wacom *wacom; |
245 | struct wacom_wac *wacom_wac; | 384 | struct wacom_wac *wacom_wac; |
385 | struct wacom_features *features; | ||
246 | struct input_dev *input_dev; | 386 | struct input_dev *input_dev; |
247 | int error = -ENOMEM; | 387 | int error = -ENOMEM; |
248 | char rep_data[2], limit = 0; | 388 | char rep_data[2], limit = 0; |
389 | struct hid_descriptor *hid_desc; | ||
249 | 390 | ||
250 | wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL); | 391 | wacom = kzalloc(sizeof(struct wacom), GFP_KERNEL); |
251 | wacom_wac = kzalloc(sizeof(struct wacom_wac), GFP_KERNEL); | 392 | wacom_wac = kzalloc(sizeof(struct wacom_wac), GFP_KERNEL); |
@@ -268,8 +409,8 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
268 | usb_make_path(dev, wacom->phys, sizeof(wacom->phys)); | 409 | usb_make_path(dev, wacom->phys, sizeof(wacom->phys)); |
269 | strlcat(wacom->phys, "/input0", sizeof(wacom->phys)); | 410 | strlcat(wacom->phys, "/input0", sizeof(wacom->phys)); |
270 | 411 | ||
271 | wacom_wac->features = get_wacom_feature(id); | 412 | wacom_wac->features = features = get_wacom_feature(id); |
272 | BUG_ON(wacom_wac->features->pktlen > 10); | 413 | BUG_ON(features->pktlen > 10); |
273 | 414 | ||
274 | input_dev->name = wacom_wac->features->name; | 415 | input_dev->name = wacom_wac->features->name; |
275 | wacom->wacom_wac = wacom_wac; | 416 | wacom->wacom_wac = wacom_wac; |
@@ -282,18 +423,37 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
282 | input_dev->open = wacom_open; | 423 | input_dev->open = wacom_open; |
283 | input_dev->close = wacom_close; | 424 | input_dev->close = wacom_close; |
284 | 425 | ||
426 | endpoint = &intf->cur_altsetting->endpoint[0].desc; | ||
427 | |||
428 | /* TabletPC need to retrieve the physical and logical maximum from report descriptor */ | ||
429 | if (wacom_wac->features->type == TABLETPC) { | ||
430 | if (usb_get_extra_descriptor(interface, HID_DEVICET_HID, &hid_desc)) { | ||
431 | if (usb_get_extra_descriptor(&interface->endpoint[0], | ||
432 | HID_DEVICET_REPORT, &hid_desc)) { | ||
433 | printk("wacom: can not retrive extra class descriptor\n"); | ||
434 | goto fail2; | ||
435 | } | ||
436 | } | ||
437 | error = wacom_parse_hid(intf, hid_desc, wacom_wac); | ||
438 | if (error) | ||
439 | goto fail2; | ||
440 | } | ||
441 | |||
285 | input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); | 442 | input_dev->evbit[0] |= BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); |
286 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_PEN) | | 443 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_PEN) | |
287 | BIT_MASK(BTN_TOUCH) | BIT_MASK(BTN_STYLUS); | 444 | BIT_MASK(BTN_TOUCH) | BIT_MASK(BTN_STYLUS); |
288 | input_set_abs_params(input_dev, ABS_X, 0, wacom_wac->features->x_max, 4, 0); | 445 | input_set_abs_params(input_dev, ABS_X, 0, features->x_max, 4, 0); |
289 | input_set_abs_params(input_dev, ABS_Y, 0, wacom_wac->features->y_max, 4, 0); | 446 | input_set_abs_params(input_dev, ABS_Y, 0, features->y_max, 4, 0); |
290 | input_set_abs_params(input_dev, ABS_PRESSURE, 0, wacom_wac->features->pressure_max, 0, 0); | 447 | input_set_abs_params(input_dev, ABS_PRESSURE, 0, features->pressure_max, 0, 0); |
448 | if (features->type == TABLETPC) { | ||
449 | input_dev->keybit[BIT_WORD(BTN_DIGI)] |= BIT_MASK(BTN_TOOL_DOUBLETAP); | ||
450 | input_set_abs_params(input_dev, ABS_RX, 0, features->touch_x_max, 4, 0); | ||
451 | input_set_abs_params(input_dev, ABS_RY, 0, features->touch_y_max, 4, 0); | ||
452 | } | ||
291 | input_dev->absbit[BIT_WORD(ABS_MISC)] |= BIT_MASK(ABS_MISC); | 453 | input_dev->absbit[BIT_WORD(ABS_MISC)] |= BIT_MASK(ABS_MISC); |
292 | 454 | ||
293 | wacom_init_input_dev(input_dev, wacom_wac); | 455 | wacom_init_input_dev(input_dev, wacom_wac); |
294 | 456 | ||
295 | endpoint = &intf->cur_altsetting->endpoint[0].desc; | ||
296 | |||
297 | usb_fill_int_urb(wacom->irq, dev, | 457 | usb_fill_int_urb(wacom->irq, dev, |
298 | usb_rcvintpipe(dev, endpoint->bEndpointAddress), | 458 | usb_rcvintpipe(dev, endpoint->bEndpointAddress), |
299 | wacom_wac->data, wacom_wac->features->pktlen, | 459 | wacom_wac->data, wacom_wac->features->pktlen, |
@@ -305,13 +465,22 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
305 | if (error) | 465 | if (error) |
306 | goto fail3; | 466 | goto fail3; |
307 | 467 | ||
308 | /* Ask the tablet to report tablet data. Repeat until it succeeds */ | 468 | /* |
309 | do { | 469 | * Ask the tablet to report tablet data if it is not a Tablet PC. |
310 | rep_data[0] = 2; | 470 | * Repeat until it succeeds |
311 | rep_data[1] = 2; | 471 | */ |
312 | usb_set_report(intf, 3, 2, rep_data, 2); | 472 | if (wacom_wac->features->type != TABLETPC) { |
313 | usb_get_report(intf, 3, 2, rep_data, 2); | 473 | do { |
314 | } while (rep_data[1] != 2 && limit++ < 5); | 474 | rep_data[0] = 2; |
475 | rep_data[1] = 2; | ||
476 | error = usb_set_report(intf, WAC_HID_FEATURE_REPORT, | ||
477 | 2, rep_data, 2); | ||
478 | if (error >= 0) | ||
479 | error = usb_get_report(intf, | ||
480 | WAC_HID_FEATURE_REPORT, 2, | ||
481 | rep_data, 2); | ||
482 | } while ((error < 0 || rep_data[1] != 2) && limit++ < 5); | ||
483 | } | ||
315 | 484 | ||
316 | usb_set_intfdata(intf, wacom); | 485 | usb_set_intfdata(intf, wacom); |
317 | return 0; | 486 | return 0; |
@@ -333,7 +502,8 @@ static void wacom_disconnect(struct usb_interface *intf) | |||
333 | usb_kill_urb(wacom->irq); | 502 | usb_kill_urb(wacom->irq); |
334 | input_unregister_device(wacom->dev); | 503 | input_unregister_device(wacom->dev); |
335 | usb_free_urb(wacom->irq); | 504 | usb_free_urb(wacom->irq); |
336 | usb_buffer_free(interface_to_usbdev(intf), 10, wacom->wacom_wac->data, wacom->data_dma); | 505 | usb_buffer_free(interface_to_usbdev(intf), 10, |
506 | wacom->wacom_wac->data, wacom->data_dma); | ||
337 | kfree(wacom->wacom_wac); | 507 | kfree(wacom->wacom_wac); |
338 | kfree(wacom); | 508 | kfree(wacom); |
339 | } | 509 | } |
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c index bf3d9a8b2c1b..8dc8d1e59bea 100644 --- a/drivers/input/tablet/wacom_wac.c +++ b/drivers/input/tablet/wacom_wac.c | |||
@@ -535,31 +535,147 @@ static int wacom_intuos_irq(struct wacom_wac *wacom, void *wcombo) | |||
535 | return 1; | 535 | return 1; |
536 | } | 536 | } |
537 | 537 | ||
538 | int wacom_tpc_irq(struct wacom_wac *wacom, void *wcombo) | ||
539 | { | ||
540 | char *data = wacom->data; | ||
541 | int prox = 0, pressure; | ||
542 | static int stylusInProx, touchInProx = 1, touchOut; | ||
543 | struct urb *urb = ((struct wacom_combo *)wcombo)->urb; | ||
544 | |||
545 | dbg("wacom_tpc_irq: received report #%d", data[0]); | ||
546 | |||
547 | if (urb->actual_length == 5 || data[0] == 6) { /* Touch data */ | ||
548 | if (urb->actual_length == 5) { /* with touch */ | ||
549 | prox = data[0] & 0x03; | ||
550 | } else { /* with capacity */ | ||
551 | prox = data[1] & 0x03; | ||
552 | } | ||
553 | |||
554 | if (!stylusInProx) { /* stylus not in prox */ | ||
555 | if (prox) { | ||
556 | if (touchInProx) { | ||
557 | wacom->tool[1] = BTN_TOOL_DOUBLETAP; | ||
558 | wacom->id[0] = TOUCH_DEVICE_ID; | ||
559 | if (urb->actual_length != 5) { | ||
560 | wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[2])); | ||
561 | wacom_report_abs(wcombo, ABS_Y, wacom_le16_to_cpu(&data[4])); | ||
562 | wacom_report_abs(wcombo, ABS_PRESSURE, wacom_le16_to_cpu(&data[6])); | ||
563 | wacom_report_key(wcombo, BTN_TOUCH, wacom_le16_to_cpu(&data[6])); | ||
564 | } else { | ||
565 | wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[1])); | ||
566 | wacom_report_abs(wcombo, ABS_Y, wacom_le16_to_cpu(&data[3])); | ||
567 | wacom_report_key(wcombo, BTN_TOUCH, 1); | ||
568 | } | ||
569 | wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]); | ||
570 | wacom_report_key(wcombo, wacom->tool[1], prox & 0x01); | ||
571 | touchOut = 1; | ||
572 | return 1; | ||
573 | } | ||
574 | } else { | ||
575 | wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]); | ||
576 | wacom_report_key(wcombo, wacom->tool[1], prox & 0x01); | ||
577 | wacom_report_key(wcombo, BTN_TOUCH, 0); | ||
578 | touchOut = 0; | ||
579 | touchInProx = 1; | ||
580 | return 1; | ||
581 | } | ||
582 | } else if (touchOut || !prox) { /* force touch out-prox */ | ||
583 | wacom_report_abs(wcombo, ABS_MISC, TOUCH_DEVICE_ID); | ||
584 | wacom_report_key(wcombo, BTN_TOUCH, 0); | ||
585 | touchOut = 0; | ||
586 | touchInProx = 1; | ||
587 | return 1; | ||
588 | } | ||
589 | } else if (data[0] == 2) { /* Penabled */ | ||
590 | prox = data[1] & 0x20; | ||
591 | |||
592 | touchInProx = 0; | ||
593 | |||
594 | wacom->id[0] = ERASER_DEVICE_ID; | ||
595 | |||
596 | /* | ||
597 | * if going from out of proximity into proximity select between the eraser | ||
598 | * and the pen based on the state of the stylus2 button, choose eraser if | ||
599 | * pressed else choose pen. if not a proximity change from out to in, send | ||
600 | * an out of proximity for previous tool then a in for new tool. | ||
601 | */ | ||
602 | if (prox) { /* in prox */ | ||
603 | if (!wacom->tool[0]) { | ||
604 | /* Going into proximity select tool */ | ||
605 | wacom->tool[1] = (data[1] & 0x08) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN; | ||
606 | if (wacom->tool[1] == BTN_TOOL_PEN) | ||
607 | wacom->id[0] = STYLUS_DEVICE_ID; | ||
608 | } else if (wacom->tool[1] == BTN_TOOL_RUBBER && !(data[1] & 0x08)) { | ||
609 | /* | ||
610 | * was entered with stylus2 pressed | ||
611 | * report out proximity for previous tool | ||
612 | */ | ||
613 | wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]); | ||
614 | wacom_report_key(wcombo, wacom->tool[1], 0); | ||
615 | wacom_input_sync(wcombo); | ||
616 | |||
617 | /* set new tool */ | ||
618 | wacom->tool[1] = BTN_TOOL_PEN; | ||
619 | wacom->id[0] = STYLUS_DEVICE_ID; | ||
620 | return 0; | ||
621 | } | ||
622 | if (wacom->tool[1] != BTN_TOOL_RUBBER) { | ||
623 | /* Unknown tool selected default to pen tool */ | ||
624 | wacom->tool[1] = BTN_TOOL_PEN; | ||
625 | wacom->id[0] = STYLUS_DEVICE_ID; | ||
626 | } | ||
627 | wacom_report_key(wcombo, BTN_STYLUS, data[1] & 0x02); | ||
628 | wacom_report_key(wcombo, BTN_STYLUS2, data[1] & 0x10); | ||
629 | wacom_report_abs(wcombo, ABS_X, wacom_le16_to_cpu(&data[2])); | ||
630 | wacom_report_abs(wcombo, ABS_Y, wacom_le16_to_cpu(&data[4])); | ||
631 | pressure = ((data[7] & 0x01) << 8) | data[6]; | ||
632 | if (pressure < 0) | ||
633 | pressure = wacom->features->pressure_max + pressure + 1; | ||
634 | wacom_report_abs(wcombo, ABS_PRESSURE, pressure); | ||
635 | wacom_report_key(wcombo, BTN_TOUCH, pressure); | ||
636 | } else { | ||
637 | wacom_report_abs(wcombo, ABS_PRESSURE, 0); | ||
638 | wacom_report_key(wcombo, BTN_STYLUS, 0); | ||
639 | wacom_report_key(wcombo, BTN_STYLUS2, 0); | ||
640 | wacom_report_key(wcombo, BTN_TOUCH, 0); | ||
641 | } | ||
642 | wacom_report_key(wcombo, wacom->tool[1], prox); | ||
643 | wacom_report_abs(wcombo, ABS_MISC, wacom->id[0]); | ||
644 | stylusInProx = prox; | ||
645 | wacom->tool[0] = prox; | ||
646 | return 1; | ||
647 | } | ||
648 | return 0; | ||
649 | } | ||
650 | |||
538 | int wacom_wac_irq(struct wacom_wac *wacom_wac, void *wcombo) | 651 | int wacom_wac_irq(struct wacom_wac *wacom_wac, void *wcombo) |
539 | { | 652 | { |
540 | switch (wacom_wac->features->type) { | 653 | switch (wacom_wac->features->type) { |
541 | case PENPARTNER: | 654 | case PENPARTNER: |
542 | return (wacom_penpartner_irq(wacom_wac, wcombo)); | 655 | return wacom_penpartner_irq(wacom_wac, wcombo); |
543 | break; | 656 | |
544 | case PL: | 657 | case PL: |
545 | return (wacom_pl_irq(wacom_wac, wcombo)); | 658 | return wacom_pl_irq(wacom_wac, wcombo); |
546 | break; | 659 | |
547 | case WACOM_G4: | 660 | case WACOM_G4: |
548 | case GRAPHIRE: | 661 | case GRAPHIRE: |
549 | case WACOM_MO: | 662 | case WACOM_MO: |
550 | return (wacom_graphire_irq(wacom_wac, wcombo)); | 663 | return wacom_graphire_irq(wacom_wac, wcombo); |
551 | break; | 664 | |
552 | case PTU: | 665 | case PTU: |
553 | return (wacom_ptu_irq(wacom_wac, wcombo)); | 666 | return wacom_ptu_irq(wacom_wac, wcombo); |
554 | break; | 667 | |
555 | case INTUOS: | 668 | case INTUOS: |
556 | case INTUOS3S: | 669 | case INTUOS3S: |
557 | case INTUOS3: | 670 | case INTUOS3: |
558 | case INTUOS3L: | 671 | case INTUOS3L: |
559 | case CINTIQ: | 672 | case CINTIQ: |
560 | case WACOM_BEE: | 673 | case WACOM_BEE: |
561 | return (wacom_intuos_irq(wacom_wac, wcombo)); | 674 | return wacom_intuos_irq(wacom_wac, wcombo); |
562 | break; | 675 | |
676 | case TABLETPC: | ||
677 | return wacom_tpc_irq(wacom_wac, wcombo); | ||
678 | |||
563 | default: | 679 | default: |
564 | return 0; | 680 | return 0; |
565 | } | 681 | } |
@@ -586,13 +702,15 @@ void wacom_init_input_dev(struct input_dev *input_dev, struct wacom_wac *wacom_w | |||
586 | /* fall through */ | 702 | /* fall through */ |
587 | case INTUOS3S: | 703 | case INTUOS3S: |
588 | input_dev_i3s(input_dev, wacom_wac); | 704 | input_dev_i3s(input_dev, wacom_wac); |
705 | /* fall through */ | ||
589 | case INTUOS: | 706 | case INTUOS: |
590 | input_dev_i(input_dev, wacom_wac); | 707 | input_dev_i(input_dev, wacom_wac); |
591 | break; | 708 | break; |
592 | case PL: | 709 | case PL: |
593 | case PTU: | 710 | case PTU: |
711 | case TABLETPC: | ||
594 | input_dev_pl(input_dev, wacom_wac); | 712 | input_dev_pl(input_dev, wacom_wac); |
595 | break; | 713 | /* fall through */ |
596 | case PENPARTNER: | 714 | case PENPARTNER: |
597 | input_dev_pt(input_dev, wacom_wac); | 715 | input_dev_pt(input_dev, wacom_wac); |
598 | break; | 716 | break; |
@@ -611,6 +729,7 @@ static struct wacom_features wacom_features[] = { | |||
611 | { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 }, | 729 | { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 }, |
612 | { "Wacom BambooFun 4x5", 9, 14760, 9225, 511, 63, WACOM_MO }, | 730 | { "Wacom BambooFun 4x5", 9, 14760, 9225, 511, 63, WACOM_MO }, |
613 | { "Wacom BambooFun 6x8", 9, 21648, 13530, 511, 63, WACOM_MO }, | 731 | { "Wacom BambooFun 6x8", 9, 21648, 13530, 511, 63, WACOM_MO }, |
732 | { "Wacom Bamboo1 Medium",8, 16704, 12064, 511, 63, GRAPHIRE }, | ||
614 | { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE }, | 733 | { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE }, |
615 | { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE }, | 734 | { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE }, |
616 | { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE }, | 735 | { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE }, |
@@ -650,6 +769,10 @@ static struct wacom_features wacom_features[] = { | |||
650 | { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ }, | 769 | { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ }, |
651 | { "Wacom Cintiq 20WSX", 10, 86680, 54180, 1023, 63, WACOM_BEE }, | 770 | { "Wacom Cintiq 20WSX", 10, 86680, 54180, 1023, 63, WACOM_BEE }, |
652 | { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63, WACOM_BEE }, | 771 | { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63, WACOM_BEE }, |
772 | { "Wacom DTU1931", 8, 37832, 30305, 511, 0, PL }, | ||
773 | { "Wacom ISDv4 90", 8, 26202, 16325, 255, 0, TABLETPC }, | ||
774 | { "Wacom ISDv4 93", 8, 26202, 16325, 255, 0, TABLETPC }, | ||
775 | { "Wacom ISDv4 9A", 8, 26202, 16325, 255, 0, TABLETPC }, | ||
653 | { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, | 776 | { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, |
654 | { } | 777 | { } |
655 | }; | 778 | }; |
@@ -665,6 +788,7 @@ static struct usb_device_id wacom_ids[] = { | |||
665 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) }, | 788 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) }, |
666 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x17) }, | 789 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x17) }, |
667 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x18) }, | 790 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x18) }, |
791 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x19) }, | ||
668 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) }, | 792 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) }, |
669 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) }, | 793 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) }, |
670 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) }, | 794 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) }, |
@@ -704,18 +828,26 @@ static struct usb_device_id wacom_ids[] = { | |||
704 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, | 828 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, |
705 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC5) }, | 829 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC5) }, |
706 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC6) }, | 830 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC6) }, |
831 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC7) }, | ||
832 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x90) }, | ||
833 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x93) }, | ||
834 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x9A) }, | ||
707 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, | 835 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, |
708 | { } | 836 | { } |
709 | }; | 837 | }; |
710 | 838 | ||
711 | const struct usb_device_id * get_device_table(void) { | 839 | const struct usb_device_id *get_device_table(void) |
712 | const struct usb_device_id * id_table = wacom_ids; | 840 | { |
841 | const struct usb_device_id *id_table = wacom_ids; | ||
842 | |||
713 | return id_table; | 843 | return id_table; |
714 | } | 844 | } |
715 | 845 | ||
716 | struct wacom_features * get_wacom_feature(const struct usb_device_id * id) { | 846 | struct wacom_features * get_wacom_feature(const struct usb_device_id *id) |
847 | { | ||
717 | int index = id - wacom_ids; | 848 | int index = id - wacom_ids; |
718 | struct wacom_features *wf = &wacom_features[index]; | 849 | struct wacom_features *wf = &wacom_features[index]; |
850 | |||
719 | return wf; | 851 | return wf; |
720 | } | 852 | } |
721 | 853 | ||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h index 3342bc05847d..f9c8b69673b7 100644 --- a/drivers/input/tablet/wacom_wac.h +++ b/drivers/input/tablet/wacom_wac.h | |||
@@ -10,6 +10,7 @@ | |||
10 | #define WACOM_WAC_H | 10 | #define WACOM_WAC_H |
11 | 11 | ||
12 | #define STYLUS_DEVICE_ID 0x02 | 12 | #define STYLUS_DEVICE_ID 0x02 |
13 | #define TOUCH_DEVICE_ID 0x03 | ||
13 | #define CURSOR_DEVICE_ID 0x06 | 14 | #define CURSOR_DEVICE_ID 0x06 |
14 | #define ERASER_DEVICE_ID 0x0A | 15 | #define ERASER_DEVICE_ID 0x0A |
15 | #define PAD_DEVICE_ID 0x0F | 16 | #define PAD_DEVICE_ID 0x0F |
@@ -27,6 +28,7 @@ enum { | |||
27 | CINTIQ, | 28 | CINTIQ, |
28 | WACOM_BEE, | 29 | WACOM_BEE, |
29 | WACOM_MO, | 30 | WACOM_MO, |
31 | TABLETPC, | ||
30 | MAX_TYPE | 32 | MAX_TYPE |
31 | }; | 33 | }; |
32 | 34 | ||
@@ -38,6 +40,8 @@ struct wacom_features { | |||
38 | int pressure_max; | 40 | int pressure_max; |
39 | int distance_max; | 41 | int distance_max; |
40 | int type; | 42 | int type; |
43 | int touch_x_max; | ||
44 | int touch_y_max; | ||
41 | }; | 45 | }; |
42 | 46 | ||
43 | struct wacom_wac { | 47 | struct wacom_wac { |
diff --git a/drivers/input/touchscreen/elo.c b/drivers/input/touchscreen/elo.c index d20689cdbd5d..8f38c5e55ce6 100644 --- a/drivers/input/touchscreen/elo.c +++ b/drivers/input/touchscreen/elo.c | |||
@@ -262,7 +262,7 @@ static int elo_setup_10(struct elo *elo) | |||
262 | input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0); | 262 | input_set_abs_params(dev, ABS_PRESSURE, 0, 255, 0, 0); |
263 | 263 | ||
264 | printk(KERN_INFO "elo: %sTouch touchscreen, fw: %02x.%02x, " | 264 | printk(KERN_INFO "elo: %sTouch touchscreen, fw: %02x.%02x, " |
265 | "features: %x02x, controller: 0x%02x\n", | 265 | "features: 0x%02x, controller: 0x%02x\n", |
266 | elo_types[(packet[1] -'0') & 0x03], | 266 | elo_types[(packet[1] -'0') & 0x03], |
267 | packet[5], packet[4], packet[3], packet[7]); | 267 | packet[5], packet[4], packet[3], packet[7]); |
268 | 268 | ||
diff --git a/drivers/input/xen-kbdfront.c b/drivers/input/xen-kbdfront.c index 3ab6362f043c..928d2ed8865f 100644 --- a/drivers/input/xen-kbdfront.c +++ b/drivers/input/xen-kbdfront.c | |||
@@ -323,7 +323,7 @@ static struct xenbus_device_id xenkbd_ids[] = { | |||
323 | { "" } | 323 | { "" } |
324 | }; | 324 | }; |
325 | 325 | ||
326 | static struct xenbus_driver xenkbd = { | 326 | static struct xenbus_driver xenkbd_driver = { |
327 | .name = "vkbd", | 327 | .name = "vkbd", |
328 | .owner = THIS_MODULE, | 328 | .owner = THIS_MODULE, |
329 | .ids = xenkbd_ids, | 329 | .ids = xenkbd_ids, |
@@ -342,12 +342,12 @@ static int __init xenkbd_init(void) | |||
342 | if (xen_initial_domain()) | 342 | if (xen_initial_domain()) |
343 | return -ENODEV; | 343 | return -ENODEV; |
344 | 344 | ||
345 | return xenbus_register_frontend(&xenkbd); | 345 | return xenbus_register_frontend(&xenkbd_driver); |
346 | } | 346 | } |
347 | 347 | ||
348 | static void __exit xenkbd_cleanup(void) | 348 | static void __exit xenkbd_cleanup(void) |
349 | { | 349 | { |
350 | xenbus_unregister_driver(&xenkbd); | 350 | xenbus_unregister_driver(&xenkbd_driver); |
351 | } | 351 | } |
352 | 352 | ||
353 | module_init(xenkbd_init); | 353 | module_init(xenkbd_init); |
diff --git a/drivers/isdn/hisax/config.c b/drivers/isdn/hisax/config.c index 84d75a3f5d17..ded9d0baf607 100644 --- a/drivers/isdn/hisax/config.c +++ b/drivers/isdn/hisax/config.c | |||
@@ -1213,7 +1213,7 @@ static void HiSax_shiftcards(int idx) | |||
1213 | memcpy(&cards[i], &cards[i + 1], sizeof(cards[i])); | 1213 | memcpy(&cards[i], &cards[i + 1], sizeof(cards[i])); |
1214 | } | 1214 | } |
1215 | 1215 | ||
1216 | static int HiSax_inithardware(int *busy_flag) | 1216 | static int __init HiSax_inithardware(int *busy_flag) |
1217 | { | 1217 | { |
1218 | int foundcards = 0; | 1218 | int foundcards = 0; |
1219 | int i = 0; | 1219 | int i = 0; |
@@ -1542,7 +1542,9 @@ static void __exit HiSax_exit(void) | |||
1542 | printk(KERN_INFO "HiSax module removed\n"); | 1542 | printk(KERN_INFO "HiSax module removed\n"); |
1543 | } | 1543 | } |
1544 | 1544 | ||
1545 | int hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card) | 1545 | #ifdef CONFIG_HOTPLUG |
1546 | |||
1547 | int __devinit hisax_init_pcmcia(void *pcm_iob, int *busy_flag, struct IsdnCard *card) | ||
1546 | { | 1548 | { |
1547 | u_char ids[16]; | 1549 | u_char ids[16]; |
1548 | int ret = -1; | 1550 | int ret = -1; |
@@ -1563,6 +1565,8 @@ error: | |||
1563 | } | 1565 | } |
1564 | 1566 | ||
1565 | EXPORT_SYMBOL(hisax_init_pcmcia); | 1567 | EXPORT_SYMBOL(hisax_init_pcmcia); |
1568 | #endif | ||
1569 | |||
1566 | EXPORT_SYMBOL(HiSax_closecard); | 1570 | EXPORT_SYMBOL(HiSax_closecard); |
1567 | 1571 | ||
1568 | #include "hisax_if.h" | 1572 | #include "hisax_if.h" |
@@ -1580,6 +1584,11 @@ static void hisax_bc_close(struct BCState *bcs); | |||
1580 | static void hisax_bh(struct work_struct *work); | 1584 | static void hisax_bh(struct work_struct *work); |
1581 | static void EChannel_proc_rcv(struct hisax_d_if *d_if); | 1585 | static void EChannel_proc_rcv(struct hisax_d_if *d_if); |
1582 | 1586 | ||
1587 | static int hisax_setup_card_dynamic(struct IsdnCard *card) | ||
1588 | { | ||
1589 | return 2; | ||
1590 | } | ||
1591 | |||
1583 | int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[], | 1592 | int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[], |
1584 | char *name, int protocol) | 1593 | char *name, int protocol) |
1585 | { | 1594 | { |
@@ -1599,7 +1608,8 @@ int hisax_register(struct hisax_d_if *hisax_d_if, struct hisax_b_if *b_if[], | |||
1599 | cards[i].protocol = protocol; | 1608 | cards[i].protocol = protocol; |
1600 | sprintf(id, "%s%d", name, i); | 1609 | sprintf(id, "%s%d", name, i); |
1601 | nrcards++; | 1610 | nrcards++; |
1602 | retval = checkcard(i, id, NULL, hisax_d_if->owner, hisax_cs_setup_card); | 1611 | retval = checkcard(i, id, NULL, hisax_d_if->owner, |
1612 | hisax_setup_card_dynamic); | ||
1603 | if (retval == 0) { // yuck | 1613 | if (retval == 0) { // yuck |
1604 | cards[i].typ = 0; | 1614 | cards[i].typ = 0; |
1605 | nrcards--; | 1615 | nrcards--; |
diff --git a/drivers/macintosh/rack-meter.c b/drivers/macintosh/rack-meter.c index 2c21d4f25cc8..a98ab72adf95 100644 --- a/drivers/macintosh/rack-meter.c +++ b/drivers/macintosh/rack-meter.c | |||
@@ -288,7 +288,7 @@ static void __devexit rackmeter_stop_cpu_sniffer(struct rackmeter *rm) | |||
288 | cancel_rearming_delayed_work(&rm->cpu[1].sniffer); | 288 | cancel_rearming_delayed_work(&rm->cpu[1].sniffer); |
289 | } | 289 | } |
290 | 290 | ||
291 | static int rackmeter_setup(struct rackmeter *rm) | 291 | static int __devinit rackmeter_setup(struct rackmeter *rm) |
292 | { | 292 | { |
293 | pr_debug("rackmeter: setting up i2s..\n"); | 293 | pr_debug("rackmeter: setting up i2s..\n"); |
294 | rackmeter_setup_i2s(rm); | 294 | rackmeter_setup_i2s(rm); |
@@ -582,12 +582,12 @@ static struct of_device_id rackmeter_match[] = { | |||
582 | { } | 582 | { } |
583 | }; | 583 | }; |
584 | 584 | ||
585 | static struct macio_driver rackmeter_drv = { | 585 | static struct macio_driver rackmeter_driver = { |
586 | .name = "rackmeter", | 586 | .name = "rackmeter", |
587 | .owner = THIS_MODULE, | 587 | .owner = THIS_MODULE, |
588 | .match_table = rackmeter_match, | 588 | .match_table = rackmeter_match, |
589 | .probe = rackmeter_probe, | 589 | .probe = rackmeter_probe, |
590 | .remove = rackmeter_remove, | 590 | .remove = __devexit_p(rackmeter_remove), |
591 | .shutdown = rackmeter_shutdown, | 591 | .shutdown = rackmeter_shutdown, |
592 | }; | 592 | }; |
593 | 593 | ||
@@ -596,14 +596,14 @@ static int __init rackmeter_init(void) | |||
596 | { | 596 | { |
597 | pr_debug("rackmeter_init()\n"); | 597 | pr_debug("rackmeter_init()\n"); |
598 | 598 | ||
599 | return macio_register_driver(&rackmeter_drv); | 599 | return macio_register_driver(&rackmeter_driver); |
600 | } | 600 | } |
601 | 601 | ||
602 | static void __exit rackmeter_exit(void) | 602 | static void __exit rackmeter_exit(void) |
603 | { | 603 | { |
604 | pr_debug("rackmeter_exit()\n"); | 604 | pr_debug("rackmeter_exit()\n"); |
605 | 605 | ||
606 | macio_unregister_driver(&rackmeter_drv); | 606 | macio_unregister_driver(&rackmeter_driver); |
607 | } | 607 | } |
608 | 608 | ||
609 | module_init(rackmeter_init); | 609 | module_init(rackmeter_init); |
diff --git a/drivers/media/dvb/dm1105/dm1105.c b/drivers/media/dvb/dm1105/dm1105.c index 14e627ef6465..c1d92f838ca8 100644 --- a/drivers/media/dvb/dm1105/dm1105.c +++ b/drivers/media/dvb/dm1105/dm1105.c | |||
@@ -376,7 +376,7 @@ static void dm1105dvb_dma_unmap(struct dm1105dvb *dm1105dvb) | |||
376 | pci_free_consistent(dm1105dvb->pdev, 6*DM1105_DMA_BYTES, dm1105dvb->ts_buf, dm1105dvb->dma_addr); | 376 | pci_free_consistent(dm1105dvb->pdev, 6*DM1105_DMA_BYTES, dm1105dvb->ts_buf, dm1105dvb->dma_addr); |
377 | } | 377 | } |
378 | 378 | ||
379 | static void __devinit dm1105dvb_enable_irqs(struct dm1105dvb *dm1105dvb) | 379 | static void dm1105dvb_enable_irqs(struct dm1105dvb *dm1105dvb) |
380 | { | 380 | { |
381 | outb(INTMAK_ALLMASK, dm_io_mem(DM1105_INTMAK)); | 381 | outb(INTMAK_ALLMASK, dm_io_mem(DM1105_INTMAK)); |
382 | outb(1, dm_io_mem(DM1105_CR)); | 382 | outb(1, dm_io_mem(DM1105_CR)); |
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c index 8557bf12cfb4..7a421e9dba5a 100644 --- a/drivers/media/dvb/dvb-core/dvb_frontend.c +++ b/drivers/media/dvb/dvb-core/dvb_frontend.c | |||
@@ -585,6 +585,8 @@ restart: | |||
585 | if (fe->ops.set_voltage) | 585 | if (fe->ops.set_voltage) |
586 | fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF); | 586 | fe->ops.set_voltage(fe, SEC_VOLTAGE_OFF); |
587 | if (fe->ops.tuner_ops.sleep) { | 587 | if (fe->ops.tuner_ops.sleep) { |
588 | if (fe->ops.i2c_gate_ctrl) | ||
589 | fe->ops.i2c_gate_ctrl(fe, 1); | ||
588 | fe->ops.tuner_ops.sleep(fe); | 590 | fe->ops.tuner_ops.sleep(fe); |
589 | if (fe->ops.i2c_gate_ctrl) | 591 | if (fe->ops.i2c_gate_ctrl) |
590 | fe->ops.i2c_gate_ctrl(fe, 0); | 592 | fe->ops.i2c_gate_ctrl(fe, 0); |
@@ -934,7 +936,8 @@ void dtv_property_dump(struct dtv_property *tvp) | |||
934 | int is_legacy_delivery_system(fe_delivery_system_t s) | 936 | int is_legacy_delivery_system(fe_delivery_system_t s) |
935 | { | 937 | { |
936 | if((s == SYS_UNDEFINED) || (s == SYS_DVBC_ANNEX_AC) || | 938 | if((s == SYS_UNDEFINED) || (s == SYS_DVBC_ANNEX_AC) || |
937 | (s == SYS_DVBC_ANNEX_B) || (s == SYS_DVBT) || (s == SYS_DVBS)) | 939 | (s == SYS_DVBC_ANNEX_B) || (s == SYS_DVBT) || (s == SYS_DVBS) || |
940 | (s == SYS_ATSC)) | ||
938 | return 1; | 941 | return 1; |
939 | 942 | ||
940 | return 0; | 943 | return 0; |
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c index 847d8fdd9ec4..e9ab0249d133 100644 --- a/drivers/media/dvb/dvb-usb/af9015.c +++ b/drivers/media/dvb/dvb-usb/af9015.c | |||
@@ -681,12 +681,6 @@ static int af9015_download_firmware(struct usb_device *udev, | |||
681 | goto error; | 681 | goto error; |
682 | } | 682 | } |
683 | 683 | ||
684 | /* firmware is running, reconnect device in the usb bus */ | ||
685 | req.cmd = RECONNECT_USB; | ||
686 | ret = af9015_rw_udev(udev, &req); | ||
687 | if (ret) | ||
688 | err("reconnect failed: %d", ret); | ||
689 | |||
690 | error: | 684 | error: |
691 | return ret; | 685 | return ret; |
692 | } | 686 | } |
@@ -1208,6 +1202,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { | |||
1208 | .usb_ctrl = DEVICE_SPECIFIC, | 1202 | .usb_ctrl = DEVICE_SPECIFIC, |
1209 | .download_firmware = af9015_download_firmware, | 1203 | .download_firmware = af9015_download_firmware, |
1210 | .firmware = "dvb-usb-af9015.fw", | 1204 | .firmware = "dvb-usb-af9015.fw", |
1205 | .no_reconnect = 1, | ||
1211 | 1206 | ||
1212 | .size_of_priv = sizeof(struct af9015_state), \ | 1207 | .size_of_priv = sizeof(struct af9015_state), \ |
1213 | 1208 | ||
@@ -1306,6 +1301,7 @@ static struct dvb_usb_device_properties af9015_properties[] = { | |||
1306 | .usb_ctrl = DEVICE_SPECIFIC, | 1301 | .usb_ctrl = DEVICE_SPECIFIC, |
1307 | .download_firmware = af9015_download_firmware, | 1302 | .download_firmware = af9015_download_firmware, |
1308 | .firmware = "dvb-usb-af9015.fw", | 1303 | .firmware = "dvb-usb-af9015.fw", |
1304 | .no_reconnect = 1, | ||
1309 | 1305 | ||
1310 | .size_of_priv = sizeof(struct af9015_state), \ | 1306 | .size_of_priv = sizeof(struct af9015_state), \ |
1311 | 1307 | ||
diff --git a/drivers/media/dvb/dvb-usb/dib0700.h b/drivers/media/dvb/dvb-usb/dib0700.h index 739193943c17..8b544fe79b0d 100644 --- a/drivers/media/dvb/dvb-usb/dib0700.h +++ b/drivers/media/dvb/dvb-usb/dib0700.h | |||
@@ -22,7 +22,7 @@ extern int dvb_usb_dib0700_debug; | |||
22 | 22 | ||
23 | #define REQUEST_I2C_READ 0x2 | 23 | #define REQUEST_I2C_READ 0x2 |
24 | #define REQUEST_I2C_WRITE 0x3 | 24 | #define REQUEST_I2C_WRITE 0x3 |
25 | #define REQUEST_POLL_RC 0x4 | 25 | #define REQUEST_POLL_RC 0x4 /* deprecated in firmware v1.20 */ |
26 | #define REQUEST_JUMPRAM 0x8 | 26 | #define REQUEST_JUMPRAM 0x8 |
27 | #define REQUEST_SET_CLOCK 0xB | 27 | #define REQUEST_SET_CLOCK 0xB |
28 | #define REQUEST_SET_GPIO 0xC | 28 | #define REQUEST_SET_GPIO 0xC |
@@ -40,11 +40,14 @@ struct dib0700_state { | |||
40 | u16 mt2060_if1[2]; | 40 | u16 mt2060_if1[2]; |
41 | u8 rc_toggle; | 41 | u8 rc_toggle; |
42 | u8 rc_counter; | 42 | u8 rc_counter; |
43 | u8 rc_func_version; | ||
43 | u8 is_dib7000pc; | 44 | u8 is_dib7000pc; |
44 | u8 fw_use_new_i2c_api; | 45 | u8 fw_use_new_i2c_api; |
45 | u8 disable_streaming_master_mode; | 46 | u8 disable_streaming_master_mode; |
46 | }; | 47 | }; |
47 | 48 | ||
49 | extern int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, | ||
50 | u32 *romversion, u32 *ramversion, u32 *fwtype); | ||
48 | extern int dib0700_set_gpio(struct dvb_usb_device *, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val); | 51 | extern int dib0700_set_gpio(struct dvb_usb_device *, enum dib07x0_gpios gpio, u8 gpio_dir, u8 gpio_val); |
49 | extern int dib0700_ctrl_clock(struct dvb_usb_device *d, u32 clk_MHz, u8 clock_out_gp3); | 52 | extern int dib0700_ctrl_clock(struct dvb_usb_device *d, u32 clk_MHz, u8 clock_out_gp3); |
50 | extern int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen); | 53 | extern int dib0700_ctrl_rd(struct dvb_usb_device *d, u8 *tx, u8 txlen, u8 *rx, u8 rxlen); |
diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c index dd53cee3896d..200b215f4d8b 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_core.c +++ b/drivers/media/dvb/dvb-usb/dib0700_core.c | |||
@@ -19,6 +19,22 @@ MODULE_PARM_DESC(dvb_usb_dib0700_ir_proto, "set ir protocol (0=NEC, 1=RC5 (defau | |||
19 | 19 | ||
20 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); | 20 | DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); |
21 | 21 | ||
22 | |||
23 | int dib0700_get_version(struct dvb_usb_device *d, u32 *hwversion, | ||
24 | u32 *romversion, u32 *ramversion, u32 *fwtype) | ||
25 | { | ||
26 | u8 b[16]; | ||
27 | int ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), | ||
28 | REQUEST_GET_VERSION, | ||
29 | USB_TYPE_VENDOR | USB_DIR_IN, 0, 0, | ||
30 | b, sizeof(b), USB_CTRL_GET_TIMEOUT); | ||
31 | *hwversion = (b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3]; | ||
32 | *romversion = (b[4] << 24) | (b[5] << 16) | (b[6] << 8) | b[7]; | ||
33 | *ramversion = (b[8] << 24) | (b[9] << 16) | (b[10] << 8) | b[11]; | ||
34 | *fwtype = (b[12] << 24) | (b[13] << 16) | (b[14] << 8) | b[15]; | ||
35 | return ret; | ||
36 | } | ||
37 | |||
22 | /* expecting rx buffer: request data[0] data[1] ... data[2] */ | 38 | /* expecting rx buffer: request data[0] data[1] ... data[2] */ |
23 | static int dib0700_ctrl_wr(struct dvb_usb_device *d, u8 *tx, u8 txlen) | 39 | static int dib0700_ctrl_wr(struct dvb_usb_device *d, u8 *tx, u8 txlen) |
24 | { | 40 | { |
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c index 0cfccc24b190..f28d3ae59e04 100644 --- a/drivers/media/dvb/dvb-usb/dib0700_devices.c +++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c | |||
@@ -38,6 +38,7 @@ static struct mt2060_config bristol_mt2060_config[2] = { | |||
38 | } | 38 | } |
39 | }; | 39 | }; |
40 | 40 | ||
41 | |||
41 | static struct dibx000_agc_config bristol_dib3000p_mt2060_agc_config = { | 42 | static struct dibx000_agc_config bristol_dib3000p_mt2060_agc_config = { |
42 | .band_caps = BAND_VHF | BAND_UHF, | 43 | .band_caps = BAND_VHF | BAND_UHF, |
43 | .setup = (1 << 8) | (5 << 5) | (0 << 4) | (0 << 3) | (0 << 2) | (2 << 0), | 44 | .setup = (1 << 8) | (5 << 5) | (0 << 4) | (0 << 3) | (0 << 2) | (2 << 0), |
@@ -451,8 +452,13 @@ static u8 rc_request[] = { REQUEST_POLL_RC, 0 }; | |||
451 | 452 | ||
452 | /* Number of keypresses to ignore before start repeating */ | 453 | /* Number of keypresses to ignore before start repeating */ |
453 | #define RC_REPEAT_DELAY 2 | 454 | #define RC_REPEAT_DELAY 2 |
455 | #define RC_REPEAT_DELAY_V1_20 5 | ||
454 | 456 | ||
455 | static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | 457 | |
458 | |||
459 | /* Used by firmware versions < 1.20 (deprecated) */ | ||
460 | static int dib0700_rc_query_legacy(struct dvb_usb_device *d, u32 *event, | ||
461 | int *state) | ||
456 | { | 462 | { |
457 | u8 key[4]; | 463 | u8 key[4]; |
458 | int i; | 464 | int i; |
@@ -529,6 +535,137 @@ static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | |||
529 | return 0; | 535 | return 0; |
530 | } | 536 | } |
531 | 537 | ||
538 | /* This is the structure of the RC response packet starting in firmware 1.20 */ | ||
539 | struct dib0700_rc_response { | ||
540 | u8 report_id; | ||
541 | u8 data_state; | ||
542 | u8 system_msb; | ||
543 | u8 system_lsb; | ||
544 | u8 data; | ||
545 | u8 not_data; | ||
546 | }; | ||
547 | |||
548 | /* This supports the new IR response format for firmware v1.20 */ | ||
549 | static int dib0700_rc_query_v1_20(struct dvb_usb_device *d, u32 *event, | ||
550 | int *state) | ||
551 | { | ||
552 | struct dvb_usb_rc_key *keymap = d->props.rc_key_map; | ||
553 | struct dib0700_state *st = d->priv; | ||
554 | struct dib0700_rc_response poll_reply; | ||
555 | u8 buf[6]; | ||
556 | int i; | ||
557 | int status; | ||
558 | int actlen; | ||
559 | int found = 0; | ||
560 | |||
561 | /* Set initial results in case we exit the function early */ | ||
562 | *event = 0; | ||
563 | *state = REMOTE_NO_KEY_PRESSED; | ||
564 | |||
565 | /* Firmware v1.20 provides RC data via bulk endpoint 1 */ | ||
566 | status = usb_bulk_msg(d->udev, usb_rcvbulkpipe(d->udev, 1), buf, | ||
567 | sizeof(buf), &actlen, 50); | ||
568 | if (status < 0) { | ||
569 | /* No data available (meaning no key press) */ | ||
570 | return 0; | ||
571 | } | ||
572 | |||
573 | if (actlen != sizeof(buf)) { | ||
574 | /* We didn't get back the 6 byte message we expected */ | ||
575 | err("Unexpected RC response size [%d]", actlen); | ||
576 | return -1; | ||
577 | } | ||
578 | |||
579 | poll_reply.report_id = buf[0]; | ||
580 | poll_reply.data_state = buf[1]; | ||
581 | poll_reply.system_msb = buf[2]; | ||
582 | poll_reply.system_lsb = buf[3]; | ||
583 | poll_reply.data = buf[4]; | ||
584 | poll_reply.not_data = buf[5]; | ||
585 | |||
586 | /* | ||
587 | info("rid=%02x ds=%02x sm=%02x sl=%02x d=%02x nd=%02x\n", | ||
588 | poll_reply.report_id, poll_reply.data_state, | ||
589 | poll_reply.system_msb, poll_reply.system_lsb, | ||
590 | poll_reply.data, poll_reply.not_data); | ||
591 | */ | ||
592 | |||
593 | if ((poll_reply.data + poll_reply.not_data) != 0xff) { | ||
594 | /* Key failed integrity check */ | ||
595 | err("key failed integrity check: %02x %02x %02x %02x", | ||
596 | poll_reply.system_msb, poll_reply.system_lsb, | ||
597 | poll_reply.data, poll_reply.not_data); | ||
598 | return -1; | ||
599 | } | ||
600 | |||
601 | /* Find the key in the map */ | ||
602 | for (i = 0; i < d->props.rc_key_map_size; i++) { | ||
603 | if (keymap[i].custom == poll_reply.system_lsb && | ||
604 | keymap[i].data == poll_reply.data) { | ||
605 | *event = keymap[i].event; | ||
606 | found = 1; | ||
607 | break; | ||
608 | } | ||
609 | } | ||
610 | |||
611 | if (found == 0) { | ||
612 | err("Unknown remote controller key: %02x %02x %02x %02x", | ||
613 | poll_reply.system_msb, poll_reply.system_lsb, | ||
614 | poll_reply.data, poll_reply.not_data); | ||
615 | d->last_event = 0; | ||
616 | return 0; | ||
617 | } | ||
618 | |||
619 | if (poll_reply.data_state == 1) { | ||
620 | /* New key hit */ | ||
621 | st->rc_counter = 0; | ||
622 | *event = keymap[i].event; | ||
623 | *state = REMOTE_KEY_PRESSED; | ||
624 | d->last_event = keymap[i].event; | ||
625 | } else if (poll_reply.data_state == 2) { | ||
626 | /* Key repeated */ | ||
627 | st->rc_counter++; | ||
628 | |||
629 | /* prevents unwanted double hits */ | ||
630 | if (st->rc_counter > RC_REPEAT_DELAY_V1_20) { | ||
631 | *event = d->last_event; | ||
632 | *state = REMOTE_KEY_PRESSED; | ||
633 | st->rc_counter = RC_REPEAT_DELAY_V1_20; | ||
634 | } | ||
635 | } else { | ||
636 | err("Unknown data state [%d]", poll_reply.data_state); | ||
637 | } | ||
638 | |||
639 | return 0; | ||
640 | } | ||
641 | |||
642 | static int dib0700_rc_query(struct dvb_usb_device *d, u32 *event, int *state) | ||
643 | { | ||
644 | struct dib0700_state *st = d->priv; | ||
645 | |||
646 | /* Because some people may have improperly named firmware files, | ||
647 | let's figure out whether to use the new firmware call or the legacy | ||
648 | call based on the firmware version embedded in the file */ | ||
649 | if (st->rc_func_version == 0) { | ||
650 | u32 hwver, romver, ramver, fwtype; | ||
651 | int ret = dib0700_get_version(d, &hwver, &romver, &ramver, | ||
652 | &fwtype); | ||
653 | if (ret < 0) { | ||
654 | err("Could not determine version info"); | ||
655 | return -1; | ||
656 | } | ||
657 | if (ramver < 0x10200) | ||
658 | st->rc_func_version = 1; | ||
659 | else | ||
660 | st->rc_func_version = 2; | ||
661 | } | ||
662 | |||
663 | if (st->rc_func_version == 2) | ||
664 | return dib0700_rc_query_v1_20(d, event, state); | ||
665 | else | ||
666 | return dib0700_rc_query_legacy(d, event, state); | ||
667 | } | ||
668 | |||
532 | static struct dvb_usb_rc_key dib0700_rc_keys[] = { | 669 | static struct dvb_usb_rc_key dib0700_rc_keys[] = { |
533 | /* Key codes for the tiny Pinnacle remote*/ | 670 | /* Key codes for the tiny Pinnacle remote*/ |
534 | { 0x07, 0x00, KEY_MUTE }, | 671 | { 0x07, 0x00, KEY_MUTE }, |
diff --git a/drivers/media/dvb/dvb-usb/usb-urb.c b/drivers/media/dvb/dvb-usb/usb-urb.c index 397f51a7b2ad..da93b9e982c0 100644 --- a/drivers/media/dvb/dvb-usb/usb-urb.c +++ b/drivers/media/dvb/dvb-usb/usb-urb.c | |||
@@ -135,7 +135,7 @@ stream->buf_list[stream->buf_num], (long long)stream->dma_addr[stream->buf_num]) | |||
135 | 135 | ||
136 | static int usb_bulk_urb_init(struct usb_data_stream *stream) | 136 | static int usb_bulk_urb_init(struct usb_data_stream *stream) |
137 | { | 137 | { |
138 | int i; | 138 | int i, j; |
139 | 139 | ||
140 | if ((i = usb_allocate_stream_buffers(stream,stream->props.count, | 140 | if ((i = usb_allocate_stream_buffers(stream,stream->props.count, |
141 | stream->props.u.bulk.buffersize)) < 0) | 141 | stream->props.u.bulk.buffersize)) < 0) |
@@ -143,9 +143,13 @@ static int usb_bulk_urb_init(struct usb_data_stream *stream) | |||
143 | 143 | ||
144 | /* allocate the URBs */ | 144 | /* allocate the URBs */ |
145 | for (i = 0; i < stream->props.count; i++) { | 145 | for (i = 0; i < stream->props.count; i++) { |
146 | if ((stream->urb_list[i] = usb_alloc_urb(0,GFP_ATOMIC)) == NULL) | 146 | stream->urb_list[i] = usb_alloc_urb(0, GFP_ATOMIC); |
147 | if (!stream->urb_list[i]) { | ||
148 | deb_mem("not enough memory for urb_alloc_urb!.\n"); | ||
149 | for (j = 0; j < i; j++) | ||
150 | usb_free_urb(stream->urb_list[i]); | ||
147 | return -ENOMEM; | 151 | return -ENOMEM; |
148 | 152 | } | |
149 | usb_fill_bulk_urb( stream->urb_list[i], stream->udev, | 153 | usb_fill_bulk_urb( stream->urb_list[i], stream->udev, |
150 | usb_rcvbulkpipe(stream->udev,stream->props.endpoint), | 154 | usb_rcvbulkpipe(stream->udev,stream->props.endpoint), |
151 | stream->buf_list[i], | 155 | stream->buf_list[i], |
@@ -170,9 +174,14 @@ static int usb_isoc_urb_init(struct usb_data_stream *stream) | |||
170 | for (i = 0; i < stream->props.count; i++) { | 174 | for (i = 0; i < stream->props.count; i++) { |
171 | struct urb *urb; | 175 | struct urb *urb; |
172 | int frame_offset = 0; | 176 | int frame_offset = 0; |
173 | if ((stream->urb_list[i] = | 177 | |
174 | usb_alloc_urb(stream->props.u.isoc.framesperurb,GFP_ATOMIC)) == NULL) | 178 | stream->urb_list[i] = usb_alloc_urb(stream->props.u.isoc.framesperurb, GFP_ATOMIC); |
179 | if (!stream->urb_list[i]) { | ||
180 | deb_mem("not enough memory for urb_alloc_urb!\n"); | ||
181 | for (j = 0; j < i; j++) | ||
182 | usb_free_urb(stream->urb_list[i]); | ||
175 | return -ENOMEM; | 183 | return -ENOMEM; |
184 | } | ||
176 | 185 | ||
177 | urb = stream->urb_list[i]; | 186 | urb = stream->urb_list[i]; |
178 | 187 | ||
diff --git a/drivers/media/dvb/siano/sms-cards.c b/drivers/media/dvb/siano/sms-cards.c index 6f9b77360440..e98d6caf2c23 100644 --- a/drivers/media/dvb/siano/sms-cards.c +++ b/drivers/media/dvb/siano/sms-cards.c | |||
@@ -95,7 +95,7 @@ static struct sms_board sms_boards[] = { | |||
95 | [SMS1XXX_BOARD_HAUPPAUGE_WINDHAM] = { | 95 | [SMS1XXX_BOARD_HAUPPAUGE_WINDHAM] = { |
96 | .name = "Hauppauge WinTV MiniStick", | 96 | .name = "Hauppauge WinTV MiniStick", |
97 | .type = SMS_NOVA_B0, | 97 | .type = SMS_NOVA_B0, |
98 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-01.fw", | 98 | .fw[DEVICE_MODE_DVBT_BDA] = "sms1xxx-hcw-55xxx-dvbt-02.fw", |
99 | }, | 99 | }, |
100 | }; | 100 | }; |
101 | 101 | ||
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c index 66ab0c6e9783..4a3f2b8ea37d 100644 --- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c +++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | |||
@@ -808,6 +808,12 @@ static int ttusb_alloc_iso_urbs(struct ttusb *ttusb) | |||
808 | ISO_BUF_COUNT, | 808 | ISO_BUF_COUNT, |
809 | &ttusb->iso_dma_handle); | 809 | &ttusb->iso_dma_handle); |
810 | 810 | ||
811 | if (!ttusb->iso_buffer) { | ||
812 | dprintk("%s: pci_alloc_consistent - not enough memory\n", | ||
813 | __func__); | ||
814 | return -ENOMEM; | ||
815 | } | ||
816 | |||
811 | memset(ttusb->iso_buffer, 0, | 817 | memset(ttusb->iso_buffer, 0, |
812 | ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT); | 818 | ISO_FRAME_SIZE * FRAMES_PER_ISO_BUF * ISO_BUF_COUNT); |
813 | 819 | ||
@@ -1659,7 +1665,14 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
1659 | 1665 | ||
1660 | ttusb_setup_interfaces(ttusb); | 1666 | ttusb_setup_interfaces(ttusb); |
1661 | 1667 | ||
1662 | ttusb_alloc_iso_urbs(ttusb); | 1668 | result = ttusb_alloc_iso_urbs(ttusb); |
1669 | if (result < 0) { | ||
1670 | dprintk("%s: ttusb_alloc_iso_urbs - failed\n", __func__); | ||
1671 | mutex_unlock(&ttusb->semi2c); | ||
1672 | kfree(ttusb); | ||
1673 | return result; | ||
1674 | } | ||
1675 | |||
1663 | if (ttusb_init_controller(ttusb)) | 1676 | if (ttusb_init_controller(ttusb)) |
1664 | printk("ttusb_init_controller: error\n"); | 1677 | printk("ttusb_init_controller: error\n"); |
1665 | 1678 | ||
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c index ab33fec8a19f..0aa96df80fc2 100644 --- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c +++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c | |||
@@ -1157,6 +1157,12 @@ static int ttusb_dec_alloc_iso_urbs(struct ttusb_dec *dec) | |||
1157 | ISO_BUF_COUNT), | 1157 | ISO_BUF_COUNT), |
1158 | &dec->iso_dma_handle); | 1158 | &dec->iso_dma_handle); |
1159 | 1159 | ||
1160 | if (!dec->iso_buffer) { | ||
1161 | dprintk("%s: pci_alloc_consistent - not enough memory\n", | ||
1162 | __func__); | ||
1163 | return -ENOMEM; | ||
1164 | } | ||
1165 | |||
1160 | memset(dec->iso_buffer, 0, | 1166 | memset(dec->iso_buffer, 0, |
1161 | ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT)); | 1167 | ISO_FRAME_SIZE * (FRAMES_PER_ISO_BUF * ISO_BUF_COUNT)); |
1162 | 1168 | ||
@@ -1254,6 +1260,7 @@ static int ttusb_dec_init_usb(struct ttusb_dec *dec) | |||
1254 | dec->irq_buffer = usb_buffer_alloc(dec->udev,IRQ_PACKET_SIZE, | 1260 | dec->irq_buffer = usb_buffer_alloc(dec->udev,IRQ_PACKET_SIZE, |
1255 | GFP_ATOMIC, &dec->irq_dma_handle); | 1261 | GFP_ATOMIC, &dec->irq_dma_handle); |
1256 | if(!dec->irq_buffer) { | 1262 | if(!dec->irq_buffer) { |
1263 | usb_free_urb(dec->irq_urb); | ||
1257 | return -ENOMEM; | 1264 | return -ENOMEM; |
1258 | } | 1265 | } |
1259 | usb_fill_int_urb(dec->irq_urb, dec->udev,dec->irq_pipe, | 1266 | usb_fill_int_urb(dec->irq_urb, dec->udev,dec->irq_pipe, |
diff --git a/drivers/media/video/em28xx/em28xx-audio.c b/drivers/media/video/em28xx/em28xx-audio.c index ac3292d7646c..7a8d49ef646e 100644 --- a/drivers/media/video/em28xx/em28xx-audio.c +++ b/drivers/media/video/em28xx/em28xx-audio.c | |||
@@ -62,7 +62,7 @@ static int em28xx_isoc_audio_deinit(struct em28xx *dev) | |||
62 | 62 | ||
63 | dprintk("Stopping isoc\n"); | 63 | dprintk("Stopping isoc\n"); |
64 | for (i = 0; i < EM28XX_AUDIO_BUFS; i++) { | 64 | for (i = 0; i < EM28XX_AUDIO_BUFS; i++) { |
65 | usb_kill_urb(dev->adev->urb[i]); | 65 | usb_unlink_urb(dev->adev->urb[i]); |
66 | usb_free_urb(dev->adev->urb[i]); | 66 | usb_free_urb(dev->adev->urb[i]); |
67 | dev->adev->urb[i] = NULL; | 67 | dev->adev->urb[i] = NULL; |
68 | } | 68 | } |
@@ -75,7 +75,6 @@ static void em28xx_audio_isocirq(struct urb *urb) | |||
75 | struct em28xx *dev = urb->context; | 75 | struct em28xx *dev = urb->context; |
76 | int i; | 76 | int i; |
77 | unsigned int oldptr; | 77 | unsigned int oldptr; |
78 | unsigned long flags; | ||
79 | int period_elapsed = 0; | 78 | int period_elapsed = 0; |
80 | int status; | 79 | int status; |
81 | unsigned char *cp; | 80 | unsigned char *cp; |
@@ -96,9 +95,21 @@ static void em28xx_audio_isocirq(struct urb *urb) | |||
96 | if (!length) | 95 | if (!length) |
97 | continue; | 96 | continue; |
98 | 97 | ||
99 | spin_lock_irqsave(&dev->adev->slock, flags); | ||
100 | |||
101 | oldptr = dev->adev->hwptr_done_capture; | 98 | oldptr = dev->adev->hwptr_done_capture; |
99 | if (oldptr + length >= runtime->buffer_size) { | ||
100 | unsigned int cnt = | ||
101 | runtime->buffer_size - oldptr; | ||
102 | memcpy(runtime->dma_area + oldptr * stride, cp, | ||
103 | cnt * stride); | ||
104 | memcpy(runtime->dma_area, cp + cnt * stride, | ||
105 | length * stride - cnt * stride); | ||
106 | } else { | ||
107 | memcpy(runtime->dma_area + oldptr * stride, cp, | ||
108 | length * stride); | ||
109 | } | ||
110 | |||
111 | snd_pcm_stream_lock(substream); | ||
112 | |||
102 | dev->adev->hwptr_done_capture += length; | 113 | dev->adev->hwptr_done_capture += length; |
103 | if (dev->adev->hwptr_done_capture >= | 114 | if (dev->adev->hwptr_done_capture >= |
104 | runtime->buffer_size) | 115 | runtime->buffer_size) |
@@ -113,19 +124,7 @@ static void em28xx_audio_isocirq(struct urb *urb) | |||
113 | period_elapsed = 1; | 124 | period_elapsed = 1; |
114 | } | 125 | } |
115 | 126 | ||
116 | spin_unlock_irqrestore(&dev->adev->slock, flags); | 127 | snd_pcm_stream_unlock(substream); |
117 | |||
118 | if (oldptr + length >= runtime->buffer_size) { | ||
119 | unsigned int cnt = | ||
120 | runtime->buffer_size - oldptr; | ||
121 | memcpy(runtime->dma_area + oldptr * stride, cp, | ||
122 | cnt * stride); | ||
123 | memcpy(runtime->dma_area, cp + cnt * stride, | ||
124 | length * stride - cnt * stride); | ||
125 | } else { | ||
126 | memcpy(runtime->dma_area + oldptr * stride, cp, | ||
127 | length * stride); | ||
128 | } | ||
129 | } | 128 | } |
130 | if (period_elapsed) | 129 | if (period_elapsed) |
131 | snd_pcm_period_elapsed(substream); | 130 | snd_pcm_period_elapsed(substream); |
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c index 5d837c16ee22..15e2b525310d 100644 --- a/drivers/media/video/em28xx/em28xx-core.c +++ b/drivers/media/video/em28xx/em28xx-core.c | |||
@@ -69,19 +69,33 @@ int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg, | |||
69 | int ret, byte; | 69 | int ret, byte; |
70 | 70 | ||
71 | if (dev->state & DEV_DISCONNECTED) | 71 | if (dev->state & DEV_DISCONNECTED) |
72 | return(-ENODEV); | 72 | return -ENODEV; |
73 | |||
74 | if (len > URB_MAX_CTRL_SIZE) | ||
75 | return -EINVAL; | ||
73 | 76 | ||
74 | em28xx_regdbg("req=%02x, reg=%02x ", req, reg); | 77 | em28xx_regdbg("req=%02x, reg=%02x ", req, reg); |
75 | 78 | ||
79 | mutex_lock(&dev->ctrl_urb_lock); | ||
76 | ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req, | 80 | ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req, |
77 | USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, | 81 | USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
78 | 0x0000, reg, buf, len, HZ); | 82 | 0x0000, reg, dev->urb_buf, len, HZ); |
83 | if (ret < 0) { | ||
84 | if (reg_debug) | ||
85 | printk(" failed!\n"); | ||
86 | mutex_unlock(&dev->ctrl_urb_lock); | ||
87 | return ret; | ||
88 | } | ||
89 | |||
90 | if (len) | ||
91 | memcpy(buf, dev->urb_buf, len); | ||
92 | |||
93 | mutex_unlock(&dev->ctrl_urb_lock); | ||
79 | 94 | ||
80 | if (reg_debug) { | 95 | if (reg_debug) { |
81 | printk(ret < 0 ? " failed!\n" : "%02x values: ", ret); | 96 | printk("%02x values: ", ret); |
82 | for (byte = 0; byte < len; byte++) | 97 | for (byte = 0; byte < len; byte++) |
83 | printk(" %02x", (unsigned char)buf[byte]); | 98 | printk(" %02x", (unsigned char)buf[byte]); |
84 | |||
85 | printk("\n"); | 99 | printk("\n"); |
86 | } | 100 | } |
87 | 101 | ||
@@ -102,16 +116,20 @@ int em28xx_read_reg_req(struct em28xx *dev, u8 req, u16 reg) | |||
102 | 116 | ||
103 | em28xx_regdbg("req=%02x, reg=%02x:", req, reg); | 117 | em28xx_regdbg("req=%02x, reg=%02x:", req, reg); |
104 | 118 | ||
119 | mutex_lock(&dev->ctrl_urb_lock); | ||
105 | ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req, | 120 | ret = usb_control_msg(dev->udev, usb_rcvctrlpipe(dev->udev, 0), req, |
106 | USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, | 121 | USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
107 | 0x0000, reg, &val, 1, HZ); | 122 | 0x0000, reg, dev->urb_buf, 1, HZ); |
108 | 123 | val = dev->urb_buf[0]; | |
109 | if (reg_debug) | 124 | mutex_unlock(&dev->ctrl_urb_lock); |
110 | printk(ret < 0 ? " failed!\n" : | ||
111 | "%02x\n", (unsigned char) val); | ||
112 | 125 | ||
113 | if (ret < 0) | 126 | if (ret < 0) { |
127 | printk(" failed!\n"); | ||
114 | return ret; | 128 | return ret; |
129 | } | ||
130 | |||
131 | if (reg_debug) | ||
132 | printk("%02x\n", (unsigned char) val); | ||
115 | 133 | ||
116 | return val; | 134 | return val; |
117 | } | 135 | } |
@@ -130,19 +148,13 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf, | |||
130 | { | 148 | { |
131 | int ret; | 149 | int ret; |
132 | 150 | ||
133 | /*usb_control_msg seems to expect a kmalloced buffer */ | ||
134 | unsigned char *bufs; | ||
135 | |||
136 | if (dev->state & DEV_DISCONNECTED) | 151 | if (dev->state & DEV_DISCONNECTED) |
137 | return -ENODEV; | 152 | return -ENODEV; |
138 | 153 | ||
139 | if (len < 1) | 154 | if ((len < 1) || (len > URB_MAX_CTRL_SIZE)) |
140 | return -EINVAL; | 155 | return -EINVAL; |
141 | 156 | ||
142 | bufs = kmalloc(len, GFP_KERNEL); | ||
143 | |||
144 | em28xx_regdbg("req=%02x reg=%02x:", req, reg); | 157 | em28xx_regdbg("req=%02x reg=%02x:", req, reg); |
145 | |||
146 | if (reg_debug) { | 158 | if (reg_debug) { |
147 | int i; | 159 | int i; |
148 | for (i = 0; i < len; ++i) | 160 | for (i = 0; i < len; ++i) |
@@ -150,16 +162,16 @@ int em28xx_write_regs_req(struct em28xx *dev, u8 req, u16 reg, char *buf, | |||
150 | printk("\n"); | 162 | printk("\n"); |
151 | } | 163 | } |
152 | 164 | ||
153 | if (!bufs) | 165 | mutex_lock(&dev->ctrl_urb_lock); |
154 | return -ENOMEM; | 166 | memcpy(dev->urb_buf, buf, len); |
155 | memcpy(bufs, buf, len); | ||
156 | ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), req, | 167 | ret = usb_control_msg(dev->udev, usb_sndctrlpipe(dev->udev, 0), req, |
157 | USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, | 168 | USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, |
158 | 0x0000, reg, bufs, len, HZ); | 169 | 0x0000, reg, dev->urb_buf, len, HZ); |
170 | mutex_unlock(&dev->ctrl_urb_lock); | ||
171 | |||
159 | if (dev->wait_after_write) | 172 | if (dev->wait_after_write) |
160 | msleep(dev->wait_after_write); | 173 | msleep(dev->wait_after_write); |
161 | 174 | ||
162 | kfree(bufs); | ||
163 | return ret; | 175 | return ret; |
164 | } | 176 | } |
165 | 177 | ||
@@ -270,6 +282,8 @@ static int em28xx_set_audio_source(struct em28xx *dev) | |||
270 | break; | 282 | break; |
271 | case EM28XX_AMUX_LINE_IN: | 283 | case EM28XX_AMUX_LINE_IN: |
272 | input = EM28XX_AUDIO_SRC_LINE; | 284 | input = EM28XX_AUDIO_SRC_LINE; |
285 | video = disable; | ||
286 | line = enable; | ||
273 | break; | 287 | break; |
274 | case EM28XX_AMUX_AC97_VIDEO: | 288 | case EM28XX_AMUX_AC97_VIDEO: |
275 | input = EM28XX_AUDIO_SRC_LINE; | 289 | input = EM28XX_AUDIO_SRC_LINE; |
diff --git a/drivers/media/video/em28xx/em28xx-i2c.c b/drivers/media/video/em28xx/em28xx-i2c.c index 3bab56b997fc..2360c61ddca9 100644 --- a/drivers/media/video/em28xx/em28xx-i2c.c +++ b/drivers/media/video/em28xx/em28xx-i2c.c | |||
@@ -337,9 +337,9 @@ static int em28xx_i2c_eeprom(struct em28xx *dev, unsigned char *eedata, int len) | |||
337 | /* Check if board has eeprom */ | 337 | /* Check if board has eeprom */ |
338 | err = i2c_master_recv(&dev->i2c_client, &buf, 0); | 338 | err = i2c_master_recv(&dev->i2c_client, &buf, 0); |
339 | if (err < 0) { | 339 | if (err < 0) { |
340 | em28xx_errdev("%s: i2c_master_recv failed! err [%d]\n", | 340 | em28xx_errdev("board has no eeprom\n"); |
341 | __func__, err); | 341 | memset(eedata, 0, len); |
342 | return err; | 342 | return -ENODEV; |
343 | } | 343 | } |
344 | 344 | ||
345 | buf = 0; | 345 | buf = 0; |
@@ -609,14 +609,16 @@ int em28xx_i2c_register(struct em28xx *dev) | |||
609 | dev->i2c_client.adapter = &dev->i2c_adap; | 609 | dev->i2c_client.adapter = &dev->i2c_adap; |
610 | 610 | ||
611 | retval = em28xx_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata)); | 611 | retval = em28xx_i2c_eeprom(dev, dev->eedata, sizeof(dev->eedata)); |
612 | if (retval < 0) { | 612 | if ((retval < 0) && (retval != -ENODEV)) { |
613 | em28xx_errdev("%s: em28xx_i2_eeprom failed! retval [%d]\n", | 613 | em28xx_errdev("%s: em28xx_i2_eeprom failed! retval [%d]\n", |
614 | __func__, retval); | 614 | __func__, retval); |
615 | |||
615 | return retval; | 616 | return retval; |
616 | } | 617 | } |
617 | 618 | ||
618 | if (i2c_scan) | 619 | if (i2c_scan) |
619 | em28xx_do_i2c_scan(dev); | 620 | em28xx_do_i2c_scan(dev); |
621 | |||
620 | return 0; | 622 | return 0; |
621 | } | 623 | } |
622 | 624 | ||
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c index a1ab2ef45578..610f535a257c 100644 --- a/drivers/media/video/em28xx/em28xx-video.c +++ b/drivers/media/video/em28xx/em28xx-video.c | |||
@@ -73,6 +73,7 @@ MODULE_DESCRIPTION(DRIVER_DESC); | |||
73 | MODULE_LICENSE("GPL"); | 73 | MODULE_LICENSE("GPL"); |
74 | 74 | ||
75 | static LIST_HEAD(em28xx_devlist); | 75 | static LIST_HEAD(em28xx_devlist); |
76 | static DEFINE_MUTEX(em28xx_devlist_mutex); | ||
76 | 77 | ||
77 | static unsigned int card[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET }; | 78 | static unsigned int card[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET }; |
78 | static unsigned int video_nr[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET }; | 79 | static unsigned int video_nr[] = {[0 ... (EM28XX_MAXBOARDS - 1)] = UNSET }; |
@@ -1519,7 +1520,7 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp) | |||
1519 | struct em28xx_fh *fh; | 1520 | struct em28xx_fh *fh; |
1520 | enum v4l2_buf_type fh_type = 0; | 1521 | enum v4l2_buf_type fh_type = 0; |
1521 | 1522 | ||
1522 | lock_kernel(); | 1523 | mutex_lock(&em28xx_devlist_mutex); |
1523 | list_for_each_entry(h, &em28xx_devlist, devlist) { | 1524 | list_for_each_entry(h, &em28xx_devlist, devlist) { |
1524 | if (h->vdev->minor == minor) { | 1525 | if (h->vdev->minor == minor) { |
1525 | dev = h; | 1526 | dev = h; |
@@ -1535,10 +1536,11 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp) | |||
1535 | dev = h; | 1536 | dev = h; |
1536 | } | 1537 | } |
1537 | } | 1538 | } |
1538 | if (NULL == dev) { | 1539 | mutex_unlock(&em28xx_devlist_mutex); |
1539 | unlock_kernel(); | 1540 | if (NULL == dev) |
1540 | return -ENODEV; | 1541 | return -ENODEV; |
1541 | } | 1542 | |
1543 | mutex_lock(&dev->lock); | ||
1542 | 1544 | ||
1543 | em28xx_videodbg("open minor=%d type=%s users=%d\n", | 1545 | em28xx_videodbg("open minor=%d type=%s users=%d\n", |
1544 | minor, v4l2_type_names[fh_type], dev->users); | 1546 | minor, v4l2_type_names[fh_type], dev->users); |
@@ -1547,10 +1549,9 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp) | |||
1547 | fh = kzalloc(sizeof(struct em28xx_fh), GFP_KERNEL); | 1549 | fh = kzalloc(sizeof(struct em28xx_fh), GFP_KERNEL); |
1548 | if (!fh) { | 1550 | if (!fh) { |
1549 | em28xx_errdev("em28xx-video.c: Out of memory?!\n"); | 1551 | em28xx_errdev("em28xx-video.c: Out of memory?!\n"); |
1550 | unlock_kernel(); | 1552 | mutex_unlock(&dev->lock); |
1551 | return -ENOMEM; | 1553 | return -ENOMEM; |
1552 | } | 1554 | } |
1553 | mutex_lock(&dev->lock); | ||
1554 | fh->dev = dev; | 1555 | fh->dev = dev; |
1555 | fh->radio = radio; | 1556 | fh->radio = radio; |
1556 | fh->type = fh_type; | 1557 | fh->type = fh_type; |
@@ -1584,7 +1585,6 @@ static int em28xx_v4l2_open(struct inode *inode, struct file *filp) | |||
1584 | sizeof(struct em28xx_buffer), fh); | 1585 | sizeof(struct em28xx_buffer), fh); |
1585 | 1586 | ||
1586 | mutex_unlock(&dev->lock); | 1587 | mutex_unlock(&dev->lock); |
1587 | unlock_kernel(); | ||
1588 | 1588 | ||
1589 | return errCode; | 1589 | return errCode; |
1590 | } | 1590 | } |
@@ -1871,6 +1871,7 @@ int em28xx_register_extension(struct em28xx_ops *ops) | |||
1871 | { | 1871 | { |
1872 | struct em28xx *dev = NULL; | 1872 | struct em28xx *dev = NULL; |
1873 | 1873 | ||
1874 | mutex_lock(&em28xx_devlist_mutex); | ||
1874 | mutex_lock(&em28xx_extension_devlist_lock); | 1875 | mutex_lock(&em28xx_extension_devlist_lock); |
1875 | list_add_tail(&ops->next, &em28xx_extension_devlist); | 1876 | list_add_tail(&ops->next, &em28xx_extension_devlist); |
1876 | list_for_each_entry(dev, &em28xx_devlist, devlist) { | 1877 | list_for_each_entry(dev, &em28xx_devlist, devlist) { |
@@ -1879,6 +1880,7 @@ int em28xx_register_extension(struct em28xx_ops *ops) | |||
1879 | } | 1880 | } |
1880 | printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name); | 1881 | printk(KERN_INFO "Em28xx: Initialized (%s) extension\n", ops->name); |
1881 | mutex_unlock(&em28xx_extension_devlist_lock); | 1882 | mutex_unlock(&em28xx_extension_devlist_lock); |
1883 | mutex_unlock(&em28xx_devlist_mutex); | ||
1882 | return 0; | 1884 | return 0; |
1883 | } | 1885 | } |
1884 | EXPORT_SYMBOL(em28xx_register_extension); | 1886 | EXPORT_SYMBOL(em28xx_register_extension); |
@@ -1887,6 +1889,7 @@ void em28xx_unregister_extension(struct em28xx_ops *ops) | |||
1887 | { | 1889 | { |
1888 | struct em28xx *dev = NULL; | 1890 | struct em28xx *dev = NULL; |
1889 | 1891 | ||
1892 | mutex_lock(&em28xx_devlist_mutex); | ||
1890 | list_for_each_entry(dev, &em28xx_devlist, devlist) { | 1893 | list_for_each_entry(dev, &em28xx_devlist, devlist) { |
1891 | if (dev) | 1894 | if (dev) |
1892 | ops->fini(dev); | 1895 | ops->fini(dev); |
@@ -1896,6 +1899,7 @@ void em28xx_unregister_extension(struct em28xx_ops *ops) | |||
1896 | printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name); | 1899 | printk(KERN_INFO "Em28xx: Removed (%s) extension\n", ops->name); |
1897 | list_del(&ops->next); | 1900 | list_del(&ops->next); |
1898 | mutex_unlock(&em28xx_extension_devlist_lock); | 1901 | mutex_unlock(&em28xx_extension_devlist_lock); |
1902 | mutex_unlock(&em28xx_devlist_mutex); | ||
1899 | } | 1903 | } |
1900 | EXPORT_SYMBOL(em28xx_unregister_extension); | 1904 | EXPORT_SYMBOL(em28xx_unregister_extension); |
1901 | 1905 | ||
@@ -1921,6 +1925,60 @@ static struct video_device *em28xx_vdev_init(struct em28xx *dev, | |||
1921 | } | 1925 | } |
1922 | 1926 | ||
1923 | 1927 | ||
1928 | static int register_analog_devices(struct em28xx *dev) | ||
1929 | { | ||
1930 | int ret; | ||
1931 | |||
1932 | /* allocate and fill video video_device struct */ | ||
1933 | dev->vdev = em28xx_vdev_init(dev, &em28xx_video_template, "video"); | ||
1934 | if (!dev->vdev) { | ||
1935 | em28xx_errdev("cannot allocate video_device.\n"); | ||
1936 | return -ENODEV; | ||
1937 | } | ||
1938 | |||
1939 | /* register v4l2 video video_device */ | ||
1940 | ret = video_register_device(dev->vdev, VFL_TYPE_GRABBER, | ||
1941 | video_nr[dev->devno]); | ||
1942 | if (ret) { | ||
1943 | em28xx_errdev("unable to register video device (error=%i).\n", | ||
1944 | ret); | ||
1945 | return ret; | ||
1946 | } | ||
1947 | |||
1948 | /* Allocate and fill vbi video_device struct */ | ||
1949 | dev->vbi_dev = em28xx_vdev_init(dev, &em28xx_video_template, "vbi"); | ||
1950 | |||
1951 | /* register v4l2 vbi video_device */ | ||
1952 | ret = video_register_device(dev->vbi_dev, VFL_TYPE_VBI, | ||
1953 | vbi_nr[dev->devno]); | ||
1954 | if (ret < 0) { | ||
1955 | em28xx_errdev("unable to register vbi device\n"); | ||
1956 | return ret; | ||
1957 | } | ||
1958 | |||
1959 | if (em28xx_boards[dev->model].radio.type == EM28XX_RADIO) { | ||
1960 | dev->radio_dev = em28xx_vdev_init(dev, &em28xx_radio_template, "radio"); | ||
1961 | if (!dev->radio_dev) { | ||
1962 | em28xx_errdev("cannot allocate video_device.\n"); | ||
1963 | return -ENODEV; | ||
1964 | } | ||
1965 | ret = video_register_device(dev->radio_dev, VFL_TYPE_RADIO, | ||
1966 | radio_nr[dev->devno]); | ||
1967 | if (ret < 0) { | ||
1968 | em28xx_errdev("can't register radio device\n"); | ||
1969 | return ret; | ||
1970 | } | ||
1971 | em28xx_info("Registered radio device as /dev/radio%d\n", | ||
1972 | dev->radio_dev->num); | ||
1973 | } | ||
1974 | |||
1975 | em28xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n", | ||
1976 | dev->vdev->num, dev->vbi_dev->num); | ||
1977 | |||
1978 | return 0; | ||
1979 | } | ||
1980 | |||
1981 | |||
1924 | /* | 1982 | /* |
1925 | * em28xx_init_dev() | 1983 | * em28xx_init_dev() |
1926 | * allocates and inits the device structs, registers i2c bus and v4l device | 1984 | * allocates and inits the device structs, registers i2c bus and v4l device |
@@ -1936,6 +1994,7 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, | |||
1936 | 1994 | ||
1937 | dev->udev = udev; | 1995 | dev->udev = udev; |
1938 | mutex_init(&dev->lock); | 1996 | mutex_init(&dev->lock); |
1997 | mutex_init(&dev->ctrl_urb_lock); | ||
1939 | spin_lock_init(&dev->slock); | 1998 | spin_lock_init(&dev->slock); |
1940 | init_waitqueue_head(&dev->open); | 1999 | init_waitqueue_head(&dev->open); |
1941 | init_waitqueue_head(&dev->wait_frame); | 2000 | init_waitqueue_head(&dev->wait_frame); |
@@ -1953,8 +2012,6 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, | |||
1953 | errCode = em28xx_config(dev); | 2012 | errCode = em28xx_config(dev); |
1954 | if (errCode) { | 2013 | if (errCode) { |
1955 | em28xx_errdev("error configuring device\n"); | 2014 | em28xx_errdev("error configuring device\n"); |
1956 | em28xx_devused &= ~(1<<dev->devno); | ||
1957 | kfree(dev); | ||
1958 | return -ENOMEM; | 2015 | return -ENOMEM; |
1959 | } | 2016 | } |
1960 | 2017 | ||
@@ -2001,50 +2058,6 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, | |||
2001 | return errCode; | 2058 | return errCode; |
2002 | } | 2059 | } |
2003 | 2060 | ||
2004 | list_add_tail(&dev->devlist, &em28xx_devlist); | ||
2005 | |||
2006 | /* allocate and fill video video_device struct */ | ||
2007 | dev->vdev = em28xx_vdev_init(dev, &em28xx_video_template, "video"); | ||
2008 | if (NULL == dev->vdev) { | ||
2009 | em28xx_errdev("cannot allocate video_device.\n"); | ||
2010 | goto fail_unreg; | ||
2011 | } | ||
2012 | |||
2013 | /* register v4l2 video video_device */ | ||
2014 | retval = video_register_device(dev->vdev, VFL_TYPE_GRABBER, | ||
2015 | video_nr[dev->devno]); | ||
2016 | if (retval) { | ||
2017 | em28xx_errdev("unable to register video device (error=%i).\n", | ||
2018 | retval); | ||
2019 | goto fail_unreg; | ||
2020 | } | ||
2021 | |||
2022 | /* Allocate and fill vbi video_device struct */ | ||
2023 | dev->vbi_dev = em28xx_vdev_init(dev, &em28xx_video_template, "vbi"); | ||
2024 | /* register v4l2 vbi video_device */ | ||
2025 | if (video_register_device(dev->vbi_dev, VFL_TYPE_VBI, | ||
2026 | vbi_nr[dev->devno]) < 0) { | ||
2027 | em28xx_errdev("unable to register vbi device\n"); | ||
2028 | retval = -ENODEV; | ||
2029 | goto fail_unreg; | ||
2030 | } | ||
2031 | |||
2032 | if (em28xx_boards[dev->model].radio.type == EM28XX_RADIO) { | ||
2033 | dev->radio_dev = em28xx_vdev_init(dev, &em28xx_radio_template, "radio"); | ||
2034 | if (NULL == dev->radio_dev) { | ||
2035 | em28xx_errdev("cannot allocate video_device.\n"); | ||
2036 | goto fail_unreg; | ||
2037 | } | ||
2038 | retval = video_register_device(dev->radio_dev, VFL_TYPE_RADIO, | ||
2039 | radio_nr[dev->devno]); | ||
2040 | if (retval < 0) { | ||
2041 | em28xx_errdev("can't register radio device\n"); | ||
2042 | goto fail_unreg; | ||
2043 | } | ||
2044 | em28xx_info("Registered radio device as /dev/radio%d\n", | ||
2045 | dev->radio_dev->num); | ||
2046 | } | ||
2047 | |||
2048 | /* init video dma queues */ | 2061 | /* init video dma queues */ |
2049 | INIT_LIST_HEAD(&dev->vidq.active); | 2062 | INIT_LIST_HEAD(&dev->vidq.active); |
2050 | INIT_LIST_HEAD(&dev->vidq.queued); | 2063 | INIT_LIST_HEAD(&dev->vidq.queued); |
@@ -2071,8 +2084,14 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, | |||
2071 | 2084 | ||
2072 | video_mux(dev, 0); | 2085 | video_mux(dev, 0); |
2073 | 2086 | ||
2074 | em28xx_info("V4L2 device registered as /dev/video%d and /dev/vbi%d\n", | 2087 | mutex_lock(&em28xx_devlist_mutex); |
2075 | dev->vdev->num, dev->vbi_dev->num); | 2088 | list_add_tail(&dev->devlist, &em28xx_devlist); |
2089 | retval = register_analog_devices(dev); | ||
2090 | if (retval < 0) { | ||
2091 | em28xx_release_resources(dev); | ||
2092 | mutex_unlock(&em28xx_devlist_mutex); | ||
2093 | goto fail_reg_devices; | ||
2094 | } | ||
2076 | 2095 | ||
2077 | mutex_lock(&em28xx_extension_devlist_lock); | 2096 | mutex_lock(&em28xx_extension_devlist_lock); |
2078 | if (!list_empty(&em28xx_extension_devlist)) { | 2097 | if (!list_empty(&em28xx_extension_devlist)) { |
@@ -2082,13 +2101,12 @@ static int em28xx_init_dev(struct em28xx **devhandle, struct usb_device *udev, | |||
2082 | } | 2101 | } |
2083 | } | 2102 | } |
2084 | mutex_unlock(&em28xx_extension_devlist_lock); | 2103 | mutex_unlock(&em28xx_extension_devlist_lock); |
2104 | mutex_unlock(&em28xx_devlist_mutex); | ||
2085 | 2105 | ||
2086 | return 0; | 2106 | return 0; |
2087 | 2107 | ||
2088 | fail_unreg: | 2108 | fail_reg_devices: |
2089 | em28xx_release_resources(dev); | ||
2090 | mutex_unlock(&dev->lock); | 2109 | mutex_unlock(&dev->lock); |
2091 | kfree(dev); | ||
2092 | return retval; | 2110 | return retval; |
2093 | } | 2111 | } |
2094 | 2112 | ||
@@ -2231,8 +2249,12 @@ static int em28xx_usb_probe(struct usb_interface *interface, | |||
2231 | 2249 | ||
2232 | /* allocate device struct */ | 2250 | /* allocate device struct */ |
2233 | retval = em28xx_init_dev(&dev, udev, nr); | 2251 | retval = em28xx_init_dev(&dev, udev, nr); |
2234 | if (retval) | 2252 | if (retval) { |
2253 | em28xx_devused &= ~(1<<dev->devno); | ||
2254 | kfree(dev); | ||
2255 | |||
2235 | return retval; | 2256 | return retval; |
2257 | } | ||
2236 | 2258 | ||
2237 | em28xx_info("Found %s\n", em28xx_boards[dev->model].name); | 2259 | em28xx_info("Found %s\n", em28xx_boards[dev->model].name); |
2238 | 2260 | ||
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h index 82781178e0a3..5956e9b3062f 100644 --- a/drivers/media/video/em28xx/em28xx.h +++ b/drivers/media/video/em28xx/em28xx.h | |||
@@ -102,6 +102,9 @@ | |||
102 | #define EM28XX_MIN_BUF 4 | 102 | #define EM28XX_MIN_BUF 4 |
103 | #define EM28XX_DEF_BUF 8 | 103 | #define EM28XX_DEF_BUF 8 |
104 | 104 | ||
105 | /*Limits the max URB message size */ | ||
106 | #define URB_MAX_CTRL_SIZE 80 | ||
107 | |||
105 | /* Params for validated field */ | 108 | /* Params for validated field */ |
106 | #define EM28XX_BOARD_NOT_VALIDATED 1 | 109 | #define EM28XX_BOARD_NOT_VALIDATED 1 |
107 | #define EM28XX_BOARD_VALIDATED 0 | 110 | #define EM28XX_BOARD_VALIDATED 0 |
@@ -430,6 +433,7 @@ struct em28xx { | |||
430 | 433 | ||
431 | /* locks */ | 434 | /* locks */ |
432 | struct mutex lock; | 435 | struct mutex lock; |
436 | struct mutex ctrl_urb_lock; /* protects urb_buf */ | ||
433 | /* spinlock_t queue_lock; */ | 437 | /* spinlock_t queue_lock; */ |
434 | struct list_head inqueue, outqueue; | 438 | struct list_head inqueue, outqueue; |
435 | wait_queue_head_t open, wait_frame, wait_stream; | 439 | wait_queue_head_t open, wait_frame, wait_stream; |
@@ -451,6 +455,8 @@ struct em28xx { | |||
451 | unsigned int *alt_max_pkt_size; /* array of wMaxPacketSize */ | 455 | unsigned int *alt_max_pkt_size; /* array of wMaxPacketSize */ |
452 | struct urb *urb[EM28XX_NUM_BUFS]; /* urb for isoc transfers */ | 456 | struct urb *urb[EM28XX_NUM_BUFS]; /* urb for isoc transfers */ |
453 | char *transfer_buffer[EM28XX_NUM_BUFS]; /* transfer buffers for isoc transfer */ | 457 | char *transfer_buffer[EM28XX_NUM_BUFS]; /* transfer buffers for isoc transfer */ |
458 | char urb_buf[URB_MAX_CTRL_SIZE]; /* urb control msg buffer */ | ||
459 | |||
454 | /* helper funcs that call usb_control_msg */ | 460 | /* helper funcs that call usb_control_msg */ |
455 | int (*em28xx_write_regs) (struct em28xx *dev, u16 reg, | 461 | int (*em28xx_write_regs) (struct em28xx *dev, u16 reg, |
456 | char *buf, int len); | 462 | char *buf, int len); |
diff --git a/drivers/media/video/gspca/conex.c b/drivers/media/video/gspca/conex.c index a9d51ba7c57c..de28354ea5ba 100644 --- a/drivers/media/video/gspca/conex.c +++ b/drivers/media/video/gspca/conex.c | |||
@@ -846,10 +846,13 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
846 | return 0; | 846 | return 0; |
847 | } | 847 | } |
848 | 848 | ||
849 | /* called on streamoff with alt 0 and on disconnect */ | ||
849 | static void sd_stop0(struct gspca_dev *gspca_dev) | 850 | static void sd_stop0(struct gspca_dev *gspca_dev) |
850 | { | 851 | { |
851 | int retry = 50; | 852 | int retry = 50; |
852 | 853 | ||
854 | if (!gspca_dev->present) | ||
855 | return; | ||
853 | reg_w_val(gspca_dev, 0x0000, 0x00); | 856 | reg_w_val(gspca_dev, 0x0000, 0x00); |
854 | reg_r(gspca_dev, 0x0002, 1); | 857 | reg_r(gspca_dev, 0x0002, 1); |
855 | reg_w_val(gspca_dev, 0x0053, 0x00); | 858 | reg_w_val(gspca_dev, 0x0053, 0x00); |
diff --git a/drivers/media/video/gspca/finepix.c b/drivers/media/video/gspca/finepix.c index 65d3cbfe6b27..607942fd7970 100644 --- a/drivers/media/video/gspca/finepix.c +++ b/drivers/media/video/gspca/finepix.c | |||
@@ -276,6 +276,12 @@ static void sd_stopN(struct gspca_dev *gspca_dev) | |||
276 | /* Stop the state machine */ | 276 | /* Stop the state machine */ |
277 | if (dev->state != FPIX_NOP) | 277 | if (dev->state != FPIX_NOP) |
278 | wait_for_completion(&dev->can_close); | 278 | wait_for_completion(&dev->can_close); |
279 | } | ||
280 | |||
281 | /* called on streamoff with alt 0 and disconnect */ | ||
282 | static void sd_stop0(struct gspca_dev *gspca_dev) | ||
283 | { | ||
284 | struct usb_fpix *dev = (struct usb_fpix *) gspca_dev; | ||
279 | 285 | ||
280 | usb_free_urb(dev->control_urb); | 286 | usb_free_urb(dev->control_urb); |
281 | dev->control_urb = NULL; | 287 | dev->control_urb = NULL; |
@@ -385,6 +391,7 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
385 | error: | 391 | error: |
386 | /* Free the ressources */ | 392 | /* Free the ressources */ |
387 | sd_stopN(gspca_dev); | 393 | sd_stopN(gspca_dev); |
394 | sd_stop0(gspca_dev); | ||
388 | return ret; | 395 | return ret; |
389 | } | 396 | } |
390 | 397 | ||
@@ -425,6 +432,7 @@ static const struct sd_desc sd_desc = { | |||
425 | .init = sd_init, | 432 | .init = sd_init, |
426 | .start = sd_start, | 433 | .start = sd_start, |
427 | .stopN = sd_stopN, | 434 | .stopN = sd_stopN, |
435 | .stop0 = sd_stop0, | ||
428 | }; | 436 | }; |
429 | 437 | ||
430 | /* -- device connect -- */ | 438 | /* -- device connect -- */ |
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c index e48fbfc8ad05..748a87e82e44 100644 --- a/drivers/media/video/gspca/gspca.c +++ b/drivers/media/video/gspca/gspca.c | |||
@@ -646,15 +646,14 @@ static void gspca_stream_off(struct gspca_dev *gspca_dev) | |||
646 | { | 646 | { |
647 | gspca_dev->streaming = 0; | 647 | gspca_dev->streaming = 0; |
648 | atomic_set(&gspca_dev->nevent, 0); | 648 | atomic_set(&gspca_dev->nevent, 0); |
649 | if (gspca_dev->present) { | 649 | if (gspca_dev->present |
650 | if (gspca_dev->sd_desc->stopN) | 650 | && gspca_dev->sd_desc->stopN) |
651 | gspca_dev->sd_desc->stopN(gspca_dev); | 651 | gspca_dev->sd_desc->stopN(gspca_dev); |
652 | destroy_urbs(gspca_dev); | 652 | destroy_urbs(gspca_dev); |
653 | gspca_set_alt0(gspca_dev); | 653 | gspca_set_alt0(gspca_dev); |
654 | if (gspca_dev->sd_desc->stop0) | 654 | if (gspca_dev->sd_desc->stop0) |
655 | gspca_dev->sd_desc->stop0(gspca_dev); | 655 | gspca_dev->sd_desc->stop0(gspca_dev); |
656 | PDEBUG(D_STREAM, "stream off OK"); | 656 | PDEBUG(D_STREAM, "stream off OK"); |
657 | } | ||
658 | } | 657 | } |
659 | 658 | ||
660 | static void gspca_set_default_mode(struct gspca_dev *gspca_dev) | 659 | static void gspca_set_default_mode(struct gspca_dev *gspca_dev) |
@@ -863,7 +862,7 @@ static int dev_open(struct inode *inode, struct file *file) | |||
863 | int ret; | 862 | int ret; |
864 | 863 | ||
865 | PDEBUG(D_STREAM, "%s open", current->comm); | 864 | PDEBUG(D_STREAM, "%s open", current->comm); |
866 | gspca_dev = (struct gspca_dev *) video_devdata(file); | 865 | gspca_dev = video_drvdata(file); |
867 | if (mutex_lock_interruptible(&gspca_dev->queue_lock)) | 866 | if (mutex_lock_interruptible(&gspca_dev->queue_lock)) |
868 | return -ERESTARTSYS; | 867 | return -ERESTARTSYS; |
869 | if (!gspca_dev->present) { | 868 | if (!gspca_dev->present) { |
@@ -875,6 +874,13 @@ static int dev_open(struct inode *inode, struct file *file) | |||
875 | ret = -EBUSY; | 874 | ret = -EBUSY; |
876 | goto out; | 875 | goto out; |
877 | } | 876 | } |
877 | |||
878 | /* protect the subdriver against rmmod */ | ||
879 | if (!try_module_get(gspca_dev->module)) { | ||
880 | ret = -ENODEV; | ||
881 | goto out; | ||
882 | } | ||
883 | |||
878 | gspca_dev->users++; | 884 | gspca_dev->users++; |
879 | 885 | ||
880 | /* one more user */ | 886 | /* one more user */ |
@@ -884,10 +890,10 @@ static int dev_open(struct inode *inode, struct file *file) | |||
884 | #ifdef GSPCA_DEBUG | 890 | #ifdef GSPCA_DEBUG |
885 | /* activate the v4l2 debug */ | 891 | /* activate the v4l2 debug */ |
886 | if (gspca_debug & D_V4L2) | 892 | if (gspca_debug & D_V4L2) |
887 | gspca_dev->vdev.debug |= V4L2_DEBUG_IOCTL | 893 | gspca_dev->vdev->debug |= V4L2_DEBUG_IOCTL |
888 | | V4L2_DEBUG_IOCTL_ARG; | 894 | | V4L2_DEBUG_IOCTL_ARG; |
889 | else | 895 | else |
890 | gspca_dev->vdev.debug &= ~(V4L2_DEBUG_IOCTL | 896 | gspca_dev->vdev->debug &= ~(V4L2_DEBUG_IOCTL |
891 | | V4L2_DEBUG_IOCTL_ARG); | 897 | | V4L2_DEBUG_IOCTL_ARG); |
892 | #endif | 898 | #endif |
893 | ret = 0; | 899 | ret = 0; |
@@ -921,6 +927,7 @@ static int dev_close(struct inode *inode, struct file *file) | |||
921 | gspca_dev->memory = GSPCA_MEMORY_NO; | 927 | gspca_dev->memory = GSPCA_MEMORY_NO; |
922 | } | 928 | } |
923 | file->private_data = NULL; | 929 | file->private_data = NULL; |
930 | module_put(gspca_dev->module); | ||
924 | mutex_unlock(&gspca_dev->queue_lock); | 931 | mutex_unlock(&gspca_dev->queue_lock); |
925 | 932 | ||
926 | PDEBUG(D_STREAM, "close done"); | 933 | PDEBUG(D_STREAM, "close done"); |
@@ -1748,11 +1755,6 @@ out: | |||
1748 | return ret; | 1755 | return ret; |
1749 | } | 1756 | } |
1750 | 1757 | ||
1751 | static void dev_release(struct video_device *vfd) | ||
1752 | { | ||
1753 | /* nothing */ | ||
1754 | } | ||
1755 | |||
1756 | static struct file_operations dev_fops = { | 1758 | static struct file_operations dev_fops = { |
1757 | .owner = THIS_MODULE, | 1759 | .owner = THIS_MODULE, |
1758 | .open = dev_open, | 1760 | .open = dev_open, |
@@ -1800,7 +1802,7 @@ static struct video_device gspca_template = { | |||
1800 | .name = "gspca main driver", | 1802 | .name = "gspca main driver", |
1801 | .fops = &dev_fops, | 1803 | .fops = &dev_fops, |
1802 | .ioctl_ops = &dev_ioctl_ops, | 1804 | .ioctl_ops = &dev_ioctl_ops, |
1803 | .release = dev_release, /* mandatory */ | 1805 | .release = video_device_release, |
1804 | .minor = -1, | 1806 | .minor = -1, |
1805 | }; | 1807 | }; |
1806 | 1808 | ||
@@ -1869,17 +1871,18 @@ int gspca_dev_probe(struct usb_interface *intf, | |||
1869 | init_waitqueue_head(&gspca_dev->wq); | 1871 | init_waitqueue_head(&gspca_dev->wq); |
1870 | 1872 | ||
1871 | /* init video stuff */ | 1873 | /* init video stuff */ |
1872 | memcpy(&gspca_dev->vdev, &gspca_template, sizeof gspca_template); | 1874 | gspca_dev->vdev = video_device_alloc(); |
1873 | gspca_dev->vdev.parent = &dev->dev; | 1875 | memcpy(gspca_dev->vdev, &gspca_template, sizeof gspca_template); |
1874 | memcpy(&gspca_dev->fops, &dev_fops, sizeof gspca_dev->fops); | 1876 | gspca_dev->vdev->parent = &dev->dev; |
1875 | gspca_dev->vdev.fops = &gspca_dev->fops; | 1877 | gspca_dev->module = module; |
1876 | gspca_dev->fops.owner = module; /* module protection */ | ||
1877 | gspca_dev->present = 1; | 1878 | gspca_dev->present = 1; |
1878 | ret = video_register_device(&gspca_dev->vdev, | 1879 | video_set_drvdata(gspca_dev->vdev, gspca_dev); |
1880 | ret = video_register_device(gspca_dev->vdev, | ||
1879 | VFL_TYPE_GRABBER, | 1881 | VFL_TYPE_GRABBER, |
1880 | video_nr); | 1882 | video_nr); |
1881 | if (ret < 0) { | 1883 | if (ret < 0) { |
1882 | err("video_register_device err %d", ret); | 1884 | err("video_register_device err %d", ret); |
1885 | video_device_release(gspca_dev->vdev); | ||
1883 | goto out; | 1886 | goto out; |
1884 | } | 1887 | } |
1885 | 1888 | ||
@@ -1887,7 +1890,8 @@ int gspca_dev_probe(struct usb_interface *intf, | |||
1887 | PDEBUG(D_PROBE, "probe ok"); | 1890 | PDEBUG(D_PROBE, "probe ok"); |
1888 | return 0; | 1891 | return 0; |
1889 | out: | 1892 | out: |
1890 | kref_put(&gspca_dev->kref, gspca_delete); | 1893 | kfree(gspca_dev->usb_buf); |
1894 | kfree(gspca_dev); | ||
1891 | return ret; | 1895 | return ret; |
1892 | } | 1896 | } |
1893 | EXPORT_SYMBOL(gspca_dev_probe); | 1897 | EXPORT_SYMBOL(gspca_dev_probe); |
@@ -1905,7 +1909,7 @@ void gspca_disconnect(struct usb_interface *intf) | |||
1905 | usb_set_intfdata(intf, NULL); | 1909 | usb_set_intfdata(intf, NULL); |
1906 | 1910 | ||
1907 | /* We don't want people trying to open up the device */ | 1911 | /* We don't want people trying to open up the device */ |
1908 | video_unregister_device(&gspca_dev->vdev); | 1912 | video_unregister_device(gspca_dev->vdev); |
1909 | 1913 | ||
1910 | gspca_dev->present = 0; | 1914 | gspca_dev->present = 0; |
1911 | gspca_dev->streaming = 0; | 1915 | gspca_dev->streaming = 0; |
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h index 1d9dc90b4791..d25e8d69373b 100644 --- a/drivers/media/video/gspca/gspca.h +++ b/drivers/media/video/gspca/gspca.h | |||
@@ -97,7 +97,7 @@ struct sd_desc { | |||
97 | cam_pkt_op pkt_scan; | 97 | cam_pkt_op pkt_scan; |
98 | /* optional operations */ | 98 | /* optional operations */ |
99 | cam_v_op stopN; /* called on stream off - main alt */ | 99 | cam_v_op stopN; /* called on stream off - main alt */ |
100 | cam_v_op stop0; /* called on stream off - alt 0 */ | 100 | cam_v_op stop0; /* called on stream off & disconnect - alt 0 */ |
101 | cam_v_op dq_callback; /* called when a frame has been dequeued */ | 101 | cam_v_op dq_callback; /* called when a frame has been dequeued */ |
102 | cam_jpg_op get_jcomp; | 102 | cam_jpg_op get_jcomp; |
103 | cam_jpg_op set_jcomp; | 103 | cam_jpg_op set_jcomp; |
@@ -120,8 +120,8 @@ struct gspca_frame { | |||
120 | }; | 120 | }; |
121 | 121 | ||
122 | struct gspca_dev { | 122 | struct gspca_dev { |
123 | struct video_device vdev; /* !! must be the first item */ | 123 | struct video_device *vdev; |
124 | struct file_operations fops; | 124 | struct module *module; /* subdriver handling the device */ |
125 | struct usb_device *dev; | 125 | struct usb_device *dev; |
126 | struct kref kref; | 126 | struct kref kref; |
127 | struct file *capt_file; /* file doing video capture */ | 127 | struct file *capt_file; /* file doing video capture */ |
diff --git a/drivers/media/video/gspca/pac7311.c b/drivers/media/video/gspca/pac7311.c index e5ff9a6199ef..fbd45e235d97 100644 --- a/drivers/media/video/gspca/pac7311.c +++ b/drivers/media/video/gspca/pac7311.c | |||
@@ -749,10 +749,13 @@ static void sd_stopN(struct gspca_dev *gspca_dev) | |||
749 | reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */ | 749 | reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */ |
750 | } | 750 | } |
751 | 751 | ||
752 | /* called on streamoff with alt 0 and on disconnect */ | ||
752 | static void sd_stop0(struct gspca_dev *gspca_dev) | 753 | static void sd_stop0(struct gspca_dev *gspca_dev) |
753 | { | 754 | { |
754 | struct sd *sd = (struct sd *) gspca_dev; | 755 | struct sd *sd = (struct sd *) gspca_dev; |
755 | 756 | ||
757 | if (!gspca_dev->present) | ||
758 | return; | ||
756 | if (sd->sensor == SENSOR_PAC7302) { | 759 | if (sd->sensor == SENSOR_PAC7302) { |
757 | reg_w(gspca_dev, 0xff, 0x01); | 760 | reg_w(gspca_dev, 0xff, 0x01); |
758 | reg_w(gspca_dev, 0x78, 0x40); | 761 | reg_w(gspca_dev, 0x78, 0x40); |
diff --git a/drivers/media/video/gspca/spca501.c b/drivers/media/video/gspca/spca501.c index b742f260c7ca..e29954c1c38c 100644 --- a/drivers/media/video/gspca/spca501.c +++ b/drivers/media/video/gspca/spca501.c | |||
@@ -2022,8 +2022,11 @@ static void sd_stopN(struct gspca_dev *gspca_dev) | |||
2022 | reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x01, 0x00); | 2022 | reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x01, 0x00); |
2023 | } | 2023 | } |
2024 | 2024 | ||
2025 | /* called on streamoff with alt 0 and on disconnect */ | ||
2025 | static void sd_stop0(struct gspca_dev *gspca_dev) | 2026 | static void sd_stop0(struct gspca_dev *gspca_dev) |
2026 | { | 2027 | { |
2028 | if (!gspca_dev->present) | ||
2029 | return; | ||
2027 | reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00); | 2030 | reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00); |
2028 | } | 2031 | } |
2029 | 2032 | ||
diff --git a/drivers/media/video/gspca/spca505.c b/drivers/media/video/gspca/spca505.c index b345749213cf..895b9fe4018c 100644 --- a/drivers/media/video/gspca/spca505.c +++ b/drivers/media/video/gspca/spca505.c | |||
@@ -742,8 +742,12 @@ static void sd_stopN(struct gspca_dev *gspca_dev) | |||
742 | reg_write(gspca_dev->dev, 0x02, 0x00, 0x00); | 742 | reg_write(gspca_dev->dev, 0x02, 0x00, 0x00); |
743 | } | 743 | } |
744 | 744 | ||
745 | /* called on streamoff with alt 0 and on disconnect */ | ||
745 | static void sd_stop0(struct gspca_dev *gspca_dev) | 746 | static void sd_stop0(struct gspca_dev *gspca_dev) |
746 | { | 747 | { |
748 | if (!gspca_dev->present) | ||
749 | return; | ||
750 | |||
747 | /* This maybe reset or power control */ | 751 | /* This maybe reset or power control */ |
748 | reg_write(gspca_dev->dev, 0x03, 0x03, 0x20); | 752 | reg_write(gspca_dev->dev, 0x03, 0x03, 0x20); |
749 | reg_write(gspca_dev->dev, 0x03, 0x01, 0x0); | 753 | reg_write(gspca_dev->dev, 0x03, 0x01, 0x0); |
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c index 020a03c466c1..c3de4e44123d 100644 --- a/drivers/media/video/gspca/spca561.c +++ b/drivers/media/video/gspca/spca561.c | |||
@@ -766,10 +766,13 @@ static void sd_stopN(struct gspca_dev *gspca_dev) | |||
766 | } | 766 | } |
767 | } | 767 | } |
768 | 768 | ||
769 | /* called on streamoff with alt 0 and on disconnect */ | ||
769 | static void sd_stop0(struct gspca_dev *gspca_dev) | 770 | static void sd_stop0(struct gspca_dev *gspca_dev) |
770 | { | 771 | { |
771 | struct sd *sd = (struct sd *) gspca_dev; | 772 | struct sd *sd = (struct sd *) gspca_dev; |
772 | 773 | ||
774 | if (!gspca_dev->present) | ||
775 | return; | ||
773 | if (sd->chip_revision == Rev012A) { | 776 | if (sd->chip_revision == Rev012A) { |
774 | reg_w_val(gspca_dev->dev, 0x8118, 0x29); | 777 | reg_w_val(gspca_dev->dev, 0x8118, 0x29); |
775 | reg_w_val(gspca_dev->dev, 0x8114, 0x08); | 778 | reg_w_val(gspca_dev->dev, 0x8114, 0x08); |
diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c index be46d9232540..17af353ddd1c 100644 --- a/drivers/media/video/gspca/vc032x.c +++ b/drivers/media/video/gspca/vc032x.c | |||
@@ -1633,10 +1633,13 @@ static void sd_stopN(struct gspca_dev *gspca_dev) | |||
1633 | reg_w(dev, 0xa0, 0x09, 0xb003); | 1633 | reg_w(dev, 0xa0, 0x09, 0xb003); |
1634 | } | 1634 | } |
1635 | 1635 | ||
1636 | /* called on streamoff with alt 0 and on disconnect */ | ||
1636 | static void sd_stop0(struct gspca_dev *gspca_dev) | 1637 | static void sd_stop0(struct gspca_dev *gspca_dev) |
1637 | { | 1638 | { |
1638 | struct usb_device *dev = gspca_dev->dev; | 1639 | struct usb_device *dev = gspca_dev->dev; |
1639 | 1640 | ||
1641 | if (!gspca_dev->present) | ||
1642 | return; | ||
1640 | reg_w(dev, 0x89, 0xffff, 0xffff); | 1643 | reg_w(dev, 0x89, 0xffff, 0xffff); |
1641 | } | 1644 | } |
1642 | 1645 | ||
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c index 8b3101d347c3..0befacf49855 100644 --- a/drivers/media/video/gspca/zc3xx.c +++ b/drivers/media/video/gspca/zc3xx.c | |||
@@ -7336,10 +7336,13 @@ static int sd_start(struct gspca_dev *gspca_dev) | |||
7336 | return 0; | 7336 | return 0; |
7337 | } | 7337 | } |
7338 | 7338 | ||
7339 | /* called on streamoff with alt 0 and on disconnect */ | ||
7339 | static void sd_stop0(struct gspca_dev *gspca_dev) | 7340 | static void sd_stop0(struct gspca_dev *gspca_dev) |
7340 | { | 7341 | { |
7341 | struct sd *sd = (struct sd *) gspca_dev; | 7342 | struct sd *sd = (struct sd *) gspca_dev; |
7342 | 7343 | ||
7344 | if (!gspca_dev->present) | ||
7345 | return; | ||
7343 | send_unknown(gspca_dev->dev, sd->sensor); | 7346 | send_unknown(gspca_dev->dev, sd->sensor); |
7344 | } | 7347 | } |
7345 | 7348 | ||
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c index 5272926db73e..3c3f8cf73108 100644 --- a/drivers/media/video/s2255drv.c +++ b/drivers/media/video/s2255drv.c | |||
@@ -192,7 +192,7 @@ struct s2255_dmaqueue { | |||
192 | #define S2255_FW_FAILED 3 | 192 | #define S2255_FW_FAILED 3 |
193 | #define S2255_FW_DISCONNECTING 4 | 193 | #define S2255_FW_DISCONNECTING 4 |
194 | 194 | ||
195 | #define S2255_FW_MARKER 0x22552f2f | 195 | #define S2255_FW_MARKER cpu_to_le32(0x22552f2f) |
196 | /* 2255 read states */ | 196 | /* 2255 read states */ |
197 | #define S2255_READ_IDLE 0 | 197 | #define S2255_READ_IDLE 0 |
198 | #define S2255_READ_FRAME 1 | 198 | #define S2255_READ_FRAME 1 |
diff --git a/drivers/misc/sony-laptop.c b/drivers/misc/sony-laptop.c index 7bcb81002dcf..571b211608d1 100644 --- a/drivers/misc/sony-laptop.c +++ b/drivers/misc/sony-laptop.c | |||
@@ -1038,8 +1038,8 @@ static int sony_nc_add(struct acpi_device *device) | |||
1038 | goto outinput; | 1038 | goto outinput; |
1039 | } | 1039 | } |
1040 | 1040 | ||
1041 | if (!acpi_video_backlight_support()) { | 1041 | if (acpi_video_backlight_support()) { |
1042 | printk(KERN_INFO DRV_PFX "Sony: Brightness ignored, must be " | 1042 | printk(KERN_INFO DRV_PFX "brightness ignored, must be " |
1043 | "controlled by ACPI video driver\n"); | 1043 | "controlled by ACPI video driver\n"); |
1044 | } else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT", | 1044 | } else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT", |
1045 | &handle))) { | 1045 | &handle))) { |
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c index 7a4a26b0edd2..899766e16fa8 100644 --- a/drivers/misc/thinkpad_acpi.c +++ b/drivers/misc/thinkpad_acpi.c | |||
@@ -5318,6 +5318,7 @@ static enum fan_control_commands fan_control_commands; | |||
5318 | 5318 | ||
5319 | static u8 fan_control_initial_status; | 5319 | static u8 fan_control_initial_status; |
5320 | static u8 fan_control_desired_level; | 5320 | static u8 fan_control_desired_level; |
5321 | static u8 fan_control_resume_level; | ||
5321 | static int fan_watchdog_maxinterval; | 5322 | static int fan_watchdog_maxinterval; |
5322 | 5323 | ||
5323 | static struct mutex fan_mutex; | 5324 | static struct mutex fan_mutex; |
@@ -5440,8 +5441,8 @@ static int fan_set_level(int level) | |||
5440 | 5441 | ||
5441 | case TPACPI_FAN_WR_ACPI_FANS: | 5442 | case TPACPI_FAN_WR_ACPI_FANS: |
5442 | case TPACPI_FAN_WR_TPEC: | 5443 | case TPACPI_FAN_WR_TPEC: |
5443 | if ((level != TP_EC_FAN_AUTO) && | 5444 | if (!(level & TP_EC_FAN_AUTO) && |
5444 | (level != TP_EC_FAN_FULLSPEED) && | 5445 | !(level & TP_EC_FAN_FULLSPEED) && |
5445 | ((level < 0) || (level > 7))) | 5446 | ((level < 0) || (level > 7))) |
5446 | return -EINVAL; | 5447 | return -EINVAL; |
5447 | 5448 | ||
@@ -6005,38 +6006,67 @@ static void fan_exit(void) | |||
6005 | 6006 | ||
6006 | static void fan_suspend(pm_message_t state) | 6007 | static void fan_suspend(pm_message_t state) |
6007 | { | 6008 | { |
6009 | int rc; | ||
6010 | |||
6008 | if (!fan_control_allowed) | 6011 | if (!fan_control_allowed) |
6009 | return; | 6012 | return; |
6010 | 6013 | ||
6011 | /* Store fan status in cache */ | 6014 | /* Store fan status in cache */ |
6012 | fan_get_status_safe(NULL); | 6015 | fan_control_resume_level = 0; |
6016 | rc = fan_get_status_safe(&fan_control_resume_level); | ||
6017 | if (rc < 0) | ||
6018 | printk(TPACPI_NOTICE | ||
6019 | "failed to read fan level for later " | ||
6020 | "restore during resume: %d\n", rc); | ||
6021 | |||
6022 | /* if it is undefined, don't attempt to restore it. | ||
6023 | * KEEP THIS LAST */ | ||
6013 | if (tp_features.fan_ctrl_status_undef) | 6024 | if (tp_features.fan_ctrl_status_undef) |
6014 | fan_control_desired_level = TP_EC_FAN_AUTO; | 6025 | fan_control_resume_level = 0; |
6015 | } | 6026 | } |
6016 | 6027 | ||
6017 | static void fan_resume(void) | 6028 | static void fan_resume(void) |
6018 | { | 6029 | { |
6019 | u8 saved_fan_level; | ||
6020 | u8 current_level = 7; | 6030 | u8 current_level = 7; |
6021 | bool do_set = false; | 6031 | bool do_set = false; |
6032 | int rc; | ||
6022 | 6033 | ||
6023 | /* DSDT *always* updates status on resume */ | 6034 | /* DSDT *always* updates status on resume */ |
6024 | tp_features.fan_ctrl_status_undef = 0; | 6035 | tp_features.fan_ctrl_status_undef = 0; |
6025 | 6036 | ||
6026 | saved_fan_level = fan_control_desired_level; | ||
6027 | if (!fan_control_allowed || | 6037 | if (!fan_control_allowed || |
6038 | !fan_control_resume_level || | ||
6028 | (fan_get_status_safe(¤t_level) < 0)) | 6039 | (fan_get_status_safe(¤t_level) < 0)) |
6029 | return; | 6040 | return; |
6030 | 6041 | ||
6031 | switch (fan_control_access_mode) { | 6042 | switch (fan_control_access_mode) { |
6032 | case TPACPI_FAN_WR_ACPI_SFAN: | 6043 | case TPACPI_FAN_WR_ACPI_SFAN: |
6033 | do_set = (saved_fan_level > current_level); | 6044 | /* never decrease fan level */ |
6045 | do_set = (fan_control_resume_level > current_level); | ||
6034 | break; | 6046 | break; |
6035 | case TPACPI_FAN_WR_ACPI_FANS: | 6047 | case TPACPI_FAN_WR_ACPI_FANS: |
6036 | case TPACPI_FAN_WR_TPEC: | 6048 | case TPACPI_FAN_WR_TPEC: |
6037 | do_set = ((saved_fan_level & TP_EC_FAN_FULLSPEED) || | 6049 | /* never decrease fan level, scale is: |
6038 | (saved_fan_level == 7 && | 6050 | * TP_EC_FAN_FULLSPEED > 7 >= TP_EC_FAN_AUTO |
6039 | !(current_level & TP_EC_FAN_FULLSPEED))); | 6051 | * |
6052 | * We expect the firmware to set either 7 or AUTO, but we | ||
6053 | * handle FULLSPEED out of paranoia. | ||
6054 | * | ||
6055 | * So, we can safely only restore FULLSPEED or 7, anything | ||
6056 | * else could slow the fan. Restoring AUTO is useless, at | ||
6057 | * best that's exactly what the DSDT already set (it is the | ||
6058 | * slower it uses). | ||
6059 | * | ||
6060 | * Always keep in mind that the DSDT *will* have set the | ||
6061 | * fans to what the vendor supposes is the best level. We | ||
6062 | * muck with it only to speed the fan up. | ||
6063 | */ | ||
6064 | if (fan_control_resume_level != 7 && | ||
6065 | !(fan_control_resume_level & TP_EC_FAN_FULLSPEED)) | ||
6066 | return; | ||
6067 | else | ||
6068 | do_set = !(current_level & TP_EC_FAN_FULLSPEED) && | ||
6069 | (current_level != fan_control_resume_level); | ||
6040 | break; | 6070 | break; |
6041 | default: | 6071 | default: |
6042 | return; | 6072 | return; |
@@ -6044,8 +6074,11 @@ static void fan_resume(void) | |||
6044 | if (do_set) { | 6074 | if (do_set) { |
6045 | printk(TPACPI_NOTICE | 6075 | printk(TPACPI_NOTICE |
6046 | "restoring fan level to 0x%02x\n", | 6076 | "restoring fan level to 0x%02x\n", |
6047 | saved_fan_level); | 6077 | fan_control_resume_level); |
6048 | fan_set_level_safe(saved_fan_level); | 6078 | rc = fan_set_level_safe(fan_control_resume_level); |
6079 | if (rc < 0) | ||
6080 | printk(TPACPI_NOTICE | ||
6081 | "failed to restore fan level: %d\n", rc); | ||
6049 | } | 6082 | } |
6050 | } | 6083 | } |
6051 | 6084 | ||
diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c index e04bcf1dff87..d8966bae0e0b 100644 --- a/drivers/mtd/ubi/eba.c +++ b/drivers/mtd/ubi/eba.c | |||
@@ -1022,7 +1022,7 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to, | |||
1022 | } | 1022 | } |
1023 | 1023 | ||
1024 | /* | 1024 | /* |
1025 | * OK, now the LEB is locked and we can safely start moving iy. Since | 1025 | * OK, now the LEB is locked and we can safely start moving it. Since |
1026 | * this function utilizes thie @ubi->peb1_buf buffer which is shared | 1026 | * this function utilizes thie @ubi->peb1_buf buffer which is shared |
1027 | * with some other functions, so lock the buffer by taking the | 1027 | * with some other functions, so lock the buffer by taking the |
1028 | * @ubi->buf_mutex. | 1028 | * @ubi->buf_mutex. |
diff --git a/drivers/mtd/ubi/scan.c b/drivers/mtd/ubi/scan.c index 4f2daa5bbecf..41d47e1cf15c 100644 --- a/drivers/mtd/ubi/scan.c +++ b/drivers/mtd/ubi/scan.c | |||
@@ -320,7 +320,7 @@ static int compare_lebs(struct ubi_device *ubi, const struct ubi_scan_leb *seb, | |||
320 | } | 320 | } |
321 | 321 | ||
322 | err = ubi_io_read_data(ubi, buf, pnum, 0, len); | 322 | err = ubi_io_read_data(ubi, buf, pnum, 0, len); |
323 | if (err && err != UBI_IO_BITFLIPS) | 323 | if (err && err != UBI_IO_BITFLIPS && err != -EBADMSG) |
324 | goto out_free_buf; | 324 | goto out_free_buf; |
325 | 325 | ||
326 | data_crc = be32_to_cpu(vid_hdr->data_crc); | 326 | data_crc = be32_to_cpu(vid_hdr->data_crc); |
diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c index 05d70937b543..dcb6dac1dc54 100644 --- a/drivers/mtd/ubi/wl.c +++ b/drivers/mtd/ubi/wl.c | |||
@@ -1396,7 +1396,8 @@ int ubi_thread(void *u) | |||
1396 | ubi_msg("%s: %d consecutive failures", | 1396 | ubi_msg("%s: %d consecutive failures", |
1397 | ubi->bgt_name, WL_MAX_FAILURES); | 1397 | ubi->bgt_name, WL_MAX_FAILURES); |
1398 | ubi_ro_mode(ubi); | 1398 | ubi_ro_mode(ubi); |
1399 | break; | 1399 | ubi->thread_enabled = 0; |
1400 | continue; | ||
1400 | } | 1401 | } |
1401 | } else | 1402 | } else |
1402 | failures = 0; | 1403 | failures = 0; |
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 11f143f4adf6..231eeaf1d552 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig | |||
@@ -1825,9 +1825,10 @@ config FEC2 | |||
1825 | 1825 | ||
1826 | config FEC_MPC52xx | 1826 | config FEC_MPC52xx |
1827 | tristate "MPC52xx FEC driver" | 1827 | tristate "MPC52xx FEC driver" |
1828 | depends on PPC_MPC52xx && PPC_BESTCOMM_FEC | 1828 | depends on PPC_MPC52xx && PPC_BESTCOMM |
1829 | select CRC32 | 1829 | select CRC32 |
1830 | select PHYLIB | 1830 | select PHYLIB |
1831 | select PPC_BESTCOMM_FEC | ||
1831 | ---help--- | 1832 | ---help--- |
1832 | This option enables support for the MPC5200's on-chip | 1833 | This option enables support for the MPC5200's on-chip |
1833 | Fast Ethernet Controller | 1834 | Fast Ethernet Controller |
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 36f2bb666bf7..8ed823ae639e 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -2330,7 +2330,7 @@ static void ixgbe_acquire_msix_vectors(struct ixgbe_adapter *adapter, | |||
2330 | * Once we know the feature-set enabled for the device, we'll cache | 2330 | * Once we know the feature-set enabled for the device, we'll cache |
2331 | * the register offset the descriptor ring is assigned to. | 2331 | * the register offset the descriptor ring is assigned to. |
2332 | **/ | 2332 | **/ |
2333 | static void __devinit ixgbe_cache_ring_register(struct ixgbe_adapter *adapter) | 2333 | static void ixgbe_cache_ring_register(struct ixgbe_adapter *adapter) |
2334 | { | 2334 | { |
2335 | int feature_mask = 0, rss_i; | 2335 | int feature_mask = 0, rss_i; |
2336 | int i, txr_idx, rxr_idx; | 2336 | int i, txr_idx, rxr_idx; |
@@ -2367,7 +2367,7 @@ static void __devinit ixgbe_cache_ring_register(struct ixgbe_adapter *adapter) | |||
2367 | * number of queues at compile-time. The polling_netdev array is | 2367 | * number of queues at compile-time. The polling_netdev array is |
2368 | * intended for Multiqueue, but should work fine with a single queue. | 2368 | * intended for Multiqueue, but should work fine with a single queue. |
2369 | **/ | 2369 | **/ |
2370 | static int __devinit ixgbe_alloc_queues(struct ixgbe_adapter *adapter) | 2370 | static int ixgbe_alloc_queues(struct ixgbe_adapter *adapter) |
2371 | { | 2371 | { |
2372 | int i; | 2372 | int i; |
2373 | 2373 | ||
@@ -2408,8 +2408,7 @@ err_tx_ring_allocation: | |||
2408 | * Attempt to configure the interrupts using the best available | 2408 | * Attempt to configure the interrupts using the best available |
2409 | * capabilities of the hardware and the kernel. | 2409 | * capabilities of the hardware and the kernel. |
2410 | **/ | 2410 | **/ |
2411 | static int __devinit ixgbe_set_interrupt_capability(struct ixgbe_adapter | 2411 | static int ixgbe_set_interrupt_capability(struct ixgbe_adapter *adapter) |
2412 | *adapter) | ||
2413 | { | 2412 | { |
2414 | int err = 0; | 2413 | int err = 0; |
2415 | int vector, v_budget; | 2414 | int vector, v_budget; |
@@ -2501,7 +2500,7 @@ static void ixgbe_reset_interrupt_capability(struct ixgbe_adapter *adapter) | |||
2501 | * - Hardware queue count (num_*_queues) | 2500 | * - Hardware queue count (num_*_queues) |
2502 | * - defined by miscellaneous hardware support/features (RSS, etc.) | 2501 | * - defined by miscellaneous hardware support/features (RSS, etc.) |
2503 | **/ | 2502 | **/ |
2504 | static int __devinit ixgbe_init_interrupt_scheme(struct ixgbe_adapter *adapter) | 2503 | static int ixgbe_init_interrupt_scheme(struct ixgbe_adapter *adapter) |
2505 | { | 2504 | { |
2506 | int err; | 2505 | int err; |
2507 | 2506 | ||
diff --git a/drivers/net/mlx4/main.c b/drivers/net/mlx4/main.c index 468921b8f4b6..90a0281d15ea 100644 --- a/drivers/net/mlx4/main.c +++ b/drivers/net/mlx4/main.c | |||
@@ -753,6 +753,7 @@ static int mlx4_setup_hca(struct mlx4_dev *dev) | |||
753 | struct mlx4_priv *priv = mlx4_priv(dev); | 753 | struct mlx4_priv *priv = mlx4_priv(dev); |
754 | int err; | 754 | int err; |
755 | int port; | 755 | int port; |
756 | __be32 ib_port_default_caps; | ||
756 | 757 | ||
757 | err = mlx4_init_uar_table(dev); | 758 | err = mlx4_init_uar_table(dev); |
758 | if (err) { | 759 | if (err) { |
@@ -852,6 +853,13 @@ static int mlx4_setup_hca(struct mlx4_dev *dev) | |||
852 | } | 853 | } |
853 | 854 | ||
854 | for (port = 1; port <= dev->caps.num_ports; port++) { | 855 | for (port = 1; port <= dev->caps.num_ports; port++) { |
856 | ib_port_default_caps = 0; | ||
857 | err = mlx4_get_port_ib_caps(dev, port, &ib_port_default_caps); | ||
858 | if (err) | ||
859 | mlx4_warn(dev, "failed to get port %d default " | ||
860 | "ib capabilities (%d). Continuing with " | ||
861 | "caps = 0\n", port, err); | ||
862 | dev->caps.ib_port_def_cap[port] = ib_port_default_caps; | ||
855 | err = mlx4_SET_PORT(dev, port); | 863 | err = mlx4_SET_PORT(dev, port); |
856 | if (err) { | 864 | if (err) { |
857 | mlx4_err(dev, "Failed to set port %d, aborting\n", | 865 | mlx4_err(dev, "Failed to set port %d, aborting\n", |
diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index 56a2e213fe62..34c909deaff3 100644 --- a/drivers/net/mlx4/mlx4.h +++ b/drivers/net/mlx4/mlx4.h | |||
@@ -385,5 +385,6 @@ void mlx4_init_mac_table(struct mlx4_dev *dev, struct mlx4_mac_table *table); | |||
385 | void mlx4_init_vlan_table(struct mlx4_dev *dev, struct mlx4_vlan_table *table); | 385 | void mlx4_init_vlan_table(struct mlx4_dev *dev, struct mlx4_vlan_table *table); |
386 | 386 | ||
387 | int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port); | 387 | int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port); |
388 | int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps); | ||
388 | 389 | ||
389 | #endif /* MLX4_H */ | 390 | #endif /* MLX4_H */ |
diff --git a/drivers/net/mlx4/port.c b/drivers/net/mlx4/port.c index e2fdab42c4ce..0a057e5dc63b 100644 --- a/drivers/net/mlx4/port.c +++ b/drivers/net/mlx4/port.c | |||
@@ -258,6 +258,42 @@ out: | |||
258 | } | 258 | } |
259 | EXPORT_SYMBOL_GPL(mlx4_unregister_vlan); | 259 | EXPORT_SYMBOL_GPL(mlx4_unregister_vlan); |
260 | 260 | ||
261 | int mlx4_get_port_ib_caps(struct mlx4_dev *dev, u8 port, __be32 *caps) | ||
262 | { | ||
263 | struct mlx4_cmd_mailbox *inmailbox, *outmailbox; | ||
264 | u8 *inbuf, *outbuf; | ||
265 | int err; | ||
266 | |||
267 | inmailbox = mlx4_alloc_cmd_mailbox(dev); | ||
268 | if (IS_ERR(inmailbox)) | ||
269 | return PTR_ERR(inmailbox); | ||
270 | |||
271 | outmailbox = mlx4_alloc_cmd_mailbox(dev); | ||
272 | if (IS_ERR(outmailbox)) { | ||
273 | mlx4_free_cmd_mailbox(dev, inmailbox); | ||
274 | return PTR_ERR(outmailbox); | ||
275 | } | ||
276 | |||
277 | inbuf = inmailbox->buf; | ||
278 | outbuf = outmailbox->buf; | ||
279 | memset(inbuf, 0, 256); | ||
280 | memset(outbuf, 0, 256); | ||
281 | inbuf[0] = 1; | ||
282 | inbuf[1] = 1; | ||
283 | inbuf[2] = 1; | ||
284 | inbuf[3] = 1; | ||
285 | *(__be16 *) (&inbuf[16]) = cpu_to_be16(0x0015); | ||
286 | *(__be32 *) (&inbuf[20]) = cpu_to_be32(port); | ||
287 | |||
288 | err = mlx4_cmd_box(dev, inmailbox->dma, outmailbox->dma, port, 3, | ||
289 | MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C); | ||
290 | if (!err) | ||
291 | *caps = *(__be32 *) (outbuf + 84); | ||
292 | mlx4_free_cmd_mailbox(dev, inmailbox); | ||
293 | mlx4_free_cmd_mailbox(dev, outmailbox); | ||
294 | return err; | ||
295 | } | ||
296 | |||
261 | int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port) | 297 | int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port) |
262 | { | 298 | { |
263 | struct mlx4_cmd_mailbox *mailbox; | 299 | struct mlx4_cmd_mailbox *mailbox; |
@@ -273,7 +309,8 @@ int mlx4_SET_PORT(struct mlx4_dev *dev, u8 port) | |||
273 | ((u8 *) mailbox->buf)[3] = 6; | 309 | ((u8 *) mailbox->buf)[3] = 6; |
274 | ((__be16 *) mailbox->buf)[4] = cpu_to_be16(1 << 15); | 310 | ((__be16 *) mailbox->buf)[4] = cpu_to_be16(1 << 15); |
275 | ((__be16 *) mailbox->buf)[6] = cpu_to_be16(1 << 15); | 311 | ((__be16 *) mailbox->buf)[6] = cpu_to_be16(1 << 15); |
276 | } | 312 | } else |
313 | ((__be32 *) mailbox->buf)[1] = dev->caps.ib_port_def_cap[port]; | ||
277 | err = mlx4_cmd(dev, mailbox->dma, port, is_eth, MLX4_CMD_SET_PORT, | 314 | err = mlx4_cmd(dev, mailbox->dma, port, is_eth, MLX4_CMD_SET_PORT, |
278 | MLX4_CMD_TIME_CLASS_B); | 315 | MLX4_CMD_TIME_CLASS_B); |
279 | 316 | ||
diff --git a/drivers/net/pcmcia/ibmtr_cs.c b/drivers/net/pcmcia/ibmtr_cs.c index cf3cca4642f2..f51944b28cfa 100644 --- a/drivers/net/pcmcia/ibmtr_cs.c +++ b/drivers/net/pcmcia/ibmtr_cs.c | |||
@@ -349,7 +349,7 @@ static int ibmtr_suspend(struct pcmcia_device *link) | |||
349 | return 0; | 349 | return 0; |
350 | } | 350 | } |
351 | 351 | ||
352 | static int ibmtr_resume(struct pcmcia_device *link) | 352 | static int __devinit ibmtr_resume(struct pcmcia_device *link) |
353 | { | 353 | { |
354 | ibmtr_dev_t *info = link->priv; | 354 | ibmtr_dev_t *info = link->priv; |
355 | struct net_device *dev = info->dev; | 355 | struct net_device *dev = info->dev; |
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index b185cd12269c..9a16a79b67d0 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c | |||
@@ -1735,7 +1735,7 @@ static const struct ethtool_ops smc911x_ethtool_ops = { | |||
1735 | * This routine has a simple purpose -- make the SMC chip generate an | 1735 | * This routine has a simple purpose -- make the SMC chip generate an |
1736 | * interrupt, so an auto-detect routine can detect it, and find the IRQ, | 1736 | * interrupt, so an auto-detect routine can detect it, and find the IRQ, |
1737 | */ | 1737 | */ |
1738 | static int __init smc911x_findirq(struct net_device *dev) | 1738 | static int __devinit smc911x_findirq(struct net_device *dev) |
1739 | { | 1739 | { |
1740 | struct smc911x_local *lp = netdev_priv(dev); | 1740 | struct smc911x_local *lp = netdev_priv(dev); |
1741 | int timeout = 20; | 1741 | int timeout = 20; |
@@ -1799,7 +1799,7 @@ static int __init smc911x_findirq(struct net_device *dev) | |||
1799 | * o actually GRAB the irq. | 1799 | * o actually GRAB the irq. |
1800 | * o GRAB the region | 1800 | * o GRAB the region |
1801 | */ | 1801 | */ |
1802 | static int __init smc911x_probe(struct net_device *dev) | 1802 | static int __devinit smc911x_probe(struct net_device *dev) |
1803 | { | 1803 | { |
1804 | struct smc911x_local *lp = netdev_priv(dev); | 1804 | struct smc911x_local *lp = netdev_priv(dev); |
1805 | int i, retval; | 1805 | int i, retval; |
@@ -2048,7 +2048,7 @@ err_out: | |||
2048 | * 0 --> there is a device | 2048 | * 0 --> there is a device |
2049 | * anything else, error | 2049 | * anything else, error |
2050 | */ | 2050 | */ |
2051 | static int smc911x_drv_probe(struct platform_device *pdev) | 2051 | static int __devinit smc911x_drv_probe(struct platform_device *pdev) |
2052 | { | 2052 | { |
2053 | #ifdef SMC_DYNAMIC_BUS_CONFIG | 2053 | #ifdef SMC_DYNAMIC_BUS_CONFIG |
2054 | struct smc911x_platdata *pd = pdev->dev.platform_data; | 2054 | struct smc911x_platdata *pd = pdev->dev.platform_data; |
@@ -2124,7 +2124,7 @@ out: | |||
2124 | return ret; | 2124 | return ret; |
2125 | } | 2125 | } |
2126 | 2126 | ||
2127 | static int smc911x_drv_remove(struct platform_device *pdev) | 2127 | static int __devexit smc911x_drv_remove(struct platform_device *pdev) |
2128 | { | 2128 | { |
2129 | struct net_device *ndev = platform_get_drvdata(pdev); | 2129 | struct net_device *ndev = platform_get_drvdata(pdev); |
2130 | struct smc911x_local *lp = netdev_priv(ndev); | 2130 | struct smc911x_local *lp = netdev_priv(ndev); |
@@ -2195,7 +2195,7 @@ static int smc911x_drv_resume(struct platform_device *dev) | |||
2195 | 2195 | ||
2196 | static struct platform_driver smc911x_driver = { | 2196 | static struct platform_driver smc911x_driver = { |
2197 | .probe = smc911x_drv_probe, | 2197 | .probe = smc911x_drv_probe, |
2198 | .remove = smc911x_drv_remove, | 2198 | .remove = __devexit_p(smc911x_drv_remove), |
2199 | .suspend = smc911x_drv_suspend, | 2199 | .suspend = smc911x_drv_suspend, |
2200 | .resume = smc911x_drv_resume, | 2200 | .resume = smc911x_drv_resume, |
2201 | .driver = { | 2201 | .driver = { |
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c index fc80f250da31..35c56abf4113 100644 --- a/drivers/net/smc91x.c +++ b/drivers/net/smc91x.c | |||
@@ -1696,7 +1696,7 @@ static const struct ethtool_ops smc_ethtool_ops = { | |||
1696 | * I just deleted auto_irq.c, since it was never built... | 1696 | * I just deleted auto_irq.c, since it was never built... |
1697 | * --jgarzik | 1697 | * --jgarzik |
1698 | */ | 1698 | */ |
1699 | static int __init smc_findirq(struct smc_local *lp) | 1699 | static int __devinit smc_findirq(struct smc_local *lp) |
1700 | { | 1700 | { |
1701 | void __iomem *ioaddr = lp->base; | 1701 | void __iomem *ioaddr = lp->base; |
1702 | int timeout = 20; | 1702 | int timeout = 20; |
@@ -1770,7 +1770,7 @@ static int __init smc_findirq(struct smc_local *lp) | |||
1770 | * o actually GRAB the irq. | 1770 | * o actually GRAB the irq. |
1771 | * o GRAB the region | 1771 | * o GRAB the region |
1772 | */ | 1772 | */ |
1773 | static int __init smc_probe(struct net_device *dev, void __iomem *ioaddr, | 1773 | static int __devinit smc_probe(struct net_device *dev, void __iomem *ioaddr, |
1774 | unsigned long irq_flags) | 1774 | unsigned long irq_flags) |
1775 | { | 1775 | { |
1776 | struct smc_local *lp = netdev_priv(dev); | 1776 | struct smc_local *lp = netdev_priv(dev); |
@@ -2126,7 +2126,7 @@ static void smc_release_datacs(struct platform_device *pdev, struct net_device * | |||
2126 | * 0 --> there is a device | 2126 | * 0 --> there is a device |
2127 | * anything else, error | 2127 | * anything else, error |
2128 | */ | 2128 | */ |
2129 | static int smc_drv_probe(struct platform_device *pdev) | 2129 | static int __devinit smc_drv_probe(struct platform_device *pdev) |
2130 | { | 2130 | { |
2131 | struct smc91x_platdata *pd = pdev->dev.platform_data; | 2131 | struct smc91x_platdata *pd = pdev->dev.platform_data; |
2132 | struct smc_local *lp; | 2132 | struct smc_local *lp; |
@@ -2240,7 +2240,7 @@ static int smc_drv_probe(struct platform_device *pdev) | |||
2240 | return ret; | 2240 | return ret; |
2241 | } | 2241 | } |
2242 | 2242 | ||
2243 | static int smc_drv_remove(struct platform_device *pdev) | 2243 | static int __devexit smc_drv_remove(struct platform_device *pdev) |
2244 | { | 2244 | { |
2245 | struct net_device *ndev = platform_get_drvdata(pdev); | 2245 | struct net_device *ndev = platform_get_drvdata(pdev); |
2246 | struct smc_local *lp = netdev_priv(ndev); | 2246 | struct smc_local *lp = netdev_priv(ndev); |
@@ -2305,7 +2305,7 @@ static int smc_drv_resume(struct platform_device *dev) | |||
2305 | 2305 | ||
2306 | static struct platform_driver smc_driver = { | 2306 | static struct platform_driver smc_driver = { |
2307 | .probe = smc_drv_probe, | 2307 | .probe = smc_drv_probe, |
2308 | .remove = smc_drv_remove, | 2308 | .remove = __devexit_p(smc_drv_remove), |
2309 | .suspend = smc_drv_suspend, | 2309 | .suspend = smc_drv_suspend, |
2310 | .resume = smc_drv_resume, | 2310 | .resume = smc_drv_resume, |
2311 | .driver = { | 2311 | .driver = { |
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c index c6948d8f53f6..6d017adc914a 100644 --- a/drivers/net/xen-netfront.c +++ b/drivers/net/xen-netfront.c | |||
@@ -1785,7 +1785,7 @@ static int __devexit xennet_remove(struct xenbus_device *dev) | |||
1785 | return 0; | 1785 | return 0; |
1786 | } | 1786 | } |
1787 | 1787 | ||
1788 | static struct xenbus_driver netfront = { | 1788 | static struct xenbus_driver netfront_driver = { |
1789 | .name = "vif", | 1789 | .name = "vif", |
1790 | .owner = THIS_MODULE, | 1790 | .owner = THIS_MODULE, |
1791 | .ids = netfront_ids, | 1791 | .ids = netfront_ids, |
@@ -1805,7 +1805,7 @@ static int __init netif_init(void) | |||
1805 | 1805 | ||
1806 | printk(KERN_INFO "Initialising Xen virtual ethernet driver.\n"); | 1806 | printk(KERN_INFO "Initialising Xen virtual ethernet driver.\n"); |
1807 | 1807 | ||
1808 | return xenbus_register_frontend(&netfront); | 1808 | return xenbus_register_frontend(&netfront_driver); |
1809 | } | 1809 | } |
1810 | module_init(netif_init); | 1810 | module_init(netif_init); |
1811 | 1811 | ||
@@ -1815,7 +1815,7 @@ static void __exit netif_exit(void) | |||
1815 | if (xen_initial_domain()) | 1815 | if (xen_initial_domain()) |
1816 | return; | 1816 | return; |
1817 | 1817 | ||
1818 | xenbus_unregister_driver(&netfront); | 1818 | xenbus_unregister_driver(&netfront_driver); |
1819 | } | 1819 | } |
1820 | module_exit(netif_exit); | 1820 | module_exit(netif_exit); |
1821 | 1821 | ||
diff --git a/drivers/parport/parport_serial.c b/drivers/parport/parport_serial.c index e2e95b36a603..101ed49a2d15 100644 --- a/drivers/parport/parport_serial.c +++ b/drivers/parport/parport_serial.c | |||
@@ -70,6 +70,8 @@ static int __devinit netmos_parallel_init(struct pci_dev *dev, struct parport_pc | |||
70 | * parallel ports and <S> is the number of serial ports. | 70 | * parallel ports and <S> is the number of serial ports. |
71 | */ | 71 | */ |
72 | card->numports = (dev->subsystem_device & 0xf0) >> 4; | 72 | card->numports = (dev->subsystem_device & 0xf0) >> 4; |
73 | if (card->numports > ARRAY_SIZE(card->addr)) | ||
74 | card->numports = ARRAY_SIZE(card->addr); | ||
73 | return 0; | 75 | return 0; |
74 | } | 76 | } |
75 | 77 | ||
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 28af496b441e..061d1ee0046a 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c | |||
@@ -2042,7 +2042,7 @@ static int __devinit pci_init(void) | |||
2042 | return 0; | 2042 | return 0; |
2043 | } | 2043 | } |
2044 | 2044 | ||
2045 | static int __devinit pci_setup(char *str) | 2045 | static int __init pci_setup(char *str) |
2046 | { | 2046 | { |
2047 | while (str) { | 2047 | while (str) { |
2048 | char *k = strchr(str, ','); | 2048 | char *k = strchr(str, ','); |
diff --git a/drivers/rapidio/rio-scan.c b/drivers/rapidio/rio-scan.c index a926c896475e..643a6b98462b 100644 --- a/drivers/rapidio/rio-scan.c +++ b/drivers/rapidio/rio-scan.c | |||
@@ -879,7 +879,7 @@ static void rio_update_route_tables(struct rio_mport *port) | |||
879 | * link, then start recursive peer enumeration. Returns %0 if | 879 | * link, then start recursive peer enumeration. Returns %0 if |
880 | * enumeration succeeds or %-EBUSY if enumeration fails. | 880 | * enumeration succeeds or %-EBUSY if enumeration fails. |
881 | */ | 881 | */ |
882 | int rio_enum_mport(struct rio_mport *mport) | 882 | int __devinit rio_enum_mport(struct rio_mport *mport) |
883 | { | 883 | { |
884 | struct rio_net *net = NULL; | 884 | struct rio_net *net = NULL; |
885 | int rc = 0; | 885 | int rc = 0; |
@@ -972,7 +972,7 @@ static void rio_enum_timeout(unsigned long data) | |||
972 | * peer discovery. Returns %0 if discovery succeeds or %-EBUSY | 972 | * peer discovery. Returns %0 if discovery succeeds or %-EBUSY |
973 | * on failure. | 973 | * on failure. |
974 | */ | 974 | */ |
975 | int rio_disc_mport(struct rio_mport *mport) | 975 | int __devinit rio_disc_mport(struct rio_mport *mport) |
976 | { | 976 | { |
977 | struct rio_net *net = NULL; | 977 | struct rio_net *net = NULL; |
978 | int enum_timeout_flag = 0; | 978 | int enum_timeout_flag = 0; |
diff --git a/drivers/rapidio/rio.c b/drivers/rapidio/rio.c index 680661abbc4b..6395c780008b 100644 --- a/drivers/rapidio/rio.c +++ b/drivers/rapidio/rio.c | |||
@@ -467,7 +467,7 @@ static int __devinit rio_init(void) | |||
467 | 467 | ||
468 | device_initcall(rio_init); | 468 | device_initcall(rio_init); |
469 | 469 | ||
470 | int rio_init_mports(void) | 470 | int __devinit rio_init_mports(void) |
471 | { | 471 | { |
472 | int rc = 0; | 472 | int rc = 0; |
473 | struct rio_mport *port; | 473 | struct rio_mport *port; |
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 218777bfc143..399fe559e4de 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c | |||
@@ -13872,8 +13872,10 @@ static int __devinit advansys_board_found(struct Scsi_Host *shost, | |||
13872 | advansys_wide_free_mem(boardp); | 13872 | advansys_wide_free_mem(boardp); |
13873 | free_irq(boardp->irq, shost); | 13873 | free_irq(boardp->irq, shost); |
13874 | err_free_dma: | 13874 | err_free_dma: |
13875 | #ifdef CONFIG_ISA | ||
13875 | if (shost->dma_channel != NO_ISA_DMA) | 13876 | if (shost->dma_channel != NO_ISA_DMA) |
13876 | free_dma(shost->dma_channel); | 13877 | free_dma(shost->dma_channel); |
13878 | #endif | ||
13877 | err_free_proc: | 13879 | err_free_proc: |
13878 | kfree(boardp->prtbuf); | 13880 | kfree(boardp->prtbuf); |
13879 | err_unmap: | 13881 | err_unmap: |
@@ -13894,10 +13896,12 @@ static int advansys_release(struct Scsi_Host *shost) | |||
13894 | ASC_DBG(1, "begin\n"); | 13896 | ASC_DBG(1, "begin\n"); |
13895 | scsi_remove_host(shost); | 13897 | scsi_remove_host(shost); |
13896 | free_irq(board->irq, shost); | 13898 | free_irq(board->irq, shost); |
13899 | #ifdef CONFIG_ISA | ||
13897 | if (shost->dma_channel != NO_ISA_DMA) { | 13900 | if (shost->dma_channel != NO_ISA_DMA) { |
13898 | ASC_DBG(1, "free_dma()\n"); | 13901 | ASC_DBG(1, "free_dma()\n"); |
13899 | free_dma(shost->dma_channel); | 13902 | free_dma(shost->dma_channel); |
13900 | } | 13903 | } |
13904 | #endif | ||
13901 | if (ASC_NARROW_BOARD(board)) { | 13905 | if (ASC_NARROW_BOARD(board)) { |
13902 | dma_unmap_single(board->dev, | 13906 | dma_unmap_single(board->dev, |
13903 | board->dvc_var.asc_dvc_var.overrun_dma, | 13907 | board->dvc_var.asc_dvc_var.overrun_dma, |
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index c387c15a2128..fb247fdfa2bd 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c | |||
@@ -588,7 +588,7 @@ static struct pci_driver gdth_pci_driver = { | |||
588 | .remove = gdth_pci_remove_one, | 588 | .remove = gdth_pci_remove_one, |
589 | }; | 589 | }; |
590 | 590 | ||
591 | static void gdth_pci_remove_one(struct pci_dev *pdev) | 591 | static void __devexit gdth_pci_remove_one(struct pci_dev *pdev) |
592 | { | 592 | { |
593 | gdth_ha_str *ha = pci_get_drvdata(pdev); | 593 | gdth_ha_str *ha = pci_get_drvdata(pdev); |
594 | 594 | ||
@@ -600,7 +600,7 @@ static void gdth_pci_remove_one(struct pci_dev *pdev) | |||
600 | pci_disable_device(pdev); | 600 | pci_disable_device(pdev); |
601 | } | 601 | } |
602 | 602 | ||
603 | static int gdth_pci_init_one(struct pci_dev *pdev, | 603 | static int __devinit gdth_pci_init_one(struct pci_dev *pdev, |
604 | const struct pci_device_id *ent) | 604 | const struct pci_device_id *ent) |
605 | { | 605 | { |
606 | ushort vendor = pdev->vendor; | 606 | ushort vendor = pdev->vendor; |
@@ -853,7 +853,7 @@ static int __init gdth_init_isa(ulong32 bios_adr,gdth_ha_str *ha) | |||
853 | #endif /* CONFIG_ISA */ | 853 | #endif /* CONFIG_ISA */ |
854 | 854 | ||
855 | #ifdef CONFIG_PCI | 855 | #ifdef CONFIG_PCI |
856 | static int gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr, | 856 | static int __devinit gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr, |
857 | gdth_ha_str *ha) | 857 | gdth_ha_str *ha) |
858 | { | 858 | { |
859 | register gdt6_dpram_str __iomem *dp6_ptr; | 859 | register gdt6_dpram_str __iomem *dp6_ptr; |
@@ -1237,7 +1237,7 @@ static int gdth_init_pci(struct pci_dev *pdev, gdth_pci_str *pcistr, | |||
1237 | 1237 | ||
1238 | /* controller protocol functions */ | 1238 | /* controller protocol functions */ |
1239 | 1239 | ||
1240 | static void __init gdth_enable_int(gdth_ha_str *ha) | 1240 | static void __devinit gdth_enable_int(gdth_ha_str *ha) |
1241 | { | 1241 | { |
1242 | ulong flags; | 1242 | ulong flags; |
1243 | gdt2_dpram_str __iomem *dp2_ptr; | 1243 | gdt2_dpram_str __iomem *dp2_ptr; |
@@ -1553,7 +1553,7 @@ static int gdth_internal_cmd(gdth_ha_str *ha, unchar service, ushort opcode, | |||
1553 | 1553 | ||
1554 | /* search for devices */ | 1554 | /* search for devices */ |
1555 | 1555 | ||
1556 | static int __init gdth_search_drives(gdth_ha_str *ha) | 1556 | static int __devinit gdth_search_drives(gdth_ha_str *ha) |
1557 | { | 1557 | { |
1558 | ushort cdev_cnt, i; | 1558 | ushort cdev_cnt, i; |
1559 | int ok; | 1559 | int ok; |
@@ -4935,7 +4935,7 @@ static int __init gdth_eisa_probe_one(ushort eisa_slot) | |||
4935 | #endif /* CONFIG_EISA */ | 4935 | #endif /* CONFIG_EISA */ |
4936 | 4936 | ||
4937 | #ifdef CONFIG_PCI | 4937 | #ifdef CONFIG_PCI |
4938 | static int gdth_pci_probe_one(gdth_pci_str *pcistr, | 4938 | static int __devinit gdth_pci_probe_one(gdth_pci_str *pcistr, |
4939 | gdth_ha_str **ha_out) | 4939 | gdth_ha_str **ha_out) |
4940 | { | 4940 | { |
4941 | struct Scsi_Host *shp; | 4941 | struct Scsi_Host *shp; |
diff --git a/drivers/serial/uartlite.c b/drivers/serial/uartlite.c index 6a3f8fb0c9dd..3317148a4b93 100644 --- a/drivers/serial/uartlite.c +++ b/drivers/serial/uartlite.c | |||
@@ -286,8 +286,8 @@ static void ulite_release_port(struct uart_port *port) | |||
286 | 286 | ||
287 | static int ulite_request_port(struct uart_port *port) | 287 | static int ulite_request_port(struct uart_port *port) |
288 | { | 288 | { |
289 | pr_debug("ulite console: port=%p; port->mapbase=%x\n", | 289 | pr_debug("ulite console: port=%p; port->mapbase=%llx\n", |
290 | port, port->mapbase); | 290 | port, (unsigned long long) port->mapbase); |
291 | 291 | ||
292 | if (!request_mem_region(port->mapbase, ULITE_REGION, "uartlite")) { | 292 | if (!request_mem_region(port->mapbase, ULITE_REGION, "uartlite")) { |
293 | dev_err(port->dev, "Memory region busy\n"); | 293 | dev_err(port->dev, "Memory region busy\n"); |
diff --git a/drivers/spi/au1550_spi.c b/drivers/spi/au1550_spi.c index 87b73e0169c5..b02f25c702fd 100644 --- a/drivers/spi/au1550_spi.c +++ b/drivers/spi/au1550_spi.c | |||
@@ -369,10 +369,23 @@ static int au1550_spi_dma_txrxb(struct spi_device *spi, struct spi_transfer *t) | |||
369 | dma_rx_addr = t->rx_dma; | 369 | dma_rx_addr = t->rx_dma; |
370 | 370 | ||
371 | /* | 371 | /* |
372 | * check if buffers are already dma mapped, map them otherwise | 372 | * check if buffers are already dma mapped, map them otherwise: |
373 | * - first map the TX buffer, so cache data gets written to memory | ||
374 | * - then map the RX buffer, so that cache entries (with | ||
375 | * soon-to-be-stale data) get removed | ||
373 | * use rx buffer in place of tx if tx buffer was not provided | 376 | * use rx buffer in place of tx if tx buffer was not provided |
374 | * use temp rx buffer (preallocated or realloc to fit) for rx dma | 377 | * use temp rx buffer (preallocated or realloc to fit) for rx dma |
375 | */ | 378 | */ |
379 | if (t->tx_buf) { | ||
380 | if (t->tx_dma == 0) { /* if DMA_ADDR_INVALID, map it */ | ||
381 | dma_tx_addr = dma_map_single(hw->dev, | ||
382 | (void *)t->tx_buf, | ||
383 | t->len, DMA_TO_DEVICE); | ||
384 | if (dma_mapping_error(hw->dev, dma_tx_addr)) | ||
385 | dev_err(hw->dev, "tx dma map error\n"); | ||
386 | } | ||
387 | } | ||
388 | |||
376 | if (t->rx_buf) { | 389 | if (t->rx_buf) { |
377 | if (t->rx_dma == 0) { /* if DMA_ADDR_INVALID, map it */ | 390 | if (t->rx_dma == 0) { /* if DMA_ADDR_INVALID, map it */ |
378 | dma_rx_addr = dma_map_single(hw->dev, | 391 | dma_rx_addr = dma_map_single(hw->dev, |
@@ -396,15 +409,8 @@ static int au1550_spi_dma_txrxb(struct spi_device *spi, struct spi_transfer *t) | |||
396 | dma_sync_single_for_device(hw->dev, dma_rx_addr, | 409 | dma_sync_single_for_device(hw->dev, dma_rx_addr, |
397 | t->len, DMA_FROM_DEVICE); | 410 | t->len, DMA_FROM_DEVICE); |
398 | } | 411 | } |
399 | if (t->tx_buf) { | 412 | |
400 | if (t->tx_dma == 0) { /* if DMA_ADDR_INVALID, map it */ | 413 | if (!t->tx_buf) { |
401 | dma_tx_addr = dma_map_single(hw->dev, | ||
402 | (void *)t->tx_buf, | ||
403 | t->len, DMA_TO_DEVICE); | ||
404 | if (dma_mapping_error(hw->dev, dma_tx_addr)) | ||
405 | dev_err(hw->dev, "tx dma map error\n"); | ||
406 | } | ||
407 | } else { | ||
408 | dma_sync_single_for_device(hw->dev, dma_rx_addr, | 414 | dma_sync_single_for_device(hw->dev, dma_rx_addr, |
409 | t->len, DMA_BIDIRECTIONAL); | 415 | t->len, DMA_BIDIRECTIONAL); |
410 | hw->tx = hw->rx; | 416 | hw->tx = hw->rx; |
diff --git a/drivers/spi/mpc52xx_psc_spi.c b/drivers/spi/mpc52xx_psc_spi.c index 0debe11b67b4..3b97803e1d11 100644 --- a/drivers/spi/mpc52xx_psc_spi.c +++ b/drivers/spi/mpc52xx_psc_spi.c | |||
@@ -142,6 +142,7 @@ static int mpc52xx_psc_spi_transfer_rxtx(struct spi_device *spi, | |||
142 | unsigned rfalarm; | 142 | unsigned rfalarm; |
143 | unsigned send_at_once = MPC52xx_PSC_BUFSIZE; | 143 | unsigned send_at_once = MPC52xx_PSC_BUFSIZE; |
144 | unsigned recv_at_once; | 144 | unsigned recv_at_once; |
145 | int last_block = 0; | ||
145 | 146 | ||
146 | if (!t->tx_buf && !t->rx_buf && t->len) | 147 | if (!t->tx_buf && !t->rx_buf && t->len) |
147 | return -EINVAL; | 148 | return -EINVAL; |
@@ -151,15 +152,17 @@ static int mpc52xx_psc_spi_transfer_rxtx(struct spi_device *spi, | |||
151 | while (rb < t->len) { | 152 | while (rb < t->len) { |
152 | if (t->len - rb > MPC52xx_PSC_BUFSIZE) { | 153 | if (t->len - rb > MPC52xx_PSC_BUFSIZE) { |
153 | rfalarm = MPC52xx_PSC_RFALARM; | 154 | rfalarm = MPC52xx_PSC_RFALARM; |
155 | last_block = 0; | ||
154 | } else { | 156 | } else { |
155 | send_at_once = t->len - sb; | 157 | send_at_once = t->len - sb; |
156 | rfalarm = MPC52xx_PSC_BUFSIZE - (t->len - rb); | 158 | rfalarm = MPC52xx_PSC_BUFSIZE - (t->len - rb); |
159 | last_block = 1; | ||
157 | } | 160 | } |
158 | 161 | ||
159 | dev_dbg(&spi->dev, "send %d bytes...\n", send_at_once); | 162 | dev_dbg(&spi->dev, "send %d bytes...\n", send_at_once); |
160 | for (; send_at_once; sb++, send_at_once--) { | 163 | for (; send_at_once; sb++, send_at_once--) { |
161 | /* set EOF flag before the last word is sent */ | 164 | /* set EOF flag before the last word is sent */ |
162 | if (send_at_once == 1) | 165 | if (send_at_once == 1 && last_block) |
163 | out_8(&psc->ircr2, 0x01); | 166 | out_8(&psc->ircr2, 0x01); |
164 | 167 | ||
165 | if (tx_buf) | 168 | if (tx_buf) |
diff --git a/drivers/spi/spi_imx.c b/drivers/spi/spi_imx.c index 0b4db0ce78d6..269a55ec52ef 100644 --- a/drivers/spi/spi_imx.c +++ b/drivers/spi/spi_imx.c | |||
@@ -1456,7 +1456,7 @@ static int __init spi_imx_probe(struct platform_device *pdev) | |||
1456 | struct device *dev = &pdev->dev; | 1456 | struct device *dev = &pdev->dev; |
1457 | struct spi_imx_master *platform_info; | 1457 | struct spi_imx_master *platform_info; |
1458 | struct spi_master *master; | 1458 | struct spi_master *master; |
1459 | struct driver_data *drv_data = NULL; | 1459 | struct driver_data *drv_data; |
1460 | struct resource *res; | 1460 | struct resource *res; |
1461 | int irq, status = 0; | 1461 | int irq, status = 0; |
1462 | 1462 | ||
@@ -1467,14 +1467,6 @@ static int __init spi_imx_probe(struct platform_device *pdev) | |||
1467 | goto err_no_pdata; | 1467 | goto err_no_pdata; |
1468 | } | 1468 | } |
1469 | 1469 | ||
1470 | drv_data->clk = clk_get(&pdev->dev, "perclk2"); | ||
1471 | if (IS_ERR(drv_data->clk)) { | ||
1472 | dev_err(&pdev->dev, "probe - cannot get get\n"); | ||
1473 | status = PTR_ERR(drv_data->clk); | ||
1474 | goto err_no_clk; | ||
1475 | } | ||
1476 | clk_enable(drv_data->clk); | ||
1477 | |||
1478 | /* Allocate master with space for drv_data */ | 1470 | /* Allocate master with space for drv_data */ |
1479 | master = spi_alloc_master(dev, sizeof(struct driver_data)); | 1471 | master = spi_alloc_master(dev, sizeof(struct driver_data)); |
1480 | if (!master) { | 1472 | if (!master) { |
@@ -1495,6 +1487,14 @@ static int __init spi_imx_probe(struct platform_device *pdev) | |||
1495 | 1487 | ||
1496 | drv_data->dummy_dma_buf = SPI_DUMMY_u32; | 1488 | drv_data->dummy_dma_buf = SPI_DUMMY_u32; |
1497 | 1489 | ||
1490 | drv_data->clk = clk_get(&pdev->dev, "perclk2"); | ||
1491 | if (IS_ERR(drv_data->clk)) { | ||
1492 | dev_err(&pdev->dev, "probe - cannot get clock\n"); | ||
1493 | status = PTR_ERR(drv_data->clk); | ||
1494 | goto err_no_clk; | ||
1495 | } | ||
1496 | clk_enable(drv_data->clk); | ||
1497 | |||
1498 | /* Find and map resources */ | 1498 | /* Find and map resources */ |
1499 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1499 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1500 | if (!res) { | 1500 | if (!res) { |
@@ -1630,12 +1630,13 @@ err_no_iomap: | |||
1630 | kfree(drv_data->ioarea); | 1630 | kfree(drv_data->ioarea); |
1631 | 1631 | ||
1632 | err_no_iores: | 1632 | err_no_iores: |
1633 | spi_master_put(master); | ||
1634 | |||
1635 | err_no_pdata: | ||
1636 | clk_disable(drv_data->clk); | 1633 | clk_disable(drv_data->clk); |
1637 | clk_put(drv_data->clk); | 1634 | clk_put(drv_data->clk); |
1635 | |||
1638 | err_no_clk: | 1636 | err_no_clk: |
1637 | spi_master_put(master); | ||
1638 | |||
1639 | err_no_pdata: | ||
1639 | err_no_mem: | 1640 | err_no_mem: |
1640 | return status; | 1641 | return status; |
1641 | } | 1642 | } |
diff --git a/drivers/spi/spi_s3c24xx_gpio.c b/drivers/spi/spi_s3c24xx_gpio.c index cc1f647f579b..f2447a5476bb 100644 --- a/drivers/spi/spi_s3c24xx_gpio.c +++ b/drivers/spi/spi_s3c24xx_gpio.c | |||
@@ -34,7 +34,7 @@ struct s3c2410_spigpio { | |||
34 | 34 | ||
35 | static inline struct s3c2410_spigpio *spidev_to_sg(struct spi_device *spi) | 35 | static inline struct s3c2410_spigpio *spidev_to_sg(struct spi_device *spi) |
36 | { | 36 | { |
37 | return spi->controller_data; | 37 | return spi_master_get_devdata(spi->master); |
38 | } | 38 | } |
39 | 39 | ||
40 | static inline void setsck(struct spi_device *dev, int on) | 40 | static inline void setsck(struct spi_device *dev, int on) |
@@ -118,6 +118,7 @@ static int s3c2410_spigpio_probe(struct platform_device *dev) | |||
118 | /* setup spi bitbang adaptor */ | 118 | /* setup spi bitbang adaptor */ |
119 | sp->bitbang.master = spi_master_get(master); | 119 | sp->bitbang.master = spi_master_get(master); |
120 | sp->bitbang.master->bus_num = info->bus_num; | 120 | sp->bitbang.master->bus_num = info->bus_num; |
121 | sp->bitbang.master->num_chipselect = info->num_chipselect; | ||
121 | sp->bitbang.chipselect = s3c2410_spigpio_chipselect; | 122 | sp->bitbang.chipselect = s3c2410_spigpio_chipselect; |
122 | 123 | ||
123 | sp->bitbang.txrx_word[SPI_MODE_0] = s3c2410_spigpio_txrx_mode0; | 124 | sp->bitbang.txrx_word[SPI_MODE_0] = s3c2410_spigpio_txrx_mode0; |
diff --git a/drivers/spi/spidev.c b/drivers/spi/spidev.c index 89a43755a453..5d869c4d3eb2 100644 --- a/drivers/spi/spidev.c +++ b/drivers/spi/spidev.c | |||
@@ -597,7 +597,9 @@ static int spidev_probe(struct spi_device *spi) | |||
597 | } | 597 | } |
598 | mutex_unlock(&device_list_lock); | 598 | mutex_unlock(&device_list_lock); |
599 | 599 | ||
600 | if (status != 0) | 600 | if (status == 0) |
601 | spi_set_drvdata(spi, spidev); | ||
602 | else | ||
601 | kfree(spidev); | 603 | kfree(spidev); |
602 | 604 | ||
603 | return status; | 605 | return status; |
diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c index 1fe8b44787b3..b3408ff39fba 100644 --- a/drivers/usb/gadget/fsl_qe_udc.c +++ b/drivers/usb/gadget/fsl_qe_udc.c | |||
@@ -2363,6 +2363,9 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) | |||
2363 | nuke(loop_ep, -ESHUTDOWN); | 2363 | nuke(loop_ep, -ESHUTDOWN); |
2364 | spin_unlock_irqrestore(&udc_controller->lock, flags); | 2364 | spin_unlock_irqrestore(&udc_controller->lock, flags); |
2365 | 2365 | ||
2366 | /* report disconnect; the controller is already quiesced */ | ||
2367 | driver->disconnect(&udc_controller->gadget); | ||
2368 | |||
2366 | /* unbind gadget and unhook driver. */ | 2369 | /* unbind gadget and unhook driver. */ |
2367 | driver->unbind(&udc_controller->gadget); | 2370 | driver->unbind(&udc_controller->gadget); |
2368 | udc_controller->gadget.dev.driver = NULL; | 2371 | udc_controller->gadget.dev.driver = NULL; |
diff --git a/drivers/usb/gadget/fsl_usb2_udc.c b/drivers/usb/gadget/fsl_usb2_udc.c index 091bb55c9aa7..f3c6703cffda 100644 --- a/drivers/usb/gadget/fsl_usb2_udc.c +++ b/drivers/usb/gadget/fsl_usb2_udc.c | |||
@@ -1836,6 +1836,9 @@ int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) | |||
1836 | nuke(loop_ep, -ESHUTDOWN); | 1836 | nuke(loop_ep, -ESHUTDOWN); |
1837 | spin_unlock_irqrestore(&udc_controller->lock, flags); | 1837 | spin_unlock_irqrestore(&udc_controller->lock, flags); |
1838 | 1838 | ||
1839 | /* report disconnect; the controller is already quiesced */ | ||
1840 | driver->disconnect(&udc_controller->gadget); | ||
1841 | |||
1839 | /* unbind gadget and unhook driver. */ | 1842 | /* unbind gadget and unhook driver. */ |
1840 | driver->unbind(&udc_controller->gadget); | 1843 | driver->unbind(&udc_controller->gadget); |
1841 | udc_controller->gadget.dev.driver = NULL; | 1844 | udc_controller->gadget.dev.driver = NULL; |
diff --git a/drivers/usb/gadget/pxa25x_udc.c b/drivers/usb/gadget/pxa25x_udc.c index da6e93c201d2..2dbc0db0b46c 100644 --- a/drivers/usb/gadget/pxa25x_udc.c +++ b/drivers/usb/gadget/pxa25x_udc.c | |||
@@ -141,7 +141,11 @@ static int is_vbus_present(void) | |||
141 | 141 | ||
142 | if (mach->gpio_vbus) { | 142 | if (mach->gpio_vbus) { |
143 | int value = gpio_get_value(mach->gpio_vbus); | 143 | int value = gpio_get_value(mach->gpio_vbus); |
144 | return mach->gpio_vbus_inverted ? !value : value; | 144 | |
145 | if (mach->gpio_vbus_inverted) | ||
146 | return !value; | ||
147 | else | ||
148 | return !!value; | ||
145 | } | 149 | } |
146 | if (mach->udc_is_connected) | 150 | if (mach->udc_is_connected) |
147 | return mach->udc_is_connected(); | 151 | return mach->udc_is_connected(); |
@@ -982,7 +986,7 @@ static int pxa25x_udc_vbus_session(struct usb_gadget *_gadget, int is_active) | |||
982 | struct pxa25x_udc *udc; | 986 | struct pxa25x_udc *udc; |
983 | 987 | ||
984 | udc = container_of(_gadget, struct pxa25x_udc, gadget); | 988 | udc = container_of(_gadget, struct pxa25x_udc, gadget); |
985 | udc->vbus = (is_active != 0); | 989 | udc->vbus = is_active; |
986 | DMSG("vbus %s\n", is_active ? "supplied" : "inactive"); | 990 | DMSG("vbus %s\n", is_active ? "supplied" : "inactive"); |
987 | pullup(udc); | 991 | pullup(udc); |
988 | return 0; | 992 | return 0; |
@@ -1399,12 +1403,8 @@ lubbock_vbus_irq(int irq, void *_dev) | |||
1399 | static irqreturn_t udc_vbus_irq(int irq, void *_dev) | 1403 | static irqreturn_t udc_vbus_irq(int irq, void *_dev) |
1400 | { | 1404 | { |
1401 | struct pxa25x_udc *dev = _dev; | 1405 | struct pxa25x_udc *dev = _dev; |
1402 | int vbus = gpio_get_value(dev->mach->gpio_vbus); | ||
1403 | 1406 | ||
1404 | if (dev->mach->gpio_vbus_inverted) | 1407 | pxa25x_udc_vbus_session(&dev->gadget, is_vbus_present()); |
1405 | vbus = !vbus; | ||
1406 | |||
1407 | pxa25x_udc_vbus_session(&dev->gadget, vbus); | ||
1408 | return IRQ_HANDLED; | 1408 | return IRQ_HANDLED; |
1409 | } | 1409 | } |
1410 | 1410 | ||
diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c index 9d0ea573aef6..36864f958444 100644 --- a/drivers/usb/host/ehci-pci.c +++ b/drivers/usb/host/ehci-pci.c | |||
@@ -169,18 +169,21 @@ static int ehci_pci_setup(struct usb_hcd *hcd) | |||
169 | } | 169 | } |
170 | break; | 170 | break; |
171 | case PCI_VENDOR_ID_ATI: | 171 | case PCI_VENDOR_ID_ATI: |
172 | /* SB700 old version has a bug in EHCI controller, | 172 | /* SB600 and old version of SB700 have a bug in EHCI controller, |
173 | * which causes usb devices lose response in some cases. | 173 | * which causes usb devices lose response in some cases. |
174 | */ | 174 | */ |
175 | if (pdev->device == 0x4396) { | 175 | if ((pdev->device == 0x4386) || (pdev->device == 0x4396)) { |
176 | p_smbus = pci_get_device(PCI_VENDOR_ID_ATI, | 176 | p_smbus = pci_get_device(PCI_VENDOR_ID_ATI, |
177 | PCI_DEVICE_ID_ATI_SBX00_SMBUS, | 177 | PCI_DEVICE_ID_ATI_SBX00_SMBUS, |
178 | NULL); | 178 | NULL); |
179 | if (!p_smbus) | 179 | if (!p_smbus) |
180 | break; | 180 | break; |
181 | rev = p_smbus->revision; | 181 | rev = p_smbus->revision; |
182 | if ((rev == 0x3a) || (rev == 0x3b)) { | 182 | if ((pdev->device == 0x4386) || (rev == 0x3a) |
183 | || (rev == 0x3b)) { | ||
183 | u8 tmp; | 184 | u8 tmp; |
185 | ehci_info(ehci, "applying AMD SB600/SB700 USB " | ||
186 | "freeze workaround\n"); | ||
184 | pci_read_config_byte(pdev, 0x53, &tmp); | 187 | pci_read_config_byte(pdev, 0x53, &tmp); |
185 | pci_write_config_byte(pdev, 0x53, tmp | (1<<3)); | 188 | pci_write_config_byte(pdev, 0x53, tmp | (1<<3)); |
186 | } | 189 | } |
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h index b11798d17ae5..c7d4b5a06bdb 100644 --- a/drivers/usb/host/ehci.h +++ b/drivers/usb/host/ehci.h | |||
@@ -183,16 +183,14 @@ timer_action (struct ehci_hcd *ehci, enum ehci_timer_action action) | |||
183 | * the async ring; just the I/O watchdog. Note that if a | 183 | * the async ring; just the I/O watchdog. Note that if a |
184 | * SHRINK were pending, OFF would never be requested. | 184 | * SHRINK were pending, OFF would never be requested. |
185 | */ | 185 | */ |
186 | enum ehci_timer_action oldactions = ehci->actions; | 186 | if (timer_pending(&ehci->watchdog) |
187 | && ((BIT(TIMER_ASYNC_SHRINK) | BIT(TIMER_ASYNC_OFF)) | ||
188 | & ehci->actions)) | ||
189 | return; | ||
187 | 190 | ||
188 | if (!test_and_set_bit (action, &ehci->actions)) { | 191 | if (!test_and_set_bit (action, &ehci->actions)) { |
189 | unsigned long t; | 192 | unsigned long t; |
190 | 193 | ||
191 | if (timer_pending(&ehci->watchdog) | ||
192 | && ((BIT(TIMER_ASYNC_SHRINK) | BIT(TIMER_ASYNC_OFF)) | ||
193 | & oldactions)) | ||
194 | return; | ||
195 | |||
196 | switch (action) { | 194 | switch (action) { |
197 | case TIMER_IO_WATCHDOG: | 195 | case TIMER_IO_WATCHDOG: |
198 | t = EHCI_IO_JIFFIES; | 196 | t = EHCI_IO_JIFFIES; |
@@ -208,7 +206,7 @@ timer_action (struct ehci_hcd *ehci, enum ehci_timer_action action) | |||
208 | t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1; | 206 | t = DIV_ROUND_UP(EHCI_SHRINK_FRAMES * HZ, 1000) + 1; |
209 | break; | 207 | break; |
210 | } | 208 | } |
211 | mod_timer(&ehci->watchdog, round_jiffies(t + jiffies)); | 209 | mod_timer(&ehci->watchdog, t + jiffies); |
212 | } | 210 | } |
213 | } | 211 | } |
214 | 212 | ||
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c index 5b20de130e08..5b95009d2fbb 100644 --- a/drivers/usb/serial/console.c +++ b/drivers/usb/serial/console.c | |||
@@ -135,6 +135,7 @@ static int usb_console_setup(struct console *co, char *options) | |||
135 | err("no more memory"); | 135 | err("no more memory"); |
136 | goto reset_open_count; | 136 | goto reset_open_count; |
137 | } | 137 | } |
138 | kref_init(&tty->kref); | ||
138 | termios = kzalloc(sizeof(*termios), GFP_KERNEL); | 139 | termios = kzalloc(sizeof(*termios), GFP_KERNEL); |
139 | if (!termios) { | 140 | if (!termios) { |
140 | retval = -ENOMEM; | 141 | retval = -ENOMEM; |
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 6fa1ec441b61..809697b3c7fc 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c | |||
@@ -224,6 +224,7 @@ static int option_send_setup(struct tty_struct *tty, struct usb_serial_port *po | |||
224 | #define ONDA_VENDOR_ID 0x19d2 | 224 | #define ONDA_VENDOR_ID 0x19d2 |
225 | #define ONDA_PRODUCT_MSA501HS 0x0001 | 225 | #define ONDA_PRODUCT_MSA501HS 0x0001 |
226 | #define ONDA_PRODUCT_ET502HS 0x0002 | 226 | #define ONDA_PRODUCT_ET502HS 0x0002 |
227 | #define ONDA_PRODUCT_MT503HS 0x0200 | ||
227 | 228 | ||
228 | #define BANDRICH_VENDOR_ID 0x1A8D | 229 | #define BANDRICH_VENDOR_ID 0x1A8D |
229 | #define BANDRICH_PRODUCT_C100_1 0x1002 | 230 | #define BANDRICH_PRODUCT_C100_1 0x1002 |
@@ -413,6 +414,40 @@ static struct usb_device_id option_ids[] = { | |||
413 | { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, | 414 | { USB_DEVICE(AXESSTEL_VENDOR_ID, AXESSTEL_PRODUCT_MV110H) }, |
414 | { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) }, | 415 | { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MSA501HS) }, |
415 | { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) }, | 416 | { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_ET502HS) }, |
417 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0003) }, | ||
418 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0004) }, | ||
419 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0005) }, | ||
420 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0006) }, | ||
421 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0007) }, | ||
422 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0008) }, | ||
423 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0009) }, | ||
424 | { USB_DEVICE(ONDA_VENDOR_ID, 0x000a) }, | ||
425 | { USB_DEVICE(ONDA_VENDOR_ID, 0x000b) }, | ||
426 | { USB_DEVICE(ONDA_VENDOR_ID, 0x000c) }, | ||
427 | { USB_DEVICE(ONDA_VENDOR_ID, 0x000d) }, | ||
428 | { USB_DEVICE(ONDA_VENDOR_ID, 0x000e) }, | ||
429 | { USB_DEVICE(ONDA_VENDOR_ID, 0x000f) }, | ||
430 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0010) }, | ||
431 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0011) }, | ||
432 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0012) }, | ||
433 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0013) }, | ||
434 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0014) }, | ||
435 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0015) }, | ||
436 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0016) }, | ||
437 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0017) }, | ||
438 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0018) }, | ||
439 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0019) }, | ||
440 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0020) }, | ||
441 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0021) }, | ||
442 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0022) }, | ||
443 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0023) }, | ||
444 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0024) }, | ||
445 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0025) }, | ||
446 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0026) }, | ||
447 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0027) }, | ||
448 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0028) }, | ||
449 | { USB_DEVICE(ONDA_VENDOR_ID, 0x0029) }, | ||
450 | { USB_DEVICE(ONDA_VENDOR_ID, ONDA_PRODUCT_MT503HS) }, | ||
416 | { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) }, | 451 | { USB_DEVICE(YISO_VENDOR_ID, YISO_PRODUCT_U893) }, |
417 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, | 452 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_1) }, |
418 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, | 453 | { USB_DEVICE(BANDRICH_VENDOR_ID, BANDRICH_PRODUCT_C100_2) }, |
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index 6da9a7a962a8..e61f2bfc64ad 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h | |||
@@ -318,6 +318,18 @@ UNUSUAL_DEV( 0x045a, 0x5210, 0x0101, 0x0101, | |||
318 | US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0), | 318 | US_SC_SCSI, US_PR_KARMA, rio_karma_init, 0), |
319 | #endif | 319 | #endif |
320 | 320 | ||
321 | /* Reported by Tamas Kerecsen <kerecsen@bigfoot.com> | ||
322 | * Obviously the PROM has not been customized by the VAR; | ||
323 | * the Vendor and Product string descriptors are: | ||
324 | * Generic Mass Storage (PROTOTYPE--Remember to change idVendor) | ||
325 | * Generic Manufacturer (PROTOTYPE--Remember to change idVendor) | ||
326 | */ | ||
327 | UNUSUAL_DEV( 0x045e, 0xffff, 0x0000, 0x0000, | ||
328 | "Mitac", | ||
329 | "GPS", | ||
330 | US_SC_DEVICE, US_PR_DEVICE, NULL, | ||
331 | US_FL_MAX_SECTORS_64 ), | ||
332 | |||
321 | /* | 333 | /* |
322 | * This virtual floppy is found in Sun equipment (x4600, x4200m2, etc.) | 334 | * This virtual floppy is found in Sun equipment (x4600, x4200m2, etc.) |
323 | * Reported by Pete Zaitcev <zaitcev@redhat.com> | 335 | * Reported by Pete Zaitcev <zaitcev@redhat.com> |
@@ -377,6 +389,13 @@ UNUSUAL_DEV( 0x04b0, 0x0401, 0x0200, 0x0200, | |||
377 | US_SC_DEVICE, US_PR_DEVICE, NULL, | 389 | US_SC_DEVICE, US_PR_DEVICE, NULL, |
378 | US_FL_FIX_CAPACITY), | 390 | US_FL_FIX_CAPACITY), |
379 | 391 | ||
392 | /* Reported by Tobias Kunze Briseno <t-linux@fictive.com> */ | ||
393 | UNUSUAL_DEV( 0x04b0, 0x0403, 0x0200, 0x0200, | ||
394 | "NIKON", | ||
395 | "NIKON DSC D2H", | ||
396 | US_SC_DEVICE, US_PR_DEVICE, NULL, | ||
397 | US_FL_FIX_CAPACITY), | ||
398 | |||
380 | /* Reported by Milinevsky Dmitry <niam.niam@gmail.com> */ | 399 | /* Reported by Milinevsky Dmitry <niam.niam@gmail.com> */ |
381 | UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100, | 400 | UNUSUAL_DEV( 0x04b0, 0x0409, 0x0100, 0x0100, |
382 | "NIKON", | 401 | "NIKON", |
diff --git a/drivers/video/aty/radeon_accel.c b/drivers/video/aty/radeon_accel.c index 8718f7349d6b..a547e5d4c8bf 100644 --- a/drivers/video/aty/radeon_accel.c +++ b/drivers/video/aty/radeon_accel.c | |||
@@ -174,12 +174,12 @@ static void radeonfb_prim_imageblit(struct radeonfb_info *rinfo, | |||
174 | const struct fb_image *image, | 174 | const struct fb_image *image, |
175 | u32 fg, u32 bg) | 175 | u32 fg, u32 bg) |
176 | { | 176 | { |
177 | unsigned int src_bytes, dwords; | 177 | unsigned int dwords; |
178 | u32 *bits; | 178 | u32 *bits; |
179 | 179 | ||
180 | radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache, | 180 | radeonfb_set_creg(rinfo, DP_GUI_MASTER_CNTL, &rinfo->dp_gui_mc_cache, |
181 | rinfo->dp_gui_mc_base | | 181 | rinfo->dp_gui_mc_base | |
182 | GMC_BRUSH_NONE | | 182 | GMC_BRUSH_NONE | GMC_DST_CLIP_LEAVE | |
183 | GMC_SRC_DATATYPE_MONO_FG_BG | | 183 | GMC_SRC_DATATYPE_MONO_FG_BG | |
184 | ROP3_S | | 184 | ROP3_S | |
185 | GMC_BYTE_ORDER_MSB_TO_LSB | | 185 | GMC_BYTE_ORDER_MSB_TO_LSB | |
@@ -189,9 +189,6 @@ static void radeonfb_prim_imageblit(struct radeonfb_info *rinfo, | |||
189 | radeonfb_set_creg(rinfo, DP_SRC_FRGD_CLR, &rinfo->dp_src_fg_cache, fg); | 189 | radeonfb_set_creg(rinfo, DP_SRC_FRGD_CLR, &rinfo->dp_src_fg_cache, fg); |
190 | radeonfb_set_creg(rinfo, DP_SRC_BKGD_CLR, &rinfo->dp_src_bg_cache, bg); | 190 | radeonfb_set_creg(rinfo, DP_SRC_BKGD_CLR, &rinfo->dp_src_bg_cache, bg); |
191 | 191 | ||
192 | radeon_fifo_wait(rinfo, 1); | ||
193 | OUTREG(DST_Y_X, (image->dy << 16) | image->dx); | ||
194 | |||
195 | /* Ensure the dst cache is flushed and the engine idle before | 192 | /* Ensure the dst cache is flushed and the engine idle before |
196 | * issuing the operation. | 193 | * issuing the operation. |
197 | * | 194 | * |
@@ -205,13 +202,19 @@ static void radeonfb_prim_imageblit(struct radeonfb_info *rinfo, | |||
205 | 202 | ||
206 | /* X here pads width to a multiple of 32 and uses the clipper to | 203 | /* X here pads width to a multiple of 32 and uses the clipper to |
207 | * adjust the result. Is that really necessary ? Things seem to | 204 | * adjust the result. Is that really necessary ? Things seem to |
208 | * work ok for me without that and the doco doesn't seem to imply | 205 | * work ok for me without that and the doco doesn't seem to imply] |
209 | * there is such a restriction. | 206 | * there is such a restriction. |
210 | */ | 207 | */ |
211 | OUTREG(DST_WIDTH_HEIGHT, (image->width << 16) | image->height); | 208 | radeon_fifo_wait(rinfo, 4); |
209 | OUTREG(SC_TOP_LEFT, (image->dy << 16) | image->dx); | ||
210 | OUTREG(SC_BOTTOM_RIGHT, ((image->dy + image->height) << 16) | | ||
211 | (image->dx + image->width)); | ||
212 | OUTREG(DST_Y_X, (image->dy << 16) | image->dx); | ||
213 | |||
214 | OUTREG(DST_HEIGHT_WIDTH, (image->height << 16) | ((image->width + 31) & ~31)); | ||
212 | 215 | ||
213 | src_bytes = (((image->width * image->depth) + 7) / 8) * image->height; | 216 | dwords = (image->width + 31) >> 5; |
214 | dwords = (src_bytes + 3) / 4; | 217 | dwords *= image->height; |
215 | bits = (u32*)(image->data); | 218 | bits = (u32*)(image->data); |
216 | 219 | ||
217 | while(dwords >= 8) { | 220 | while(dwords >= 8) { |
diff --git a/drivers/video/aty/radeon_base.c b/drivers/video/aty/radeon_base.c index 9a5821c65ebf..b3ffe8205d2b 100644 --- a/drivers/video/aty/radeon_base.c +++ b/drivers/video/aty/radeon_base.c | |||
@@ -1875,6 +1875,7 @@ static int __devinit radeon_set_fbinfo (struct radeonfb_info *rinfo) | |||
1875 | info->fbops = &radeonfb_ops; | 1875 | info->fbops = &radeonfb_ops; |
1876 | info->screen_base = rinfo->fb_base; | 1876 | info->screen_base = rinfo->fb_base; |
1877 | info->screen_size = rinfo->mapped_vram; | 1877 | info->screen_size = rinfo->mapped_vram; |
1878 | |||
1878 | /* Fill fix common fields */ | 1879 | /* Fill fix common fields */ |
1879 | strlcpy(info->fix.id, rinfo->name, sizeof(info->fix.id)); | 1880 | strlcpy(info->fix.id, rinfo->name, sizeof(info->fix.id)); |
1880 | info->fix.smem_start = rinfo->fb_base_phys; | 1881 | info->fix.smem_start = rinfo->fb_base_phys; |
@@ -1889,8 +1890,25 @@ static int __devinit radeon_set_fbinfo (struct radeonfb_info *rinfo) | |||
1889 | info->fix.mmio_len = RADEON_REGSIZE; | 1890 | info->fix.mmio_len = RADEON_REGSIZE; |
1890 | info->fix.accel = FB_ACCEL_ATI_RADEON; | 1891 | info->fix.accel = FB_ACCEL_ATI_RADEON; |
1891 | 1892 | ||
1893 | /* Allocate colormap */ | ||
1892 | fb_alloc_cmap(&info->cmap, 256, 0); | 1894 | fb_alloc_cmap(&info->cmap, 256, 0); |
1893 | 1895 | ||
1896 | /* Setup pixmap used for acceleration */ | ||
1897 | #define PIXMAP_SIZE (2048 * 4) | ||
1898 | |||
1899 | info->pixmap.addr = kmalloc(PIXMAP_SIZE, GFP_KERNEL); | ||
1900 | if (!info->pixmap.addr) { | ||
1901 | printk(KERN_ERR "radeonfb: Failed to allocate pixmap !\n"); | ||
1902 | noaccel = 1; | ||
1903 | goto bail; | ||
1904 | } | ||
1905 | info->pixmap.size = PIXMAP_SIZE; | ||
1906 | info->pixmap.flags = FB_PIXMAP_SYSTEM; | ||
1907 | info->pixmap.scan_align = 4; | ||
1908 | info->pixmap.buf_align = 4; | ||
1909 | info->pixmap.access_align = 32; | ||
1910 | |||
1911 | bail: | ||
1894 | if (noaccel) | 1912 | if (noaccel) |
1895 | info->flags |= FBINFO_HWACCEL_DISABLED; | 1913 | info->flags |= FBINFO_HWACCEL_DISABLED; |
1896 | 1914 | ||
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index b92947d62ad6..67ff370d80af 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
@@ -2389,16 +2389,13 @@ static int fbcon_blank(struct vc_data *vc, int blank, int mode_switch) | |||
2389 | 2389 | ||
2390 | if (!fbcon_is_inactive(vc, info)) { | 2390 | if (!fbcon_is_inactive(vc, info)) { |
2391 | if (ops->blank_state != blank) { | 2391 | if (ops->blank_state != blank) { |
2392 | int ret = 1; | ||
2393 | |||
2394 | ops->blank_state = blank; | 2392 | ops->blank_state = blank; |
2395 | fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW); | 2393 | fbcon_cursor(vc, blank ? CM_ERASE : CM_DRAW); |
2396 | ops->cursor_flash = (!blank); | 2394 | ops->cursor_flash = (!blank); |
2397 | 2395 | ||
2398 | if (info->fbops->fb_blank) | 2396 | if (!(info->flags & FBINFO_MISC_USEREVENT)) |
2399 | ret = info->fbops->fb_blank(blank, info); | 2397 | if (fb_blank(info, blank)) |
2400 | if (ret) | 2398 | fbcon_generic_blank(vc, info, blank); |
2401 | fbcon_generic_blank(vc, info, blank); | ||
2402 | } | 2399 | } |
2403 | 2400 | ||
2404 | if (!blank) | 2401 | if (!blank) |
diff --git a/drivers/video/omap/Makefile b/drivers/video/omap/Makefile index 99da8b6d2c36..ed13889c1162 100644 --- a/drivers/video/omap/Makefile +++ b/drivers/video/omap/Makefile | |||
@@ -23,7 +23,6 @@ objs-y$(CONFIG_MACH_OMAP_PALMZ71) += lcd_palmz71.o | |||
23 | objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o | 23 | objs-$(CONFIG_ARCH_OMAP16XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1610.o |
24 | objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o | 24 | objs-$(CONFIG_ARCH_OMAP15XX)$(CONFIG_MACH_OMAP_INNOVATOR) += lcd_inn1510.o |
25 | objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o | 25 | objs-y$(CONFIG_MACH_OMAP_OSK) += lcd_osk.o |
26 | objs-y$(CONFIG_MACH_SX1) += lcd_sx1.o | ||
27 | 26 | ||
28 | omapfb-objs := $(objs-yy) | 27 | omapfb-objs := $(objs-yy) |
29 | 28 | ||
diff --git a/drivers/video/omap/lcd_sx1.c b/drivers/video/omap/lcd_sx1.c deleted file mode 100644 index e55de201b8ff..000000000000 --- a/drivers/video/omap/lcd_sx1.c +++ /dev/null | |||
@@ -1,327 +0,0 @@ | |||
1 | /* | ||
2 | * LCD panel support for the Siemens SX1 mobile phone | ||
3 | * | ||
4 | * Current version : Vovan888@gmail.com, great help from FCA00000 | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it | ||
7 | * under the terms of the GNU General Public License as published by the | ||
8 | * Free Software Foundation; either version 2 of the License, or (at your | ||
9 | * option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, but | ||
12 | * WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | ||
14 | * General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along | ||
17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
18 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/module.h> | ||
22 | #include <linux/platform_device.h> | ||
23 | #include <linux/delay.h> | ||
24 | #include <linux/io.h> | ||
25 | |||
26 | #include <mach/gpio.h> | ||
27 | #include <mach/omapfb.h> | ||
28 | #include <mach/mcbsp.h> | ||
29 | #include <mach/mux.h> | ||
30 | |||
31 | /* | ||
32 | * OMAP310 GPIO registers | ||
33 | */ | ||
34 | #define GPIO_DATA_INPUT 0xfffce000 | ||
35 | #define GPIO_DATA_OUTPUT 0xfffce004 | ||
36 | #define GPIO_DIR_CONTROL 0xfffce008 | ||
37 | #define GPIO_INT_CONTROL 0xfffce00c | ||
38 | #define GPIO_INT_MASK 0xfffce010 | ||
39 | #define GPIO_INT_STATUS 0xfffce014 | ||
40 | #define GPIO_PIN_CONTROL 0xfffce018 | ||
41 | |||
42 | |||
43 | #define A_LCD_SSC_RD 3 | ||
44 | #define A_LCD_SSC_SD 7 | ||
45 | #define _A_LCD_RESET 9 | ||
46 | #define _A_LCD_SSC_CS 12 | ||
47 | #define _A_LCD_SSC_A0 13 | ||
48 | |||
49 | #define DSP_REG 0xE1017024 | ||
50 | |||
51 | const unsigned char INIT_1[12] = { | ||
52 | 0x1C, 0x02, 0x88, 0x00, 0x1E, 0xE0, 0x00, 0xDC, 0x00, 0x02, 0x00 | ||
53 | }; | ||
54 | |||
55 | const unsigned char INIT_2[127] = { | ||
56 | 0x15, 0x00, 0x29, 0x00, 0x3E, 0x00, 0x51, 0x00, | ||
57 | 0x65, 0x00, 0x7A, 0x00, 0x8D, 0x00, 0xA1, 0x00, | ||
58 | 0xB6, 0x00, 0xC7, 0x00, 0xD8, 0x00, 0xEB, 0x00, | ||
59 | 0xFB, 0x00, 0x0B, 0x01, 0x1B, 0x01, 0x27, 0x01, | ||
60 | 0x34, 0x01, 0x41, 0x01, 0x4C, 0x01, 0x55, 0x01, | ||
61 | 0x5F, 0x01, 0x68, 0x01, 0x70, 0x01, 0x78, 0x01, | ||
62 | 0x7E, 0x01, 0x86, 0x01, 0x8C, 0x01, 0x94, 0x01, | ||
63 | 0x9B, 0x01, 0xA1, 0x01, 0xA4, 0x01, 0xA9, 0x01, | ||
64 | 0xAD, 0x01, 0xB2, 0x01, 0xB7, 0x01, 0xBC, 0x01, | ||
65 | 0xC0, 0x01, 0xC4, 0x01, 0xC8, 0x01, 0xCB, 0x01, | ||
66 | 0xCF, 0x01, 0xD2, 0x01, 0xD5, 0x01, 0xD8, 0x01, | ||
67 | 0xDB, 0x01, 0xE0, 0x01, 0xE3, 0x01, 0xE6, 0x01, | ||
68 | 0xE8, 0x01, 0xEB, 0x01, 0xEE, 0x01, 0xF1, 0x01, | ||
69 | 0xF3, 0x01, 0xF8, 0x01, 0xF9, 0x01, 0xFC, 0x01, | ||
70 | 0x00, 0x02, 0x03, 0x02, 0x07, 0x02, 0x09, 0x02, | ||
71 | 0x0E, 0x02, 0x13, 0x02, 0x1C, 0x02, 0x00 | ||
72 | }; | ||
73 | |||
74 | const unsigned char INIT_3[15] = { | ||
75 | 0x14, 0x26, 0x33, 0x3D, 0x45, 0x4D, 0x53, 0x59, | ||
76 | 0x5E, 0x63, 0x67, 0x6D, 0x71, 0x78, 0xFF | ||
77 | }; | ||
78 | |||
79 | static void epson_sendbyte(int flag, unsigned char byte) | ||
80 | { | ||
81 | int i, shifter = 0x80; | ||
82 | |||
83 | if (!flag) | ||
84 | gpio_set_value(_A_LCD_SSC_A0, 0); | ||
85 | mdelay(2); | ||
86 | gpio_set_value(A_LCD_SSC_RD, 1); | ||
87 | |||
88 | gpio_set_value(A_LCD_SSC_SD, flag); | ||
89 | |||
90 | OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2200); | ||
91 | OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2202); | ||
92 | for (i = 0; i < 8; i++) { | ||
93 | OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2200); | ||
94 | gpio_set_value(A_LCD_SSC_SD, shifter & byte); | ||
95 | OMAP_MCBSP_WRITE(OMAP1510_MCBSP3_BASE, PCR0, 0x2202); | ||
96 | shifter >>= 1; | ||
97 | } | ||
98 | gpio_set_value(_A_LCD_SSC_A0, 1); | ||
99 | } | ||
100 | |||
101 | static void init_system(void) | ||
102 | { | ||
103 | omap_mcbsp_request(OMAP_MCBSP3); | ||
104 | omap_mcbsp_stop(OMAP_MCBSP3); | ||
105 | } | ||
106 | |||
107 | static void setup_GPIO(void) | ||
108 | { | ||
109 | /* new wave */ | ||
110 | gpio_request(A_LCD_SSC_RD, "lcd_ssc_rd"); | ||
111 | gpio_request(A_LCD_SSC_SD, "lcd_ssc_sd"); | ||
112 | gpio_request(_A_LCD_RESET, "lcd_reset"); | ||
113 | gpio_request(_A_LCD_SSC_CS, "lcd_ssc_cs"); | ||
114 | gpio_request(_A_LCD_SSC_A0, "lcd_ssc_a0"); | ||
115 | |||
116 | /* set GPIOs to output, with initial data */ | ||
117 | gpio_direction_output(A_LCD_SSC_RD, 1); | ||
118 | gpio_direction_output(A_LCD_SSC_SD, 0); | ||
119 | gpio_direction_output(_A_LCD_RESET, 0); | ||
120 | gpio_direction_output(_A_LCD_SSC_CS, 1); | ||
121 | gpio_direction_output(_A_LCD_SSC_A0, 1); | ||
122 | } | ||
123 | |||
124 | static void display_init(void) | ||
125 | { | ||
126 | int i; | ||
127 | |||
128 | omap_cfg_reg(MCBSP3_CLKX); | ||
129 | |||
130 | mdelay(2); | ||
131 | setup_GPIO(); | ||
132 | mdelay(2); | ||
133 | |||
134 | /* reset LCD */ | ||
135 | gpio_set_value(A_LCD_SSC_SD, 1); | ||
136 | epson_sendbyte(0, 0x25); | ||
137 | |||
138 | gpio_set_value(_A_LCD_RESET, 0); | ||
139 | mdelay(10); | ||
140 | gpio_set_value(_A_LCD_RESET, 1); | ||
141 | |||
142 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
143 | mdelay(2); | ||
144 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
145 | |||
146 | /* init LCD, phase 1 */ | ||
147 | epson_sendbyte(0, 0xCA); | ||
148 | for (i = 0; i < 10; i++) | ||
149 | epson_sendbyte(1, INIT_1[i]); | ||
150 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
151 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
152 | |||
153 | /* init LCD phase 2 */ | ||
154 | epson_sendbyte(0, 0xCB); | ||
155 | for (i = 0; i < 125; i++) | ||
156 | epson_sendbyte(1, INIT_2[i]); | ||
157 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
158 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
159 | |||
160 | /* init LCD phase 2a */ | ||
161 | epson_sendbyte(0, 0xCC); | ||
162 | for (i = 0; i < 14; i++) | ||
163 | epson_sendbyte(1, INIT_3[i]); | ||
164 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
165 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
166 | |||
167 | /* init LCD phase 3 */ | ||
168 | epson_sendbyte(0, 0xBC); | ||
169 | epson_sendbyte(1, 0x08); | ||
170 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
171 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
172 | |||
173 | /* init LCD phase 4 */ | ||
174 | epson_sendbyte(0, 0x07); | ||
175 | epson_sendbyte(1, 0x05); | ||
176 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
177 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
178 | |||
179 | /* init LCD phase 5 */ | ||
180 | epson_sendbyte(0, 0x94); | ||
181 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
182 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
183 | |||
184 | /* init LCD phase 6 */ | ||
185 | epson_sendbyte(0, 0xC6); | ||
186 | epson_sendbyte(1, 0x80); | ||
187 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
188 | mdelay(100); /* used to be 1000 */ | ||
189 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
190 | |||
191 | /* init LCD phase 7 */ | ||
192 | epson_sendbyte(0, 0x16); | ||
193 | epson_sendbyte(1, 0x02); | ||
194 | epson_sendbyte(1, 0x00); | ||
195 | epson_sendbyte(1, 0xB1); | ||
196 | epson_sendbyte(1, 0x00); | ||
197 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
198 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
199 | |||
200 | /* init LCD phase 8 */ | ||
201 | epson_sendbyte(0, 0x76); | ||
202 | epson_sendbyte(1, 0x00); | ||
203 | epson_sendbyte(1, 0x00); | ||
204 | epson_sendbyte(1, 0xDB); | ||
205 | epson_sendbyte(1, 0x00); | ||
206 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
207 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
208 | |||
209 | /* init LCD phase 9 */ | ||
210 | epson_sendbyte(0, 0xAF); | ||
211 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
212 | } | ||
213 | |||
214 | static int sx1_panel_init(struct lcd_panel *panel, struct omapfb_device *fbdev) | ||
215 | { | ||
216 | return 0; | ||
217 | } | ||
218 | |||
219 | static void sx1_panel_cleanup(struct lcd_panel *panel) | ||
220 | { | ||
221 | } | ||
222 | |||
223 | static void sx1_panel_disable(struct lcd_panel *panel) | ||
224 | { | ||
225 | printk(KERN_INFO "SX1: LCD panel disable\n"); | ||
226 | sx1_setmmipower(0); | ||
227 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
228 | |||
229 | epson_sendbyte(0, 0x25); | ||
230 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
231 | |||
232 | epson_sendbyte(0, 0xAE); | ||
233 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
234 | mdelay(100); | ||
235 | gpio_set_value(_A_LCD_SSC_CS, 0); | ||
236 | |||
237 | epson_sendbyte(0, 0x95); | ||
238 | gpio_set_value(_A_LCD_SSC_CS, 1); | ||
239 | } | ||
240 | |||
241 | static int sx1_panel_enable(struct lcd_panel *panel) | ||
242 | { | ||
243 | printk(KERN_INFO "lcd_sx1: LCD panel enable\n"); | ||
244 | init_system(); | ||
245 | display_init(); | ||
246 | |||
247 | sx1_setmmipower(1); | ||
248 | sx1_setbacklight(0x18); | ||
249 | sx1_setkeylight (0x06); | ||
250 | return 0; | ||
251 | } | ||
252 | |||
253 | |||
254 | static unsigned long sx1_panel_get_caps(struct lcd_panel *panel) | ||
255 | { | ||
256 | return 0; | ||
257 | } | ||
258 | |||
259 | struct lcd_panel sx1_panel = { | ||
260 | .name = "sx1", | ||
261 | .config = OMAP_LCDC_PANEL_TFT | OMAP_LCDC_INV_VSYNC | | ||
262 | OMAP_LCDC_INV_HSYNC | OMAP_LCDC_INV_PIX_CLOCK | | ||
263 | OMAP_LCDC_INV_OUTPUT_EN, | ||
264 | |||
265 | .x_res = 176, | ||
266 | .y_res = 220, | ||
267 | .data_lines = 16, | ||
268 | .bpp = 16, | ||
269 | .hsw = 5, | ||
270 | .hfp = 5, | ||
271 | .hbp = 5, | ||
272 | .vsw = 2, | ||
273 | .vfp = 1, | ||
274 | .vbp = 1, | ||
275 | .pixel_clock = 1500, | ||
276 | |||
277 | .init = sx1_panel_init, | ||
278 | .cleanup = sx1_panel_cleanup, | ||
279 | .enable = sx1_panel_enable, | ||
280 | .disable = sx1_panel_disable, | ||
281 | .get_caps = sx1_panel_get_caps, | ||
282 | }; | ||
283 | |||
284 | static int sx1_panel_probe(struct platform_device *pdev) | ||
285 | { | ||
286 | omapfb_register_panel(&sx1_panel); | ||
287 | return 0; | ||
288 | } | ||
289 | |||
290 | static int sx1_panel_remove(struct platform_device *pdev) | ||
291 | { | ||
292 | return 0; | ||
293 | } | ||
294 | |||
295 | static int sx1_panel_suspend(struct platform_device *pdev, pm_message_t mesg) | ||
296 | { | ||
297 | return 0; | ||
298 | } | ||
299 | |||
300 | static int sx1_panel_resume(struct platform_device *pdev) | ||
301 | { | ||
302 | return 0; | ||
303 | } | ||
304 | |||
305 | struct platform_driver sx1_panel_driver = { | ||
306 | .probe = sx1_panel_probe, | ||
307 | .remove = sx1_panel_remove, | ||
308 | .suspend = sx1_panel_suspend, | ||
309 | .resume = sx1_panel_resume, | ||
310 | .driver = { | ||
311 | .name = "lcd_sx1", | ||
312 | .owner = THIS_MODULE, | ||
313 | }, | ||
314 | }; | ||
315 | |||
316 | static int sx1_panel_drv_init(void) | ||
317 | { | ||
318 | return platform_driver_register(&sx1_panel_driver); | ||
319 | } | ||
320 | |||
321 | static void sx1_panel_drv_cleanup(void) | ||
322 | { | ||
323 | platform_driver_unregister(&sx1_panel_driver); | ||
324 | } | ||
325 | |||
326 | module_init(sx1_panel_drv_init); | ||
327 | module_exit(sx1_panel_drv_cleanup); | ||
diff --git a/drivers/video/xen-fbfront.c b/drivers/video/xen-fbfront.c index a463b3dd837b..2493f05e9f61 100644 --- a/drivers/video/xen-fbfront.c +++ b/drivers/video/xen-fbfront.c | |||
@@ -668,7 +668,7 @@ static struct xenbus_device_id xenfb_ids[] = { | |||
668 | { "" } | 668 | { "" } |
669 | }; | 669 | }; |
670 | 670 | ||
671 | static struct xenbus_driver xenfb = { | 671 | static struct xenbus_driver xenfb_driver = { |
672 | .name = "vfb", | 672 | .name = "vfb", |
673 | .owner = THIS_MODULE, | 673 | .owner = THIS_MODULE, |
674 | .ids = xenfb_ids, | 674 | .ids = xenfb_ids, |
@@ -687,12 +687,12 @@ static int __init xenfb_init(void) | |||
687 | if (xen_initial_domain()) | 687 | if (xen_initial_domain()) |
688 | return -ENODEV; | 688 | return -ENODEV; |
689 | 689 | ||
690 | return xenbus_register_frontend(&xenfb); | 690 | return xenbus_register_frontend(&xenfb_driver); |
691 | } | 691 | } |
692 | 692 | ||
693 | static void __exit xenfb_cleanup(void) | 693 | static void __exit xenfb_cleanup(void) |
694 | { | 694 | { |
695 | xenbus_unregister_driver(&xenfb); | 695 | xenbus_unregister_driver(&xenfb_driver); |
696 | } | 696 | } |
697 | 697 | ||
698 | module_init(xenfb_init); | 698 | module_init(xenfb_init); |
diff --git a/drivers/video/xilinxfb.c b/drivers/video/xilinxfb.c index 5da3d2423cc0..40a3a2afbfe7 100644 --- a/drivers/video/xilinxfb.c +++ b/drivers/video/xilinxfb.c | |||
@@ -298,8 +298,9 @@ static int xilinxfb_assign(struct device *dev, unsigned long physaddr, | |||
298 | 298 | ||
299 | /* Put a banner in the log (for DEBUG) */ | 299 | /* Put a banner in the log (for DEBUG) */ |
300 | dev_dbg(dev, "regs: phys=%lx, virt=%p\n", physaddr, drvdata->regs); | 300 | dev_dbg(dev, "regs: phys=%lx, virt=%p\n", physaddr, drvdata->regs); |
301 | dev_dbg(dev, "fb: phys=%p, virt=%p, size=%x\n", | 301 | dev_dbg(dev, "fb: phys=%llx, virt=%p, size=%x\n", |
302 | (void*)drvdata->fb_phys, drvdata->fb_virt, fbsize); | 302 | (unsigned long long) drvdata->fb_phys, drvdata->fb_virt, |
303 | fbsize); | ||
303 | 304 | ||
304 | return 0; /* success */ | 305 | return 0; /* success */ |
305 | 306 | ||
diff --git a/drivers/w1/masters/Kconfig b/drivers/w1/masters/Kconfig index a14d5b6e4c7c..90616822cd20 100644 --- a/drivers/w1/masters/Kconfig +++ b/drivers/w1/masters/Kconfig | |||
@@ -36,7 +36,7 @@ config W1_MASTER_DS2482 | |||
36 | 36 | ||
37 | config W1_MASTER_DS1WM | 37 | config W1_MASTER_DS1WM |
38 | tristate "Maxim DS1WM 1-wire busmaster" | 38 | tristate "Maxim DS1WM 1-wire busmaster" |
39 | depends on W1 && ARM | 39 | depends on W1 && ARM && HAVE_CLK |
40 | help | 40 | help |
41 | Say Y here to enable the DS1WM 1-wire driver, such as that | 41 | Say Y here to enable the DS1WM 1-wire driver, such as that |
42 | in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like | 42 | in HP iPAQ devices like h5xxx, h2200, and ASIC3-based like |
diff --git a/fs/buffer.c b/fs/buffer.c index 6569fda5cfed..10179cfa1152 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
@@ -878,6 +878,7 @@ void invalidate_inode_buffers(struct inode *inode) | |||
878 | spin_unlock(&buffer_mapping->private_lock); | 878 | spin_unlock(&buffer_mapping->private_lock); |
879 | } | 879 | } |
880 | } | 880 | } |
881 | EXPORT_SYMBOL(invalidate_inode_buffers); | ||
881 | 882 | ||
882 | /* | 883 | /* |
883 | * Remove any clean buffers from the inode's buffer list. This is called | 884 | * Remove any clean buffers from the inode's buffer list. This is called |
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index b691b893a848..f0a81e631ae6 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -1475,7 +1475,11 @@ static int cifs_write_end(struct file *file, struct address_space *mapping, | |||
1475 | cFYI(1, ("write_end for page %p from pos %lld with %d bytes", | 1475 | cFYI(1, ("write_end for page %p from pos %lld with %d bytes", |
1476 | page, pos, copied)); | 1476 | page, pos, copied)); |
1477 | 1477 | ||
1478 | if (!PageUptodate(page) && copied == PAGE_CACHE_SIZE) | 1478 | if (PageChecked(page)) { |
1479 | if (copied == len) | ||
1480 | SetPageUptodate(page); | ||
1481 | ClearPageChecked(page); | ||
1482 | } else if (!PageUptodate(page) && copied == PAGE_CACHE_SIZE) | ||
1479 | SetPageUptodate(page); | 1483 | SetPageUptodate(page); |
1480 | 1484 | ||
1481 | if (!PageUptodate(page)) { | 1485 | if (!PageUptodate(page)) { |
@@ -2062,39 +2066,70 @@ static int cifs_write_begin(struct file *file, struct address_space *mapping, | |||
2062 | { | 2066 | { |
2063 | pgoff_t index = pos >> PAGE_CACHE_SHIFT; | 2067 | pgoff_t index = pos >> PAGE_CACHE_SHIFT; |
2064 | loff_t offset = pos & (PAGE_CACHE_SIZE - 1); | 2068 | loff_t offset = pos & (PAGE_CACHE_SIZE - 1); |
2069 | loff_t page_start = pos & PAGE_MASK; | ||
2070 | loff_t i_size; | ||
2071 | struct page *page; | ||
2072 | int rc = 0; | ||
2065 | 2073 | ||
2066 | cFYI(1, ("write_begin from %lld len %d", (long long)pos, len)); | 2074 | cFYI(1, ("write_begin from %lld len %d", (long long)pos, len)); |
2067 | 2075 | ||
2068 | *pagep = __grab_cache_page(mapping, index); | 2076 | page = __grab_cache_page(mapping, index); |
2069 | if (!*pagep) | 2077 | if (!page) { |
2070 | return -ENOMEM; | 2078 | rc = -ENOMEM; |
2071 | 2079 | goto out; | |
2072 | if (PageUptodate(*pagep)) | 2080 | } |
2073 | return 0; | ||
2074 | 2081 | ||
2075 | /* If we are writing a full page it will be up to date, | 2082 | if (PageUptodate(page)) |
2076 | no need to read from the server */ | 2083 | goto out; |
2077 | if (len == PAGE_CACHE_SIZE && flags & AOP_FLAG_UNINTERRUPTIBLE) | ||
2078 | return 0; | ||
2079 | 2084 | ||
2080 | if ((file->f_flags & O_ACCMODE) != O_WRONLY) { | 2085 | /* |
2081 | int rc; | 2086 | * If we write a full page it will be up to date, no need to read from |
2087 | * the server. If the write is short, we'll end up doing a sync write | ||
2088 | * instead. | ||
2089 | */ | ||
2090 | if (len == PAGE_CACHE_SIZE) | ||
2091 | goto out; | ||
2082 | 2092 | ||
2083 | /* might as well read a page, it is fast enough */ | 2093 | /* |
2084 | rc = cifs_readpage_worker(file, *pagep, &offset); | 2094 | * optimize away the read when we have an oplock, and we're not |
2095 | * expecting to use any of the data we'd be reading in. That | ||
2096 | * is, when the page lies beyond the EOF, or straddles the EOF | ||
2097 | * and the write will cover all of the existing data. | ||
2098 | */ | ||
2099 | if (CIFS_I(mapping->host)->clientCanCacheRead) { | ||
2100 | i_size = i_size_read(mapping->host); | ||
2101 | if (page_start >= i_size || | ||
2102 | (offset == 0 && (pos + len) >= i_size)) { | ||
2103 | zero_user_segments(page, 0, offset, | ||
2104 | offset + len, | ||
2105 | PAGE_CACHE_SIZE); | ||
2106 | /* | ||
2107 | * PageChecked means that the parts of the page | ||
2108 | * to which we're not writing are considered up | ||
2109 | * to date. Once the data is copied to the | ||
2110 | * page, it can be set uptodate. | ||
2111 | */ | ||
2112 | SetPageChecked(page); | ||
2113 | goto out; | ||
2114 | } | ||
2115 | } | ||
2085 | 2116 | ||
2086 | /* we do not need to pass errors back | 2117 | if ((file->f_flags & O_ACCMODE) != O_WRONLY) { |
2087 | e.g. if we do not have read access to the file | 2118 | /* |
2088 | because cifs_write_end will attempt synchronous writes | 2119 | * might as well read a page, it is fast enough. If we get |
2089 | -- shaggy */ | 2120 | * an error, we don't need to return it. cifs_write_end will |
2121 | * do a sync write instead since PG_uptodate isn't set. | ||
2122 | */ | ||
2123 | cifs_readpage_worker(file, page, &page_start); | ||
2090 | } else { | 2124 | } else { |
2091 | /* we could try using another file handle if there is one - | 2125 | /* we could try using another file handle if there is one - |
2092 | but how would we lock it to prevent close of that handle | 2126 | but how would we lock it to prevent close of that handle |
2093 | racing with this read? In any case | 2127 | racing with this read? In any case |
2094 | this will be written out by write_end so is fine */ | 2128 | this will be written out by write_end so is fine */ |
2095 | } | 2129 | } |
2096 | 2130 | out: | |
2097 | return 0; | 2131 | *pagep = page; |
2132 | return rc; | ||
2098 | } | 2133 | } |
2099 | 2134 | ||
2100 | const struct address_space_operations cifs_addr_ops = { | 2135 | const struct address_space_operations cifs_addr_ops = { |
diff --git a/fs/eventpoll.c b/fs/eventpoll.c index aec5c13f6341..96355d505347 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c | |||
@@ -102,6 +102,8 @@ | |||
102 | 102 | ||
103 | #define EP_UNACTIVE_PTR ((void *) -1L) | 103 | #define EP_UNACTIVE_PTR ((void *) -1L) |
104 | 104 | ||
105 | #define EP_ITEM_COST (sizeof(struct epitem) + sizeof(struct eppoll_entry)) | ||
106 | |||
105 | struct epoll_filefd { | 107 | struct epoll_filefd { |
106 | struct file *file; | 108 | struct file *file; |
107 | int fd; | 109 | int fd; |
@@ -200,6 +202,9 @@ struct eventpoll { | |||
200 | * holding ->lock. | 202 | * holding ->lock. |
201 | */ | 203 | */ |
202 | struct epitem *ovflist; | 204 | struct epitem *ovflist; |
205 | |||
206 | /* The user that created the eventpoll descriptor */ | ||
207 | struct user_struct *user; | ||
203 | }; | 208 | }; |
204 | 209 | ||
205 | /* Wait structure used by the poll hooks */ | 210 | /* Wait structure used by the poll hooks */ |
@@ -227,9 +232,17 @@ struct ep_pqueue { | |||
227 | }; | 232 | }; |
228 | 233 | ||
229 | /* | 234 | /* |
235 | * Configuration options available inside /proc/sys/fs/epoll/ | ||
236 | */ | ||
237 | /* Maximum number of epoll devices, per user */ | ||
238 | static int max_user_instances __read_mostly; | ||
239 | /* Maximum number of epoll watched descriptors, per user */ | ||
240 | static int max_user_watches __read_mostly; | ||
241 | |||
242 | /* | ||
230 | * This mutex is used to serialize ep_free() and eventpoll_release_file(). | 243 | * This mutex is used to serialize ep_free() and eventpoll_release_file(). |
231 | */ | 244 | */ |
232 | static struct mutex epmutex; | 245 | static DEFINE_MUTEX(epmutex); |
233 | 246 | ||
234 | /* Safe wake up implementation */ | 247 | /* Safe wake up implementation */ |
235 | static struct poll_safewake psw; | 248 | static struct poll_safewake psw; |
@@ -240,6 +253,33 @@ static struct kmem_cache *epi_cache __read_mostly; | |||
240 | /* Slab cache used to allocate "struct eppoll_entry" */ | 253 | /* Slab cache used to allocate "struct eppoll_entry" */ |
241 | static struct kmem_cache *pwq_cache __read_mostly; | 254 | static struct kmem_cache *pwq_cache __read_mostly; |
242 | 255 | ||
256 | #ifdef CONFIG_SYSCTL | ||
257 | |||
258 | #include <linux/sysctl.h> | ||
259 | |||
260 | static int zero; | ||
261 | |||
262 | ctl_table epoll_table[] = { | ||
263 | { | ||
264 | .procname = "max_user_instances", | ||
265 | .data = &max_user_instances, | ||
266 | .maxlen = sizeof(int), | ||
267 | .mode = 0644, | ||
268 | .proc_handler = &proc_dointvec_minmax, | ||
269 | .extra1 = &zero, | ||
270 | }, | ||
271 | { | ||
272 | .procname = "max_user_watches", | ||
273 | .data = &max_user_watches, | ||
274 | .maxlen = sizeof(int), | ||
275 | .mode = 0644, | ||
276 | .proc_handler = &proc_dointvec_minmax, | ||
277 | .extra1 = &zero, | ||
278 | }, | ||
279 | { .ctl_name = 0 } | ||
280 | }; | ||
281 | #endif /* CONFIG_SYSCTL */ | ||
282 | |||
243 | 283 | ||
244 | /* Setup the structure that is used as key for the RB tree */ | 284 | /* Setup the structure that is used as key for the RB tree */ |
245 | static inline void ep_set_ffd(struct epoll_filefd *ffd, | 285 | static inline void ep_set_ffd(struct epoll_filefd *ffd, |
@@ -402,6 +442,8 @@ static int ep_remove(struct eventpoll *ep, struct epitem *epi) | |||
402 | /* At this point it is safe to free the eventpoll item */ | 442 | /* At this point it is safe to free the eventpoll item */ |
403 | kmem_cache_free(epi_cache, epi); | 443 | kmem_cache_free(epi_cache, epi); |
404 | 444 | ||
445 | atomic_dec(&ep->user->epoll_watches); | ||
446 | |||
405 | DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_remove(%p, %p)\n", | 447 | DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_remove(%p, %p)\n", |
406 | current, ep, file)); | 448 | current, ep, file)); |
407 | 449 | ||
@@ -449,6 +491,8 @@ static void ep_free(struct eventpoll *ep) | |||
449 | 491 | ||
450 | mutex_unlock(&epmutex); | 492 | mutex_unlock(&epmutex); |
451 | mutex_destroy(&ep->mtx); | 493 | mutex_destroy(&ep->mtx); |
494 | atomic_dec(&ep->user->epoll_devs); | ||
495 | free_uid(ep->user); | ||
452 | kfree(ep); | 496 | kfree(ep); |
453 | } | 497 | } |
454 | 498 | ||
@@ -532,10 +576,19 @@ void eventpoll_release_file(struct file *file) | |||
532 | 576 | ||
533 | static int ep_alloc(struct eventpoll **pep) | 577 | static int ep_alloc(struct eventpoll **pep) |
534 | { | 578 | { |
535 | struct eventpoll *ep = kzalloc(sizeof(*ep), GFP_KERNEL); | 579 | int error; |
580 | struct user_struct *user; | ||
581 | struct eventpoll *ep; | ||
536 | 582 | ||
537 | if (!ep) | 583 | user = get_current_user(); |
538 | return -ENOMEM; | 584 | error = -EMFILE; |
585 | if (unlikely(atomic_read(&user->epoll_devs) >= | ||
586 | max_user_instances)) | ||
587 | goto free_uid; | ||
588 | error = -ENOMEM; | ||
589 | ep = kzalloc(sizeof(*ep), GFP_KERNEL); | ||
590 | if (unlikely(!ep)) | ||
591 | goto free_uid; | ||
539 | 592 | ||
540 | spin_lock_init(&ep->lock); | 593 | spin_lock_init(&ep->lock); |
541 | mutex_init(&ep->mtx); | 594 | mutex_init(&ep->mtx); |
@@ -544,12 +597,17 @@ static int ep_alloc(struct eventpoll **pep) | |||
544 | INIT_LIST_HEAD(&ep->rdllist); | 597 | INIT_LIST_HEAD(&ep->rdllist); |
545 | ep->rbr = RB_ROOT; | 598 | ep->rbr = RB_ROOT; |
546 | ep->ovflist = EP_UNACTIVE_PTR; | 599 | ep->ovflist = EP_UNACTIVE_PTR; |
600 | ep->user = user; | ||
547 | 601 | ||
548 | *pep = ep; | 602 | *pep = ep; |
549 | 603 | ||
550 | DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_alloc() ep=%p\n", | 604 | DNPRINTK(3, (KERN_INFO "[%p] eventpoll: ep_alloc() ep=%p\n", |
551 | current, ep)); | 605 | current, ep)); |
552 | return 0; | 606 | return 0; |
607 | |||
608 | free_uid: | ||
609 | free_uid(user); | ||
610 | return error; | ||
553 | } | 611 | } |
554 | 612 | ||
555 | /* | 613 | /* |
@@ -703,9 +761,11 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event, | |||
703 | struct epitem *epi; | 761 | struct epitem *epi; |
704 | struct ep_pqueue epq; | 762 | struct ep_pqueue epq; |
705 | 763 | ||
706 | error = -ENOMEM; | 764 | if (unlikely(atomic_read(&ep->user->epoll_watches) >= |
765 | max_user_watches)) | ||
766 | return -ENOSPC; | ||
707 | if (!(epi = kmem_cache_alloc(epi_cache, GFP_KERNEL))) | 767 | if (!(epi = kmem_cache_alloc(epi_cache, GFP_KERNEL))) |
708 | goto error_return; | 768 | return -ENOMEM; |
709 | 769 | ||
710 | /* Item initialization follow here ... */ | 770 | /* Item initialization follow here ... */ |
711 | INIT_LIST_HEAD(&epi->rdllink); | 771 | INIT_LIST_HEAD(&epi->rdllink); |
@@ -735,6 +795,7 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event, | |||
735 | * install process. Namely an allocation for a wait queue failed due | 795 | * install process. Namely an allocation for a wait queue failed due |
736 | * high memory pressure. | 796 | * high memory pressure. |
737 | */ | 797 | */ |
798 | error = -ENOMEM; | ||
738 | if (epi->nwait < 0) | 799 | if (epi->nwait < 0) |
739 | goto error_unregister; | 800 | goto error_unregister; |
740 | 801 | ||
@@ -765,6 +826,8 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event, | |||
765 | 826 | ||
766 | spin_unlock_irqrestore(&ep->lock, flags); | 827 | spin_unlock_irqrestore(&ep->lock, flags); |
767 | 828 | ||
829 | atomic_inc(&ep->user->epoll_watches); | ||
830 | |||
768 | /* We have to call this outside the lock */ | 831 | /* We have to call this outside the lock */ |
769 | if (pwake) | 832 | if (pwake) |
770 | ep_poll_safewake(&psw, &ep->poll_wait); | 833 | ep_poll_safewake(&psw, &ep->poll_wait); |
@@ -789,7 +852,7 @@ error_unregister: | |||
789 | spin_unlock_irqrestore(&ep->lock, flags); | 852 | spin_unlock_irqrestore(&ep->lock, flags); |
790 | 853 | ||
791 | kmem_cache_free(epi_cache, epi); | 854 | kmem_cache_free(epi_cache, epi); |
792 | error_return: | 855 | |
793 | return error; | 856 | return error; |
794 | } | 857 | } |
795 | 858 | ||
@@ -1078,6 +1141,7 @@ asmlinkage long sys_epoll_create1(int flags) | |||
1078 | flags & O_CLOEXEC); | 1141 | flags & O_CLOEXEC); |
1079 | if (fd < 0) | 1142 | if (fd < 0) |
1080 | ep_free(ep); | 1143 | ep_free(ep); |
1144 | atomic_inc(&ep->user->epoll_devs); | ||
1081 | 1145 | ||
1082 | error_return: | 1146 | error_return: |
1083 | DNPRINTK(3, (KERN_INFO "[%p] eventpoll: sys_epoll_create(%d) = %d\n", | 1147 | DNPRINTK(3, (KERN_INFO "[%p] eventpoll: sys_epoll_create(%d) = %d\n", |
@@ -1299,7 +1363,12 @@ asmlinkage long sys_epoll_pwait(int epfd, struct epoll_event __user *events, | |||
1299 | 1363 | ||
1300 | static int __init eventpoll_init(void) | 1364 | static int __init eventpoll_init(void) |
1301 | { | 1365 | { |
1302 | mutex_init(&epmutex); | 1366 | struct sysinfo si; |
1367 | |||
1368 | si_meminfo(&si); | ||
1369 | max_user_instances = 128; | ||
1370 | max_user_watches = (((si.totalram - si.totalhigh) / 32) << PAGE_SHIFT) / | ||
1371 | EP_ITEM_COST; | ||
1303 | 1372 | ||
1304 | /* Initialize the structure used to perform safe poll wait head wake ups */ | 1373 | /* Initialize the structure used to perform safe poll wait head wake ups */ |
1305 | ep_poll_safewake_init(&psw); | 1374 | ep_poll_safewake_init(&psw); |
diff --git a/fs/ntfs/debug.h b/fs/ntfs/debug.h index 5e6724c1afd1..2142b1c68b61 100644 --- a/fs/ntfs/debug.h +++ b/fs/ntfs/debug.h | |||
@@ -30,7 +30,8 @@ | |||
30 | 30 | ||
31 | extern int debug_msgs; | 31 | extern int debug_msgs; |
32 | 32 | ||
33 | #if 0 /* Fool kernel-doc since it doesn't do macros yet */ | 33 | extern void __ntfs_debug(const char *file, int line, const char *function, |
34 | const char *format, ...) __attribute__ ((format (printf, 4, 5))); | ||
34 | /** | 35 | /** |
35 | * ntfs_debug - write a debug level message to syslog | 36 | * ntfs_debug - write a debug level message to syslog |
36 | * @f: a printf format string containing the message | 37 | * @f: a printf format string containing the message |
@@ -39,11 +40,6 @@ extern int debug_msgs; | |||
39 | * ntfs_debug() writes a DEBUG level message to the syslog but only if the | 40 | * ntfs_debug() writes a DEBUG level message to the syslog but only if the |
40 | * driver was compiled with -DDEBUG. Otherwise, the call turns into a NOP. | 41 | * driver was compiled with -DDEBUG. Otherwise, the call turns into a NOP. |
41 | */ | 42 | */ |
42 | static void ntfs_debug(const char *f, ...); | ||
43 | #endif | ||
44 | |||
45 | extern void __ntfs_debug (const char *file, int line, const char *function, | ||
46 | const char *format, ...) __attribute__ ((format (printf, 4, 5))); | ||
47 | #define ntfs_debug(f, a...) \ | 43 | #define ntfs_debug(f, a...) \ |
48 | __ntfs_debug(__FILE__, __LINE__, __func__, f, ##a) | 44 | __ntfs_debug(__FILE__, __LINE__, __func__, f, ##a) |
49 | 45 | ||
diff --git a/fs/ocfs2/buffer_head_io.c b/fs/ocfs2/buffer_head_io.c index 7e947c672469..3a178ec48d7c 100644 --- a/fs/ocfs2/buffer_head_io.c +++ b/fs/ocfs2/buffer_head_io.c | |||
@@ -112,7 +112,7 @@ int ocfs2_read_blocks_sync(struct ocfs2_super *osb, u64 block, | |||
112 | bh = bhs[i]; | 112 | bh = bhs[i]; |
113 | 113 | ||
114 | if (buffer_jbd(bh)) { | 114 | if (buffer_jbd(bh)) { |
115 | mlog(ML_ERROR, | 115 | mlog(ML_BH_IO, |
116 | "trying to sync read a jbd " | 116 | "trying to sync read a jbd " |
117 | "managed bh (blocknr = %llu), skipping\n", | 117 | "managed bh (blocknr = %llu), skipping\n", |
118 | (unsigned long long)bh->b_blocknr); | 118 | (unsigned long long)bh->b_blocknr); |
@@ -147,15 +147,10 @@ int ocfs2_read_blocks_sync(struct ocfs2_super *osb, u64 block, | |||
147 | for (i = nr; i > 0; i--) { | 147 | for (i = nr; i > 0; i--) { |
148 | bh = bhs[i - 1]; | 148 | bh = bhs[i - 1]; |
149 | 149 | ||
150 | if (buffer_jbd(bh)) { | 150 | /* No need to wait on the buffer if it's managed by JBD. */ |
151 | mlog(ML_ERROR, | 151 | if (!buffer_jbd(bh)) |
152 | "the journal got the buffer while it was " | 152 | wait_on_buffer(bh); |
153 | "locked for io! (blocknr = %llu)\n", | ||
154 | (unsigned long long)bh->b_blocknr); | ||
155 | BUG(); | ||
156 | } | ||
157 | 153 | ||
158 | wait_on_buffer(bh); | ||
159 | if (!buffer_uptodate(bh)) { | 154 | if (!buffer_uptodate(bh)) { |
160 | /* Status won't be cleared from here on out, | 155 | /* Status won't be cleared from here on out, |
161 | * so we can safely record this and loop back | 156 | * so we can safely record this and loop back |
@@ -251,8 +246,6 @@ int ocfs2_read_blocks(struct inode *inode, u64 block, int nr, | |||
251 | ignore_cache = 1; | 246 | ignore_cache = 1; |
252 | } | 247 | } |
253 | 248 | ||
254 | /* XXX: Can we ever get this and *not* have the cached | ||
255 | * flag set? */ | ||
256 | if (buffer_jbd(bh)) { | 249 | if (buffer_jbd(bh)) { |
257 | if (ignore_cache) | 250 | if (ignore_cache) |
258 | mlog(ML_BH_IO, "trying to sync read a jbd " | 251 | mlog(ML_BH_IO, "trying to sync read a jbd " |
diff --git a/fs/ocfs2/dlm/dlmfs.c b/fs/ocfs2/dlm/dlmfs.c index 533a789c3ef8..ba962d71b34d 100644 --- a/fs/ocfs2/dlm/dlmfs.c +++ b/fs/ocfs2/dlm/dlmfs.c | |||
@@ -608,8 +608,10 @@ static int __init init_dlmfs_fs(void) | |||
608 | 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT| | 608 | 0, (SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT| |
609 | SLAB_MEM_SPREAD), | 609 | SLAB_MEM_SPREAD), |
610 | dlmfs_init_once); | 610 | dlmfs_init_once); |
611 | if (!dlmfs_inode_cache) | 611 | if (!dlmfs_inode_cache) { |
612 | status = -ENOMEM; | ||
612 | goto bail; | 613 | goto bail; |
614 | } | ||
613 | cleanup_inode = 1; | 615 | cleanup_inode = 1; |
614 | 616 | ||
615 | user_dlm_worker = create_singlethread_workqueue("user_dlm"); | 617 | user_dlm_worker = create_singlethread_workqueue("user_dlm"); |
diff --git a/fs/ocfs2/dlm/userdlm.h b/fs/ocfs2/dlm/userdlm.h index 39ec27738499..0c3cc03c61fa 100644 --- a/fs/ocfs2/dlm/userdlm.h +++ b/fs/ocfs2/dlm/userdlm.h | |||
@@ -33,7 +33,7 @@ | |||
33 | #include <linux/workqueue.h> | 33 | #include <linux/workqueue.h> |
34 | 34 | ||
35 | /* user_lock_res->l_flags flags. */ | 35 | /* user_lock_res->l_flags flags. */ |
36 | #define USER_LOCK_ATTACHED (0x00000001) /* have we initialized | 36 | #define USER_LOCK_ATTACHED (0x00000001) /* we have initialized |
37 | * the lvb */ | 37 | * the lvb */ |
38 | #define USER_LOCK_BUSY (0x00000002) /* we are currently in | 38 | #define USER_LOCK_BUSY (0x00000002) /* we are currently in |
39 | * dlm_lock */ | 39 | * dlm_lock */ |
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index ec684426034b..6e6cc0a2e5f7 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c | |||
@@ -2841,9 +2841,8 @@ static void ocfs2_unlock_ast(void *opaque, int error) | |||
2841 | 2841 | ||
2842 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | 2842 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); |
2843 | lockres->l_unlock_action = OCFS2_UNLOCK_INVALID; | 2843 | lockres->l_unlock_action = OCFS2_UNLOCK_INVALID; |
2844 | spin_unlock_irqrestore(&lockres->l_lock, flags); | ||
2845 | |||
2846 | wake_up(&lockres->l_event); | 2844 | wake_up(&lockres->l_event); |
2845 | spin_unlock_irqrestore(&lockres->l_lock, flags); | ||
2847 | 2846 | ||
2848 | mlog_exit_void(); | 2847 | mlog_exit_void(); |
2849 | } | 2848 | } |
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h index fef7ece32376..3fed9e3d8992 100644 --- a/fs/ocfs2/ocfs2.h +++ b/fs/ocfs2/ocfs2.h | |||
@@ -85,7 +85,7 @@ enum ocfs2_unlock_action { | |||
85 | }; | 85 | }; |
86 | 86 | ||
87 | /* ocfs2_lock_res->l_flags flags. */ | 87 | /* ocfs2_lock_res->l_flags flags. */ |
88 | #define OCFS2_LOCK_ATTACHED (0x00000001) /* have we initialized | 88 | #define OCFS2_LOCK_ATTACHED (0x00000001) /* we have initialized |
89 | * the lvb */ | 89 | * the lvb */ |
90 | #define OCFS2_LOCK_BUSY (0x00000002) /* we are currently in | 90 | #define OCFS2_LOCK_BUSY (0x00000002) /* we are currently in |
91 | * dlm_lock */ | 91 | * dlm_lock */ |
diff --git a/fs/ocfs2/stack_user.c b/fs/ocfs2/stack_user.c index faec2d879357..9b76d41a8ac6 100644 --- a/fs/ocfs2/stack_user.c +++ b/fs/ocfs2/stack_user.c | |||
@@ -740,6 +740,9 @@ static int user_dlm_lock_status(union ocfs2_dlm_lksb *lksb) | |||
740 | 740 | ||
741 | static void *user_dlm_lvb(union ocfs2_dlm_lksb *lksb) | 741 | static void *user_dlm_lvb(union ocfs2_dlm_lksb *lksb) |
742 | { | 742 | { |
743 | if (!lksb->lksb_fsdlm.sb_lvbptr) | ||
744 | lksb->lksb_fsdlm.sb_lvbptr = (char *)lksb + | ||
745 | sizeof(struct dlm_lksb); | ||
743 | return (void *)(lksb->lksb_fsdlm.sb_lvbptr); | 746 | return (void *)(lksb->lksb_fsdlm.sb_lvbptr); |
744 | } | 747 | } |
745 | 748 | ||
diff --git a/fs/udf/inode.c b/fs/udf/inode.c index 6e74b117aaf0..30ebde490f7f 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c | |||
@@ -106,6 +106,7 @@ void udf_clear_inode(struct inode *inode) | |||
106 | udf_truncate_tail_extent(inode); | 106 | udf_truncate_tail_extent(inode); |
107 | unlock_kernel(); | 107 | unlock_kernel(); |
108 | write_inode_now(inode, 0); | 108 | write_inode_now(inode, 0); |
109 | invalidate_inode_buffers(inode); | ||
109 | } | 110 | } |
110 | iinfo = UDF_I(inode); | 111 | iinfo = UDF_I(inode); |
111 | kfree(iinfo->i_ext.i_data); | 112 | kfree(iinfo->i_ext.i_data); |
diff --git a/include/acpi/acpredef.h b/include/acpi/acpredef.h index 619fb75f8861..16a9ca9a66e4 100644 --- a/include/acpi/acpredef.h +++ b/include/acpi/acpredef.h | |||
@@ -167,7 +167,7 @@ static const union acpi_predefined_info predefined_names[] = { | |||
167 | {.info = {"_BFS", 1, 0}}, | 167 | {.info = {"_BFS", 1, 0}}, |
168 | {.info = {"_BIF", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, | 168 | {.info = {"_BIF", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, |
169 | 9, | 169 | 9, |
170 | ACPI_RTYPE_STRING, 4, 0}}, /* fixed (9 Int),(4 Str) */ | 170 | ACPI_RTYPE_STRING | ACPI_RTYPE_BUFFER, 4, 0}}, /* fixed (9 Int),(4 Str) */ |
171 | {.info = {"_BLT", 3, 0}}, | 171 | {.info = {"_BLT", 3, 0}}, |
172 | {.info = {"_BMC", 1, 0}}, | 172 | {.info = {"_BMC", 1, 0}}, |
173 | {.info = {"_BMD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* fixed (5 Int) */ | 173 | {.info = {"_BMD", 0, ACPI_RTYPE_PACKAGE}}, {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5, 0, 0, 0}}, /* fixed (5 Int) */ |
@@ -346,7 +346,7 @@ static const union acpi_predefined_info predefined_names[] = { | |||
346 | 346 | ||
347 | /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */ | 347 | /* Acpi 1.0 defined _WAK with no return value. Later, it was changed to return a package */ |
348 | 348 | ||
349 | {.info = {"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_PACKAGE}}, | 349 | {.info = {"_WAK", 1, ACPI_RTYPE_NONE | ACPI_RTYPE_INTEGER | ACPI_RTYPE_PACKAGE}}, |
350 | {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}}, /* fixed (2 Int), but is optional */ | 350 | {.ret_info = {ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 2, 0, 0, 0}}, /* fixed (2 Int), but is optional */ |
351 | {.ret_info = {0, 0, 0, 0, 0, 0}} /* Table terminator */ | 351 | {.ret_info = {0, 0, 0, 0, 0, 0}} /* Table terminator */ |
352 | }; | 352 | }; |
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 28c7f1679d49..d5e8e5c89548 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
@@ -1151,6 +1151,7 @@ extern u32 drm_vblank_count(struct drm_device *dev, int crtc); | |||
1151 | extern void drm_handle_vblank(struct drm_device *dev, int crtc); | 1151 | extern void drm_handle_vblank(struct drm_device *dev, int crtc); |
1152 | extern int drm_vblank_get(struct drm_device *dev, int crtc); | 1152 | extern int drm_vblank_get(struct drm_device *dev, int crtc); |
1153 | extern void drm_vblank_put(struct drm_device *dev, int crtc); | 1153 | extern void drm_vblank_put(struct drm_device *dev, int crtc); |
1154 | extern void drm_vblank_cleanup(struct drm_device *dev); | ||
1154 | /* Modesetting support */ | 1155 | /* Modesetting support */ |
1155 | extern int drm_modeset_ctl(struct drm_device *dev, void *data, | 1156 | extern int drm_modeset_ctl(struct drm_device *dev, void *data, |
1156 | struct drm_file *file_priv); | 1157 | struct drm_file *file_priv); |
diff --git a/include/linux/compat.h b/include/linux/compat.h index f061a1ea1b74..e88f3ecf38b4 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
@@ -252,12 +252,10 @@ extern int compat_ptrace_request(struct task_struct *child, | |||
252 | compat_long_t request, | 252 | compat_long_t request, |
253 | compat_ulong_t addr, compat_ulong_t data); | 253 | compat_ulong_t addr, compat_ulong_t data); |
254 | 254 | ||
255 | #ifdef __ARCH_WANT_COMPAT_SYS_PTRACE | ||
256 | extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request, | 255 | extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request, |
257 | compat_ulong_t addr, compat_ulong_t data); | 256 | compat_ulong_t addr, compat_ulong_t data); |
258 | asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, | 257 | asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, |
259 | compat_long_t addr, compat_long_t data); | 258 | compat_long_t addr, compat_long_t data); |
260 | #endif /* __ARCH_WANT_COMPAT_SYS_PTRACE */ | ||
261 | 259 | ||
262 | /* | 260 | /* |
263 | * epoll (fs/eventpoll.c) compat bits follow ... | 261 | * epoll (fs/eventpoll.c) compat bits follow ... |
diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 7dcbc82f3b7b..13875ce9112a 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h | |||
@@ -63,12 +63,14 @@ static inline void *kmap_atomic(struct page *page, enum km_type idx) | |||
63 | #endif /* CONFIG_HIGHMEM */ | 63 | #endif /* CONFIG_HIGHMEM */ |
64 | 64 | ||
65 | /* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */ | 65 | /* when CONFIG_HIGHMEM is not set these will be plain clear/copy_page */ |
66 | #ifndef clear_user_highpage | ||
66 | static inline void clear_user_highpage(struct page *page, unsigned long vaddr) | 67 | static inline void clear_user_highpage(struct page *page, unsigned long vaddr) |
67 | { | 68 | { |
68 | void *addr = kmap_atomic(page, KM_USER0); | 69 | void *addr = kmap_atomic(page, KM_USER0); |
69 | clear_user_page(addr, vaddr, page); | 70 | clear_user_page(addr, vaddr, page); |
70 | kunmap_atomic(addr, KM_USER0); | 71 | kunmap_atomic(addr, KM_USER0); |
71 | } | 72 | } |
73 | #endif | ||
72 | 74 | ||
73 | #ifndef __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE | 75 | #ifndef __HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE |
74 | /** | 76 | /** |
diff --git a/include/linux/idr.h b/include/linux/idr.h index fa035f96f2a3..dd846df8cd32 100644 --- a/include/linux/idr.h +++ b/include/linux/idr.h | |||
@@ -52,13 +52,14 @@ struct idr_layer { | |||
52 | unsigned long bitmap; /* A zero bit means "space here" */ | 52 | unsigned long bitmap; /* A zero bit means "space here" */ |
53 | struct idr_layer *ary[1<<IDR_BITS]; | 53 | struct idr_layer *ary[1<<IDR_BITS]; |
54 | int count; /* When zero, we can release it */ | 54 | int count; /* When zero, we can release it */ |
55 | int layer; /* distance from leaf */ | ||
55 | struct rcu_head rcu_head; | 56 | struct rcu_head rcu_head; |
56 | }; | 57 | }; |
57 | 58 | ||
58 | struct idr { | 59 | struct idr { |
59 | struct idr_layer *top; | 60 | struct idr_layer *top; |
60 | struct idr_layer *id_free; | 61 | struct idr_layer *id_free; |
61 | int layers; | 62 | int layers; /* only valid without concurrent changes */ |
62 | int id_free_cnt; | 63 | int id_free_cnt; |
63 | spinlock_t lock; | 64 | spinlock_t lock; |
64 | }; | 65 | }; |
diff --git a/include/linux/irq.h b/include/linux/irq.h index d058c57be02d..3dddfa703ebd 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -63,7 +63,8 @@ typedef void (*irq_flow_handler_t)(unsigned int irq, | |||
63 | #define IRQ_MOVE_PENDING 0x00200000 /* need to re-target IRQ destination */ | 63 | #define IRQ_MOVE_PENDING 0x00200000 /* need to re-target IRQ destination */ |
64 | #define IRQ_NO_BALANCING 0x00400000 /* IRQ is excluded from balancing */ | 64 | #define IRQ_NO_BALANCING 0x00400000 /* IRQ is excluded from balancing */ |
65 | #define IRQ_SPURIOUS_DISABLED 0x00800000 /* IRQ was disabled by the spurious trap */ | 65 | #define IRQ_SPURIOUS_DISABLED 0x00800000 /* IRQ was disabled by the spurious trap */ |
66 | #define IRQ_MOVE_PCNTXT 0x01000000 /* IRQ migration from process context */ | 66 | #define IRQ_MOVE_PCNTXT 0x01000000 /* IRQ migration from process context */ |
67 | #define IRQ_AFFINITY_SET 0x02000000 /* IRQ affinity was set from userspace*/ | ||
67 | 68 | ||
68 | #ifdef CONFIG_IRQ_PER_CPU | 69 | #ifdef CONFIG_IRQ_PER_CPU |
69 | # define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU) | 70 | # define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU) |
@@ -130,7 +131,7 @@ struct irq_chip { | |||
130 | 131 | ||
131 | /** | 132 | /** |
132 | * struct irq_desc - interrupt descriptor | 133 | * struct irq_desc - interrupt descriptor |
133 | * | 134 | * @irq: interrupt number for this descriptor |
134 | * @handle_irq: highlevel irq-events handler [if NULL, __do_IRQ()] | 135 | * @handle_irq: highlevel irq-events handler [if NULL, __do_IRQ()] |
135 | * @chip: low level interrupt hardware access | 136 | * @chip: low level interrupt hardware access |
136 | * @msi_desc: MSI descriptor | 137 | * @msi_desc: MSI descriptor |
@@ -149,7 +150,6 @@ struct irq_chip { | |||
149 | * @cpu: cpu index useful for balancing | 150 | * @cpu: cpu index useful for balancing |
150 | * @pending_mask: pending rebalanced interrupts | 151 | * @pending_mask: pending rebalanced interrupts |
151 | * @dir: /proc/irq/ procfs entry | 152 | * @dir: /proc/irq/ procfs entry |
152 | * @affinity_entry: /proc/irq/smp_affinity procfs entry on SMP | ||
153 | * @name: flow handler name for /proc/interrupts output | 153 | * @name: flow handler name for /proc/interrupts output |
154 | */ | 154 | */ |
155 | struct irq_desc { | 155 | struct irq_desc { |
@@ -210,7 +210,6 @@ extern int setup_irq(unsigned int irq, struct irqaction *new); | |||
210 | 210 | ||
211 | #ifdef CONFIG_GENERIC_PENDING_IRQ | 211 | #ifdef CONFIG_GENERIC_PENDING_IRQ |
212 | 212 | ||
213 | void set_pending_irq(unsigned int irq, cpumask_t mask); | ||
214 | void move_native_irq(int irq); | 213 | void move_native_irq(int irq); |
215 | void move_masked_irq(int irq); | 214 | void move_masked_irq(int irq); |
216 | 215 | ||
@@ -228,10 +227,6 @@ static inline void move_masked_irq(int irq) | |||
228 | { | 227 | { |
229 | } | 228 | } |
230 | 229 | ||
231 | static inline void set_pending_irq(unsigned int irq, cpumask_t mask) | ||
232 | { | ||
233 | } | ||
234 | |||
235 | #endif /* CONFIG_GENERIC_PENDING_IRQ */ | 230 | #endif /* CONFIG_GENERIC_PENDING_IRQ */ |
236 | 231 | ||
237 | #else /* CONFIG_SMP */ | 232 | #else /* CONFIG_SMP */ |
diff --git a/include/linux/libata.h b/include/linux/libata.h index 59b0f1c807b5..ed3f26eb5df1 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -375,6 +375,7 @@ enum { | |||
375 | ATA_HORKAGE_BRIDGE_OK = (1 << 10), /* no bridge limits */ | 375 | ATA_HORKAGE_BRIDGE_OK = (1 << 10), /* no bridge limits */ |
376 | ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands | 376 | ATA_HORKAGE_ATAPI_MOD16_DMA = (1 << 11), /* use ATAPI DMA for commands |
377 | not multiple of 16 bytes */ | 377 | not multiple of 16 bytes */ |
378 | ATA_HORKAGE_FIRMWARE_WARN = (1 << 12), /* firwmare update warning */ | ||
378 | 379 | ||
379 | /* DMA mask for user DMA control: User visible values; DO NOT | 380 | /* DMA mask for user DMA control: User visible values; DO NOT |
380 | renumber */ | 381 | renumber */ |
diff --git a/include/linux/memory.h b/include/linux/memory.h index 2f5f8a5ef2a0..36c82c9e6ea7 100644 --- a/include/linux/memory.h +++ b/include/linux/memory.h | |||
@@ -91,7 +91,7 @@ extern int memory_notify(unsigned long val, void *v); | |||
91 | 91 | ||
92 | #ifdef CONFIG_MEMORY_HOTPLUG | 92 | #ifdef CONFIG_MEMORY_HOTPLUG |
93 | #define hotplug_memory_notifier(fn, pri) { \ | 93 | #define hotplug_memory_notifier(fn, pri) { \ |
94 | static struct notifier_block fn##_mem_nb = \ | 94 | static __meminitdata struct notifier_block fn##_mem_nb =\ |
95 | { .notifier_call = fn, .priority = pri }; \ | 95 | { .notifier_call = fn, .priority = pri }; \ |
96 | register_memory_notifier(&fn##_mem_nb); \ | 96 | register_memory_notifier(&fn##_mem_nb); \ |
97 | } | 97 | } |
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h index bd9977b89490..371086fd946f 100644 --- a/include/linux/mlx4/device.h +++ b/include/linux/mlx4/device.h | |||
@@ -179,6 +179,7 @@ struct mlx4_caps { | |||
179 | int num_ports; | 179 | int num_ports; |
180 | int vl_cap[MLX4_MAX_PORTS + 1]; | 180 | int vl_cap[MLX4_MAX_PORTS + 1]; |
181 | int ib_mtu_cap[MLX4_MAX_PORTS + 1]; | 181 | int ib_mtu_cap[MLX4_MAX_PORTS + 1]; |
182 | __be32 ib_port_def_cap[MLX4_MAX_PORTS + 1]; | ||
182 | u64 def_mac[MLX4_MAX_PORTS + 1]; | 183 | u64 def_mac[MLX4_MAX_PORTS + 1]; |
183 | int eth_mtu_cap[MLX4_MAX_PORTS + 1]; | 184 | int eth_mtu_cap[MLX4_MAX_PORTS + 1]; |
184 | int gid_table_len[MLX4_MAX_PORTS + 1]; | 185 | int gid_table_len[MLX4_MAX_PORTS + 1]; |
diff --git a/include/linux/page_cgroup.h b/include/linux/page_cgroup.h index f546ad6fc028..1e6d34bfa094 100644 --- a/include/linux/page_cgroup.h +++ b/include/linux/page_cgroup.h | |||
@@ -17,7 +17,7 @@ struct page_cgroup { | |||
17 | struct list_head lru; /* per cgroup LRU list */ | 17 | struct list_head lru; /* per cgroup LRU list */ |
18 | }; | 18 | }; |
19 | 19 | ||
20 | void __init pgdat_page_cgroup_init(struct pglist_data *pgdat); | 20 | void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat); |
21 | void __init page_cgroup_init(void); | 21 | void __init page_cgroup_init(void); |
22 | struct page_cgroup *lookup_page_cgroup(struct page *page); | 22 | struct page_cgroup *lookup_page_cgroup(struct page *page); |
23 | 23 | ||
@@ -91,7 +91,7 @@ static inline void unlock_page_cgroup(struct page_cgroup *pc) | |||
91 | #else /* CONFIG_CGROUP_MEM_RES_CTLR */ | 91 | #else /* CONFIG_CGROUP_MEM_RES_CTLR */ |
92 | struct page_cgroup; | 92 | struct page_cgroup; |
93 | 93 | ||
94 | static inline void pgdat_page_cgroup_init(struct pglist_data *pgdat) | 94 | static inline void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat) |
95 | { | 95 | { |
96 | } | 96 | } |
97 | 97 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 4b7b0187374c..bf953932e676 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -628,6 +628,10 @@ struct user_struct { | |||
628 | atomic_t inotify_watches; /* How many inotify watches does this user have? */ | 628 | atomic_t inotify_watches; /* How many inotify watches does this user have? */ |
629 | atomic_t inotify_devs; /* How many inotify devs does this user have opened? */ | 629 | atomic_t inotify_devs; /* How many inotify devs does this user have opened? */ |
630 | #endif | 630 | #endif |
631 | #ifdef CONFIG_EPOLL | ||
632 | atomic_t epoll_devs; /* The number of epoll descriptors currently open */ | ||
633 | atomic_t epoll_watches; /* The number of file descriptors currently watched */ | ||
634 | #endif | ||
631 | #ifdef CONFIG_POSIX_MQUEUE | 635 | #ifdef CONFIG_POSIX_MQUEUE |
632 | /* protected by mq_lock */ | 636 | /* protected by mq_lock */ |
633 | unsigned long mq_bytes; /* How many bytes can be allocated to mqueue? */ | 637 | unsigned long mq_bytes; /* How many bytes can be allocated to mqueue? */ |
diff --git a/kernel/cpu.c b/kernel/cpu.c index 5a732c5ef08b..8ea32e8d68b0 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c | |||
@@ -462,7 +462,7 @@ out: | |||
462 | * It must be called by the arch code on the new cpu, before the new cpu | 462 | * It must be called by the arch code on the new cpu, before the new cpu |
463 | * enables interrupts and before the "boot" cpu returns from __cpu_up(). | 463 | * enables interrupts and before the "boot" cpu returns from __cpu_up(). |
464 | */ | 464 | */ |
465 | void notify_cpu_starting(unsigned int cpu) | 465 | void __cpuinit notify_cpu_starting(unsigned int cpu) |
466 | { | 466 | { |
467 | unsigned long val = CPU_STARTING; | 467 | unsigned long val = CPU_STARTING; |
468 | 468 | ||
diff --git a/kernel/cpuset.c b/kernel/cpuset.c index da7ff6137f37..96c0ba13b8cd 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c | |||
@@ -585,7 +585,7 @@ static int generate_sched_domains(cpumask_t **domains, | |||
585 | int i, j, k; /* indices for partition finding loops */ | 585 | int i, j, k; /* indices for partition finding loops */ |
586 | cpumask_t *doms; /* resulting partition; i.e. sched domains */ | 586 | cpumask_t *doms; /* resulting partition; i.e. sched domains */ |
587 | struct sched_domain_attr *dattr; /* attributes for custom domains */ | 587 | struct sched_domain_attr *dattr; /* attributes for custom domains */ |
588 | int ndoms; /* number of sched domains in result */ | 588 | int ndoms = 0; /* number of sched domains in result */ |
589 | int nslot; /* next empty doms[] cpumask_t slot */ | 589 | int nslot; /* next empty doms[] cpumask_t slot */ |
590 | 590 | ||
591 | doms = NULL; | 591 | doms = NULL; |
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h index c9767e641980..64c1c7253dae 100644 --- a/kernel/irq/internals.h +++ b/kernel/irq/internals.h | |||
@@ -25,6 +25,8 @@ static inline void unregister_handler_proc(unsigned int irq, | |||
25 | struct irqaction *action) { } | 25 | struct irqaction *action) { } |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | extern int irq_select_affinity_usr(unsigned int irq); | ||
29 | |||
28 | /* | 30 | /* |
29 | * Debugging printout: | 31 | * Debugging printout: |
30 | */ | 32 | */ |
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index c498a1b8c621..801addda3c43 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c | |||
@@ -82,24 +82,27 @@ int irq_can_set_affinity(unsigned int irq) | |||
82 | int irq_set_affinity(unsigned int irq, cpumask_t cpumask) | 82 | int irq_set_affinity(unsigned int irq, cpumask_t cpumask) |
83 | { | 83 | { |
84 | struct irq_desc *desc = irq_to_desc(irq); | 84 | struct irq_desc *desc = irq_to_desc(irq); |
85 | unsigned long flags; | ||
85 | 86 | ||
86 | if (!desc->chip->set_affinity) | 87 | if (!desc->chip->set_affinity) |
87 | return -EINVAL; | 88 | return -EINVAL; |
88 | 89 | ||
90 | spin_lock_irqsave(&desc->lock, flags); | ||
91 | |||
89 | #ifdef CONFIG_GENERIC_PENDING_IRQ | 92 | #ifdef CONFIG_GENERIC_PENDING_IRQ |
90 | if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) { | 93 | if (desc->status & IRQ_MOVE_PCNTXT || desc->status & IRQ_DISABLED) { |
91 | unsigned long flags; | ||
92 | |||
93 | spin_lock_irqsave(&desc->lock, flags); | ||
94 | desc->affinity = cpumask; | 94 | desc->affinity = cpumask; |
95 | desc->chip->set_affinity(irq, cpumask); | 95 | desc->chip->set_affinity(irq, cpumask); |
96 | spin_unlock_irqrestore(&desc->lock, flags); | 96 | } else { |
97 | } else | 97 | desc->status |= IRQ_MOVE_PENDING; |
98 | set_pending_irq(irq, cpumask); | 98 | desc->pending_mask = cpumask; |
99 | } | ||
99 | #else | 100 | #else |
100 | desc->affinity = cpumask; | 101 | desc->affinity = cpumask; |
101 | desc->chip->set_affinity(irq, cpumask); | 102 | desc->chip->set_affinity(irq, cpumask); |
102 | #endif | 103 | #endif |
104 | desc->status |= IRQ_AFFINITY_SET; | ||
105 | spin_unlock_irqrestore(&desc->lock, flags); | ||
103 | return 0; | 106 | return 0; |
104 | } | 107 | } |
105 | 108 | ||
@@ -107,24 +110,59 @@ int irq_set_affinity(unsigned int irq, cpumask_t cpumask) | |||
107 | /* | 110 | /* |
108 | * Generic version of the affinity autoselector. | 111 | * Generic version of the affinity autoselector. |
109 | */ | 112 | */ |
110 | int irq_select_affinity(unsigned int irq) | 113 | int do_irq_select_affinity(unsigned int irq, struct irq_desc *desc) |
111 | { | 114 | { |
112 | cpumask_t mask; | 115 | cpumask_t mask; |
113 | struct irq_desc *desc; | ||
114 | 116 | ||
115 | if (!irq_can_set_affinity(irq)) | 117 | if (!irq_can_set_affinity(irq)) |
116 | return 0; | 118 | return 0; |
117 | 119 | ||
118 | cpus_and(mask, cpu_online_map, irq_default_affinity); | 120 | cpus_and(mask, cpu_online_map, irq_default_affinity); |
119 | 121 | ||
120 | desc = irq_to_desc(irq); | 122 | /* |
123 | * Preserve an userspace affinity setup, but make sure that | ||
124 | * one of the targets is online. | ||
125 | */ | ||
126 | if (desc->status & (IRQ_AFFINITY_SET | IRQ_NO_BALANCING)) { | ||
127 | if (cpus_intersects(desc->affinity, cpu_online_map)) | ||
128 | mask = desc->affinity; | ||
129 | else | ||
130 | desc->status &= ~IRQ_AFFINITY_SET; | ||
131 | } | ||
132 | |||
121 | desc->affinity = mask; | 133 | desc->affinity = mask; |
122 | desc->chip->set_affinity(irq, mask); | 134 | desc->chip->set_affinity(irq, mask); |
123 | 135 | ||
124 | return 0; | 136 | return 0; |
125 | } | 137 | } |
138 | #else | ||
139 | static inline int do_irq_select_affinity(unsigned int irq, struct irq_desc *d) | ||
140 | { | ||
141 | return irq_select_affinity(irq); | ||
142 | } | ||
126 | #endif | 143 | #endif |
127 | 144 | ||
145 | /* | ||
146 | * Called when affinity is set via /proc/irq | ||
147 | */ | ||
148 | int irq_select_affinity_usr(unsigned int irq) | ||
149 | { | ||
150 | struct irq_desc *desc = irq_to_desc(irq); | ||
151 | unsigned long flags; | ||
152 | int ret; | ||
153 | |||
154 | spin_lock_irqsave(&desc->lock, flags); | ||
155 | ret = do_irq_select_affinity(irq, desc); | ||
156 | spin_unlock_irqrestore(&desc->lock, flags); | ||
157 | |||
158 | return ret; | ||
159 | } | ||
160 | |||
161 | #else | ||
162 | static inline int do_irq_select_affinity(int irq, struct irq_desc *desc) | ||
163 | { | ||
164 | return 0; | ||
165 | } | ||
128 | #endif | 166 | #endif |
129 | 167 | ||
130 | /** | 168 | /** |
@@ -327,7 +365,7 @@ int __irq_set_trigger(struct irq_desc *desc, unsigned int irq, | |||
327 | * IRQF_TRIGGER_* but the PIC does not support multiple | 365 | * IRQF_TRIGGER_* but the PIC does not support multiple |
328 | * flow-types? | 366 | * flow-types? |
329 | */ | 367 | */ |
330 | pr_warning("No set_type function for IRQ %d (%s)\n", irq, | 368 | pr_debug("No set_type function for IRQ %d (%s)\n", irq, |
331 | chip ? (chip->name ? : "unknown") : "unknown"); | 369 | chip ? (chip->name ? : "unknown") : "unknown"); |
332 | return 0; | 370 | return 0; |
333 | } | 371 | } |
@@ -445,8 +483,12 @@ __setup_irq(unsigned int irq, struct irq_desc * desc, struct irqaction *new) | |||
445 | /* Undo nested disables: */ | 483 | /* Undo nested disables: */ |
446 | desc->depth = 1; | 484 | desc->depth = 1; |
447 | 485 | ||
486 | /* Exclude IRQ from balancing if requested */ | ||
487 | if (new->flags & IRQF_NOBALANCING) | ||
488 | desc->status |= IRQ_NO_BALANCING; | ||
489 | |||
448 | /* Set default affinity mask once everything is setup */ | 490 | /* Set default affinity mask once everything is setup */ |
449 | irq_select_affinity(irq); | 491 | do_irq_select_affinity(irq, desc); |
450 | 492 | ||
451 | } else if ((new->flags & IRQF_TRIGGER_MASK) | 493 | } else if ((new->flags & IRQF_TRIGGER_MASK) |
452 | && (new->flags & IRQF_TRIGGER_MASK) | 494 | && (new->flags & IRQF_TRIGGER_MASK) |
@@ -459,10 +501,6 @@ __setup_irq(unsigned int irq, struct irq_desc * desc, struct irqaction *new) | |||
459 | 501 | ||
460 | *p = new; | 502 | *p = new; |
461 | 503 | ||
462 | /* Exclude IRQ from balancing */ | ||
463 | if (new->flags & IRQF_NOBALANCING) | ||
464 | desc->status |= IRQ_NO_BALANCING; | ||
465 | |||
466 | /* Reset broken irq detection when installing new handler */ | 504 | /* Reset broken irq detection when installing new handler */ |
467 | desc->irq_count = 0; | 505 | desc->irq_count = 0; |
468 | desc->irqs_unhandled = 0; | 506 | desc->irqs_unhandled = 0; |
diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c index 90b920d3f52b..9db681d95814 100644 --- a/kernel/irq/migration.c +++ b/kernel/irq/migration.c | |||
@@ -1,17 +1,6 @@ | |||
1 | 1 | ||
2 | #include <linux/irq.h> | 2 | #include <linux/irq.h> |
3 | 3 | ||
4 | void set_pending_irq(unsigned int irq, cpumask_t mask) | ||
5 | { | ||
6 | struct irq_desc *desc = irq_to_desc(irq); | ||
7 | unsigned long flags; | ||
8 | |||
9 | spin_lock_irqsave(&desc->lock, flags); | ||
10 | desc->status |= IRQ_MOVE_PENDING; | ||
11 | desc->pending_mask = mask; | ||
12 | spin_unlock_irqrestore(&desc->lock, flags); | ||
13 | } | ||
14 | |||
15 | void move_masked_irq(int irq) | 4 | void move_masked_irq(int irq) |
16 | { | 5 | { |
17 | struct irq_desc *desc = irq_to_desc(irq); | 6 | struct irq_desc *desc = irq_to_desc(irq); |
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index 4d161c70ba55..d257e7d6a8a4 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c | |||
@@ -62,7 +62,7 @@ static ssize_t irq_affinity_proc_write(struct file *file, | |||
62 | if (!cpus_intersects(new_value, cpu_online_map)) | 62 | if (!cpus_intersects(new_value, cpu_online_map)) |
63 | /* Special case for empty set - allow the architecture | 63 | /* Special case for empty set - allow the architecture |
64 | code to set default SMP affinity. */ | 64 | code to set default SMP affinity. */ |
65 | return irq_select_affinity(irq) ? -EINVAL : count; | 65 | return irq_select_affinity_usr(irq) ? -EINVAL : count; |
66 | 66 | ||
67 | irq_set_affinity(irq, new_value); | 67 | irq_set_affinity(irq, new_value); |
68 | 68 | ||
diff --git a/kernel/panic.c b/kernel/panic.c index 6513aac8e992..4d5088355bfe 100644 --- a/kernel/panic.c +++ b/kernel/panic.c | |||
@@ -167,6 +167,7 @@ static const struct tnt tnts[] = { | |||
167 | * 'M' - System experienced a machine check exception. | 167 | * 'M' - System experienced a machine check exception. |
168 | * 'B' - System has hit bad_page. | 168 | * 'B' - System has hit bad_page. |
169 | * 'U' - Userspace-defined naughtiness. | 169 | * 'U' - Userspace-defined naughtiness. |
170 | * 'D' - Kernel has oopsed before | ||
170 | * 'A' - ACPI table overridden. | 171 | * 'A' - ACPI table overridden. |
171 | * 'W' - Taint on warning. | 172 | * 'W' - Taint on warning. |
172 | * 'C' - modules from drivers/staging are loaded. | 173 | * 'C' - modules from drivers/staging are loaded. |
diff --git a/kernel/profile.c b/kernel/profile.c index 7f93a5042d3b..60adefb59b5e 100644 --- a/kernel/profile.c +++ b/kernel/profile.c | |||
@@ -351,7 +351,7 @@ out: | |||
351 | put_cpu(); | 351 | put_cpu(); |
352 | } | 352 | } |
353 | 353 | ||
354 | static int __devinit profile_cpu_callback(struct notifier_block *info, | 354 | static int __cpuinit profile_cpu_callback(struct notifier_block *info, |
355 | unsigned long action, void *__cpu) | 355 | unsigned long action, void *__cpu) |
356 | { | 356 | { |
357 | int node, cpu = (unsigned long)__cpu; | 357 | int node, cpu = (unsigned long)__cpu; |
@@ -596,7 +596,7 @@ out_cleanup: | |||
596 | #define create_hash_tables() ({ 0; }) | 596 | #define create_hash_tables() ({ 0; }) |
597 | #endif | 597 | #endif |
598 | 598 | ||
599 | int create_proc_profile(void) | 599 | int __ref create_proc_profile(void) /* false positive from hotcpu_notifier */ |
600 | { | 600 | { |
601 | struct proc_dir_entry *entry; | 601 | struct proc_dir_entry *entry; |
602 | 602 | ||
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 1e68e4c39e2c..4c8bcd7dd8e0 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c | |||
@@ -612,7 +612,7 @@ int generic_ptrace_pokedata(struct task_struct *tsk, long addr, long data) | |||
612 | return (copied == sizeof(data)) ? 0 : -EIO; | 612 | return (copied == sizeof(data)) ? 0 : -EIO; |
613 | } | 613 | } |
614 | 614 | ||
615 | #if defined CONFIG_COMPAT && defined __ARCH_WANT_COMPAT_SYS_PTRACE | 615 | #if defined CONFIG_COMPAT |
616 | #include <linux/compat.h> | 616 | #include <linux/compat.h> |
617 | 617 | ||
618 | int compat_ptrace_request(struct task_struct *child, compat_long_t request, | 618 | int compat_ptrace_request(struct task_struct *child, compat_long_t request, |
@@ -709,4 +709,4 @@ asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, | |||
709 | unlock_kernel(); | 709 | unlock_kernel(); |
710 | return ret; | 710 | return ret; |
711 | } | 711 | } |
712 | #endif /* CONFIG_COMPAT && __ARCH_WANT_COMPAT_SYS_PTRACE */ | 712 | #endif /* CONFIG_COMPAT */ |
diff --git a/kernel/sched.c b/kernel/sched.c index 3f5bfdc3d94d..8050a61a7adb 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -1439,9 +1439,10 @@ static int task_hot(struct task_struct *p, u64 now, struct sched_domain *sd); | |||
1439 | static unsigned long cpu_avg_load_per_task(int cpu) | 1439 | static unsigned long cpu_avg_load_per_task(int cpu) |
1440 | { | 1440 | { |
1441 | struct rq *rq = cpu_rq(cpu); | 1441 | struct rq *rq = cpu_rq(cpu); |
1442 | unsigned long nr_running = ACCESS_ONCE(rq->nr_running); | ||
1442 | 1443 | ||
1443 | if (rq->nr_running) | 1444 | if (nr_running) |
1444 | rq->avg_load_per_task = rq->load.weight / rq->nr_running; | 1445 | rq->avg_load_per_task = rq->load.weight / nr_running; |
1445 | else | 1446 | else |
1446 | rq->avg_load_per_task = 0; | 1447 | rq->avg_load_per_task = 0; |
1447 | 1448 | ||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 65d4a9ba79e4..c83f566e940a 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -176,6 +176,9 @@ extern struct ctl_table random_table[]; | |||
176 | #ifdef CONFIG_INOTIFY_USER | 176 | #ifdef CONFIG_INOTIFY_USER |
177 | extern struct ctl_table inotify_table[]; | 177 | extern struct ctl_table inotify_table[]; |
178 | #endif | 178 | #endif |
179 | #ifdef CONFIG_EPOLL | ||
180 | extern struct ctl_table epoll_table[]; | ||
181 | #endif | ||
179 | 182 | ||
180 | #ifdef HAVE_ARCH_PICK_MMAP_LAYOUT | 183 | #ifdef HAVE_ARCH_PICK_MMAP_LAYOUT |
181 | int sysctl_legacy_va_layout; | 184 | int sysctl_legacy_va_layout; |
@@ -1335,6 +1338,13 @@ static struct ctl_table fs_table[] = { | |||
1335 | .child = inotify_table, | 1338 | .child = inotify_table, |
1336 | }, | 1339 | }, |
1337 | #endif | 1340 | #endif |
1341 | #ifdef CONFIG_EPOLL | ||
1342 | { | ||
1343 | .procname = "epoll", | ||
1344 | .mode = 0555, | ||
1345 | .child = epoll_table, | ||
1346 | }, | ||
1347 | #endif | ||
1338 | #endif | 1348 | #endif |
1339 | { | 1349 | { |
1340 | .ctl_name = KERN_SETUID_DUMPABLE, | 1350 | .ctl_name = KERN_SETUID_DUMPABLE, |
@@ -185,6 +185,7 @@ static int sub_alloc(struct idr *idp, int *starting_id, struct idr_layer **pa) | |||
185 | new = get_from_free_list(idp); | 185 | new = get_from_free_list(idp); |
186 | if (!new) | 186 | if (!new) |
187 | return -1; | 187 | return -1; |
188 | new->layer = l-1; | ||
188 | rcu_assign_pointer(p->ary[m], new); | 189 | rcu_assign_pointer(p->ary[m], new); |
189 | p->count++; | 190 | p->count++; |
190 | } | 191 | } |
@@ -210,6 +211,7 @@ build_up: | |||
210 | if (unlikely(!p)) { | 211 | if (unlikely(!p)) { |
211 | if (!(p = get_from_free_list(idp))) | 212 | if (!(p = get_from_free_list(idp))) |
212 | return -1; | 213 | return -1; |
214 | p->layer = 0; | ||
213 | layers = 1; | 215 | layers = 1; |
214 | } | 216 | } |
215 | /* | 217 | /* |
@@ -237,6 +239,7 @@ build_up: | |||
237 | } | 239 | } |
238 | new->ary[0] = p; | 240 | new->ary[0] = p; |
239 | new->count = 1; | 241 | new->count = 1; |
242 | new->layer = layers-1; | ||
240 | if (p->bitmap == IDR_FULL) | 243 | if (p->bitmap == IDR_FULL) |
241 | __set_bit(0, &new->bitmap); | 244 | __set_bit(0, &new->bitmap); |
242 | p = new; | 245 | p = new; |
@@ -493,17 +496,21 @@ void *idr_find(struct idr *idp, int id) | |||
493 | int n; | 496 | int n; |
494 | struct idr_layer *p; | 497 | struct idr_layer *p; |
495 | 498 | ||
496 | n = idp->layers * IDR_BITS; | ||
497 | p = rcu_dereference(idp->top); | 499 | p = rcu_dereference(idp->top); |
500 | if (!p) | ||
501 | return NULL; | ||
502 | n = (p->layer+1) * IDR_BITS; | ||
498 | 503 | ||
499 | /* Mask off upper bits we don't use for the search. */ | 504 | /* Mask off upper bits we don't use for the search. */ |
500 | id &= MAX_ID_MASK; | 505 | id &= MAX_ID_MASK; |
501 | 506 | ||
502 | if (id >= (1 << n)) | 507 | if (id >= (1 << n)) |
503 | return NULL; | 508 | return NULL; |
509 | BUG_ON(n == 0); | ||
504 | 510 | ||
505 | while (n > 0 && p) { | 511 | while (n > 0 && p) { |
506 | n -= IDR_BITS; | 512 | n -= IDR_BITS; |
513 | BUG_ON(n != p->layer*IDR_BITS); | ||
507 | p = rcu_dereference(p->ary[(id >> n) & IDR_MASK]); | 514 | p = rcu_dereference(p->ary[(id >> n) & IDR_MASK]); |
508 | } | 515 | } |
509 | return((void *)p); | 516 | return((void *)p); |
@@ -582,8 +589,11 @@ void *idr_replace(struct idr *idp, void *ptr, int id) | |||
582 | int n; | 589 | int n; |
583 | struct idr_layer *p, *old_p; | 590 | struct idr_layer *p, *old_p; |
584 | 591 | ||
585 | n = idp->layers * IDR_BITS; | ||
586 | p = idp->top; | 592 | p = idp->top; |
593 | if (!p) | ||
594 | return ERR_PTR(-EINVAL); | ||
595 | |||
596 | n = (p->layer+1) * IDR_BITS; | ||
587 | 597 | ||
588 | id &= MAX_ID_MASK; | 598 | id &= MAX_ID_MASK; |
589 | 599 | ||
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c index b5b2b15085a8..b17371185468 100644 --- a/mm/memory_hotplug.c +++ b/mm/memory_hotplug.c | |||
@@ -189,7 +189,7 @@ static void grow_pgdat_span(struct pglist_data *pgdat, unsigned long start_pfn, | |||
189 | pgdat->node_start_pfn; | 189 | pgdat->node_start_pfn; |
190 | } | 190 | } |
191 | 191 | ||
192 | static int __add_zone(struct zone *zone, unsigned long phys_start_pfn) | 192 | static int __meminit __add_zone(struct zone *zone, unsigned long phys_start_pfn) |
193 | { | 193 | { |
194 | struct pglist_data *pgdat = zone->zone_pgdat; | 194 | struct pglist_data *pgdat = zone->zone_pgdat; |
195 | int nr_pages = PAGES_PER_SECTION; | 195 | int nr_pages = PAGES_PER_SECTION; |
@@ -216,7 +216,7 @@ static int __add_zone(struct zone *zone, unsigned long phys_start_pfn) | |||
216 | return 0; | 216 | return 0; |
217 | } | 217 | } |
218 | 218 | ||
219 | static int __add_section(struct zone *zone, unsigned long phys_start_pfn) | 219 | static int __meminit __add_section(struct zone *zone, unsigned long phys_start_pfn) |
220 | { | 220 | { |
221 | int nr_pages = PAGES_PER_SECTION; | 221 | int nr_pages = PAGES_PER_SECTION; |
222 | int ret; | 222 | int ret; |
@@ -273,7 +273,7 @@ static int __remove_section(struct zone *zone, struct mem_section *ms) | |||
273 | * call this function after deciding the zone to which to | 273 | * call this function after deciding the zone to which to |
274 | * add the new pages. | 274 | * add the new pages. |
275 | */ | 275 | */ |
276 | int __add_pages(struct zone *zone, unsigned long phys_start_pfn, | 276 | int __ref __add_pages(struct zone *zone, unsigned long phys_start_pfn, |
277 | unsigned long nr_pages) | 277 | unsigned long nr_pages) |
278 | { | 278 | { |
279 | unsigned long i; | 279 | unsigned long i; |
@@ -470,7 +470,8 @@ static void rollback_node_hotadd(int nid, pg_data_t *pgdat) | |||
470 | } | 470 | } |
471 | 471 | ||
472 | 472 | ||
473 | int add_memory(int nid, u64 start, u64 size) | 473 | /* we are OK calling __meminit stuff here - we have CONFIG_MEMORY_HOTPLUG */ |
474 | int __ref add_memory(int nid, u64 start, u64 size) | ||
474 | { | 475 | { |
475 | pg_data_t *pgdat = NULL; | 476 | pg_data_t *pgdat = NULL; |
476 | int new_pgdat = 0; | 477 | int new_pgdat = 0; |
diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c index 1223d927904d..0b3cbf090a67 100644 --- a/mm/page_cgroup.c +++ b/mm/page_cgroup.c | |||
@@ -21,7 +21,7 @@ static unsigned long total_usage; | |||
21 | #if !defined(CONFIG_SPARSEMEM) | 21 | #if !defined(CONFIG_SPARSEMEM) |
22 | 22 | ||
23 | 23 | ||
24 | void __init pgdat_page_cgroup_init(struct pglist_data *pgdat) | 24 | void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat) |
25 | { | 25 | { |
26 | pgdat->node_page_cgroup = NULL; | 26 | pgdat->node_page_cgroup = NULL; |
27 | } | 27 | } |
@@ -97,7 +97,8 @@ struct page_cgroup *lookup_page_cgroup(struct page *page) | |||
97 | return section->page_cgroup + pfn; | 97 | return section->page_cgroup + pfn; |
98 | } | 98 | } |
99 | 99 | ||
100 | int __meminit init_section_page_cgroup(unsigned long pfn) | 100 | /* __alloc_bootmem...() is protected by !slab_available() */ |
101 | int __init_refok init_section_page_cgroup(unsigned long pfn) | ||
101 | { | 102 | { |
102 | struct mem_section *section; | 103 | struct mem_section *section; |
103 | struct page_cgroup *base, *pc; | 104 | struct page_cgroup *base, *pc; |
@@ -106,19 +107,29 @@ int __meminit init_section_page_cgroup(unsigned long pfn) | |||
106 | 107 | ||
107 | section = __pfn_to_section(pfn); | 108 | section = __pfn_to_section(pfn); |
108 | 109 | ||
109 | if (section->page_cgroup) | 110 | if (!section->page_cgroup) { |
110 | return 0; | 111 | nid = page_to_nid(pfn_to_page(pfn)); |
111 | 112 | table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; | |
112 | nid = page_to_nid(pfn_to_page(pfn)); | 113 | if (slab_is_available()) { |
113 | 114 | base = kmalloc_node(table_size, GFP_KERNEL, nid); | |
114 | table_size = sizeof(struct page_cgroup) * PAGES_PER_SECTION; | 115 | if (!base) |
115 | if (slab_is_available()) { | 116 | base = vmalloc_node(table_size, nid); |
116 | base = kmalloc_node(table_size, GFP_KERNEL, nid); | 117 | } else { |
117 | if (!base) | 118 | base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), |
118 | base = vmalloc_node(table_size, nid); | 119 | table_size, |
119 | } else { | ||
120 | base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), table_size, | ||
121 | PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); | 120 | PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); |
121 | } | ||
122 | } else { | ||
123 | /* | ||
124 | * We don't have to allocate page_cgroup again, but | ||
125 | * address of memmap may be changed. So, we have to initialize | ||
126 | * again. | ||
127 | */ | ||
128 | base = section->page_cgroup + pfn; | ||
129 | table_size = 0; | ||
130 | /* check address of memmap is changed or not. */ | ||
131 | if (base->page == pfn_to_page(pfn)) | ||
132 | return 0; | ||
122 | } | 133 | } |
123 | 134 | ||
124 | if (!base) { | 135 | if (!base) { |
@@ -158,7 +169,7 @@ void __free_page_cgroup(unsigned long pfn) | |||
158 | } | 169 | } |
159 | } | 170 | } |
160 | 171 | ||
161 | int online_page_cgroup(unsigned long start_pfn, | 172 | int __meminit online_page_cgroup(unsigned long start_pfn, |
162 | unsigned long nr_pages, | 173 | unsigned long nr_pages, |
163 | int nid) | 174 | int nid) |
164 | { | 175 | { |
@@ -183,7 +194,7 @@ int online_page_cgroup(unsigned long start_pfn, | |||
183 | return -ENOMEM; | 194 | return -ENOMEM; |
184 | } | 195 | } |
185 | 196 | ||
186 | int offline_page_cgroup(unsigned long start_pfn, | 197 | int __meminit offline_page_cgroup(unsigned long start_pfn, |
187 | unsigned long nr_pages, int nid) | 198 | unsigned long nr_pages, int nid) |
188 | { | 199 | { |
189 | unsigned long start, end, pfn; | 200 | unsigned long start, end, pfn; |
@@ -197,7 +208,7 @@ int offline_page_cgroup(unsigned long start_pfn, | |||
197 | 208 | ||
198 | } | 209 | } |
199 | 210 | ||
200 | static int page_cgroup_callback(struct notifier_block *self, | 211 | static int __meminit page_cgroup_callback(struct notifier_block *self, |
201 | unsigned long action, void *arg) | 212 | unsigned long action, void *arg) |
202 | { | 213 | { |
203 | struct memory_notify *mn = arg; | 214 | struct memory_notify *mn = arg; |
@@ -207,18 +218,23 @@ static int page_cgroup_callback(struct notifier_block *self, | |||
207 | ret = online_page_cgroup(mn->start_pfn, | 218 | ret = online_page_cgroup(mn->start_pfn, |
208 | mn->nr_pages, mn->status_change_nid); | 219 | mn->nr_pages, mn->status_change_nid); |
209 | break; | 220 | break; |
210 | case MEM_CANCEL_ONLINE: | ||
211 | case MEM_OFFLINE: | 221 | case MEM_OFFLINE: |
212 | offline_page_cgroup(mn->start_pfn, | 222 | offline_page_cgroup(mn->start_pfn, |
213 | mn->nr_pages, mn->status_change_nid); | 223 | mn->nr_pages, mn->status_change_nid); |
214 | break; | 224 | break; |
225 | case MEM_CANCEL_ONLINE: | ||
215 | case MEM_GOING_OFFLINE: | 226 | case MEM_GOING_OFFLINE: |
216 | break; | 227 | break; |
217 | case MEM_ONLINE: | 228 | case MEM_ONLINE: |
218 | case MEM_CANCEL_OFFLINE: | 229 | case MEM_CANCEL_OFFLINE: |
219 | break; | 230 | break; |
220 | } | 231 | } |
221 | ret = notifier_from_errno(ret); | 232 | |
233 | if (ret) | ||
234 | ret = notifier_from_errno(ret); | ||
235 | else | ||
236 | ret = NOTIFY_OK; | ||
237 | |||
222 | return ret; | 238 | return ret; |
223 | } | 239 | } |
224 | 240 | ||
@@ -248,7 +264,7 @@ void __init page_cgroup_init(void) | |||
248 | " want\n"); | 264 | " want\n"); |
249 | } | 265 | } |
250 | 266 | ||
251 | void __init pgdat_page_cgroup_init(struct pglist_data *pgdat) | 267 | void __meminit pgdat_page_cgroup_init(struct pglist_data *pgdat) |
252 | { | 268 | { |
253 | return; | 269 | return; |
254 | } | 270 | } |
@@ -2931,8 +2931,10 @@ static int slab_memory_callback(struct notifier_block *self, | |||
2931 | case MEM_CANCEL_OFFLINE: | 2931 | case MEM_CANCEL_OFFLINE: |
2932 | break; | 2932 | break; |
2933 | } | 2933 | } |
2934 | 2934 | if (ret) | |
2935 | ret = notifier_from_errno(ret); | 2935 | ret = notifier_from_errno(ret); |
2936 | else | ||
2937 | ret = NOTIFY_OK; | ||
2936 | return ret; | 2938 | return ret; |
2937 | } | 2939 | } |
2938 | 2940 | ||
diff --git a/mm/sparse.c b/mm/sparse.c index 39db301b920d..083f5b63e7a8 100644 --- a/mm/sparse.c +++ b/mm/sparse.c | |||
@@ -570,7 +570,7 @@ static void free_section_usemap(struct page *memmap, unsigned long *usemap) | |||
570 | * set. If this is <=0, then that means that the passed-in | 570 | * set. If this is <=0, then that means that the passed-in |
571 | * map was not consumed and must be freed. | 571 | * map was not consumed and must be freed. |
572 | */ | 572 | */ |
573 | int sparse_add_one_section(struct zone *zone, unsigned long start_pfn, | 573 | int __meminit sparse_add_one_section(struct zone *zone, unsigned long start_pfn, |
574 | int nr_pages) | 574 | int nr_pages) |
575 | { | 575 | { |
576 | unsigned long section_nr = pfn_to_section_nr(start_pfn); | 576 | unsigned long section_nr = pfn_to_section_nr(start_pfn); |
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 30f826d484f0..f3f6e0758562 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
@@ -77,7 +77,6 @@ static void vunmap_page_range(unsigned long addr, unsigned long end) | |||
77 | 77 | ||
78 | BUG_ON(addr >= end); | 78 | BUG_ON(addr >= end); |
79 | pgd = pgd_offset_k(addr); | 79 | pgd = pgd_offset_k(addr); |
80 | flush_cache_vunmap(addr, end); | ||
81 | do { | 80 | do { |
82 | next = pgd_addr_end(addr, end); | 81 | next = pgd_addr_end(addr, end); |
83 | if (pgd_none_or_clear_bad(pgd)) | 82 | if (pgd_none_or_clear_bad(pgd)) |
@@ -543,9 +542,10 @@ static void purge_vmap_area_lazy(void) | |||
543 | } | 542 | } |
544 | 543 | ||
545 | /* | 544 | /* |
546 | * Free and unmap a vmap area | 545 | * Free and unmap a vmap area, caller ensuring flush_cache_vunmap had been |
546 | * called for the correct range previously. | ||
547 | */ | 547 | */ |
548 | static void free_unmap_vmap_area(struct vmap_area *va) | 548 | static void free_unmap_vmap_area_noflush(struct vmap_area *va) |
549 | { | 549 | { |
550 | va->flags |= VM_LAZY_FREE; | 550 | va->flags |= VM_LAZY_FREE; |
551 | atomic_add((va->va_end - va->va_start) >> PAGE_SHIFT, &vmap_lazy_nr); | 551 | atomic_add((va->va_end - va->va_start) >> PAGE_SHIFT, &vmap_lazy_nr); |
@@ -553,6 +553,15 @@ static void free_unmap_vmap_area(struct vmap_area *va) | |||
553 | try_purge_vmap_area_lazy(); | 553 | try_purge_vmap_area_lazy(); |
554 | } | 554 | } |
555 | 555 | ||
556 | /* | ||
557 | * Free and unmap a vmap area | ||
558 | */ | ||
559 | static void free_unmap_vmap_area(struct vmap_area *va) | ||
560 | { | ||
561 | flush_cache_vunmap(va->va_start, va->va_end); | ||
562 | free_unmap_vmap_area_noflush(va); | ||
563 | } | ||
564 | |||
556 | static struct vmap_area *find_vmap_area(unsigned long addr) | 565 | static struct vmap_area *find_vmap_area(unsigned long addr) |
557 | { | 566 | { |
558 | struct vmap_area *va; | 567 | struct vmap_area *va; |
@@ -734,7 +743,7 @@ static void free_vmap_block(struct vmap_block *vb) | |||
734 | spin_unlock(&vmap_block_tree_lock); | 743 | spin_unlock(&vmap_block_tree_lock); |
735 | BUG_ON(tmp != vb); | 744 | BUG_ON(tmp != vb); |
736 | 745 | ||
737 | free_unmap_vmap_area(vb->va); | 746 | free_unmap_vmap_area_noflush(vb->va); |
738 | call_rcu(&vb->rcu_head, rcu_free_vb); | 747 | call_rcu(&vb->rcu_head, rcu_free_vb); |
739 | } | 748 | } |
740 | 749 | ||
@@ -796,6 +805,9 @@ static void vb_free(const void *addr, unsigned long size) | |||
796 | 805 | ||
797 | BUG_ON(size & ~PAGE_MASK); | 806 | BUG_ON(size & ~PAGE_MASK); |
798 | BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); | 807 | BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); |
808 | |||
809 | flush_cache_vunmap((unsigned long)addr, (unsigned long)addr + size); | ||
810 | |||
799 | order = get_order(size); | 811 | order = get_order(size); |
800 | 812 | ||
801 | offset = (unsigned long)addr & (VMAP_BLOCK_SIZE - 1); | 813 | offset = (unsigned long)addr & (VMAP_BLOCK_SIZE - 1); |
diff --git a/mm/vmscan.c b/mm/vmscan.c index 7ea1440b53db..62e7f62fb559 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c | |||
@@ -1248,6 +1248,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone, | |||
1248 | list_add(&page->lru, &l_inactive); | 1248 | list_add(&page->lru, &l_inactive); |
1249 | } | 1249 | } |
1250 | 1250 | ||
1251 | spin_lock_irq(&zone->lru_lock); | ||
1251 | /* | 1252 | /* |
1252 | * Count referenced pages from currently used mappings as | 1253 | * Count referenced pages from currently used mappings as |
1253 | * rotated, even though they are moved to the inactive list. | 1254 | * rotated, even though they are moved to the inactive list. |
@@ -1263,7 +1264,6 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone, | |||
1263 | 1264 | ||
1264 | pgmoved = 0; | 1265 | pgmoved = 0; |
1265 | lru = LRU_BASE + file * LRU_FILE; | 1266 | lru = LRU_BASE + file * LRU_FILE; |
1266 | spin_lock_irq(&zone->lru_lock); | ||
1267 | while (!list_empty(&l_inactive)) { | 1267 | while (!list_empty(&l_inactive)) { |
1268 | page = lru_to_page(&l_inactive); | 1268 | page = lru_to_page(&l_inactive); |
1269 | prefetchw_prev_lru_page(page, &l_inactive, flags); | 1269 | prefetchw_prev_lru_page(page, &l_inactive, flags); |
diff --git a/scripts/kernel-doc b/scripts/kernel-doc index a53e2fc8dfb5..d27aad78e1d8 100755 --- a/scripts/kernel-doc +++ b/scripts/kernel-doc | |||
@@ -378,6 +378,10 @@ sub dump_section { | |||
378 | # print STDERR "parameter def '$1' = '$contents'\n"; | 378 | # print STDERR "parameter def '$1' = '$contents'\n"; |
379 | $name = $1; | 379 | $name = $1; |
380 | $parameterdescs{$name} = $contents; | 380 | $parameterdescs{$name} = $contents; |
381 | } elsif ($name eq "@\.\.\.") { | ||
382 | # print STDERR "parameter def '...' = '$contents'\n"; | ||
383 | $name = "..."; | ||
384 | $parameterdescs{$name} = $contents; | ||
381 | } else { | 385 | } else { |
382 | # print STDERR "other section '$name' = '$contents'\n"; | 386 | # print STDERR "other section '$name' = '$contents'\n"; |
383 | if (defined($sections{$name}) && ($sections{$name} ne "")) { | 387 | if (defined($sections{$name}) && ($sections{$name} ne "")) { |
@@ -1588,12 +1592,12 @@ sub push_parameter($$$) { | |||
1588 | 1592 | ||
1589 | if ($type eq "" && $param =~ /\.\.\.$/) | 1593 | if ($type eq "" && $param =~ /\.\.\.$/) |
1590 | { | 1594 | { |
1591 | $type=""; | 1595 | if (!defined $parameterdescs{$param} || $parameterdescs{$param} eq "") { |
1592 | $parameterdescs{$param} = "variable arguments"; | 1596 | $parameterdescs{$param} = "variable arguments"; |
1597 | } | ||
1593 | } | 1598 | } |
1594 | elsif ($type eq "" && ($param eq "" or $param eq "void")) | 1599 | elsif ($type eq "" && ($param eq "" or $param eq "void")) |
1595 | { | 1600 | { |
1596 | $type=""; | ||
1597 | $param="void"; | 1601 | $param="void"; |
1598 | $parameterdescs{void} = "no arguments"; | 1602 | $parameterdescs{void} = "no arguments"; |
1599 | } | 1603 | } |
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index ba1ab737b55f..eb9164176dab 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c | |||
@@ -1436,12 +1436,12 @@ static void set_dig_out(struct hda_codec *codec, hda_nid_t nid, | |||
1436 | { | 1436 | { |
1437 | hda_nid_t *d; | 1437 | hda_nid_t *d; |
1438 | 1438 | ||
1439 | snd_hda_codec_write(codec, nid, 0, verb, val); | 1439 | snd_hda_codec_write_cache(codec, nid, 0, verb, val); |
1440 | d = codec->slave_dig_outs; | 1440 | d = codec->slave_dig_outs; |
1441 | if (!d) | 1441 | if (!d) |
1442 | return; | 1442 | return; |
1443 | for (; *d; d++) | 1443 | for (; *d; d++) |
1444 | snd_hda_codec_write(codec, *d, 0, verb, val); | 1444 | snd_hda_codec_write_cache(codec, *d, 0, verb, val); |
1445 | } | 1445 | } |
1446 | 1446 | ||
1447 | static inline void set_dig_out_convert(struct hda_codec *codec, hda_nid_t nid, | 1447 | static inline void set_dig_out_convert(struct hda_codec *codec, hda_nid_t nid, |
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index 9563b5bbb272..5dd3e89f620a 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c | |||
@@ -70,7 +70,9 @@ enum { | |||
70 | 70 | ||
71 | enum { | 71 | enum { |
72 | STAC_92HD73XX_REF, | 72 | STAC_92HD73XX_REF, |
73 | STAC_DELL_M6, | 73 | STAC_DELL_M6_AMIC, |
74 | STAC_DELL_M6_DMIC, | ||
75 | STAC_DELL_M6_BOTH, | ||
74 | STAC_DELL_EQ, | 76 | STAC_DELL_EQ, |
75 | STAC_92HD73XX_MODELS | 77 | STAC_92HD73XX_MODELS |
76 | }; | 78 | }; |
@@ -84,6 +86,7 @@ enum { | |||
84 | STAC_92HD71BXX_REF, | 86 | STAC_92HD71BXX_REF, |
85 | STAC_DELL_M4_1, | 87 | STAC_DELL_M4_1, |
86 | STAC_DELL_M4_2, | 88 | STAC_DELL_M4_2, |
89 | STAC_DELL_M4_3, | ||
87 | STAC_HP_M4, | 90 | STAC_HP_M4, |
88 | STAC_92HD71BXX_MODELS | 91 | STAC_92HD71BXX_MODELS |
89 | }; | 92 | }; |
@@ -137,6 +140,7 @@ struct sigmatel_spec { | |||
137 | unsigned int num_mixers; | 140 | unsigned int num_mixers; |
138 | 141 | ||
139 | int board_config; | 142 | int board_config; |
143 | unsigned int eapd_switch: 1; | ||
140 | unsigned int surr_switch: 1; | 144 | unsigned int surr_switch: 1; |
141 | unsigned int line_switch: 1; | 145 | unsigned int line_switch: 1; |
142 | unsigned int mic_switch: 1; | 146 | unsigned int mic_switch: 1; |
@@ -1600,13 +1604,17 @@ static unsigned int dell_m6_pin_configs[13] = { | |||
1600 | 1604 | ||
1601 | static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { | 1605 | static unsigned int *stac92hd73xx_brd_tbl[STAC_92HD73XX_MODELS] = { |
1602 | [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, | 1606 | [STAC_92HD73XX_REF] = ref92hd73xx_pin_configs, |
1603 | [STAC_DELL_M6] = dell_m6_pin_configs, | 1607 | [STAC_DELL_M6_AMIC] = dell_m6_pin_configs, |
1608 | [STAC_DELL_M6_DMIC] = dell_m6_pin_configs, | ||
1609 | [STAC_DELL_M6_BOTH] = dell_m6_pin_configs, | ||
1604 | [STAC_DELL_EQ] = dell_m6_pin_configs, | 1610 | [STAC_DELL_EQ] = dell_m6_pin_configs, |
1605 | }; | 1611 | }; |
1606 | 1612 | ||
1607 | static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { | 1613 | static const char *stac92hd73xx_models[STAC_92HD73XX_MODELS] = { |
1608 | [STAC_92HD73XX_REF] = "ref", | 1614 | [STAC_92HD73XX_REF] = "ref", |
1609 | [STAC_DELL_M6] = "dell-m6", | 1615 | [STAC_DELL_M6_AMIC] = "dell-m6-amic", |
1616 | [STAC_DELL_M6_DMIC] = "dell-m6-dmic", | ||
1617 | [STAC_DELL_M6_BOTH] = "dell-m6", | ||
1610 | [STAC_DELL_EQ] = "dell-eq", | 1618 | [STAC_DELL_EQ] = "dell-eq", |
1611 | }; | 1619 | }; |
1612 | 1620 | ||
@@ -1615,19 +1623,23 @@ static struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = { | |||
1615 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, | 1623 | SND_PCI_QUIRK(PCI_VENDOR_ID_INTEL, 0x2668, |
1616 | "DFI LanParty", STAC_92HD73XX_REF), | 1624 | "DFI LanParty", STAC_92HD73XX_REF), |
1617 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254, | 1625 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0254, |
1618 | "unknown Dell", STAC_DELL_M6), | 1626 | "Dell Studio 1535", STAC_DELL_M6_DMIC), |
1619 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255, | 1627 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0255, |
1620 | "unknown Dell", STAC_DELL_M6), | 1628 | "unknown Dell", STAC_DELL_M6_DMIC), |
1621 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256, | 1629 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0256, |
1622 | "unknown Dell", STAC_DELL_M6), | 1630 | "unknown Dell", STAC_DELL_M6_BOTH), |
1623 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257, | 1631 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0257, |
1624 | "unknown Dell", STAC_DELL_M6), | 1632 | "unknown Dell", STAC_DELL_M6_BOTH), |
1625 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e, | 1633 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025e, |
1626 | "unknown Dell", STAC_DELL_M6), | 1634 | "unknown Dell", STAC_DELL_M6_AMIC), |
1627 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f, | 1635 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x025f, |
1628 | "unknown Dell", STAC_DELL_M6), | 1636 | "unknown Dell", STAC_DELL_M6_AMIC), |
1629 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271, | 1637 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0271, |
1630 | "unknown Dell", STAC_DELL_M6), | 1638 | "unknown Dell", STAC_DELL_M6_DMIC), |
1639 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0272, | ||
1640 | "unknown Dell", STAC_DELL_M6_DMIC), | ||
1641 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x029f, | ||
1642 | "Dell Studio 1537", STAC_DELL_M6_DMIC), | ||
1631 | {} /* terminator */ | 1643 | {} /* terminator */ |
1632 | }; | 1644 | }; |
1633 | 1645 | ||
@@ -1670,10 +1682,17 @@ static unsigned int dell_m4_2_pin_configs[11] = { | |||
1670 | 0x40f000f0, 0x044413b0, 0x044413b0, | 1682 | 0x40f000f0, 0x044413b0, 0x044413b0, |
1671 | }; | 1683 | }; |
1672 | 1684 | ||
1685 | static unsigned int dell_m4_3_pin_configs[11] = { | ||
1686 | 0x0421101f, 0x04a11221, 0x90a70330, 0x90170110, | ||
1687 | 0x40f000f0, 0x40f000f0, 0x40f000f0, 0x90a000f0, | ||
1688 | 0x40f000f0, 0x044413b0, 0x044413b0, | ||
1689 | }; | ||
1690 | |||
1673 | static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = { | 1691 | static unsigned int *stac92hd71bxx_brd_tbl[STAC_92HD71BXX_MODELS] = { |
1674 | [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs, | 1692 | [STAC_92HD71BXX_REF] = ref92hd71bxx_pin_configs, |
1675 | [STAC_DELL_M4_1] = dell_m4_1_pin_configs, | 1693 | [STAC_DELL_M4_1] = dell_m4_1_pin_configs, |
1676 | [STAC_DELL_M4_2] = dell_m4_2_pin_configs, | 1694 | [STAC_DELL_M4_2] = dell_m4_2_pin_configs, |
1695 | [STAC_DELL_M4_3] = dell_m4_3_pin_configs, | ||
1677 | [STAC_HP_M4] = NULL, | 1696 | [STAC_HP_M4] = NULL, |
1678 | }; | 1697 | }; |
1679 | 1698 | ||
@@ -1681,6 +1700,7 @@ static const char *stac92hd71bxx_models[STAC_92HD71BXX_MODELS] = { | |||
1681 | [STAC_92HD71BXX_REF] = "ref", | 1700 | [STAC_92HD71BXX_REF] = "ref", |
1682 | [STAC_DELL_M4_1] = "dell-m4-1", | 1701 | [STAC_DELL_M4_1] = "dell-m4-1", |
1683 | [STAC_DELL_M4_2] = "dell-m4-2", | 1702 | [STAC_DELL_M4_2] = "dell-m4-2", |
1703 | [STAC_DELL_M4_3] = "dell-m4-3", | ||
1684 | [STAC_HP_M4] = "hp-m4", | 1704 | [STAC_HP_M4] = "hp-m4", |
1685 | }; | 1705 | }; |
1686 | 1706 | ||
@@ -1716,6 +1736,8 @@ static struct snd_pci_quirk stac92hd71bxx_cfg_tbl[] = { | |||
1716 | "unknown Dell", STAC_DELL_M4_2), | 1736 | "unknown Dell", STAC_DELL_M4_2), |
1717 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0264, | 1737 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0264, |
1718 | "unknown Dell", STAC_DELL_M4_2), | 1738 | "unknown Dell", STAC_DELL_M4_2), |
1739 | SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02aa, | ||
1740 | "unknown Dell", STAC_DELL_M4_3), | ||
1719 | {} /* terminator */ | 1741 | {} /* terminator */ |
1720 | }; | 1742 | }; |
1721 | 1743 | ||
@@ -2877,7 +2899,7 @@ static int stac92xx_auto_create_multi_out_ctls(struct hda_codec *codec, | |||
2877 | cfg->hp_outs && !spec->multiout.hp_nid) | 2899 | cfg->hp_outs && !spec->multiout.hp_nid) |
2878 | spec->multiout.hp_nid = nid; | 2900 | spec->multiout.hp_nid = nid; |
2879 | 2901 | ||
2880 | if (cfg->hp_outs > 1) { | 2902 | if (cfg->hp_outs > 1 && cfg->line_out_type == AUTO_PIN_LINE_OUT) { |
2881 | err = stac92xx_add_control(spec, | 2903 | err = stac92xx_add_control(spec, |
2882 | STAC_CTL_WIDGET_HP_SWITCH, | 2904 | STAC_CTL_WIDGET_HP_SWITCH, |
2883 | "Headphone as Line Out Switch", | 2905 | "Headphone as Line Out Switch", |
@@ -3683,10 +3705,14 @@ static void stac92xx_power_down(struct hda_codec *codec) | |||
3683 | AC_VERB_SET_POWER_STATE, AC_PWRST_D3); | 3705 | AC_VERB_SET_POWER_STATE, AC_PWRST_D3); |
3684 | } | 3706 | } |
3685 | 3707 | ||
3708 | static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid, | ||
3709 | int enable); | ||
3710 | |||
3686 | static int stac92xx_init(struct hda_codec *codec) | 3711 | static int stac92xx_init(struct hda_codec *codec) |
3687 | { | 3712 | { |
3688 | struct sigmatel_spec *spec = codec->spec; | 3713 | struct sigmatel_spec *spec = codec->spec; |
3689 | struct auto_pin_cfg *cfg = &spec->autocfg; | 3714 | struct auto_pin_cfg *cfg = &spec->autocfg; |
3715 | unsigned int gpio; | ||
3690 | int i; | 3716 | int i; |
3691 | 3717 | ||
3692 | snd_hda_sequence_write(codec, spec->init); | 3718 | snd_hda_sequence_write(codec, spec->init); |
@@ -3697,6 +3723,16 @@ static int stac92xx_init(struct hda_codec *codec) | |||
3697 | snd_hda_codec_write_cache(codec, | 3723 | snd_hda_codec_write_cache(codec, |
3698 | spec->adc_nids[i], 0, | 3724 | spec->adc_nids[i], 0, |
3699 | AC_VERB_SET_POWER_STATE, AC_PWRST_D3); | 3725 | AC_VERB_SET_POWER_STATE, AC_PWRST_D3); |
3726 | |||
3727 | /* set up GPIO */ | ||
3728 | gpio = spec->gpio_data; | ||
3729 | /* turn on EAPD statically when spec->eapd_switch isn't set. | ||
3730 | * otherwise, unsol event will turn it on/off dynamically | ||
3731 | */ | ||
3732 | if (!spec->eapd_switch) | ||
3733 | gpio |= spec->eapd_mask; | ||
3734 | stac_gpio_set(codec, spec->gpio_mask, spec->gpio_dir, gpio); | ||
3735 | |||
3700 | /* set up pins */ | 3736 | /* set up pins */ |
3701 | if (spec->hp_detect) { | 3737 | if (spec->hp_detect) { |
3702 | /* Enable unsolicited responses on the HP widget */ | 3738 | /* Enable unsolicited responses on the HP widget */ |
@@ -3736,39 +3772,43 @@ static int stac92xx_init(struct hda_codec *codec) | |||
3736 | for (i = 0; i < spec->num_dmics; i++) | 3772 | for (i = 0; i < spec->num_dmics; i++) |
3737 | stac92xx_auto_set_pinctl(codec, spec->dmic_nids[i], | 3773 | stac92xx_auto_set_pinctl(codec, spec->dmic_nids[i], |
3738 | AC_PINCTL_IN_EN); | 3774 | AC_PINCTL_IN_EN); |
3775 | if (cfg->dig_out_pin) | ||
3776 | stac92xx_auto_set_pinctl(codec, cfg->dig_out_pin, | ||
3777 | AC_PINCTL_OUT_EN); | ||
3778 | if (cfg->dig_in_pin) | ||
3779 | stac92xx_auto_set_pinctl(codec, cfg->dig_in_pin, | ||
3780 | AC_PINCTL_IN_EN); | ||
3739 | for (i = 0; i < spec->num_pwrs; i++) { | 3781 | for (i = 0; i < spec->num_pwrs; i++) { |
3740 | int event = is_nid_hp_pin(cfg, spec->pwr_nids[i]) | 3782 | hda_nid_t nid = spec->pwr_nids[i]; |
3741 | ? STAC_HP_EVENT : STAC_PWR_EVENT; | 3783 | int pinctl, def_conf; |
3742 | int pinctl = snd_hda_codec_read(codec, spec->pwr_nids[i], | 3784 | int event = STAC_PWR_EVENT; |
3743 | 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0); | 3785 | |
3744 | int def_conf = snd_hda_codec_read(codec, spec->pwr_nids[i], | 3786 | if (is_nid_hp_pin(cfg, nid) && spec->hp_detect) |
3745 | 0, AC_VERB_GET_CONFIG_DEFAULT, 0); | 3787 | continue; /* already has an unsol event */ |
3746 | def_conf = get_defcfg_connect(def_conf); | 3788 | |
3789 | pinctl = snd_hda_codec_read(codec, nid, 0, | ||
3790 | AC_VERB_GET_PIN_WIDGET_CONTROL, 0); | ||
3747 | /* outputs are only ports capable of power management | 3791 | /* outputs are only ports capable of power management |
3748 | * any attempts on powering down a input port cause the | 3792 | * any attempts on powering down a input port cause the |
3749 | * referenced VREF to act quirky. | 3793 | * referenced VREF to act quirky. |
3750 | */ | 3794 | */ |
3751 | if (pinctl & AC_PINCTL_IN_EN) | 3795 | if (pinctl & AC_PINCTL_IN_EN) |
3752 | continue; | 3796 | continue; |
3797 | def_conf = snd_hda_codec_read(codec, nid, 0, | ||
3798 | AC_VERB_GET_CONFIG_DEFAULT, 0); | ||
3799 | def_conf = get_defcfg_connect(def_conf); | ||
3753 | /* skip any ports that don't have jacks since presence | 3800 | /* skip any ports that don't have jacks since presence |
3754 | * detection is useless */ | 3801 | * detection is useless */ |
3755 | if (def_conf && def_conf != AC_JACK_PORT_FIXED) | 3802 | if (def_conf != AC_JACK_PORT_COMPLEX) { |
3803 | if (def_conf != AC_JACK_PORT_NONE) | ||
3804 | stac_toggle_power_map(codec, nid, 1); | ||
3756 | continue; | 3805 | continue; |
3806 | } | ||
3757 | enable_pin_detect(codec, spec->pwr_nids[i], event | i); | 3807 | enable_pin_detect(codec, spec->pwr_nids[i], event | i); |
3758 | codec->patch_ops.unsol_event(codec, (event | i) << 26); | 3808 | codec->patch_ops.unsol_event(codec, (event | i) << 26); |
3759 | } | 3809 | } |
3760 | if (spec->dac_list) | 3810 | if (spec->dac_list) |
3761 | stac92xx_power_down(codec); | 3811 | stac92xx_power_down(codec); |
3762 | if (cfg->dig_out_pin) | ||
3763 | stac92xx_auto_set_pinctl(codec, cfg->dig_out_pin, | ||
3764 | AC_PINCTL_OUT_EN); | ||
3765 | if (cfg->dig_in_pin) | ||
3766 | stac92xx_auto_set_pinctl(codec, cfg->dig_in_pin, | ||
3767 | AC_PINCTL_IN_EN); | ||
3768 | |||
3769 | stac_gpio_set(codec, spec->gpio_mask, | ||
3770 | spec->gpio_dir, spec->gpio_data); | ||
3771 | |||
3772 | return 0; | 3812 | return 0; |
3773 | } | 3813 | } |
3774 | 3814 | ||
@@ -3901,7 +3941,7 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res) | |||
3901 | for (i = 0; i < cfg->speaker_outs; i++) | 3941 | for (i = 0; i < cfg->speaker_outs; i++) |
3902 | stac92xx_reset_pinctl(codec, cfg->speaker_pins[i], | 3942 | stac92xx_reset_pinctl(codec, cfg->speaker_pins[i], |
3903 | AC_PINCTL_OUT_EN); | 3943 | AC_PINCTL_OUT_EN); |
3904 | if (spec->eapd_mask) | 3944 | if (spec->eapd_mask && spec->eapd_switch) |
3905 | stac_gpio_set(codec, spec->gpio_mask, | 3945 | stac_gpio_set(codec, spec->gpio_mask, |
3906 | spec->gpio_dir, spec->gpio_data & | 3946 | spec->gpio_dir, spec->gpio_data & |
3907 | ~spec->eapd_mask); | 3947 | ~spec->eapd_mask); |
@@ -3916,7 +3956,7 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res) | |||
3916 | for (i = 0; i < cfg->speaker_outs; i++) | 3956 | for (i = 0; i < cfg->speaker_outs; i++) |
3917 | stac92xx_set_pinctl(codec, cfg->speaker_pins[i], | 3957 | stac92xx_set_pinctl(codec, cfg->speaker_pins[i], |
3918 | AC_PINCTL_OUT_EN); | 3958 | AC_PINCTL_OUT_EN); |
3919 | if (spec->eapd_mask) | 3959 | if (spec->eapd_mask && spec->eapd_switch) |
3920 | stac_gpio_set(codec, spec->gpio_mask, | 3960 | stac_gpio_set(codec, spec->gpio_mask, |
3921 | spec->gpio_dir, spec->gpio_data | | 3961 | spec->gpio_dir, spec->gpio_data | |
3922 | spec->eapd_mask); | 3962 | spec->eapd_mask); |
@@ -3933,14 +3973,18 @@ static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res) | |||
3933 | } | 3973 | } |
3934 | } | 3974 | } |
3935 | 3975 | ||
3936 | static void stac92xx_pin_sense(struct hda_codec *codec, int idx) | 3976 | static void stac_toggle_power_map(struct hda_codec *codec, hda_nid_t nid, |
3977 | int enable) | ||
3937 | { | 3978 | { |
3938 | struct sigmatel_spec *spec = codec->spec; | 3979 | struct sigmatel_spec *spec = codec->spec; |
3939 | hda_nid_t nid = spec->pwr_nids[idx]; | 3980 | unsigned int idx, val; |
3940 | int presence, val; | 3981 | |
3941 | val = snd_hda_codec_read(codec, codec->afg, 0, 0x0fec, 0x0) | 3982 | for (idx = 0; idx < spec->num_pwrs; idx++) { |
3942 | & 0x000000ff; | 3983 | if (spec->pwr_nids[idx] == nid) |
3943 | presence = get_hp_pin_presence(codec, nid); | 3984 | break; |
3985 | } | ||
3986 | if (idx >= spec->num_pwrs) | ||
3987 | return; | ||
3944 | 3988 | ||
3945 | /* several codecs have two power down bits */ | 3989 | /* several codecs have two power down bits */ |
3946 | if (spec->pwr_mapping) | 3990 | if (spec->pwr_mapping) |
@@ -3948,14 +3992,20 @@ static void stac92xx_pin_sense(struct hda_codec *codec, int idx) | |||
3948 | else | 3992 | else |
3949 | idx = 1 << idx; | 3993 | idx = 1 << idx; |
3950 | 3994 | ||
3951 | if (presence) | 3995 | val = snd_hda_codec_read(codec, codec->afg, 0, 0x0fec, 0x0) & 0xff; |
3996 | if (enable) | ||
3952 | val &= ~idx; | 3997 | val &= ~idx; |
3953 | else | 3998 | else |
3954 | val |= idx; | 3999 | val |= idx; |
3955 | 4000 | ||
3956 | /* power down unused output ports */ | 4001 | /* power down unused output ports */ |
3957 | snd_hda_codec_write(codec, codec->afg, 0, 0x7ec, val); | 4002 | snd_hda_codec_write(codec, codec->afg, 0, 0x7ec, val); |
3958 | }; | 4003 | } |
4004 | |||
4005 | static void stac92xx_pin_sense(struct hda_codec *codec, hda_nid_t nid) | ||
4006 | { | ||
4007 | stac_toggle_power_map(codec, nid, get_hp_pin_presence(codec, nid)); | ||
4008 | } | ||
3959 | 4009 | ||
3960 | static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) | 4010 | static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) |
3961 | { | 4011 | { |
@@ -4239,31 +4289,29 @@ again: | |||
4239 | case STAC_DELL_EQ: | 4289 | case STAC_DELL_EQ: |
4240 | spec->init = dell_eq_core_init; | 4290 | spec->init = dell_eq_core_init; |
4241 | /* fallthru */ | 4291 | /* fallthru */ |
4242 | case STAC_DELL_M6: | 4292 | case STAC_DELL_M6_AMIC: |
4293 | case STAC_DELL_M6_DMIC: | ||
4294 | case STAC_DELL_M6_BOTH: | ||
4243 | spec->num_smuxes = 0; | 4295 | spec->num_smuxes = 0; |
4244 | spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; | 4296 | spec->mixer = &stac92hd73xx_6ch_mixer[DELL_M6_MIXER]; |
4245 | spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; | 4297 | spec->amp_nids = &stac92hd73xx_amp_nids[DELL_M6_AMP]; |
4298 | spec->eapd_switch = 0; | ||
4246 | spec->num_amps = 1; | 4299 | spec->num_amps = 1; |
4247 | 4300 | ||
4248 | if (!spec->init) | 4301 | if (!spec->init) |
4249 | spec->init = dell_m6_core_init; | 4302 | spec->init = dell_m6_core_init; |
4250 | switch (codec->subsystem_id) { | 4303 | switch (spec->board_config) { |
4251 | case 0x1028025e: /* Analog Mics */ | 4304 | case STAC_DELL_M6_AMIC: /* Analog Mics */ |
4252 | case 0x1028025f: | ||
4253 | stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); | 4305 | stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); |
4254 | spec->num_dmics = 0; | 4306 | spec->num_dmics = 0; |
4255 | spec->private_dimux.num_items = 1; | 4307 | spec->private_dimux.num_items = 1; |
4256 | break; | 4308 | break; |
4257 | case 0x10280271: /* Digital Mics */ | 4309 | case STAC_DELL_M6_DMIC: /* Digital Mics */ |
4258 | case 0x10280272: | ||
4259 | case 0x10280254: | ||
4260 | case 0x10280255: | ||
4261 | stac92xx_set_config_reg(codec, 0x13, 0x90A60160); | 4310 | stac92xx_set_config_reg(codec, 0x13, 0x90A60160); |
4262 | spec->num_dmics = 1; | 4311 | spec->num_dmics = 1; |
4263 | spec->private_dimux.num_items = 2; | 4312 | spec->private_dimux.num_items = 2; |
4264 | break; | 4313 | break; |
4265 | case 0x10280256: /* Both */ | 4314 | case STAC_DELL_M6_BOTH: /* Both */ |
4266 | case 0x10280057: | ||
4267 | stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); | 4315 | stac92xx_set_config_reg(codec, 0x0b, 0x90A70170); |
4268 | stac92xx_set_config_reg(codec, 0x13, 0x90A60160); | 4316 | stac92xx_set_config_reg(codec, 0x13, 0x90A60160); |
4269 | spec->num_dmics = 1; | 4317 | spec->num_dmics = 1; |
@@ -4274,6 +4322,7 @@ again: | |||
4274 | default: | 4322 | default: |
4275 | spec->num_dmics = STAC92HD73XX_NUM_DMICS; | 4323 | spec->num_dmics = STAC92HD73XX_NUM_DMICS; |
4276 | spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids); | 4324 | spec->num_smuxes = ARRAY_SIZE(stac92hd73xx_smux_nids); |
4325 | spec->eapd_switch = 1; | ||
4277 | } | 4326 | } |
4278 | if (spec->board_config > STAC_92HD73XX_REF) { | 4327 | if (spec->board_config > STAC_92HD73XX_REF) { |
4279 | /* GPIO0 High = Enable EAPD */ | 4328 | /* GPIO0 High = Enable EAPD */ |
@@ -4419,7 +4468,13 @@ static int stac92hd71xx_resume(struct hda_codec *codec) | |||
4419 | 4468 | ||
4420 | static int stac92hd71xx_suspend(struct hda_codec *codec, pm_message_t state) | 4469 | static int stac92hd71xx_suspend(struct hda_codec *codec, pm_message_t state) |
4421 | { | 4470 | { |
4471 | struct sigmatel_spec *spec = codec->spec; | ||
4472 | |||
4422 | stac92hd71xx_set_power_state(codec, AC_PWRST_D3); | 4473 | stac92hd71xx_set_power_state(codec, AC_PWRST_D3); |
4474 | if (spec->eapd_mask) | ||
4475 | stac_gpio_set(codec, spec->gpio_mask, | ||
4476 | spec->gpio_dir, spec->gpio_data & | ||
4477 | ~spec->eapd_mask); | ||
4423 | return 0; | 4478 | return 0; |
4424 | }; | 4479 | }; |
4425 | 4480 | ||
@@ -4562,14 +4617,21 @@ again: | |||
4562 | 4617 | ||
4563 | switch (spec->board_config) { | 4618 | switch (spec->board_config) { |
4564 | case STAC_HP_M4: | 4619 | case STAC_HP_M4: |
4565 | spec->num_dmics = 0; | ||
4566 | spec->num_smuxes = 0; | ||
4567 | spec->num_dmuxes = 0; | ||
4568 | |||
4569 | /* enable internal microphone */ | 4620 | /* enable internal microphone */ |
4570 | stac92xx_set_config_reg(codec, 0x0e, 0x01813040); | 4621 | stac92xx_set_config_reg(codec, 0x0e, 0x01813040); |
4571 | stac92xx_auto_set_pinctl(codec, 0x0e, | 4622 | stac92xx_auto_set_pinctl(codec, 0x0e, |
4572 | AC_PINCTL_IN_EN | AC_PINCTL_VREF_80); | 4623 | AC_PINCTL_IN_EN | AC_PINCTL_VREF_80); |
4624 | /* fallthru */ | ||
4625 | case STAC_DELL_M4_2: | ||
4626 | spec->num_dmics = 0; | ||
4627 | spec->num_smuxes = 0; | ||
4628 | spec->num_dmuxes = 0; | ||
4629 | break; | ||
4630 | case STAC_DELL_M4_1: | ||
4631 | case STAC_DELL_M4_3: | ||
4632 | spec->num_dmics = 1; | ||
4633 | spec->num_smuxes = 0; | ||
4634 | spec->num_dmuxes = 0; | ||
4573 | break; | 4635 | break; |
4574 | default: | 4636 | default: |
4575 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; | 4637 | spec->num_dmics = STAC92HD71BXX_NUM_DMICS; |
@@ -4806,6 +4868,7 @@ static int patch_stac927x(struct hda_codec *codec) | |||
4806 | spec->num_pwrs = 0; | 4868 | spec->num_pwrs = 0; |
4807 | spec->aloopback_mask = 0x40; | 4869 | spec->aloopback_mask = 0x40; |
4808 | spec->aloopback_shift = 0; | 4870 | spec->aloopback_shift = 0; |
4871 | spec->eapd_switch = 1; | ||
4809 | 4872 | ||
4810 | err = stac92xx_parse_auto_config(codec, 0x1e, 0x20); | 4873 | err = stac92xx_parse_auto_config(codec, 0x1e, 0x20); |
4811 | if (!err) { | 4874 | if (!err) { |
@@ -4886,6 +4949,7 @@ static int patch_stac9205(struct hda_codec *codec) | |||
4886 | 4949 | ||
4887 | spec->aloopback_mask = 0x40; | 4950 | spec->aloopback_mask = 0x40; |
4888 | spec->aloopback_shift = 0; | 4951 | spec->aloopback_shift = 0; |
4952 | spec->eapd_switch = 1; | ||
4889 | spec->multiout.dac_nids = spec->dac_nids; | 4953 | spec->multiout.dac_nids = spec->dac_nids; |
4890 | 4954 | ||
4891 | switch (spec->board_config){ | 4955 | switch (spec->board_config){ |
diff --git a/sound/soc/fsl/Kconfig b/sound/soc/fsl/Kconfig index bba9546ba5f5..8d73edc56102 100644 --- a/sound/soc/fsl/Kconfig +++ b/sound/soc/fsl/Kconfig | |||
@@ -20,7 +20,8 @@ config SND_SOC_MPC8610_HPCD | |||
20 | 20 | ||
21 | config SND_SOC_MPC5200_I2S | 21 | config SND_SOC_MPC5200_I2S |
22 | tristate "Freescale MPC5200 PSC in I2S mode driver" | 22 | tristate "Freescale MPC5200 PSC in I2S mode driver" |
23 | depends on SND_SOC && PPC_MPC52xx && PPC_BESTCOMM | ||
23 | select SND_SOC_OF_SIMPLE | 24 | select SND_SOC_OF_SIMPLE |
24 | depends on SND_SOC && PPC_MPC52xx | 25 | select PPC_BESTCOMM_GEN_BD |
25 | help | 26 | help |
26 | Say Y here to support the MPC5200 PSCs in I2S mode. | 27 | Say Y here to support the MPC5200 PSCs in I2S mode. |
diff --git a/sound/sound_core.c b/sound/sound_core.c index a75b289a5d78..10ba4218161b 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c | |||
@@ -457,7 +457,7 @@ EXPORT_SYMBOL(unregister_sound_mixer); | |||
457 | 457 | ||
458 | void unregister_sound_midi(int unit) | 458 | void unregister_sound_midi(int unit) |
459 | { | 459 | { |
460 | return sound_remove_unit(&chains[2], unit); | 460 | sound_remove_unit(&chains[2], unit); |
461 | } | 461 | } |
462 | 462 | ||
463 | EXPORT_SYMBOL(unregister_sound_midi); | 463 | EXPORT_SYMBOL(unregister_sound_midi); |
@@ -474,7 +474,7 @@ EXPORT_SYMBOL(unregister_sound_midi); | |||
474 | 474 | ||
475 | void unregister_sound_dsp(int unit) | 475 | void unregister_sound_dsp(int unit) |
476 | { | 476 | { |
477 | return sound_remove_unit(&chains[3], unit); | 477 | sound_remove_unit(&chains[3], unit); |
478 | } | 478 | } |
479 | 479 | ||
480 | 480 | ||
@@ -507,7 +507,7 @@ static struct sound_unit *__look_for_unit(int chain, int unit) | |||
507 | return NULL; | 507 | return NULL; |
508 | } | 508 | } |
509 | 509 | ||
510 | int soundcore_open(struct inode *inode, struct file *file) | 510 | static int soundcore_open(struct inode *inode, struct file *file) |
511 | { | 511 | { |
512 | int chain; | 512 | int chain; |
513 | int unit = iminor(inode); | 513 | int unit = iminor(inode); |